【LLM Series BLOOM】BLOOM: Um modelo de idioma multilíngue de acesso aberto de parâmetro 176B

论文题目:《BLOOM: A 176B-Parameter Open-Access Multilingual Language Model》
论文链接:https://arxiv.org/abs/2211.05100
github链接:https://github.com/huggingface/transformers-bloom-inference/tree/main
huggingface链接:https://huggingface.co/bigscience/bloom

1 Introdução do modelo

Os modelos de linguagem pré-treinados tornaram-se a base dos pipelines modernos de processamento de linguagem natural porque produzem melhores resultados em pequenas quantidades de dados rotulados. Com o desenvolvimento de ELMo, ULMFiT, GPT e BERT, o paradigma de ajuste fino em tarefas downstream usando modelos pré-treinados é amplamente utilizado. A utilidade do modelo de linguagem pré-treinado foi posteriormente encontrada para realizar tarefas úteis sem qualquer treinamento adicional. Além disso, a observação empírica de que o desempenho dos modelos de linguagem aumenta (às vezes previsivelmente, às vezes abruptamente) com modelos maiores também leva a uma tendência a tamanhos de modelo cada vez maiores. Independentemente do ambiente, o custo de treinamento de um modelo de linguagem grande (LLM) só pode ser suportado por organizações ricas em recursos. Além disso, até o final, a maioria dos LLMs não foi lançada publicamente. Consequentemente, a maior parte da comunidade de pesquisa foi excluída do desenvolvimento de LLMs. Isso tem consequências concretas por não publicar publicamente: por exemplo, a maioria dos LLMs são treinados principalmente em textos em inglês.

Para abordar essas questões, propomos BigScience Large Open-science Open-access Multilingual Language Model (BLOOM). O BLOOM é um modelo de linguagem de 176 bilhões de parâmetros treinado em 46 linguagens naturais e 13 linguagens de programação, desenvolvido e publicado por centenas de pesquisadores. O poder de computação usado para treinar o BLOOM é das concessões públicas francesas GENCI e IDRIS, fazendo uso do supercomputador Jean Zay no IDRIS. Para construir o BLOOM, cada componente é projetado em detalhes, incluindo dados de treinamento, arquitetura de modelo e objetivos de treinamento e estratégias de engenharia para aprendizado distribuído. Também realizamos uma análise da capacidade do modelo. Nosso objetivo geral não é apenas lançar publicamente um modelo de linguagem multilíngue em larga escala comparável a sistemas desenvolvidos recentemente, mas também documentar o processo de coordenação em seu desenvolvimento.

2 Conjunto de dados e treinamento BLOOM

2.1. Big Science

  • O desenvolvimento do BLOOM é feito pela BigScience, uma colaboração de pesquisa aberta cujo objetivo é divulgar publicamente o LLM.
  • Mais de 1.200 pessoas se registraram como participantes do BigScience

2.2 Corpo de Treinamento

  • A motivação para o corpus ROOTS acima é construir um modelo de linguagem que seja acessível ao maior número possível de pessoas no mundo e em uma escala comparável a esforços anteriores.
  • Esquerda: Dendrogramas linguísticos para todas as 46 línguas naturais, onde a área da superfície é proporcional ao número de bytes. Indo-europeus e sino-tibetanos ocupam a maior parte com uma capacidade total de 1321,89 GB. A fina superfície laranja representa 18 GB de dados da Bahasa Indonésia e o retângulo verde de 0,4 GB constitui o subconjunto Níger-Congo.
  • Direita: Um gráfico de waffle de 13 linguagens de programação por número de arquivos, com um quadrado representando aproximadamente 30.000 arquivos.

2.3 xP3: conjunto de dados solicitado

  • O ajuste fino sugerido por várias tarefas (também conhecido como ajuste de instrução) envolve o ajuste fino de um modelo de linguagem pré-treinado em uma mistura de treinamento que consiste em um grande número de tarefas diferentes especificadas por meio de dicas de linguagem natural.
  • O conjunto de dados P3 original é estendido para incluir novos conjuntos de dados para outros idiomas além do inglês e novas tarefas, como tradução. Isso leva ao xP3, uma coleção de sugestões em 83 conjuntos de dados que abrangem 46 idiomas e 16 tarefas.

Após o pré-treinamento do BLOOM, o método de ajuste fino multitarefa em larga escala é aplicado para fazer com que o BLOOM tenha a capacidade de generalização de tarefas multilíngues de disparo zero, e o modelo resultante é o BLOOMZ.

3 Estrutura e treinamento do modelo BLOOM

