Крупномасштабная языковая модель Pytorch
Крупномасштабная модель языка Pytorch, обученная набору данных на 1 миллиард слов (LM1B) / (GBW)
Последние результаты
- 39,98 Недостаток после 5 тренировочных эпох с использованием языковой модели LSTM с Adam Optimizer
- Обучен за ~ 26 часов с использованием 1 NVIDIA V100 GPU ( ~ 5,1 часа на эпоху ) с размером партии 2048 ( ~ 10,7 ГБ памяти GPU )
Предыдущие результаты
- 46.47 Стушение после 5 тренировочных эпох на 1-слойном языке, 2048-юнит, 256-продюсерской языковой модели LSTM [3]
- Обучен в течение 3 дней с использованием 1 NVIDIA P100 GPU ( ~ 12,5 часов на эпоху )
- Реализованный выборки SoftMax и логикообразное пробоотборник
Требование по аппаратному обеспечению графического процессора
| Тип | LM Размер памяти | Графический процессор |
|---|
| без привязанных весов | ~ 9 ГБ | NVIDIA 1080 TI, NVIDIA TITAN X |
| с привязанными весами [6] | ~ 7 ГБ | Nvidia 1070 или выше |
- Существует возможность связать слово «Встроенное и весовое матрицы» и Softmax, чтобы сохранить память графического процессора.
Гиперпараметры [3]
| Параметр | Ценить |
|---|
| # Эпохи | 5 |
| Обучающий размер партии | 128 |
| Оценка размера партии | 1 |
| Бетт | 20 |
| Размер встраивания | 256 |
| Скрытый размер | 2048 |
| Размер проекции | 256 |
| Привязанный встраивание + softmax | ЛОЖЬ |
| # Слои | 1 |
| Оптимизатор | Адаград |
| Скорость обучения | 0,10 |
| Градиент обрезка | 1,00 |
| Выбывать | 0,01 |
| Веса-декорация (штраф L2) | 1e-6 |
Настройка - формат данных факела
- Скачать набор данных Google Million Word для Torch - ссылка
- Запустите "process_gbw.py" в файле "train_data.th7" для создания файла "train_data.sid"
- Установите Cython Framework и Build log_uniform Sampler
- Преобразовать тензоры данных TORCH в формат тензора Pytorch (требует Pytorch V0.4.1)
Я использую данные GBW, предварительно обработанные для фонда факела. (См. Torch GBW) Каждый тензор данных содержит все слова в разделе данных. Файл "train_data.sid" отмечает начальные и конечные позиции для каждого независимого предложения. Шаг предварительной обработки и файл "train_data.sid" ускоряет загрузку массивных учебных данных.
- Тенсоры данных - (test_data, valive_data, train_data, train_small, train_tiny) - (#words x 2) Матрица - (идентификатор предложения, идентификатор слов)
- Тензор идентификатора предложения - (#Sentences x 2) Матрица - (начальная позиция, длина предложения)
Настройка - исходный формат данных
- Скачать набор данных на 1 миллиард слов - ссылка
Формат данных Torch загружает весь набор данных одновременно, поэтому ему требуется не менее 32 ГБ памяти. Оригинальный формат разделяет набор данных на небольшие куски, но он работает медленнее.
Ссылки
- Изучение пределов языкового моделирования GitHub
- Уловки факторизации для LSTM Networks GitHub
- Эффективное приближение SoftMax для GPU GitHub
- Отбор проб кандидата
- Факел GBW
- Привязывание векторов слов и классификаторов слов: структура потерь для языкового моделирования