Обучение языковой модели трансформатора GPT-2 на собственной корпорации с токенизацией предложения.
Этот репо содержит реализацию GPT-2 Pytorch, которая поддерживает обучение с несколькими GPU. Он также содержит реализацию TensorFlow в lm/gpt_2_tf , но она больше не разработана. Они делятся теми же сценариями подготовки данных. TF Training Command является gpt-2-tf-train и требует Tensorflow 1.13. Документация ниже предназначена для версии Pytorch.
Содержимое
Python 3.6+ требуется с факелом ночью или 1,6,0+. Работа в VirtualEnv приведена ниже. Сначала установите соответствующую версию Pytorch, а затем:
PIP установка -R TEDS.TXT Python setup.py Разработайте
Инструкции ниже. См. Также test/test_shakespeare.sh для полной демонстрации трубопровода на небольшом корпусе (занимает минуту на процессоре).
Формат корпуса: каталог с train на верхнем уровне, valid и test папки. Каждая папка верхнего уровня может содержать подразделения. Внутри них должны быть текстовые файлы UTF-8 с расширением .txt .
Команды для обучения модели предложения и кодирования корпуса поддерживают несколько корпораций, в приведенных ниже примерах мы предполагаем, что они могут быть перечислены как data/corpora-* .
Модель предложения поезда ( sp-text.txt может быть удален после запуска). Это может потреблять большой объем памяти, настраивать аргументы предложения, как это было рекомендовано, если это необходимо (это не поддерживается в команде sp-train напрямую):
SP-Train Data/Corpora-* sp-text.txt sp-model
Кодировать корпорации, создавая файлы Numpy:
SP-Ecode Data/Corpora-* SP-Model.Model Data/Codied
Пример команды:
GPT-2 DAN-ROOT DATA/CODED SP-Model.Model
run-root будет содержать модельные контрольные точки и журналы JSON-Lines, которые можно построить в ноутбуке Jupyter с json_log_plots.plot("run-root") , с количеством токенов, наблюдаемых на оси x.
Гиперпараметры по умолчанию соответствуют выпущенной «маленькой» модели GPT-2.
Когда доступно несколько графических процессоров, они будут использоваться для обучения с помощью torch.distributed .
Если путь существует, а ключ --clean ключа не пройдет, обучение будет возобновлено. Обратите внимание, что все параметры все еще необходимы, и параметры модели должны соответствовать.
Примечания по параметрам обучения:
--batch-size для GPU, поэтому вам не нужно повторно настраивать его при изменении количества графических процессоров, просто используйте макс, который вписывается в память.--g-accum-gradients -это глобальное количество градиентных накоплений, оно должно быть делится по количеству графических процессоров. Эффективный глобальный размер партии всегда является batch_size * g_accum_gradients .--lr не нужно изменять при изменении --batch-size или --g-accum-gradients или количество графических процессоров или --n-ctx : потеря уже масштабируется надлежащим образом.Пример команды:
GPT-2-Gen Run-Root "Искусственный интеллект"
run-root будет содержать модель контрольно-пропускных пунктов "Artificial intelligence" -это префикс текста, используемый в качестве отправной точки для генерации токенов
Примечания по параметрам вывода:
--tokens-to-generate : количество токенов для генерации, по умолчанию 42--top-k : количество кандидатов на токен для генерации для каждой позиции (ширина луча), по умолчанию составляет 8. Лицензия - MIT.
Tensorflow GPT-2 Модель взята с https://github.com/openai/gpt-2/blob/master/src/model.py и tensorflow gpt-2 учебного кода основан на https://github.com/nshepperd/gpt-2/blob/finetuning/train.py.
Pytorch Port основан на оригинальном коде Openai.
Тестирование Шекспирского корпуса под tests/shakespeare от http://shakespeare.mit.edu под общественным достоянием.
Смотрите также Openai GPT-2 Paper и Blog.