Fairseq(-py) es un conjunto de herramientas de modelado de secuencias que permite a investigadores y desarrolladores entrenar modelos personalizados para traducción, resumen, modelado de lenguaje y otras tareas de generación de texto.
Proporcionamos implementaciones de referencia de varios artículos de modelado de secuencias:
Redes neuronales convolucionales (CNN)
Modelado de lenguaje con redes convolucionales cerradas (Dauphin et al., 2017)
Secuencia convolucional a aprendizaje secuencial (Gehring et al., 2017)
Pérdidas de predicción estructurada clásica para el aprendizaje secuencia a secuencia (Edunov et al., 2018)
Generación jerárquica de historias neuronales (Fan et al., 2018)
wav2vec: entrenamiento previo no supervisado para el reconocimiento de voz (Schneider et al., 2019)
Modelos LightConv y DynamicConv
Preste menos atención con convoluciones ligeras y dinámicas (Wu et al., 2019)
Redes de memoria larga a corto plazo (LSTM)
Enfoques eficaces para la traducción automática neuronal basada en la atención (Luong et al., 2015)
Redes transformadoras (autoatención)
Atención es todo lo que necesita (Vaswani et al., 2017)
Ampliación de la traducción automática neuronal (Ott et al., 2018)
Comprensión de la retrotraducción a escala (Edunov et al., 2018)
Representaciones de entrada adaptativas para el modelado del lenguaje neuronal (Baevski y Auli, 2018)
Decodificación léxicamente restringida con asignación dinámica de haces (Post & Vilar, 2018)
Transformer-XL: modelos de lenguaje atento más allá de un contexto de longitud fija (Dai et al., 2019)
Capacidad de atención adaptativa en transformadores (Sukhbaatar et al., 2019)
Modelos mixtos para traducción automática diversa: trucos del oficio (Shen et al., 2019)
RoBERTa: un enfoque de preentrenamiento BERT sólidamente optimizado (Liu et al., 2019)
Envío de tareas de traducción de noticias WMT19 de Facebook FAIR (Ng et al., 2019)
Aprender conjuntamente a alinear y traducir con modelos de transformadores (Garg et al., 2019)
Entrenamiento previo de eliminación de ruido multilingüe para la traducción automática neuronal (Liu et al., 2020)
Traducción automática neuronal con subpalabras a nivel de bytes (Wang et al., 2020)
Estimación de calidad no supervisada para la traducción automática neuronal (Fomicheva et al., 2020)
wav2vec 2.0: un marco para el aprendizaje autosupervisado de representaciones del habla (Baevski et al., 2020)
Generación de informes médicos a partir de conversaciones entre pacientes y médicos utilizando modelos de secuencia a secuencia (Enarvi et al., 2020)
Linformer: Autoatención con complejidad lineal (Wang et al., 2020)
Recuperación multilingüe para capacitación iterativa autosupervisada (Tran et al., 2020)
Transformadores profundos con profundidad latente (Li et al., 2020)
Aprendizaje de representación multilingüe no supervisado para el reconocimiento de voz (Conneau et al., 2020)
La autoformación y la preformación son complementarias para el reconocimiento de voz (Xu et al., 2020)
Robusto wav2vec 2.0: análisis del cambio de dominio en preentrenamiento autosupervisado (Hsu, et al., 2021)
Reconocimiento de voz no supervisado (Baevski, et al., 2021)
Reconocimiento de fonemas multilingües de disparo cero simple y eficaz (Xu et al., 2021)
VideoCLIP: entrenamiento previo contrastivo para la comprensión de texto y vídeo de toma cero (Xu et. al., 2021)
VLM: Entrenamiento previo del modelo de lenguaje de video independiente de la tarea para la comprensión del video (Xu et. al., 2021)
NormFormer: preentrenamiento de transformador mejorado con normalización adicional (Shleifer et. al, 2021)
Transformadores no autorregresivos
Traducción automática neuronal no autorregresiva (Gu et al., 2017)
Modelado de secuencia neuronal determinista no autorregresivo mediante refinamiento iterativo (Lee et al. 2018)
Transformador de inserción: generación de secuencia flexible mediante operaciones de inserción (Stern et al. 2019)
Mask-Predict: decodificación paralela de modelos de lenguaje enmascarado condicional (Ghazvininejad et al., 2019)
Transformador Levenshtein (Gu et al., 2019)
Sintonia FINA
Mejor ajuste al reducir el colapso representacional (Aghajanyan et al. 2020)
Mayo de 2023 Modelos lanzados para ampliar la tecnología del habla a más de 1000 idiomas (Pratap, et al., 2023)
Junio de 2022 Código publicado para wav2vec-U 2.0 de Towards End-to-end Unsupervised Speech Recognition (Liu, et al., 2022)
Mayo de 2022 Integración con xFormers
Diciembre de 2021 Lanzamiento del código de traducción directa de voz a voz
Octubre de 2021 Modelos VideoCLIP y VLM lanzados
Octubre de 2021 Lanzamiento del modelo XLSR-53 multilingüe optimizado
Septiembre de 2021: la rama master
cambió de nombre a main
.
Julio de 2021 Código DrNMT publicado
Julio de 2021 Lanzamiento del modelo robusto wav2vec 2.0
Junio de 2021 Modelos XLMR-XL y XLMR-XXL lanzados
Mayo de 2021: código de reconocimiento de voz no supervisado publicado
Marzo de 2021 Se agregó fragmentación completa del estado del optimizador y parámetros + descarga de CPU
Febrero de 2021 Código de entrenamiento LÁSER agregado
Diciembre de 2020: se agregó el código de intervalo de atención adaptable
Diciembre de 2020: lanzamiento del código y modelo GottBERT
Noviembre de 2020: adopción del marco de configuración de Hydra
consulte la documentación que explica cómo usarlo para proyectos nuevos y existentes
Noviembre de 2020: lanzamiento de fairseq 0.10.0
Octubre de 2020: se agregó el código R3F/R4F (mejor ajuste fino)
Octubre de 2020: lanzamiento de Deep Transformer con código de profundidad latente
Octubre de 2020: Se agregaron modelos y código CRISS.
Septiembre de 2020: código Linformer agregado
Septiembre de 2020: redes generadoras de punteros agregadas
Agosto de 2020: se agregó decodificación restringida léxicamente
Agosto de 2020: modelos y código wav2vec2 publicados
Julio de 2020: lanzamiento del código de estimación de calidad no supervisada
Mayo de 2020: siga a fairseq en Twitter
Abril de 2020: lanzamiento del código Monotonic Multihead Attention
Abril de 2020: lanzamiento del código Quant-Noise
Abril de 2020: lanzamiento del soporte paralelo del modelo inicial y LM unidireccional de parámetros 11B
Marzo de 2020: lanzamiento del código BPE a nivel de bytes
Febrero de 2020: lanzamiento del modelo y código mBART
Febrero de 2020: tutorial agregado para retrotraducción
Diciembre de 2019: lanzamiento de fairseq 0.9.0
Noviembre de 2019: lanzamiento de VizSeq (un conjunto de herramientas de análisis visual para evaluar modelos fairseq)
Noviembre de 2019: lanzamiento del modelo y código CamemBERT
Noviembre de 2019: lanzamiento del modelo y código BART
Noviembre de 2019: modelos y código XLM-R publicados
Septiembre de 2019: lanzamiento del código de traducción no autorregresivo
Agosto de 2019: lanzamiento de modelos WMT'19
Julio de 2019: Fairseq obtiene nuevamente la licencia del MIT
Julio de 2019: modelos y código de RoBERTa publicados
Junio de 2019: modelos y código wav2vec publicados
Entrenamiento de múltiples GPU en una máquina o en varias máquinas (datos y modelo en paralelo)
Generación rápida tanto en CPU como en GPU con múltiples algoritmos de búsqueda implementados:
búsqueda de haz
Búsqueda de haces diversos (Vijayakumar et al., 2016)
muestreo (sin restricciones, top-k y top-p/nucleus)
decodificación léxicamente restringida (Post & Vilar, 2018)
La acumulación de gradientes permite entrenar con minilotes grandes incluso en una sola GPU.
Entrenamiento de precisión mixta (entrena más rápido con menos memoria GPU en núcleos tensoriales NVIDIA)
extensible: registre fácilmente nuevos modelos, criterios, tareas, optimizadores y programadores de tasas de aprendizaje
Configuración flexible basada en Hydra que permite una combinación de configuración basada en código, línea de comandos y archivos.
fragmentación completa de parámetros y estado del optimizador
descargar parámetros a la CPU
También proporcionamos modelos previamente entrenados para traducción y modelado de lenguaje con una conveniente interfaz torch.hub
:
en2de = torch.hub.load('pytorch/fairseq', 'transformer.wmt19.en-de.single_model')en2de.translate('Hola mundo', beam=5)# 'Hola Mundo'
Consulte los tutoriales de traducción de PyTorch Hub y RoBERTa para obtener más ejemplos.
Versión de PyTorch >= 1.10.0
Versión de Python >= 3.8
Para entrenar nuevos modelos, también necesitarás una GPU NVIDIA y NCCL
Para instalar fairseq y desarrollar localmente:
clon de git https://github.com/pytorch/fairseqcd fairseq pip install --editable ./# en MacOS:# CFLAGS="-stdlib=libc++" pip install --editable ./# para instalar la última versión estable (0.10.x)# pip install fairseq
Para un entrenamiento más rápido, instale la biblioteca apex de NVIDIA:
clon de git https://github.com/NVIDIA/apexcd ápice 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" ./
Para conjuntos de datos grandes, instale PyArrow: pip install pyarrow
Si usa Docker, asegúrese de aumentar el tamaño de la memoria compartida con --ipc=host
o --shm-size
como opciones de línea de comando para nvidia-docker run
.
La documentación completa contiene instrucciones para comenzar, entrenar nuevos modelos y ampliar fairseq con nuevos tipos de modelos y tareas.
Proporcionamos modelos previamente entrenados y conjuntos de pruebas binarizados preprocesados para varias de las tareas que se enumeran a continuación, así como ejemplos de comandos de capacitación y evaluación.
Traducción: hay modelos convolucionales y transformadores disponibles
Modelado de lenguaje: hay disponibles modelos convolucionales y transformadores.
También tenemos archivos README más detallados para reproducir resultados de artículos específicos:
XLS-R: Aprendizaje a escala de representación del habla multilingüe autosupervisado (Babu et al., 2021)
Recuperación multilingüe para capacitación iterativa autosupervisada (Tran et al., 2020)
wav2vec 2.0: un marco para el aprendizaje autosupervisado de representaciones del habla (Baevski et al., 2020)
Estimación de calidad no supervisada para la traducción automática neuronal (Fomicheva et al., 2020)
Entrenamiento con ruido de cuantificación para una compresión extrema del modelo ({Fan*, Stock*} et al., 2020)
Traducción automática neuronal con subpalabras a nivel de bytes (Wang et al., 2020)
Entrenamiento previo de eliminación de ruido multilingüe para la traducción automática neuronal (Liu et al., 2020)
Reducción de la profundidad del transformador según demanda con caída estructurada (Fan et al., 2019)
Aprender conjuntamente a alinear y traducir con modelos de transformadores (Garg et al., 2019)
Transformador Levenshtein (Gu et al., 2019)
Envío de tareas de traducción de noticias WMT19 de Facebook FAIR (Ng et al., 2019)
RoBERTa: un enfoque de preentrenamiento BERT sólidamente optimizado (Liu et al., 2019)
wav2vec: entrenamiento previo no supervisado para el reconocimiento de voz (Schneider et al., 2019)
Modelos mixtos para traducción automática diversa: trucos del oficio (Shen et al., 2019)
Preste menos atención con convoluciones ligeras y dinámicas (Wu et al., 2019)
Comprensión de la retrotraducción a escala (Edunov et al., 2018)
Pérdidas de predicción estructurada clásica para el aprendizaje de secuencia a secuencia (Edunov et al., 2018)
Generación jerárquica de historias neuronales (Fan et al., 2018)
Ampliación de la traducción automática neuronal (Ott et al., 2018)
Secuencia convolucional a aprendizaje secuencial (Gehring et al., 2017)
Modelado de lenguaje con redes convolucionales cerradas (Dauphin et al., 2017)
Gorjeo: https://twitter.com/fairseq
Página de Facebook: https://www.facebook.com/groups/fairseq.users
Grupo de Google: https://groups.google.com/forum/#!forum/fairseq-users
fairseq(-py) tiene licencia MIT. La licencia también se aplica a los modelos previamente entrenados.
Por favor cite como:
@inproceedings{ott2019fairseq, title = {fairseq: Un conjunto de herramientas rápido y extensible para el modelado de secuencias}, autor = {Myle Ott y Sergey Edunov y Alexei Baevski y Angela Fan y Sam Gross y Nathan Ng y David Grangier y Michael Auli}, booktitle = {Actas de NAACL-HLT 2019: Demostraciones}, año = {2019}, }