while 运行 huggingface gpt2-xl 模型嵌入索引超出范围
while running huggingface gpt2-xl model embedding index getting out of range
我正在尝试 运行 hugginface gpt2-xl model. I ran code from the quickstart 加载小型 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
加载代码,如下所示:
分词器 = GPT2Tokenizer.from_pretrained("gpt2-xl")
模型 = 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
看error好像embedding size不对。所以我写了以下行来专门获取 gpt2-xl
:
的配置文件
config = GPT2Config.from_pretrained("gpt2-xl")
但是,这里vocab_size:50257
所以我通过以下方式明确更改了值:
config.vocab_size=204483
然后在打印了config
之后,我可以看到上一行在配置中生效了。但是,我仍然遇到同样的错误。
这实际上是我报告的一个问题,他们修复了它。
https://github.com/huggingface/transformers/issues/2774
我正在尝试 运行 hugginface gpt2-xl model. I ran code from the quickstart 加载小型 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
加载代码,如下所示:
分词器 = GPT2Tokenizer.from_pretrained("gpt2-xl")
模型 = 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
看error好像embedding size不对。所以我写了以下行来专门获取 gpt2-xl
:
config = GPT2Config.from_pretrained("gpt2-xl")
但是,这里vocab_size:50257
所以我通过以下方式明确更改了值:
config.vocab_size=204483
然后在打印了config
之后,我可以看到上一行在配置中生效了。但是,我仍然遇到同样的错误。
这实际上是我报告的一个问题,他们修复了它。 https://github.com/huggingface/transformers/issues/2774