Я пытаюсь запустить hugginface gpt2-xl модель. Я запустил код со страницы 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
код загрузки следующим образом: 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
я вижу, что предыдущая строка вступила в силу в конфигурации. Но все равно я получаю ту же ошибку.