我正在尝试运行hugginface gpt2-xl 模型。我从加载小型 gpt2 模型并通过以下代码生成文本的快速入门页面运行代码:
from transformers import GPT2LMHeadModel, GPT2Tokenizer
import torch
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained('gpt2')
generated = tokenizer.encode("The Manhattan bridge")
context = torch.tensor([generated])
past = None
for i in range(100):
print(i)
output, past = model(context, past=past)
token = torch.argmax(output[0, :])
generated += [token.tolist()]
context = token.unsqueeze(0)
sequence = tokenizer.decode(generated)
print(sequence)
这是完美的运行。然后我尝试运行gpt2-xl
模型。我更改tokenizer
并model
加载如下代码: tokenizer = GPT2Tokenizer.from_pretrained("gpt2-xl") model = GPT2LMHeadModel.from_pretrained('gpt2-xl')
和tokenizer
加载model
完美。但我在以下行出现错误:
output, past = model(context, past=past)
错误是:
RuntimeError: index out of range: Tried to access index 204483 out of table with 50256 rows. at /pytorch/aten/src/TH/generic/THTensorEvenMoreMath.cpp:418
查看错误似乎嵌入大小不正确。所以我写了以下行来专门获取配置文件gpt2-xl
:
config = GPT2Config.from_pretrained("gpt2-xl")
但是,在这里vocab_size:50257
,我通过以下方式明确更改了值:
config.vocab_size=204483
然后打印出来后config
,我可以看到上一行在配置中生效了。但是,我仍然遇到同样的错误。