@inproceedings{Wu2020LiteTransformer, title={Lite Transformer with Long-Short Range Attention}, author={Zhanghao Wu* and Zhijian Liu* and Ji Lin and Yujun Lin and Song Han}, booktitle={International Conference on Learning Representations (ICLR)}, year={2020} }
Версия Python >= 3.6
Версия PyTorch >= 1.0.0
конфигурационный анализ >= 0,14
Для обучения новых моделей вам также понадобится графический процессор NVIDIA и NCCL.
Кодовая база
Чтобы установить fairseq из исходного кода и разработать локально:
pip install --editable .
Костюмированные модули
Нам также необходимо создать lightconv
и dynamicconv
для поддержки графического процессора.
Lightconv_layer
компакт-диск fairseq/modules/lightconv_layer python cuda_function_gen.py установка python setup.py
динамический_слой
cd fairseq/modules/dynamicconv_layer python cuda_function_gen.py установка python setup.py
Следим за подготовкой данных в fairseq. Чтобы загрузить и предварительно обработать данные, можно запустить
конфиги bash/iwslt14.de-en/prepare.sh
Мы следим за предварительной обработкой данных в fairseq. Чтобы загрузить и предварительно обработать данные, можно запустить
конфиги bash/wmt14.en-fr/prepare.sh
Мы следим за предварительной обработкой данных в fairseq. Сначала следует загрузить предварительно обработанные данные с Google Диска, предоставленного Google. Чтобы бинаризировать данные, можно запустить
bash configs/wmt16.en-de/prepare.sh [путь к загруженному zip-файлу]
Поскольку задача языковой модели имеет множество дополнительных кодов, мы поместим ее в другую ветку: language-model
. Мы следим за предварительной обработкой данных в fairseq. Чтобы загрузить и предварительно обработать данные, можно запустить
языковая модель git checkout конфиги bash/wikitext-103/prepare.sh
Например, для тестирования моделей на WMT'14 En-Fr можно запустить
configs/wmt14.en-fr/test.sh [путь к контрольным точкам модели] [gpu-id] [test|действителен]
Например, чтобы оценить Lite Transformer на графическом процессоре 0 (с оценкой BLEU на тестовом наборе WMT'14 En-Fr), можно запустить
configs/wmt14.en-fr/test.sh embed496/ 0 тест
Внизу мы предоставляем несколько предварительно обученных моделей. Вы можете скачать модель и извлечь файл с помощью
tar -xzvf [имя файла]
Мы предоставили несколько примеров для обучения Lite Transformer с помощью этого репозитория:
Чтобы обучить Lite Transformer на WMT'14 En-Fr (с 8 графическими процессорами), можно запустить
python train.py data/binary/wmt14_en_fr --configs configs/wmt14.en-fr/attention/multibranch_v2/embed496.yml
Чтобы обучить Lite Transformer с меньшим количеством графических процессоров, например с 4 графическими процессорами, можно запустить
CUDA_VISIBLE_DEVICES=0,1,2,3 python train.py data/binary/wmt14_en_fr --configs configs/wmt14.en-fr/attention/multibranch_v2/embed496.yml --update-freq 32
В общем, чтобы обучить модель, можно запустить
python train.py [путь к двоичному файлу данных] --configs [путь к файлу конфигурации] [переопределить параметры]
Обратите внимание, что --update-freq
следует корректировать в соответствии с номерами графических процессоров (16 для 8 графических процессоров, 32 для 4 графических процессоров).
Обучить Lite Transformer распределенным способом. Например, на двух узлах графических процессоров всего 16 графических процессоров.
# На хосте host1python -m torch.distributed.launch --nproc_per_node=8 --nnodes=2 --node_rank=0 --master_addr=хост1 --master_port=8080 данные train.py/binary/wmt14_en_fr --configs configs/wmt14.en-fr/attention/multibranch_v2/embed496.yml --distributed-no-spawn --update-freq 8# На хосте 2python -m torch.distributed.launch --nproc_per_node=8 --nnodes=2 --node_rank=1 --master_addr=хост1 --master_port=8080 данные train.py/binary/wmt14_en_fr --configs configs/wmt14.en-fr/attention/multibranch_v2/embed496.yml --distributed-no-spawn --update-freq 8
Мы предоставляем контрольные точки для нашего Lite Transformer, описанные в статье:
Набор данных | #Мульт-Добавки | Оценка теста | Модель и тестовый набор |
---|---|---|---|
WMT'14 Ан-Пт | 90М | 35,3 | скачать |
360М | 39,1 | скачать | |
527М | 39,6 | скачать | |
WMT'16 Ан-Де | 90М | 22,5 | скачать |
360М | 25,6 | скачать | |
527М | 26,5 | скачать | |
CNN/Дейлимейл | 800М | 38,3 (РЛ) | скачать |
ВИКИТЕКСТ-103 | 1147М | 22,2 (ППЛ) | скачать |