0

我正在尝试运行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模型。我更改tokenizermodel加载如下代码: 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,我可以看到上一行在配置中生效了。但是,我仍然遇到同样的错误。

4

1 回答 1

2

这实际上是我报告的一个问题,他们修复了它。 https://github.com/huggingface/transformers/issues/2774

于 2020-02-11T16:15:02.993 回答