Fairseq(-py) — это набор инструментов для моделирования последовательностей, который позволяет исследователям и разработчикам обучать собственные модели для перевода, реферирования, языкового моделирования и других задач по генерации текста.
Мы предоставляем эталонные реализации различных документов по моделированию последовательностей:
Сверточные нейронные сети (CNN)
Языковое моделирование с помощью закрытых сверточных сетей (Dauphin et al., 2017)
Обучение от сверточной последовательности к последовательности (Геринг и др., 2017)
Потери классического структурированного прогнозирования для последовательного обучения (Эдунов и др., 2018)
Генерация иерархических нейронных историй (Fan et al., 2018)
wav2vec: предварительное обучение распознаванию речи без присмотра (Schneider et al., 2019)
Модели LightConv и DynamicConv
Уделяйте меньше внимания с помощью легких и динамических сверток (Wu et al., 2019)
Сети с длинной краткосрочной памятью (LSTM)
Эффективные подходы к нейронному машинному переводу, основанному на внимании (Луонг и др., 2015)
Трансформаторные сети (самообслуживания)
Внимание — это все, что вам нужно (Васвани и др., 2017)
Масштабирование нейронного машинного перевода (Отт и др., 2018)
Понимание обратного перевода в масштабе (Эдунов и др., 2018)
Адаптивные входные представления для моделирования нейронного языка (Баевски и Аули, 2018)
Лексически ограниченное декодирование с динамическим распределением лучей (Post & Vilar, 2018)
Transformer-XL: модели внимательного языка за пределами контекста фиксированной длины (Dai et al., 2019)
Продолжительность адаптивного внимания у трансформеров (Сухэ-Батор и др., 2019)
Смешанные модели для разнообразного машинного перевода: хитрости (Shen et al., 2019)
RoBERTa: надежно оптимизированный подход к предварительному обучению BERT (Лю и др., 2019)
Отправка задания на перевод новостей WMT19 от Facebook FAIR (Ng et al., 2019)
Совместное обучение согласованию и преобразованию с помощью моделей-трансформеров (Гарг и др., 2019)
Предварительное обучение многоязычному шумоподавлению для нейронного машинного перевода (Лю и др., 2020)
Нейронный машинный перевод с подсловами байтового уровня (Ванг и др., 2020)
Неконтролируемая оценка качества нейронного машинного перевода (Фомичева и др., 2020)
wav2vec 2.0: Структура самостоятельного изучения речевых представлений (Баевски и др., 2020)
Создание медицинских отчетов на основе бесед пациента и врача с использованием моделей «последовательность-последовательность» (Enarvi et al., 2020)
Линформер: внимание к себе с линейной сложностью (Ванг и др., 2020)
Межъязыковой поиск для итеративного обучения с самоконтролем (Tran et al., 2020)
Глубокие трансформаторы со скрытой глубиной (Ли и др., 2020)
Обучение межъязыковому представлению без учителя для распознавания речи (Conneau et al., 2020)
Самообучение и предварительная подготовка дополняют друг друга при распознавании речи (Xu et al., 2020)
Надежный wav2vec 2.0: анализ сдвига домена при предварительном обучении с самоконтролем (Сюй и др., 2021)
Распознавание речи без учителя (Баевский и др., 2021)
Простое и эффективное межъязыковое распознавание фонем с нулевым выстрелом (Xu et al., 2021)
VideoCLIP: Контрастивная предварительная тренировка для понимания видео-текста с нуля (Сюй и др., 2021)
VLM: предварительная подготовка модели видеоязыка, независимой от задачи, для понимания видео (Сюй и др., 2021)
NormFormer: улучшенная предварительная подготовка трансформатора с дополнительной нормализацией (Shleifer et. al, 2021)
Неавторегрессионные трансформаторы
Неавторегрессионный нейронный машинный перевод (Gu et al., 2017)
Детерминированное неавторегрессионное моделирование нейронных последовательностей путем итеративного уточнения (Ли и др., 2018)
Вставной трансформатор: гибкое создание последовательностей с помощью операций вставки (Штерн и др., 2019)
Mask-Predict: параллельное декодирование условных маскированных языковых моделей (Ghazvininejad et al., 2019)
Трансформатор Левенштейна (Гу и др., 2019)
Тонкая настройка
Лучшая тонкая настройка за счет уменьшения репрезентативного коллапса (Агаджанян и др., 2020)
Май 2023 г. Выпущены модели масштабирования речевых технологий на более чем 1000 языков (Пратап и др., 2023 г.).
Июнь 2022 г. Выпущен код для wav2vec-U 2.0 из книги «На пути к сквозному неконтролируемому распознаванию речи» (Лю и др., 2022 г.).
Май 2022 Интеграция с xFormers
Декабрь 2021 г. Выпущен код прямого перевода речи в речь.
Октябрь 2021 г. Выпущены модели VideoCLIP и VLM.
Октябрь 2021 г. Выпущена многоязычная доработанная модель XLSR-53.
Сентябрь 2021 г. ветка master
переименована в main
.
Июль 2021 г. Выпущен код DrNMT.
Июль 2021 г. Выпущена надежная модель wav2vec 2.0.
Июнь 2021 г. Выпущены модели XLMR-XL и XLMR-XXL.
Май 2021 г. Выпущен код неконтролируемого распознавания речи.
Март 2021 г. Добавлено полное сегментирование параметров и состояния оптимизатора + разгрузка ЦП.
Февраль 2021 г. Добавлен код обучения LASER.
Декабрь 2020 г.: добавлен код адаптивного внимания.
Декабрь 2020 г.: выпущена модель и код GottBERT.
Ноябрь 2020 г.: принята структура конфигурации Hydra.
см. документацию, объясняющую, как использовать ее для новых и существующих проектов.
Ноябрь 2020 г.: выпущен fairseq 0.10.0.
Октябрь 2020 г.: добавлен код R3F/R4F (лучшая точная настройка).
Октябрь 2020 г.: выпущен Deep Transformer с кодом скрытой глубины.
Октябрь 2020 г.: добавлены модели и код CRISS.
Сентябрь 2020: Добавлен код Linformer.
Сентябрь 2020 г.: добавлены сети-генераторы указателей.
Август 2020 г.: добавлено лексически ограниченное декодирование.
Август 2020 г.: выпущены модели и код wav2vec2.
Июль 2020 г.: выпущен код неконтролируемой оценки качества.
Май 2020 г.: подписывайтесь на fairseq в Твиттере
Апрель 2020 г.: выпущен код Monotonic Multihead Attention.
Апрель 2020 г.: выпущен код Quant-Noise.
Апрель 2020 г.: выпущена первоначальная поддержка параллельного режима модели и однонаправленный LM с 11B параметрами.
Март 2020 г.: выпущен код BPE на уровне байтов.
Февраль 2020 г.: выпущена модель и код mBART.
Февраль 2020 г.: добавлено руководство по обратному переводу.
Декабрь 2019 г.: выпущен fairseq 0.9.0.
Ноябрь 2019 г.: выпущен VizSeq (набор инструментов визуального анализа для оценки моделей fairseq).
Ноябрь 2019 г.: выпущена модель и код CamemBERT.
Ноябрь 2019 г.: выпущена модель и код BART.
Ноябрь 2019 г.: выпущены модели и код XLM-R.
Сентябрь 2019: выпущен код неавторегрессивного перевода.
Август 2019 г.: выпущены модели WMT'19.
Июль 2019 г.: fairseq повторно лицензируется по лицензии MIT.
Июль 2019 г.: выпущены модели и код RoBERTa.
Июнь 2019: выпущены модели и код wav2vec.
обучение с использованием нескольких графических процессоров на одной машине или на нескольких машинах (параллельные данные и модели)
быстрая генерация как на процессоре, так и на графическом процессоре с использованием нескольких алгоритмов поиска:
поиск луча
Поиск с использованием различных лучей (Виджаякумар и др., 2016 г.)
выборка (без ограничений, top-k и top-p/ядро)
лексически ограниченное декодирование (Post & Vilar, 2018)
Накопление градиента позволяет тренироваться большими мини-пакетами даже на одном графическом процессоре.
обучение смешанной точности (обучение происходит быстрее с меньшим объемом памяти графического процессора на тензорных ядрах NVIDIA)
расширяемость: легко регистрировать новые модели, критерии, задачи, оптимизаторы и планировщики скорости обучения.
гибкая конфигурация на основе Hydra, позволяющая комбинировать конфигурацию на основе кода, командной строки и файла.
полное сегментирование параметров и состояния оптимизатора
выгрузка параметров в процессор
Мы также предоставляем предварительно обученные модели для перевода и языкового моделирования с удобным интерфейсом torch.hub
:
en2de = torch.hub.load('pytorch/fairseq', 'transformer.wmt19.en-de.single_model')en2de.translate('Hello world', луч=5)# 'Hallo Welt'
См. руководства по переводу PyTorch Hub и дополнительные примеры в RoBERTa.
Версия PyTorch >= 1.10.0
Версия Python >= 3.8
Для обучения новых моделей вам также понадобится графический процессор NVIDIA и NCCL.
Чтобы установить fairseq и начать локальную разработку:
git клон https://github.com/pytorch/fairseqcd fairseq pip install --editable ./# в MacOS:# CFLAGS="-stdlib=libc++" pip install --editable ./# для установки последней стабильной версии (0.10.x)# pip install fairseq
Для более быстрого обучения установите apex-библиотеку NVIDIA:
git клон https://github.com/NVIDIA/apexcd апекс pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" --global-option="--deprecated_fused_adam" --global-option="--xentropy" --global-option="--fast_multihead_attn" ./
Для больших наборов данных установите PyArrow: pip install pyarrow
Если вы используете Docker, обязательно увеличьте размер общей памяти с помощью --ipc=host
или --shm-size
в качестве параметров командной строки для nvidia-docker run
.
Полная документация содержит инструкции по началу работы, обучению новых моделей и расширению fairseq новыми типами моделей и задачами.
Мы предоставляем предварительно обученные модели и предварительно обработанные бинаризованные тестовые наборы для нескольких задач, перечисленных ниже, а также примеры команд обучения и оценки.
Перевод: доступны сверточные и трансформаторные модели.
Языковое моделирование: доступны сверточные и трансформерные модели.
У нас также есть более подробные README для воспроизведения результатов из конкретных статей:
XLS-R: Масштабное обучение представлению межъязыковой речи с самоконтролем (Babu et al., 2021)
Межъязыковой поиск для итеративного обучения с самоконтролем (Tran et al., 2020)
wav2vec 2.0: Структура самостоятельного изучения речевых представлений (Баевски и др., 2020)
Неконтролируемая оценка качества нейронного машинного перевода (Фомичева и др., 2020)
Обучение с использованием квантового шума для экстремального сжатия модели ({Fan*, Stock*} et al., 2020)
Нейронный машинный перевод с подсловами байтового уровня (Ванг и др., 2020)
Предварительное обучение многоязычному шумоподавлению для нейронного машинного перевода (Лю и др., 2020)
Уменьшение глубины трансформатора по требованию с помощью структурированного отключения (Fan et al., 2019)
Совместное обучение согласованию и преобразованию с помощью моделей-трансформеров (Гарг и др., 2019)
Трансформатор Левенштейна (Гу и др., 2019)
Отправка задания на перевод новостей WMT19 от Facebook FAIR (Ng et al., 2019)
RoBERTa: надежно оптимизированный подход к предварительному обучению BERT (Лю и др., 2019)
wav2vec: предварительное обучение распознаванию речи без присмотра (Schneider et al., 2019)
Смешанные модели для разнообразного машинного перевода: хитрости (Shen et al., 2019)
Уделяйте меньше внимания с помощью легких и динамических сверток (Wu et al., 2019)
Понимание обратного перевода в масштабе (Эдунов и др., 2018)
Потери классического структурированного прогнозирования для последовательного обучения (Едунов и др., 2018)
Генерация иерархических нейронных историй (Fan et al., 2018)
Масштабирование нейронного машинного перевода (Отт и др., 2018)
Обучение от сверточной последовательности к последовательности (Геринг и др., 2017)
Языковое моделирование с использованием закрытых сверточных сетей (Dauphin et al., 2017)
Твиттер: https://twitter.com/fairseq
Страница Facebook: https://www.facebook.com/groups/fairseq.users
Группа Google: https://groups.google.com/forum/#!forum/fairseq-users.
fairseq(-py) имеет лицензию MIT. Лицензия также распространяется на предварительно обученные модели.
Пожалуйста, укажите как:
@inproceedings{ott2019fairseq, title = {fairseq: быстрый, расширяемый набор инструментов для моделирования последовательностей}, автор = {Майл Отт, Сергей Эдунов, Алексей Баевский, Анджела Фан, Сэм Гросс, Натан Нг, Дэвид Гранжер и Майкл Аули}, booktitle = {Материалы NAACL-HLT 2019: Демонстрации}, год = {2019}, }