3.1 Estrutura do modelo

  • Os modelos de transformadores que usam decodificadores causais têm dois desvios de arquitetura.

  • Usando incorporações posicionais ALiBi, que decaem diretamente as pontuações de atenção de acordo com a distância das chaves e consultas. Comparado com a incorporação original do Transformer e Rotary, pode levar a um treinamento mais suave e melhor desempenho a jusante. O ALiBi não adiciona incorporações posicionais às incorporações de palavras; em vez disso, ele direciona as pontuações de atenção para as chaves de consulta usando uma penalidade proporcional à sua distância.

    Conforme mostrado na figura, basta adicionar uma matriz de deslocamento predefinida à pontuação de atenção, o que equivale a adicionar um deslocamento de -1 quando a diferença de posição relativa entre q e k é 1. De fato, é equivalente a supor que quanto maior a distância entre dois tokens, menor será a contribuição mútua.
    Claro, não basta apenas adicionar esta matriz diretamente, ou adicionar vários conjuntos de bias no T5 Bias. A matriz de bias principal é a mesma, a única diferença é o coeficiente m próximo a ela, que pode ser considerado como um declive (Slope).
    O coeficiente m no artigo também é predefinido. O autor definirá um conjunto de coeficientes m de acordo com o número de caras, especificamente de acordo com a diferença de índice entre o número de caras n e n. Por exemplo, se houver 8 caras, então pode ser definido como treinamento M., mas os autores descobriram que o treinamento não trouxe consigo as melhores propriedades. Artigo: https://arxiv.org/pdf/2108.12409.pdf

  • A norma de camada de incorporação é usada imediatamente após a primeira camada de incorporação para evitar treinamento instável.

  • Um vocabulário de 250.000 tokens é usado. Use BPE em nível de byte. Dessa forma, a tokenização nunca produz tokens desconhecidos

3.2 Realização do projeto

  • O BLOOM usa Megatron-DeepSpeed ​​​​para treinamento, que consiste em duas partes: Megatron-LM fornece implementação de Transformer, paralelismo de tensor e primitivas de carregamento de dados, enquanto DeepSpeed ​​​​fornece otimizador ZeRO, pipeline de modelo e componentes gerais de treinamento distribuído.
  • Data Parallelism (DP) Modelo de várias cópias, cada cópia colocada em um dispositivo diferente e servindo uma parte dos dados. O processamento é feito em paralelo e todas as cópias do modelo são sincronizadas ao final de cada etapa de treinamento.
  • O paralelismo de tensor (TP) particiona as camadas de um modelo em vários dispositivos. Dessa forma, em vez de residir toda a ativação ou tensor de gradiente em uma única GPU, fragmentos desse tensor são colocados em GPUs separadas.
  • O paralelismo de pipeline (PP) divide as camadas do modelo em várias GPUs, portanto, apenas uma fração das camadas do modelo é colocada em cada GPU.
    Use a precisão mista bfloat16. Use kernels CUDA fundidos.

3.3 Variantes do modelo

  • Variantes de modelo para seis quantidades de parâmetros
  • O BLOOM consome um pouco mais de energia do que o OPT, mas o BLOOM emite cerca de 2/3 menos (25 toneladas vs. 70 toneladas). Isso se deve à baixa intensidade de carbono da matriz energética utilizada para treinar o BLOOM
    , que emite 57 gCO2eq/kWh.

  • Tanto o BLOOM quanto o OPT produzem significativamente menos emissões de carbono do que o GPT-3, o que pode ser atribuído a vários fatores, incluindo hardware mais eficiente e fontes de energia menos intensivas em carbono.

3.4 Aprendizagem rápida


As dicas foram desenvolvidas antes do lançamento do BLOOM e não foram melhoradas a priori, exemplificando alguns exemplos de dicas para tradução automática (MT).

4 resultados experimentais

4.1 Capacidades de Amostra Zero


O desempenho médio nas pistas sempre gira em torno do acaso. A exceção é o modelo T0, que apresenta forte desempenho. No entanto, o modelo foi ajustado em uma configuração multitarefa e não pode ser comparado diretamente.


Na configuração de tiro zero, os resultados de MT geralmente são ruins. Os dois principais problemas observados são (i) excesso de geração e (ii) subprodução de linguagem correta.

4.2 efeito de 1 tiro


A variabilidade de desempenho única do SuperGLUE é reduzida em todos os prompts e modelos.
No geral, a configuração oneshot não melhora significativamente: a precisão média do modelo ainda é quase sempre aleatória.


As famílias de modelos OPT e BLOOM melhoraram ligeiramente com o aumento do tamanho e não houve diferenças consistentes entre as famílias em todas as tarefas. BLOOM-176B supera OPT-175B em Ax-b, CB e WiC.


A qualidade da tradução para muitos idiomas de poucos recursos é comparável ou até um pouco melhor do que os modelos M2M supervisionados.

4.3 Resumo do texto


O BLOOM atinge um desempenho superior ao OPT na sumarização multilíngue, e o desempenho aumenta com o número de parâmetros do modelo.

4.4 Ajuste fino multitarefa


Multilingual Multi-Task Fine-tuning, ou BLOOMZ, é usado para melhorar o desempenho zero-shot dos modelos BLOOM.

4.5 Geração de código


O desempenho do modelo BLOOM pré-treinado é semelhante ao de um modelo GPT de tamanho semelhante treinado em Pile.
No entanto, o modelo Codex ajustado apenas no código é muito mais forte do que os outros modelos.

5 resumo

  • O BLOOM melhora principalmente a capacidade multilíngue do LLM
  • O AIBI e a normalização de camada usados ​​no método de otimização são semelhantes a outros modelos

Acho que você gosta

Origin blog.csdn.net/yanqianglifei/article/details/130715624
Recomendado
Clasificación