Fairseq(-py) é um kit de ferramentas de modelagem de sequência que permite que pesquisadores e desenvolvedores treinem modelos personalizados para tradução, resumo, modelagem de linguagem e outras tarefas de geração de texto.
Fornecemos implementações de referência de vários artigos de modelagem de sequência:
Redes Neurais Convolucionais (CNN)
Modelagem de linguagem com redes convolucionais fechadas (Dauphin et al., 2017)
Sequência convolucional para aprendizagem de sequência (Gehring et al., 2017)
Perdas de previsão estruturada clássica para aprendizagem de sequência a sequência (Edunov et al., 2018)
Geração de histórias neurais hierárquicas (Fan et al., 2018)
wav2vec: Pré-treinamento não supervisionado para reconhecimento de fala (Schneider et al., 2019)
Modelos LightConv e DynamicConv
Preste menos atenção com convoluções leves e dinâmicas (Wu et al., 2019)
Redes de memória longa e de curto prazo (LSTM)
Abordagens eficazes para tradução automática neural baseada na atenção (Luong et al., 2015)
Redes transformadoras (autoatenção)
Atenção é tudo que você precisa (Vaswani et al., 2017)
Dimensionamento da tradução automática neural (Ott et al., 2018)
Compreendendo a retrotradução em escala (Edunov et al., 2018)
Representações de entrada adaptativas para modelagem de linguagem neural (Baevski e Auli, 2018)
Decodificação lexicalmente restrita com alocação dinâmica de feixe (Post & Vilar, 2018)
Transformer-XL: modelos de linguagem atentos além de um contexto de comprimento fixo (Dai et al., 2019)
Capacidade de atenção adaptativa em transformadores (Sukhbaatar et al., 2019)
Modelos de mistura para tradução automática diversificada: truques do comércio (Shen et al., 2019)
RoBERTa: uma abordagem de pré-treinamento BERT robustamente otimizada (Liu et al., 2019)
Envio de tarefa de tradução de notícias WMT19 do Facebook FAIR (Ng et al., 2019)
Aprendendo conjuntamente a alinhar e traduzir com modelos de transformadores (Garg et al., 2019)
Pré-treinamento de remoção de ruído multilíngue para tradução automática neural (Liu et at., 2020)
Tradução automática neural com subpalavras em nível de byte (Wang et al., 2020)
Estimativa de qualidade não supervisionada para tradução automática neural (Fomicheva et al., 2020)
wav2vec 2.0: Uma estrutura para aprendizagem autosupervisionada de representações de fala (Baevski et al., 2020)
Gerando relatórios médicos a partir de conversas entre pacientes e médicos usando modelos de sequência a sequência (Enarvi et al., 2020)
Linformer: Autoatenção com Complexidade Linear (Wang et al., 2020)
Recuperação multilíngue para treinamento iterativo autosupervisionado (Tran et al., 2020)
Transformadores profundos com profundidade latente (Li et al., 2020)
Aprendizagem de representação multilíngue não supervisionada para reconhecimento de fala (Conneau et al., 2020)
O autotreinamento e o pré-treinamento são complementares para o reconhecimento de fala (Xu et al., 2020)
Wav2vec 2.0 robusto: analisando a mudança de domínio no pré-treinamento autosupervisionado (Hsu, et al., 2021)
Reconhecimento de fala não supervisionado (Baevski, et al., 2021)
Reconhecimento de fonema translingual simples e eficaz Zero-shot (Xu et al., 2021)
VideoCLIP: Pré-treinamento contrastivo para compreensão de vídeo-texto de disparo zero (Xu et. al., 2021)
VLM: Pré-treinamento de modelo de linguagem de vídeo independente de tarefas para compreensão de vídeo (Xu et. al., 2021)
NormFormer: Pré-treinamento aprimorado do transformador com normalização extra (Shleifer et. al, 2021)
Transformadores não autorregressivos
Tradução automática neural não autorregressiva (Gu et al., 2017)
Modelagem Determinística de Sequência Neural Não Autorregressiva por Refinamento Iterativo (Lee et al. 2018)
Transformador de inserção: geração de sequência flexível por meio de operações de inserção (Stern et al. 2019)
Mask-Predict: Decodificação Paralela de Modelos de Linguagem Mascarada Condicional (Ghazvininejad et al., 2019)
Transformador Levenshtein (Gu et al., 2019)
Afinação
Melhor ajuste fino reduzindo o colapso representacional (Aghajanyan et al. 2020)
Maio de 2023 Lançados modelos para dimensionar a tecnologia da fala para mais de 1.000 idiomas (Pratap, et al., 2023)
Junho de 2022 Lançado código para wav2vec-U 2.0 do Towards End-to-end Unsupervised Speech Recognition (Liu, et al., 2022)
Maio de 2022 Integração com xFormers
Dezembro de 2021 Lançado código de tradução direta de fala para fala
Outubro de 2021 Lançados modelos VideoCLIP e VLM
Outubro de 2021 Lançado modelo XLSR-53 multilíngue com ajuste fino
Ramo master
de setembro de 2021 renomeado para main
.
Julho de 2021 Lançado código DrNMT
Julho de 2021 Lançado modelo robusto wav2vec 2.0
Junho de 2021 Lançados modelos XLMR-XL e XLMR-XXL
Maio de 2021 Lançado código de reconhecimento de fala não supervisionado
Março de 2021 Adicionado parâmetro completo e fragmentação de estado do otimizador + descarregamento de CPU
Fevereiro de 2021 Adicionado código de treinamento LASER
Dezembro de 2020: Adicionado código Adaptive Attention Span
Dezembro de 2020: modelo e código GottBERT lançados
Novembro de 2020: Adotada a estrutura de configuração Hydra
veja a documentação que explica como usá-lo para projetos novos e existentes
Novembro de 2020: fairseq 0.10.0 lançado
Outubro de 2020: Adicionado código R3F/R4F (melhor ajuste fino)
Outubro de 2020: Deep Transformer com código Latent Depth lançado
Outubro de 2020: Adicionados modelos e código CRISS
Setembro de 2020: Adicionado código Linformer
Setembro de 2020: Adicionadas redes geradoras de ponteiro
Agosto de 2020: Adicionada decodificação com restrição lexical
Agosto de 2020: modelos e código wav2vec2 lançados
Julho de 2020: Código de estimativa de qualidade não supervisionado lançado
Maio de 2020: Siga fairseq no Twitter
Abril de 2020: código Monotonic Multihead Attention lançado
Abril de 2020: código Quant-Noise lançado
Abril de 2020: lançamento do suporte paralelo do modelo inicial e LM unidirecional de parâmetros 11B
Março de 2020: código BPE em nível de byte lançado
Fevereiro de 2020: modelo e código mBART lançados
Fevereiro de 2020: Adicionado tutorial para retrotradução
Dezembro de 2019: fairseq 0.9.0 lançado
Novembro de 2019: lançamento do VizSeq (um kit de ferramentas de análise visual para avaliar modelos fairseq)
Novembro de 2019: modelo e código CamemBERT lançados
Novembro de 2019: modelo e código BART lançados
Novembro de 2019: modelos e código XLM-R lançados
Setembro de 2019: código de tradução não autorregressivo lançado
Agosto de 2019: modelos WMT'19 lançados
Julho de 2019: fairseq relicenciado sob licença do MIT
Julho de 2019: modelos e código RoBERTa lançados
Junho de 2019: modelos e código wav2vec lançados
treinamento multi-GPU em uma máquina ou em várias máquinas (dados e modelo paralelo)
geração rápida em CPU e GPU com vários algoritmos de pesquisa implementados:
pesquisa de feixe
Pesquisa de feixe diversificado (Vijayakumar et al., 2016)
amostragem (irrestrita, top-k e top-p/núcleo)
decodificação restrita lexicamente (Post & Vilar, 2018)
o acúmulo de gradiente permite o treinamento com grandes minilotes, mesmo em uma única GPU
treinamento de precisão mista (treina mais rápido com menos memória de GPU em núcleos tensores NVIDIA)
extensível: registre facilmente novos modelos, critérios, tarefas, otimizadores e agendadores de taxas de aprendizagem
configuração flexível baseada em Hydra permitindo uma combinação de configuração baseada em código, linha de comando e arquivo
parâmetro completo e fragmentação de estado do otimizador
descarregando parâmetros para CPU
Também fornecemos modelos pré-treinados para tradução e modelagem de linguagem com uma interface torch.hub
conveniente:
en2de = torch.hub.load('pytorch/fairseq', 'transformer.wmt19.en-de.single_model')en2de.translate('Olá mundo', feixe=5)# 'Hallo Welt'
Consulte os tutoriais do PyTorch Hub para tradução e RoBERTa para mais exemplos.
Versão PyTorch >= 1.10.0
Versão Python >= 3.8
Para treinar novos modelos, você também precisará de uma GPU NVIDIA e NCCL
Para instalar o fairseq e desenvolver localmente:
clone do git https://github.com/pytorch/fairseqcd fairseq pip install --editable ./# no MacOS:# CFLAGS="-stdlib=libc++" pip install --editable ./# para instalar a versão estável mais recente (0.10.x)# pip install fairseq
Para um treinamento mais rápido, instale a biblioteca apex da NVIDIA:
clone do git https://github.com/NVIDIA/apexcd apex 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 grandes conjuntos de dados, instale o PyArrow: pip install pyarrow
Se você usar o Docker, certifique-se de aumentar o tamanho da memória compartilhada com --ipc=host
ou --shm-size
como opções de linha de comando para nvidia-docker run
.
A documentação completa contém instruções para começar, treinar novos modelos e estender o fairseq com novos tipos de modelos e tarefas.
Fornecemos modelos pré-treinados e conjuntos de testes binários pré-processados para diversas tarefas listadas abaixo, bem como exemplos de comandos de treinamento e avaliação.
Tradução: modelos convolucionais e de transformador estão disponíveis
Modelagem de Linguagem: modelos convolucionais e de transformadores estão disponíveis
Também temos READMEs mais detalhados para reproduzir resultados de artigos específicos:
XLS-R: Aprendizagem de representação de fala translingual autosupervisionada em escala (Babu et al., 2021)
Recuperação multilíngue para treinamento iterativo autosupervisionado (Tran et al., 2020)
wav2vec 2.0: Uma estrutura para aprendizagem autosupervisionada de representações de fala (Baevski et al., 2020)
Estimativa de qualidade não supervisionada para tradução automática neural (Fomicheva et al., 2020)
Treinamento com ruído de quantização para compressão extrema de modelo ({Fan*, Stock*} et al., 2020)
Tradução automática neural com subpalavras em nível de byte (Wang et al., 2020)
Pré-treinamento de remoção de ruído multilíngue para tradução automática neural (Liu et at., 2020)
Reduzindo a profundidade do transformador sob demanda com abandono estruturado (Fan et al., 2019)
Aprendendo conjuntamente a alinhar e traduzir com modelos de transformadores (Garg et al., 2019)
Transformador Levenshtein (Gu et al., 2019)
Envio de tarefa de tradução de notícias WMT19 do Facebook FAIR (Ng et al., 2019)
RoBERTa: uma abordagem de pré-treinamento BERT robustamente otimizada (Liu et al., 2019)
wav2vec: Pré-treinamento não supervisionado para reconhecimento de fala (Schneider et al., 2019)
Modelos de mistura para tradução automática diversificada: truques do comércio (Shen et al., 2019)
Preste menos atenção com convoluções leves e dinâmicas (Wu et al., 2019)
Compreendendo a retrotradução em escala (Edunov et al., 2018)
Perdas de previsão estruturada clássica para aprendizagem de sequência a sequência (Edunov et al., 2018)
Geração de histórias neurais hierárquicas (Fan et al., 2018)
Dimensionamento da tradução automática neural (Ott et al., 2018)
Sequência convolucional para aprendizagem de sequência (Gehring et al., 2017)
Modelagem de linguagem com redes convolucionais fechadas (Dauphin et al., 2017)
Twitter: https://twitter.com/fairseq
Página do Facebook: https://www.facebook.com/groups/fairseq.users
Grupo do Google: https://groups.google.com/forum/#!forum/fairseq-users
fairseq(-py) é licenciado pelo MIT. A licença também se aplica aos modelos pré-treinados.
Por favor cite como:
@inproceedings{ott2019fairseq, título = {fairseq: A Fast, Extensible Toolkit for Sequence Modeling}, autor = {Myle Ott e Sergey Edunov e Alexei Baevski e Angela Fan e Sam Gross e Nathan Ng e David Grangier e Michael Auli}, título do livro = {Proceedings of NAACL-HLT 2019: Demonstrations}, ano = {2019}, }