Генерация текста из ввода по умолчанию модель gpt-2-простой Python - PullRequest
1 голос
/ 02 октября 2019

Не могу понять, как сгенерировать текст из модели подачи по умолчанию в префиксе:

Я скачал модель и вот мой код:

import gpt_2_simple as gpt2

model_name = "124M"

sess = gpt2.start_tf_sess()

gpt2.generate(sess, model_name=model_name)

gpt2.generate(sess, model_name=model_name, prefix="<|My name is |>")

Однако, когда я запускаю его, я получаю следующую ошибку:

tensorflow.python.framework.errors_impl.FailedPreconditionError: 2 root error(s) found. (0) Failed precondition: Attempting to use uninitialized value model/h3/mlp/c_proj/w [[{{node model/h3/mlp/c_proj/w/read}}]] [[strided_slice/_33]] (1) Failed precondition: Attempting to use uninitialized value model/h3/mlp/c_proj/w [[{{node model/h3/mlp/c_proj/w/read}}]]

Есть идеи, что я делаю неправильно?

1 Ответ

0 голосов
/ 04 октября 2019

Вы пытаетесь сгенерировать без загрузки параметров в первую очередь.

Кажется, что загруженные модели используются для обучения ("тонкая настройка"), но они не загружаются для генерации.

Для генерации библиотека пытается запустить ранее сохраненную модель Tensorflow ("контрольно-пропускные пункты "в терминологии TF).

Точная настройка

Вы можете создать контрольную точку, обучив модель для нескольких эпох, используя собственный набор данных (или работая на наборе данных, опубликованном в исследованиях ).

В противном случае gpt-2-simple облегчает задачу. Получите текстовый файл с текстом и обучите его:

gpt_2_simple --sample_every 50 finetune yourtext.txt

Дайте ему поработать несколько эпох и посмотрите на примеры результатов. Контрольная точка будет сохраняться каждые 100 эпох. Когда вы довольны, нажмите CTRL+C, и он сохранит последнюю контрольную точку.

Затем вы можете сгенерировать текст, используя:

gpt_2_simple generate --prefix "Once upon a time"  --nsamples 5

Инструмент gpt_2_simple принимает аргумент -hдля помощи. Посмотрите на другие варианты. Использование библиотеки из кода похоже на рабочий процесс этого инструмента.

Генерация без тонкой настройки

Автор объясняет в этом вопросе GitHub процедуру полного пропуска тонкой настройки. Просто скопируйте модель в каталог контрольных точек (сначала необходимо загрузить модель, перейдите по этой ссылке):

mkdir -p checkpoint/
cp -r models/345M checkpoint/run1
...