Aprendizagem pessoal com IA
e orientação prática

Llama 3: uma família versátil e de código aberto de modelos de IA

Resumos.

Este artigo apresenta um novo conjunto de modelos básicos chamado Llama 3. O Llama 3 é uma comunidade de modelos de linguagem que oferece suporte inerente ao multilinguismo, à criação de códigos, ao raciocínio e ao uso de ferramentas. Nosso maior modelo é um Transformer denso com 405 bilhões de parâmetros e uma janela de contexto de até 128.000 tokens. Este artigo realiza uma série extensa de avaliações empíricas do Llama 3. Os resultados mostram que a Llama 3 atinge uma qualidade comparável à dos principais modelos de linguagem, como o GPT-4, em muitas tarefas. Disponibilizamos publicamente a Llama 3, incluindo modelos de linguagem de 405 bilhões de parâmetros pré-treinados e pós-treinados, bem como o modelo Llama Guard 3 para segurança de entrada e saída. Este documento também apresenta resultados experimentais sobre a integração de recursos de imagem, vídeo e fala na Llama 3 por meio de uma abordagem combinatória. Observamos que essa abordagem é competitiva com as abordagens mais modernas para tarefas de reconhecimento de imagem, vídeo e fala. Como esses modelos ainda estão em fase de desenvolvimento, eles não foram amplamente publicados.


 

Download do texto completo em pdf:

Chefe do Círculo de Compartilhamento de IAEste conteúdo foi ocultado pelo autor. Digite o código de verificação para visualizar o conteúdo
Captcha:
Preste atenção ao número público do WeChat deste site, responda "CAPTCHA, um tipo de teste de desafio-resposta (computação)", obtenha o código de verificação. Pesquise no WeChat por "Chefe do Círculo de Compartilhamento de IA"ou"Aparência-AI"ou WeChat escaneando o lado direito do código QR pode prestar atenção a esse número público do WeChat do site.

 

 

1 Introdução

 

modelo básicosão modelos gerais de linguagem, visão, fala e outras modalidades projetadas para dar suporte a uma ampla gama de tarefas de IA. Eles formam a base de muitos sistemas modernos de IA.

O desenvolvimento de um modelo básico moderno é dividido em duas fases principais:

(1) Fase de pré-treinamento. Os modelos são treinados em grandes quantidades de dados, usando tarefas simples, como a previsão de palavras ou a geração de anotações em gráficos;

(2) Fase pós-treinamento. Os modelos são ajustados para seguir instruções, alinhar-se às preferências humanas e aprimorar recursos específicos (por exemplo, codificação e raciocínio).

Este artigo apresenta um novo conjunto de modelos de base de linguagem chamado Llama 3. A família de modelos Llama 3 Herd oferece suporte inerente ao multilinguismo, à codificação, ao raciocínio e ao uso de ferramentas. Nosso maior modelo é um Transformer denso com 405B parâmetros, capaz de processar informações em janelas de contexto de até 128K tokens.

A Tabela 1 lista cada membro do rebanho. Todos os resultados apresentados neste documento baseiam-se no modelo Llama 3.1 (Llama 3, para abreviar).

Acreditamos que as três principais ferramentas para o desenvolvimento de modelos básicos de alta qualidade são o gerenciamento de dados, escala e complexidade. Faremos o possível para otimizar essas três áreas durante nosso processo de desenvolvimento:

  • Dados. Tanto a quantidade quanto a qualidade dos dados que usamos no pré-treinamento e no pós-treinamento foram aprimoradas em comparação com as versões anteriores do Llama (Touvron et al., 2023a, b). Esses aprimoramentos incluem o desenvolvimento de pipelines de pré-processamento e curadoria mais cuidadosos para os dados de pré-treinamento e o desenvolvimento de garantia de qualidade e filtragem mais rigorosas. O desenvolvimento de pipelines de pré-processamento e curadoria mais cuidadosos para dados de pré-treinamento e o desenvolvimento de garantia de qualidade e filtragem mais rigorosas A Llama 3 foi pré-treinada em um corpus de cerca de 15T de tokens multilíngues, enquanto a Llama 2 foi pré-treinada em 1,8T de tokens.
  • Escopo. Treinamos um modelo maior do que o modelo Llama anterior: nosso principal modelo de linguagem usa 3,8 × 1025 FLOPs para pré-treinamento, quase 50 vezes mais do que a maior versão do Llama 2. Especificamente, pré-treinamos um modelo principal com 405B parâmetros treináveis em 15,6T tokens de texto. Como esperado, o

Llama 3: uma família versátil e de código aberto de modelos de IA-1

  • Gerenciando a complexidade. As escolhas de design que fizemos tinham como objetivo maximizar a escalabilidade do processo de desenvolvimento de modelos. Por exemplo, escolhemos um modelo padrão denso Transformador (Vaswani et al., 2017) com alguns pequenos ajustes, em vez de usar um modelo de mistura especializado (Shazeer et al., 2017) para maximizar a estabilidade do treinamento. Da mesma forma, empregamos um pós-processador relativamente simples com base em ajuste fino supervisionado (SFT), amostragem de rejeição (RS) e otimização de preferência direta (DPO; Rafailov et al. (2023)), em vez de algoritmos de aprendizado por reforço mais complexos (Ouyang et al., 2022; Schulman et al., 2017), que geralmente são menos estáveis e e difíceis de escalonar.

O resultado de nosso trabalho é o Llama 3: um multilíngue de três idiomas com parâmetros 8B, 70B e 405B.1população de modelos de linguagem. Avaliamos o desempenho da Llama 3 em um grande número de conjuntos de dados de referência que abrangem uma ampla gama de tarefas de compreensão de linguagem. Além disso, realizamos extensas avaliações manuais comparando a Llama 3 com modelos concorrentes. A Tabela 2 mostra uma visão geral do desempenho do modelo principal da Llama 3 nos principais testes de referência. Nossas avaliações experimentais mostram que nosso modelo principal está no mesmo nível dos principais modelos de linguagem, como o GPT-4 (OpenAI, 2023a), e próximo do estado da arte em várias tarefas. Nosso modelo menor é o melhor da categoria e supera outros modelos com um número semelhante de parâmetros (Bai et al., 2023; Jiang et al., 2023). O Llama 3 também alcança um equilíbrio melhor entre utilidade e inocuidade do que seu antecessor (Touvron et al., 2023b). Analisamos a segurança da Llama 3 em detalhes na Seção 5.4.

Estamos lançando todos os três modelos Llama 3 publicamente, usando uma versão atualizada da Licença Comunitária Llama 3; consulte https://llama.meta.com. Isso inclui versões pré-treinadas e pós-processadas do nosso modelo de linguagem paramétrico 405B, bem como uma nova versão do modelo Llama Guard (Inan et al., 2023) para segurança de entrada e saída. segurança de entrada e saída. Esperamos que o lançamento público de um modelo emblemático inspire uma onda de inovação na comunidade de pesquisa e acelere o progresso em direção ao desenvolvimento responsável da Inteligência Artificial (AGI).

Multilíngue: refere-se à capacidade do modelo de entender e gerar texto em vários idiomas.

 

Durante o desenvolvimento do Llama 3, também desenvolvemos extensões multimodais do modelo para permitir o reconhecimento de imagens, o reconhecimento de vídeos e a compreensão da fala. Esses modelos ainda estão em desenvolvimento ativo e ainda não estão prontos para lançamento. Além dos nossos resultados de modelagem de linguagem, este documento apresenta os resultados de nossos experimentos iniciais com esses modelos multimodais.

O Llama 3 8B e o 70B foram pré-treinados em dados multilíngues, mas naquela época eram usados principalmente para o inglês.

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

 

2 Geral

A arquitetura do modelo da Llama 3 é mostrada na Figura 1. O desenvolvimento do nosso modelo de linguagem Llama 3 é dividido em duas fases principais:

  • Pré-treinamento do modelo de idioma.Primeiro, convertemos um grande corpus de texto multilíngue em tokens discretos e pré-treinamos um modelo de linguagem grande (LLM) nos dados resultantes para a próxima previsão de tokens. Na fase de pré-treinamento do LLM, o modelo aprende a estrutura do idioma e adquire uma grande quantidade de conhecimento sobre o mundo a partir do texto que ele "lê". Para fazer isso de forma eficiente, o pré-treinamento é feito em escala: pré-treinamos um modelo com 405B parâmetros em um modelo com 15,6T tokens, usando uma janela de contexto de 8K tokens. Essa fase de pré-treinamento padrão é seguida por uma fase de pré-treinamento contínuo, que aumenta a janela de contexto suportada para 128 mil tokens. Consulte a Seção 3 para obter mais informações.
  • Treinamento pós-modelo.O modelo de linguagem pré-treinado tem uma rica compreensão da linguagem, mas ainda não seguiu instruções nem se comportou como o assistente que esperamos que ele se comporte. Calibramos o modelo por meio de feedback humano em várias rodadas, cada uma incluindo o ajuste fino supervisionado (SFT) e a otimização direta de preferências (DPO; Rafailov et al., 2024) em dados ajustados por instruções. Nessa fase pós-treinamento, também integramos novos recursos, como o uso de ferramentas, e observamos melhorias significativas em áreas como codificação e inferência. Para obter mais informações, consulte a Seção 4. Por fim, as atenuações de segurança também são integradas ao modelo na fase de pós-treinamento, cujos detalhes são descritos na Seção 5.4. Os modelos gerados são ricos em funcionalidade. Eles são capazes de responder a perguntas em pelo menos oito idiomas, escrever códigos de alta qualidade, resolver problemas complexos de inferência e usar ferramentas prontas para uso ou com amostra zero.

Também realizamos experimentos para adicionar recursos de imagem, vídeo e voz à Llama 3 por meio de uma abordagem combinada. A abordagem que investigamos consiste em três fases adicionais mostradas na Figura 28:

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

  • Pré-treinamento do codificador multimodal.Treinamos codificadores separados para imagem e fala. Treinamos o codificador de imagem em um grande número de pares imagem-texto. Isso permite que o modelo aprenda a relação entre o conteúdo visual e sua descrição em linguagem natural. Nosso codificador de fala usa um método autossupervisionado que mascara uma parte da entrada da fala e tenta reconstruir a parte mascarada por meio de uma representação discreta de marcadores. Assim, o modelo aprende a estrutura do sinal de fala. Consulte a Seção 7 para obter mais informações sobre codificadores de imagem e a Seção 8 para obter mais informações sobre codificadores de fala.
  • Treinamento do adaptador visual.Treinamos um adaptador que integra um codificador de imagem pré-treinado com um modelo de linguagem pré-treinado. O adaptador consiste em uma série de camadas de atenção cruzada que alimentam a representação do codificador de imagem no modelo de linguagem. O adaptador é treinado em pares de texto-imagem, o que alinha a representação da imagem com a representação do idioma. Durante o treinamento do adaptador, também atualizamos os parâmetros do codificador de imagem, mas intencionalmente não atualizamos os parâmetros do modelo de linguagem. Também treinamos um adaptador de vídeo em cima do adaptador de imagem, usando dados de texto de vídeo emparelhados. Isso permite que o modelo agregue informações entre quadros. Para obter mais informações, consulte a Seção 7.
  • Por fim, integramos o codificador de fala ao modelo por meio de um adaptador que converte a codificação da fala em uma representação tokenizada que pode ser alimentada diretamente no modelo de linguagem com ajuste fino. Durante a fase de ajuste fino supervisionado, os parâmetros do adaptador e do codificador são atualizados em conjunto para obter uma compreensão de fala de alta qualidade. Não alteramos o modelo de idioma durante o treinamento do adaptador de fala. Também integramos um sistema de conversão de texto em fala. Consulte a Seção 8 para obter mais detalhes.

Nossos experimentos multimodais levaram a modelos que reconhecem o conteúdo de imagens e vídeos e suportam a interação por meio de uma interface de fala. Esses modelos ainda estão em desenvolvimento e ainda não estão prontos para serem lançados.

 

 

3 Pré-treinamento

 

O pré-treinamento de modelos de linguagem envolve os seguintes aspectos:

(1) Coleta e filtragem de corpora de treinamento em larga escala;

(2) Desenvolvimento de arquiteturas de modelos e leis de escala correspondentes para determinar o tamanho do modelo;

(3) Desenvolvimento de técnicas para pré-treinamento eficiente em grande escala;

(4) Desenvolvimento de um programa de pré-treinamento. Descreveremos cada um desses componentes a seguir.

 

3.1 Dados de pré-treinamento

Criamos conjuntos de dados de pré-treinamento de modelos de linguagem a partir de várias fontes de dados que contêm conhecimento até o final de 2023. Aplicamos vários métodos de eliminação de duplicação e mecanismos de limpeza de dados a cada fonte de dados para obter uma rotulagem de alta qualidade. Removemos os domínios que continham grandes quantidades de informações de identificação pessoal (PII), bem como os domínios conhecidos por conter conteúdo adulto.

 

3.11 Limpeza de dados da Web

A maioria dos dados que utilizamos vem da Web e descrevemos nosso processo de limpeza abaixo.

PII e filtragem de segurança. Entre outras medidas, implementamos filtros projetados para remover dados de sites que possam conter conteúdo inseguro ou grandes quantidades de PII, domínios classificados como prejudiciais de acordo com vários padrões de segurança Meta e domínios conhecidos por conter conteúdo adulto.

Extração e limpeza de textos. Processamos o conteúdo HTML bruto para extrair texto diversificado e de alta qualidade e usamos documentos da Web não truncados para essa finalidade. Para isso, criamos um analisador personalizado que extrai o conteúdo HTML e otimiza a precisão da remoção de modelos e a recuperação de conteúdo. Avaliamos a qualidade do analisador por meio de avaliação manual e o comparamos com analisadores HTML populares de terceiros, otimizados para o conteúdo de artigos semelhantes, e descobrimos que ele tem um bom desempenho. Tomamos cuidado com as páginas HTML que contêm matemática e conteúdo de código para preservar a estrutura desse conteúdo. Mantemos o texto do atributo alt da imagem porque o conteúdo matemático geralmente é representado como uma imagem pré-renderizada em que a matemática também é fornecida no atributo alt.

Descobrimos que o Markdown prejudicava o desempenho do modelo, que foi treinado principalmente em dados da Web, em comparação com o texto simples, portanto, removemos todas as tags do Markdown.

Desacentuação. Aplicamos várias rodadas de desduplicação no nível do URL, do documento e da linha:

  • Desduplicação em nível de URL. Realizamos a desduplicação em nível de URL em todo o conjunto de dados. Para cada página correspondente a um URL, mantemos a versão mais recente.
  • Desduplicação em nível de documento. Realizamos a desduplicação global MinHash (Broder, 1997) em todo o conjunto de dados para remover documentos quase duplicados.
  • Desduplicação em nível de linha. Realizamos a desduplicação em nível radical semelhante à ccNet (Wenzek et al., 2019). Removemos as linhas que ocorrem mais de 6 vezes em cada grupo contendo 30 milhões de documentos.

Embora nossas análises qualitativas manuais sugiram que a desduplicação em nível de linha remova não apenas o conteúdo boilerplate residual de vários sites (por exemplo, menus de navegação, avisos de cookies), mas também textos frequentes de alta qualidade, nossas avaliações empíricas mostram melhorias significativas.

Filtragem heurística. A heurística foi desenvolvida para remover outros documentos de baixa qualidade, outliers e documentos com muitas repetições. Alguns exemplos de heurística incluem:

  • Usamos a cobertura de n-tuplas duplicadas (Rae et al., 2021) para remover linhas que consistem em conteúdo duplicado (por exemplo, logs ou mensagens de erro). Essas linhas podem ser muito longas e exclusivas e, portanto, não podem ser filtradas pela desduplicação de linhas.
  • Usamos uma contagem de "palavras sujas" (Raffel et al., 2020) para filtrar sites adultos que não são cobertos pela lista negra de domínios.
  • Usamos a dispersão de Kullback-Leibler da distribuição de tokens para filtrar os documentos que contêm muitos tokens anômalos em comparação com a distribuição do corpus de treinamento.

 

Filtragem de qualidade baseada em modelos.

Além disso, tentamos usar vários classificadores de qualidade baseados em modelos para selecionar rótulos de alta qualidade. Esses métodos incluem:

  • Usar classificadores rápidos, como o fasttext (Joulin et al., 2017), que são treinados para reconhecer se um determinado texto será citado pela Wikipédia (Touvron et al., 2023a).
  • Foi usado um classificador de modelo Roberta (Liu et al., 2019a) mais intensivo em termos de computação, que foi treinado nas previsões do Llama 2.

Para treinar o classificador de qualidade baseado na Llama 2, criamos um conjunto de documentos da Web limpos que descrevem os requisitos de qualidade e instruímos o modelo de bate-papo da Llama 2 a determinar se os documentos atendiam a esses requisitos. Para maior eficiência, usamos o DistilRoberta (Sanh et al., 2019) para gerar pontuações de qualidade para cada documento. Avaliaremos experimentalmente a eficácia de várias configurações de filtragem de qualidade.

Código e dados de inferência.

Semelhante ao DeepSeek-AI et al. (2024), construímos pipelines específicos de domínio para extrair páginas da Web relacionadas à matemática e que contêm código. Especificamente, os classificadores de código e de inferência são modelos DistilledRoberta treinados usando dados da Web anotados pelo Llama 2. Diferentemente dos classificadores de qualidade genéricos mencionados acima, realizamos o ajuste de dicas para direcionar as páginas da Web que contêm inferências matemáticas, raciocínio em domínios STEM e código incorporado em linguagem natural. Como as distribuições de tokens do código e da matemática são muito diferentes das da linguagem natural, esses pipelines implementam extração de HTML específica do domínio, recursos de texto personalizados e heurística para filtragem.

Dados multilíngues.

Semelhante ao pipeline de processamento em inglês descrito acima, implementamos filtros para remover dados de sites que possam conter informações de identificação pessoal (PII) ou conteúdo inseguro. Nosso pipeline de processamento de texto multilíngue tem os seguintes recursos exclusivos:

  • Usamos um modelo de reconhecimento de idioma baseado em texto rápido para classificar documentos em 176 idiomas.
  • Realizamos a desduplicação de dados em nível de documento e de linha para cada idioma.
  • Aplicamos heurísticas específicas do idioma e filtros baseados em modelos para remover documentos de baixa qualidade.

Além disso, usamos um classificador multilíngue baseado em Llama 2 para classificar a qualidade dos documentos multilíngues e garantir que o conteúdo de alta qualidade seja priorizado. O número de tokens multilíngues que usamos no pré-treinamento é determinado experimentalmente, e o desempenho do modelo é equilibrado em testes de referência em inglês e multilíngues.

 

3.12 Determinação da combinação de dados

为了获得高质量语言模型,必须谨慎确定预训练数据混合中不同数据源的比例。我们主要利用知识分类和尺度定律实验来确定这一数据混合。

知识分类。我们开发了一个分类器,用于对网页数据中包含的信息类型进行分类,以便更有效地确定数据组合。我们使用这个分类器对网页上过度代表的数据类别(例如艺术和娱乐)进行下采样。

为了确定最佳数据混合方案。我们进行规模定律实验,其中我们将多个小型模型训练于特定数据混合集上,并利用其预测大型模型在该混合集上的性能(参见第 3.2.1 节)。我们多次重复此过程,针对不同的数据混合集选择新的候选数据混合集。随后,我们在该候选数据混合集上训练一个更大的模型,并在多个关键基准测试上评估该模型的性能。

数据混合摘要。我们的最终数据混合包含大约 50% 的通用知识标记、25% 的数学和推理标记、17% 的代码标记以及 8% 的多语言标记。

3.13 Dados de recozimento

Os resultados empíricos mostram que o recozimento em uma pequena quantidade de código de alta qualidade e dados matemáticos (consulte a Seção 3.4.3) pode melhorar o desempenho de modelos pré-treinados nos principais testes de benchmark. Semelhante ao estudo de Li et al. (2024b), fazemos o recozimento usando um conjunto de dados misto que contém dados de alta qualidade de domínios selecionados. Nossos dados recozidos não contêm nenhum conjunto de treinamento de testes de referência comumente usados. Isso nos permite avaliar a verdadeira capacidade de aprendizado de poucas amostras e a generalização fora do domínio da Llama 3.

Seguindo OpenAI (2023a), avaliamos o efeito do recozimento nos conjuntos de treinamento GSM8k (Cobbe et al., 2021) e MATH (Hendrycks et al., 2021b). Descobrimos que o recozimento melhora o desempenho do modelo Llama 3 8B pré-treinado em 24,0% e 6,4% nos conjuntos de validação GSM8k e MATH, respectivamente. No entanto, a melhoria é insignificante para o modelo 405B, sugerindo que nosso modelo principal tem fortes recursos de aprendizado e inferência contextuais e que não requer amostras de treinamento específicas do domínio para obter um bom desempenho.

Use o recozimento para avaliar a qualidade dos dados.Assim como Blakeney et al. (2024), descobrimos que o recozimento nos permite avaliar o valor de pequenos conjuntos de dados específicos do domínio. Medimos o valor desses conjuntos de dados por meio do recozimento linear da taxa de aprendizado do modelo Llama 3 8B, que foi treinado com 50%, para 0 em 40 bilhões de tokens. Nesses experimentos, atribuímos 301 pesosTP3T ao novo conjunto de dados e os 701 pesosTP3T restantes à combinação de dados padrão. É mais eficiente usar o recozimento para avaliar novas fontes de dados do que realizar experimentos de lei de escala em cada conjunto de dados pequeno.

 

 

3.2 Arquitetura do modelo

 

A Llama 3 usa a arquitetura Transformer densa padrão (Vaswani et al., 2017). A arquitetura de seu modelo não é significativamente diferente da Llama e da Llama 2 (Touvron et al., 2023a, b); nossos ganhos de desempenho vêm principalmente de melhorias na qualidade e diversidade dos dados, bem como do aumento do tamanho do treinamento.

Fizemos algumas pequenas modificações:

  • Usamos o Grouped Query Attention (GQA; Ainslie et al. (2023)), em que 8 cabeçalhos de valores-chave são usados para aumentar a velocidade de inferência e reduzir o tamanho do cache de valores-chave durante a decodificação.
  • Usamos uma máscara de atenção para evitar mecanismos de autoatenção entre diferentes documentos da sequência. Descobrimos que essa alteração tem impacto limitado durante o pré-treinamento padrão, mas é importante durante o pré-treinamento contínuo de sequências muito longas.
  • Usamos um vocabulário de 128 mil tokens. Nosso vocabulário tokenizado combina os 100 mil tokens do vocabulário tiktoken3 com 28 mil tokens adicionais para oferecer melhor suporte a idiomas que não sejam o inglês. Em comparação com o vocabulário do Llama 2, nosso novo vocabulário melhora a compactação de amostras de dados em inglês de 3,17 para 3,94 caracteres/token. Isso permite que o modelo "leia" mais texto com a mesma quantidade de computação de treinamento. Também descobrimos que a adição de 28 mil tokens de idiomas específicos não ingleses melhorou a compactação e o desempenho downstream, sem afetar a tokenização em inglês.
  • Aumentamos o hiperparâmetro de frequência de base RoPE para 500.000. Isso nos permite suportar melhor contextos mais longos; Xiong et al. (2023) mostram que esse valor é válido para contextos de até 32.768.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

O Llama 3 405B usa uma arquitetura com 126 camadas, 16.384 dimensões de representação de marcadores e 128 cabeças de atenção; para obter mais informações, consulte a Tabela 3. Isso resulta em um tamanho de modelo que é aproximadamente ideal do ponto de vista computacional com base em nossos dados e um orçamento de treinamento de 3,8 × 10^25 FLOPs.

 

3.2.1 Leis de escala

Usamos as leis de escalonamento (Hoffmann et al., 2022; Kaplan et al., 2020) para determinar o tamanho ideal do modelo principal com base em nosso orçamento computacional de pré-treinamento. Além de determinar o tamanho ideal do modelo, a previsão do desempenho do modelo principal em tarefas de benchmark downstream apresenta desafios significativos pelos seguintes motivos:

  1. As leis de dimensionamento existentes normalmente preveem apenas a perda de previsão da próxima marca, não um desempenho específico de benchmarking.
  2. As leis de escala podem ser ruidosas e não confiáveis porque são desenvolvidas com base em execuções de pré-treinamento usando um orçamento computacional pequeno (Wei et al., 2022b).

Para enfrentar esses desafios, implementamos uma abordagem de duas fases para desenvolver leis de dimensionamento que prevejam com precisão o desempenho do benchmarking downstream:

  1. Primeiro, estabelecemos a correlação entre os FLOPs de pré-treinamento e o cálculo da probabilidade de logaritmo negativo do melhor modelo na tarefa downstream.
  2. Em seguida, correlacionamos a probabilidade de log negativo na tarefa downstream com a precisão da tarefa usando o modelo Scaling Laws e um modelo mais antigo treinado anteriormente usando FLOPs computacionais mais altos. Nessa etapa, utilizamos exclusivamente a família de modelos Llama 2.

Essa abordagem nos permite prever o desempenho da tarefa downstream (para modelos computacionalmente ideais) com base em um número específico de FLOPs pré-treinados. Usamos uma abordagem semelhante para selecionar nossas combinações de dados de pré-treinamento (consulte a Seção 3.4).

Dimensionamento Experiência jurídica.Especificamente, construímos leis de escala pré-treinando modelos usando orçamentos computacionais entre 6 × 10^18 FLOPs e 10^22 FLOPs. Em cada orçamento computacional, pré-treinamos modelos com tamanhos entre 40M e 16B parâmetros e usamos uma fração do tamanho do modelo em cada orçamento computacional. Nessas execuções de treinamento, usamos o agendamento da taxa de aprendizado cosseno e o aquecimento linear em 2.000 etapas de treinamento. O pico da taxa de aprendizagem foi definido entre 2 × 10^-4 e 4 × 10^-4, dependendo do tamanho do modelo. Definimos o decaimento do cosseno como 0,1 vezes o valor de pico. O decaimento do peso para cada etapa foi definido como 0,1 vezes a taxa de aprendizado para essa etapa. Usamos um tamanho de lote fixo para cada tamanho computacional, variando de 250K a 4M.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Esses experimentos produziram as curvas IsoFLOPs na Figura 2. As perdas nessas curvas foram medidas em conjuntos de validação separados. Ajustamos os valores de perda medidos usando um polinômio de segunda ordem e determinamos o valor mínimo de cada parábola. Referimo-nos ao mínimo da parábola como o modelo computacionalmente ideal sob o orçamento computacional pré-treinado correspondente.

Usamos o modelo computacionalmente ideal identificado dessa forma para prever o número ideal de tokens de treinamento para um determinado orçamento computacional. Para esse fim, assumimos uma relação de lei de potência entre o orçamento computacional C e o número ideal de tokens de treinamento N (C):

N (C) = AC α .

Ajustamos A e α usando os dados da Fig. 2. Encontramos (α, A) = (0,53, 0,29); o ajuste correspondente é mostrado na Fig. 3. A extrapolação da lei de escala resultante para 3,8 × 10 25 FLOPs sugere o treinamento de um modelo com 402B parâmetros e o uso de 16,55T tokens.

Uma observação importante é que a curva de IsoFLOPs se torna mais plana em torno do mínimo à medida que o orçamento computacional aumenta. Isso implica que o desempenho do modelo principal é relativamente estável em relação a pequenas variações no equilíbrio entre o tamanho do modelo e os marcadores de treinamento. Com base nessa observação, finalmente decidimos treinar um modelo principal contendo o parâmetro 405B.

Previsão de desempenho em tarefas downstream.Usamos o modelo computacionalmente ideal gerado para prever o desempenho do modelo principal da Llama 3 no conjunto de dados de referência. Primeiro, relacionamos linearmente a probabilidade de logaritmo negativo (normalizada) da resposta correta no benchmark com os FLOPs de treinamento. Para essa análise, usamos somente o modelo de lei de escalonamento treinado para 10^22 FLOPs na mistura de dados acima. Em seguida, estabelecemos uma relação em forma de S entre a probabilidade de registro e a precisão usando o modelo de lei de escala e o modelo Llama 2, que foi treinado usando o mix de dados e o tagger do Llama 2. (Mostramos os resultados desse experimento no benchmark ARC Challenge na Figura 4). Consideramos que essa previsão da lei de escalonamento em duas etapas (extrapolada em quatro ordens de magnitude) é bastante precisa: ela subestima apenas ligeiramente o desempenho final do modelo principal da Llama 3.

 

 

3.3 Infraestrutura, expansão e eficiência

 

Descrevemos o hardware e a infraestrutura de suporte ao pré-treinamento do Llama 3 405B e discutimos várias otimizações que melhoram a eficiência do treinamento.

 

3.3.1 Infraestrutura de treinamento

Os modelos Llama 1 e Llama 2 foram treinados no supercluster de pesquisa de IA do Meta (Lee e Sengupta, 2022). À medida que aumentamos a escala, o treinamento da Llama 3 foi migrado para o cluster de produção do Meta (Lee et al., 2024). Essa configuração otimiza a confiabilidade no nível de produção, o que é fundamental à medida que aumentamos o treinamento.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Recursos de computação: O Llama 3 405B treina em até 16.000 GPUs H100, cada uma executando a 700W TDP com 80GB HBM3, usando a plataforma de servidor Grand Teton AI da Meta (Matt Bowman, 2022). Cada servidor é equipado com oito GPUs e duas CPUs; dentro do servidor, as oito GPUs são conectadas via NVLink. Os trabalhos de treinamento são programados usando o MAST (Choudhury et al., 2024), o programador de treinamento em escala global do Meta.

Armazenamento: O Tectonic (Pan et al., 2021), o sistema de arquivos distribuídos de uso geral do Meta, foi usado para criar a arquitetura de armazenamento para o pré-treinamento do Llama 3 (Battey e Gupta, 2024). Ele fornece 240 PB de espaço de armazenamento e consiste em 7.500 servidores equipados com SSDs que suportam uma taxa de transferência sustentável de 2 TB/s e uma taxa de transferência de pico de 7 TB/s. Um grande desafio é suportar gravações de pontos de verificação altamente explosivas que saturam a malha de armazenamento em um curto período de tempo. Os pontos de verificação salvam o estado do modelo por GPU, variando de 1 MB a 4 GB por GPU, para recuperação e depuração. Nosso objetivo é minimizar o tempo de pausa da GPU durante o checkpointing e aumentar a frequência do checkpointing para reduzir o volume de trabalho perdido após a recuperação.

Trabalho em rede: O Llama 3 405B usa uma arquitetura RDMA over Converged Ethernet (RoCE) baseada nos switches de rack Arista 7800 e Minipack2 Open Compute Project (OCP). Os modelos menores da série Llama 3 foram treinados usando a rede Nvidia Quantum2 Infiniband. Os clusters RoCE e Infiniband utilizam uma conexão de link de 400 Gbps entre as GPUs. Apesar das diferenças na tecnologia de rede subjacente desses clusters, ajustamos ambos para oferecer desempenho equivalente para lidar com essas grandes cargas de trabalho de treinamento. Vamos nos aprofundar mais em nossa rede RoCE à medida que nos apropriarmos totalmente de seu design.

  • Topologia de rede: Nosso cluster de IA baseado em RoCE contém 24.000 GPUs (nota de rodapé 5) conectadas por meio de uma rede Clos de três camadas (Lee et al., 2024). Na camada inferior, cada rack hospeda 16 GPUs, alocadas em dois servidores e conectadas por meio de um único switch Minipack2 top-of-rack (ToR). Na camada intermediária, 192 desses racks são conectados por meio de switches de cluster para formar um Pod de 3.072 GPUs com largura de banda bidirecional total, garantindo que não haja excesso de assinatura. Na camada superior, oito desses Pods no mesmo edifício do data center são conectados por meio de switches de agregação para formar um cluster de 24.000 GPUs. No entanto, em vez de manter a largura de banda bidirecional total, as conexões de rede na camada de agregação têm uma taxa de excesso de assinatura de 1:7. Tanto a nossa abordagem de modelo paralelo (consulte a Seção 3.3.2) quanto o agendador de tarefas de treinamento (Choudhury et al., 2024) são otimizados para conhecer a topologia da rede, com o objetivo de minimizar a comunicação de rede entre os pods.
  • Balanceamento de carga: O treinamento de grandes modelos de linguagem gera um tráfego de rede pesado que é difícil de equilibrar em todos os caminhos de rede disponíveis por meio de métodos tradicionais, como o roteamento Equal Cost Multipath (ECMP). Para enfrentar esse desafio, empregamos duas técnicas. Primeiro, nossa biblioteca agregada cria 16 fluxos de rede entre duas GPUs em vez de uma, reduzindo assim o volume de tráfego por fluxo e fornecendo mais fluxos para o balanceamento de carga. Em segundo lugar, nosso protocolo Enhanced ECMP (E-ECMP) equilibra de forma eficaz esses 16 fluxos em diferentes caminhos de rede, fazendo o hashing de outros campos no pacote de cabeçalho RoCE.

Llama 3: uma família versátil e de código aberto de modelos de IA-1

  • Controle de congestionamento: Usamos switches de buffer profundo (Gangidi et al., 2024) na rede de backbone para acomodar o congestionamento transitório e o armazenamento em buffer causados por padrões de comunicação agregados. Isso ajuda a limitar o impacto do congestionamento persistente e da contrapressão da rede causada por servidores lentos, o que é comum no treinamento. Por fim, o melhor balanceamento de carga por meio do E-ECMP reduz bastante a probabilidade de congestionamento. Com essas otimizações, executamos com sucesso um cluster de 24.000 GPUs sem a necessidade de métodos tradicionais de controle de congestionamento, como o Data Center Quantified Congestion Notification (DCQCN).

 

3.3.2 Paralelismo no aumento de escala do modelo

Para ampliar o treinamento do nosso maior modelo, dividimos o modelo usando o paralelismo 4D - um esquema que combina quatro abordagens paralelas diferentes. Essa abordagem distribui efetivamente o cálculo em várias GPUs e garante que os parâmetros do modelo, os estados do otimizador, os gradientes e os valores de ativação de cada GPU se ajustem ao seu HBM. Nossa implementação paralela 4D (conforme mostrado em et al. (2020); Ren et al. (2021); Zhao et al. (2023b)) divide o modelo, o otimizador e o gradiente enquanto implementa o paralelismo de dados, que processa os dados em paralelo em várias GPUs e os sincroniza após cada etapa de treinamento. Usamos o FSDP para fatiar o estado do otimizador e o gradiente para o Llama 3, mas para o fatiamento do modelo não fatiamos novamente após a computação direta para evitar a comunicação adicional de coleta completa durante a passagem inversa.

Utilização da GPU.Ajustando cuidadosamente a configuração paralela, o hardware e o software, conseguimos uma utilização de FLOPs do modelo BF16 (MFU; Chowdhery et al. (2023)) de 38-43%. As configurações mostradas na Tabela 4 indicam que, em comparação com 43% em GPUs de 8K e DP=64, a queda na MFU em GPUs de 16K e DP=128 para 41% se deve à necessidade de reduzir o tamanho do lote de cada grupo de DP para manter constante o número de tokens globais durante o treinamento.

Simplificar os aprimoramentos paralelos.Encontramos vários desafios em nossa implementação atual:

  • Limitações de tamanho de lote.As implementações atuais colocam um limite no tamanho do lote suportado por GPU, exigindo que ele seja divisível pelo número de estágios do pipeline. Para o exemplo da Fig. 6, o paralelismo do pipeline para o agendamento depth-first (DFS) (Narayanan et al. (2021)) requer N = PP = 4, enquanto o agendamento breadth-first (BFS; Lamy-Poirier (2023)) requer N = M, em que M é o número total de microbatches e N é o número de microbatches consecutivos no mesmo estágio na direção direta ou reversa. No entanto, o pré-treinamento geralmente exige flexibilidade no dimensionamento dos lotes.
  • Desequilíbrio de memória.As implementações paralelas em pipeline existentes levam a um consumo desequilibrado de recursos. O primeiro estágio consome mais memória devido à incorporação e ao aquecimento de micro lotes.
  • Os cálculos não estão equilibrados. Após a última camada do modelo, precisamos computar as saídas e as perdas, o que torna essa fase um gargalo em termos de latência de execução. em que Di é o índice da i-ésima dimensão paralela. Neste exemplo, a GPU0 [TP0, CP0, PP0, DP0] e a GPU1 [TP1, CP0, PP0, DP0] estão no mesmo grupo TP, a GPU0 e a GPU2 estão no mesmo grupo CP, a GPU0 e a GPU4 estão no mesmo grupo PP e a GPU0 e a GPU8 estão no mesmo grupo DP.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Para resolver esses problemas, modificamos a abordagem de programação do pipeline, conforme mostrado na Figura 6, que permite uma configuração flexível de N - neste caso, N = 5, o que permite a execução de qualquer número de microbatches em cada lote. Isso nos permite:

(1) Quando houver um limite de tamanho de lote, execute menos microbatches do que o número de estágios; ou

(2) Executar mais microbatches para ocultar a comunicação ponto a ponto e encontrar a melhor eficiência de comunicação e memória entre o Depth-First Scheduling (DFS) e o Breadth-First Scheduling (BFS). Para equilibrar o pipeline, reduzimos uma camada do Transformer do primeiro estágio e do último estágio, respectivamente. Isso significa que o primeiro bloco de modelo no primeiro estágio tem apenas a camada de incorporação, enquanto o último bloco de modelo no último estágio tem apenas a projeção de saída e o cálculo de perda.

Para reduzir as bolhas de pipeline, usamos uma abordagem de programação intercalada (Narayanan et al., 2021) em uma hierarquia de pipeline com V estágios de pipeline. A taxa geral de bolhas do pipeline é PP-1 V * M . Além disso, empregamos comunicação assíncrona ponto a ponto, o que acelera significativamente o treinamento, especialmente nos casos em que as máscaras de documentos introduzem desequilíbrios computacionais adicionais. Habilitamos o TORCH_NCCL_AVOID_RECORD_STREAMS para reduzir o uso de memória da comunicação ponto a ponto assíncrona. Por fim, para reduzir os custos de memória, com base em uma análise detalhada da alocação de memória, liberamos proativamente tensores que não serão usados para cálculos futuros, inclusive tensores de entrada e saída para cada estágio do pipeline. ** Com essas otimizações, conseguimos executar os tensores de 8K sem o uso de pontos de verificação de ativação, sem o uso de pontos de verificação de ativação. token sequências para o pré-treinamento da Llama 3.

A paralelização de contexto é usada para sequências longas. Aproveitamos a paralelização de contexto (CP) para melhorar a eficiência da memória ao dimensionar os comprimentos de contexto do Llama 3 e para permitir o treinamento em sequências muito longas de até 128K. Na CP, particionamos as dimensões da sequência, especificamente dividimos a sequência de entrada em blocos de 2 × CP, de modo que cada nível de CP receba dois blocos para melhorar o balanceamento de carga. O i-ésimo nível de CP recebe o i-ésimo bloco e (2 × CP -1 -i) blocos.

 

Diferentemente das implementações de CP existentes que sobrepõem a comunicação e a computação em uma estrutura em anel (Liu et al., 2023a), nossa implementação de CP emprega uma abordagem baseada em all-gather que primeiro agrega globalmente o tensor de valor-chave (K, V) e, em seguida, calcula as saídas de atenção dos blocos de tensor de consulta local (Q). Embora a latência da comunicação all-gather esteja no caminho crítico, ainda adotamos essa abordagem por dois motivos principais:

(1) É mais fácil e mais flexível oferecer suporte a diferentes tipos de máscaras de atenção, como máscaras de documentos, na atenção CP baseada em coleta total;

(2) A latência de coleta total exposta é pequena porque o tensor K e V da comunicação é muito menor do que o tensor Q, devido ao uso de GQA (Ainslie et al., 2023). Como resultado, a complexidade de tempo do cálculo de atenção é uma ordem de grandeza maior do que a de coleta total (O(S²) versus O(S), em que S denota o comprimento da sequência na máscara causal completa), tornando a sobrecarga de coleta total insignificante.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Configuração paralela com reconhecimento de rede.A ordem das dimensões de paralelização [TP, CP, PP, DP] é otimizada para a comunicação de rede. A camada mais interna de paralelização exige a maior largura de banda de rede e a menor latência e, portanto, geralmente é restrita ao mesmo servidor. A camada mais externa de paralelização pode abranger redes com vários saltos e deve ser capaz de tolerar uma latência de rede mais alta. Portanto, com base nos requisitos de largura de banda e latência da rede, classificamos as dimensões de paralelização na ordem de [TP, CP, PP, DP]. O DP (ou seja, FSDP) é a camada mais externa de paralelização, pois pode tolerar uma latência de rede mais longa por meio da pré-busca assíncrona dos pesos do modelo de fatiamento e da redução do gradiente. Determinar a configuração ideal de paralelização com o mínimo de sobrecarga de comunicação e, ao mesmo tempo, evitar o estouro de memória da GPU é um desafio. Desenvolvemos um estimador de consumo de memória e uma ferramenta de projeção de desempenho que nos ajudou a explorar várias configurações de paralelização, prever o desempenho geral do treinamento e identificar lacunas de memória com eficiência.

Estabilidade numérica.Ao comparar as perdas de treinamento entre diferentes configurações paralelas, corrigimos alguns problemas numéricos que afetam a estabilidade do treinamento. Para garantir a convergência do treinamento, usamos a acumulação de gradiente FP32 durante o cálculo reverso de vários micro-lotes e reduzimos os gradientes de dispersão usando FP32 entre os trabalhadores paralelos de dados no FSDP. Para tensores intermediários que são usados várias vezes em cálculos avançados, como saídas de codificadores visuais, o gradiente reverso também é acumulado em FP32.

 

3.3.3 Comunicações coletivas

A biblioteca de comunicação coletiva da Llama 3 é baseada em uma ramificação da biblioteca NCCL da Nvidia chamada NCCLX. A NCCLX melhora muito o desempenho da NCCL, especialmente para redes de alta latência. Lembre-se de que a ordem das dimensões paralelas é [TP, CP, PP, DP], em que DP corresponde a FSDP, e que as dimensões paralelas mais externas, PP e DP, podem se comunicar em uma rede de vários saltos com latências de dezenas de microssegundos. As operações de comunicação coletiva all-gather e reduce-scatter da NCCL original são usadas no FSDP, enquanto a comunicação ponto a ponto é usada para o PP, que exige fragmentação de dados e replicação de dados em etapas. Essa abordagem leva a algumas das seguintes ineficiências:

  1. Um grande número de pequenas mensagens de controle precisa ser trocado pela rede para facilitar a transferência de dados;
  2. Operações adicionais de cópia de memória;
  3. Use ciclos adicionais da GPU para comunicação.

Para o treinamento da Llama 3, resolvemos algumas dessas ineficiências adaptando a fragmentação e as transferências de dados à latência da nossa rede, que pode chegar a dezenas de microssegundos em grandes clusters. Também permitimos que pequenas mensagens de controle passem pela nossa rede com prioridade mais alta, evitando especificamente o bloqueio do chefe de fila em switches de núcleo com buffer profundo.

Nosso trabalho em andamento para as futuras versões do Llama inclui mudanças mais profundas no NCCLX para resolver totalmente todos os problemas acima.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

3.3.4 Confiabilidade e desafios operacionais

A complexidade e os possíveis cenários de falha do treinamento da GPU de 16K excedem os dos clusters de CPU maiores em que operamos. Além disso, a natureza síncrona do treinamento o torna menos tolerante a falhas - uma única falha de GPU pode exigir a reinicialização de todo o trabalho. Apesar desses desafios, no caso da Llama 3, conseguimos tempos de treinamento efetivos superiores a 90% e, ao mesmo tempo, oferecemos suporte à manutenção automatizada do cluster (por exemplo, atualizações de firmware e do kernel do Linux (Vigraham e Leonhardi, 2024)), o que resultou em pelo menos uma interrupção de treinamento por dia.

O tempo de treinamento efetivo é a quantidade de tempo gasto em treinamento efetivo durante o tempo decorrido. Durante o instantâneo de 54 dias de pré-treinamento, tivemos um total de 466 interrupções operacionais. Dessas, 47 foram interrupções planejadas devido a operações de manutenção automatizadas (por exemplo, upgrades de firmware ou operações iniciadas pelo operador, como atualizações de configuração ou de conjunto de dados). As 419 restantes foram interrupções imprevistas, que estão categorizadas na Tabela 5. Aproximadamente 78% das interrupções imprevistas foram atribuídas a problemas de hardware identificados, como falhas de GPU ou de componentes do host, ou suspeitas de problemas relacionados a hardware, como corrupção silenciosa de dados e eventos de manutenção não planejados de hosts individuais. Apesar do grande número de falhas, apenas três grandes intervenções manuais foram necessárias durante esse período e os problemas restantes foram resolvidos por meio de automação.

Para melhorar o tempo de treinamento efetivo, reduzimos o tempo de inicialização e de checkpointing do trabalho e desenvolvemos ferramentas para diagnóstico rápido e solução de problemas. Utilizamos amplamente o gravador de voo NCCL integrado do PyTorch (Ansel et al., 2024) - um recurso que captura metadados coletivos e traços de pilha em um buffer em anel, o que nos permite diagnosticar rapidamente problemas de travamento e desempenho em escala, especialmente no caso de aspectos do aspectos do NCCLX. Com ele, podemos registrar com eficiência os eventos de comunicação e as durações de cada operação coletiva e despejar automaticamente os dados de rastreamento no caso de um tempo limite de watchdog ou heartbeat do NCCLX. Com as alterações de configuração on-line (Tang et al., 2015), podemos habilitar seletivamente operações de rastreamento mais intensivas em termos de computação e coleta de metadados sem liberações de código ou reinícios de trabalho. Os problemas de depuração no treinamento em larga escala são complicados pelo uso misto de NVLink e RoCE em nossa rede. Normalmente, as transferências de dados são realizadas pelo NVLink por meio de operações de carga/armazenamento emitidas pelo kernel CUDA, e a falha de uma GPU remota ou de uma conexão NVLink geralmente se manifesta como uma operação de carga/armazenamento paralisada no kernel CUDA sem retornar um código de erro explícito. PyTorch acesse o estado interno do NCCLX e rastreie as informações relevantes. Embora não seja possível evitar completamente os travamentos devido a falhas no NVLink, nosso sistema monitora o estado das bibliotecas de comunicação e automaticamente atinge o tempo limite quando esses travamentos são detectados. Além disso, o NCCLX rastreia a atividade do kernel e da rede para cada comunicação NCCLX e fornece um instantâneo do estado interno do coletivo NCCLX com falha, incluindo transferências de dados concluídas e não concluídas entre todas as fileiras. Analisamos esses dados para depurar problemas de extensão do NCCLX.

Às vezes, problemas de hardware podem resultar em retardatários ainda em execução, mas lentos, que são difíceis de detectar. Mesmo que haja apenas um retardatário, ele pode deixar milhares de outras GPUs mais lentas, geralmente na forma de operação normal, mas com comunicação lenta. Desenvolvemos ferramentas para priorizar comunicações potencialmente problemáticas de grupos selecionados de processos. Ao investigar apenas alguns dos principais suspeitos, muitas vezes conseguimos identificar efetivamente os retardatários.

Uma observação interessante é o impacto dos fatores ambientais no desempenho do treinamento em larga escala. Para o Llama 3 405B, notamos flutuações de rendimento de 1-2% com base na variação de tempo. Essa flutuação é causada pelas temperaturas mais altas do meio-dia que afetam a tensão dinâmica da GPU e o dimensionamento da frequência. Durante o treinamento, dezenas de milhares de GPUs podem aumentar ou diminuir simultaneamente o consumo de energia, por exemplo, devido ao fato de que todas as GPUs estão aguardando a conclusão de um ponto de verificação ou de uma comunicação coletiva, ou que um trabalho de treinamento inteiro seja iniciado ou encerrado. Quando isso acontece, pode levar a flutuações transitórias no consumo de energia dentro do data center da ordem de dezenas de megawatts, o que amplia os limites da rede elétrica. Esse é um desafio contínuo à medida que dimensionamos o treinamento para modelos futuros e ainda maiores da Llama.

 

 

3.4 Programas de treinamento

 

A receita de pré-treinamento do Llama 3 405B contém três etapas principais:

(1) pré-treinamento inicial, (2) pré-treinamento de contexto longo e (3) recozimento. Cada um desses três estágios é descrito abaixo. Usamos receitas semelhantes para pré-treinar os modelos 8B e 70B.

 

3.4.1 Pré-treinamento inicial

Pré-treinamos o modelo Llama 3 405B usando um esquema de taxa de aprendizado de cosseno com uma taxa de aprendizado máxima de 8 × 10-⁵, aquecido linearmente até 8.000 etapas e decaído para 8 × 10-⁷ após 1.200.000 etapas de treinamento. Para melhorar a estabilidade do treinamento, usamos um tamanho de lote menor no início do treinamento e, posteriormente, aumentamos o tamanho do lote para melhorar a eficiência. Especificamente, inicialmente temos um tamanho de lote de 4 milhões de tokens e um comprimento de sequência de 4.096. Após o pré-treinamento de 252 milhões de tokens, dobramos o tamanho do lote e o comprimento da sequência para 8 milhões de sequências e 8.192 tokens, respectivamente. Esse método de treinamento é muito estável: ocorrem pouquíssimos picos de perda e não é necessária nenhuma intervenção para corrigir desvios no treinamento do modelo.

Ajuste das combinações de dados. Durante o treinamento, fizemos vários ajustes na combinação de dados de pré-treinamento para melhorar o desempenho do modelo em tarefas específicas de downstream. Em especial, aumentamos a proporção de dados que não estavam em inglês durante o pré-treinamento para melhorar o desempenho multilíngue da Llama 3. Também aumentamos a proporção de dados matemáticos para aprimorar o raciocínio matemático do modelo, adicionamos dados de rede mais recentes nos estágios posteriores do pré-treinamento para atualizar os limites de conhecimento do modelo e reduzimos a proporção de um subconjunto de dados que foi posteriormente identificado como sendo de qualidade inferior.

 

3.4.2 Pré-treinamento de contexto longo

No estágio final do pré-treinamento, treinamos sequências longas para suportar janelas de contexto de até 128.000 tokens. Não treinamos sequências longas antes porque o cálculo na camada de autoatenção aumenta quadraticamente com o comprimento da sequência. Aumentamos gradativamente o comprimento do contexto suportado e fazemos o pré-treinamento depois que o modelo se adaptou com sucesso ao aumento do comprimento do contexto. Avaliamos a adaptação bem-sucedida medindo ambos:

(1) Se o desempenho do modelo em avaliações de contexto curto foi totalmente recuperado;

(2) Se o modelo pode resolver perfeitamente a tarefa "agulha em um palheiro" até esse tamanho. No pré-treinamento do Llama 3 405B, aumentamos gradativamente o comprimento do contexto em seis estágios, começando com uma janela de contexto inicial de 8.000 tokens e, por fim, chegando a uma janela de contexto de 128.000 tokens. Essa longa fase de pré-treinamento de contexto usou aproximadamente 800 bilhões de tokens de treinamento.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

3.4.3 Recozimento

Durante o pré-treinamento dos últimos 40 milhões de tokens, recozemos a taxa de aprendizado linearmente para 0, mantendo um comprimento de contexto de 128 mil tokens. Durante essa fase de recozimento, também ajustamos a combinação de dados para aumentar o tamanho da amostra de fontes de dados de altíssima qualidade; consulte a Seção 3.1.3. Por fim, calculamos a média dos pontos de verificação do modelo (média de Polyak (1991)) durante o recozimento para gerar o modelo pré-treinado final.

 

 

4 Treinamento de acompanhamento

 

Geramos e alinhamos os modelos da Llama 3 aplicando várias rodadas de treinamento de acompanhamento. Esses treinamentos de acompanhamento são baseados em pontos de verificação pré-treinados e incorporam feedback humano para o alinhamento do modelo (Ouyang et al., 2022; Rafailov et al., 2024). Cada rodada de treinamento de acompanhamento consistiu em ajuste fino supervisionado (SFT), seguido de otimização de preferência direta (DPO; Rafailov et al., 2024) usando exemplos gerados por meio de anotação ou síntese manual. Descrevemos nossa modelagem de treinamento subsequente e os métodos de dados nas Seções 4.1 e 4.2, respectivamente. Além disso, fornecemos mais detalhes sobre estratégias personalizadas de agrupamento de dados na Seção 4.3 para aprimorar o modelo em termos de inferência, recursos de programação, fatoração, suporte multilíngue, uso de ferramentas, contextos longos e aderência a instruções precisas.

 

4.1 Modelagem

A base da nossa estratégia de pós-treinamento é um modelo de recompensa e um modelo de linguagem. Primeiro, treinamos um modelo de recompensa sobre os pontos de verificação de pré-treinamento usando dados de preferência rotulados por humanos (consulte a Seção 4.1.2). Em seguida, ajustamos os pontos de verificação de pré-treinamento com o ajuste fino supervisionado (SFT; consulte a Seção 4.1.3) e os alinhamos ainda mais com os pontos de verificação usando a otimização direta de preferências (DPO; consulte a Seção 4.1.4). Esse processo é mostrado na Figura 7. Salvo indicação em contrário, nosso processo de modelagem se aplica ao Llama 3 405B, ao qual nos referimos como Llama 3 405B para simplificar.

 

4.1.1 Formato do diálogo de bate-papo

Para adaptar um Modelo de Linguagem Grande (LLM) para a interação humano-computador, precisamos definir um protocolo de diálogo de bate-papo que permita ao modelo entender os comandos humanos e executar tarefas de diálogo. Em comparação com seu antecessor, o Llama 3 tem novos recursos, como o uso de ferramentas (Seção 4.3.5), o que pode exigir a geração de várias mensagens em uma única rodada de diálogo e o envio delas para diferentes locais (por exemplo, usuário, ipython). Para dar suporte a isso, criamos um novo protocolo de bate-papo com várias mensagens que usa uma variedade de tokens especiais de cabeçalho e de terminação. Os tokens de cabeçalho são usados para indicar a origem e o destino de cada mensagem em um diálogo. Da mesma forma, os marcadores de término indicam quando é a vez de o humano e a IA alternarem a fala.

 

4.1.2 Modelagem de recompensas

Treinamos um modelo de recompensa (RM) que abrange diferentes habilidades e o construímos com base em pontos de verificação pré-treinados. O objetivo do treinamento é o mesmo da Llama 2, mas removemos o termo marginal da função de perda porque observamos uma melhoria reduzida à medida que o tamanho dos dados aumenta. Como na Llama 2, usamos todos os dados de preferência para modelagem de recompensa depois de filtrar as amostras com respostas semelhantes.

Além dos pares de preferências de resposta padrão (selecionada, rejeitada), a anotação cria uma terceira "resposta editada" para algumas dicas, em que a resposta selecionada do par é editada ainda mais para ser melhorada (consulte a Seção 4.2.1). Assim, cada amostra de classificação de preferências tem duas ou três respostas que são claramente classificadas (editada > selecionada > rejeitada). Durante o treinamento, concatenamos as dicas e as várias respostas em uma linha e randomizamos as respostas. Essa é uma aproximação do cenário padrão de computação de pontuações, colocando as respostas em linhas separadas, mas em nossos experimentos de ablação, essa abordagem melhora a eficiência do treinamento sem perda de precisão.

 

4.1.3 Ajuste fino da supervisão

As pistas rotuladas por humanos são primeiro rejeitadas para amostragem usando o modelo de recompensa, cuja metodologia detalhada é descrita na Seção 4.2. Combinamos esses dados de amostragem de rejeição com outras fontes de dados (incluindo dados sintéticos) para ajustar o modelo de linguagem pré-treinado usando perdas de entropia cruzada padrão, com o objetivo de prever a marcação de destino (enquanto mascaramos as perdas da marcação de cued). Consulte a Seção 4.2 para obter mais detalhes sobre a combinação de dados. Embora muitos dos alvos de treinamento sejam gerados pelo modelo, nos referimos a essa fase como ajuste fino supervisionado (SFT; Wei et al. 2022a; Sanh et al. 2022; Wang et al. 2022b).

Nosso modelo máximo é ajustado com uma taxa de aprendizado de 1e-5 em 8,5 mil a 9 mil etapas. Consideramos que essas configurações de hiperparâmetros são adequadas para diferentes rodadas e combinações de dados.

 

4.1.4 Otimização de preferência direta

Treinamos ainda mais nossos modelos SFT para o alinhamento de preferências humanas usando a otimização direta de preferências (DPO; Rafailov et al., 2024). No treinamento, usamos principalmente os lotes de dados de preferência mais recentes coletados dos modelos de melhor desempenho na rodada anterior de alinhamento. Como resultado, nossos dados de treinamento correspondem melhor à distribuição dos modelos de estratégia otimizados em cada rodada. Também exploramos algoritmos de estratégia como o PPO (Schulman et al., 2017), mas descobrimos que o DPO requer menos computação e tem melhor desempenho em modelos de grande escala, especialmente em benchmarks de adesão a instruções como o IFEval (Zhou et al., 2023).

Para o Llama 3, usamos uma taxa de aprendizado de 1e-5 e definimos o hiperparâmetro β como 0,1. Além disso, aplicamos as seguintes modificações algorítmicas ao DPO:

  • Mascaramento de marcadores de formatação em perdas de DPO. Mascaramos os marcadores de formato especial (incluindo marcadores de cabeçalho e de terminação descritos na Seção 4.1.1) das respostas selecionadas e rejeitadas para estabilizar o treinamento do OPD. Observamos que o envolvimento desses marcadores na perda pode levar a um comportamento indesejado do modelo, como a duplicação da cauda ou a geração repentina de marcadores de terminação. Nossa hipótese é que isso se deve à natureza contrastante da perda de OPD - a presença de marcadores comuns nas respostas selecionadas e rejeitadas pode levar a objetivos de aprendizado conflitantes, pois o modelo precisa aumentar e diminuir simultaneamente a probabilidade desses marcadores.
  • Regularização usando perdas NLL: o Acrescentamos um termo de perda adicional de log-likelihood negativo (NLL) às sequências selecionadas com um fator de escala de 0,2, semelhante ao de Pang et al. (2024). Isso ajuda a estabilizar ainda mais o treinamento de DPO, mantendo o formato necessário para a geração e evitando que a probabilidade de logaritmo das respostas selecionadas diminua (Pang et al., 2024; Pal et al., 2024).

 

4.1.5 Cálculo da média do modelo

Por fim, calculamos a média dos modelos obtidos em experimentos usando várias versões de dados ou hiperparâmetros em cada estágio de RM, SFT ou DPO (Izmailov et al. 2019; Wortsman et al. 2022; Li et al. 2022). Apresentamos informações estatísticas sobre os dados de preferência humana coletados internamente e usados para o condicionamento da Llama 3. Pedimos aos avaliadores que participassem de várias rodadas de diálogo com o modelo e comparamos as respostas de cada rodada. Durante o pós-processamento, dividimos cada diálogo em vários exemplos, cada um contendo um prompt (incluindo o diálogo anterior, se disponível) e uma resposta (por exemplo, uma resposta que foi selecionada ou rejeitada).

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

4.1.6 Rodadas de iteração

Seguindo a Llama 2, aplicamos a metodologia acima em seis rodadas de iterações. Em cada rodada, coletamos novos dados de rotulagem de preferências e ajuste fino (SFT) e coletamos dados sintéticos do modelo mais recente.

 

4.2 Dados pós-treinamento

A composição dos dados pós-treinamento desempenha um papel fundamental na utilidade e no comportamento do modelo de linguagem. Nesta seção, discutimos nosso procedimento de anotação e coleta de dados de preferência (Seção 4.2.1), a composição dos dados do SFT (Seção 4.2.2) e os métodos de controle e limpeza da qualidade dos dados (Seção 4.2.3).

 

4.2.1 Preferências

Nosso processo de rotulagem de dados de preferência é semelhante ao da Llama 2. Após cada rodada, implantamos vários modelos para anotação e coletamos amostras de duas respostas de modelos diferentes para cada dica do usuário. Esses modelos podem ser treinados usando diferentes esquemas de combinação e alinhamento de dados, resultando em diferentes pontos fortes de capacidade (por exemplo, experiência em código) e maior diversidade de dados. Pedimos aos anotadores que classificassem as pontuações de preferência em um dos quatro níveis com base em seu nível de preferência: significativamente melhor, melhor, ligeiramente melhor ou ligeiramente melhor.

Também incluímos uma etapa de edição após a ordenação de preferências para incentivar o anotador a refinar ainda mais a resposta preferida. O anotador pode editar diretamente a resposta selecionada ou usar o modelo de sugestão de feedback para refinar sua própria resposta. Como resultado, alguns dados de preferência têm três respostas ordenadas (Editar > Selecionar > Rejeitar).

As estatísticas de anotação de preferências que usamos para o treinamento do Llama 3 são relatadas na Tabela 6. O inglês geral abrange várias subcategorias, como perguntas e respostas baseadas em conhecimento ou seguimento de instruções precisas, que estão além do escopo de habilidades específicas. Em comparação com a Llama 2, observamos um aumento na duração média dos prompts e das respostas, o que sugere que estamos treinando a Llama 3 em tarefas mais complexas. Além disso, implementamos processos de análise de qualidade e avaliação manual para avaliar rigorosamente os dados coletados, o que nos permitiu refinar os prompts e fornecer feedback sistemático e prático aos anotadores. Por exemplo, à medida que a Llama 3 for melhorando após cada rodada, aumentaremos a complexidade das dicas para atingir as áreas em que o modelo está atrasado.

Em cada rodada de treinamento tardio, usamos todos os dados de preferência disponíveis no momento para a modelagem de recompensas e apenas os lotes mais recentes de cada capacidade para o treinamento de DPO. Tanto para a modelagem de recompensas quanto para o DPO, treinamos com amostras rotuladas como "resposta de seleção significativamente melhor ou melhor" e descartamos amostras com respostas semelhantes.

 

4.2.2 Dados SFT

Nossos dados de ajuste fino vêm principalmente das seguintes fontes:

  • Dicas de nossa coleção anotada manualmente e sua rejeição de respostas de amostragem
  • Dados sintéticos para recursos específicos (consulte a Seção 4.3 para obter detalhes)
  • Pequena quantidade de dados rotulados manualmente (consulte a seção 4.3 para obter detalhes)

À medida que avançávamos em nosso ciclo de pós-treinamento, desenvolvemos variantes mais poderosas do Llama 3 e as usamos para coletar conjuntos de dados maiores para abranger uma ampla gama de recursos complexos. Nesta seção, discutimos os detalhes do processo de amostragem de rejeição e a composição geral da mistura de dados SFT final.

Recusa de amostragem.Na Amostragem de Rejeição (RS), para cada pista que coletamos durante a anotação manual (Seção 4.2.1), coletamos amostras de K saídas da estratégia de modelagem de bate-papo mais recente (normalmente os melhores pontos de verificação de execução da iteração pós-treinamento anterior ou os melhores pontos de verificação de execução para uma competência específica) e usamos nosso modelo de recompensa para selecionar o melhor candidato, de acordo com Bai et al. (2022). Em estágios posteriores do pós-treinamento, introduzimos dicas do sistema para orientar as respostas de RS de acordo com um tom, estilo ou formato desejado, que pode variar para diferentes habilidades.

Para melhorar a eficiência da amostragem de rejeição, empregamos o PagedAttention (Kwon et al., 2023). O PagedAttention melhora a eficiência da memória por meio da alocação dinâmica do cache de valores-chave. Ele suporta um comprimento de saída arbitrário agendando dinamicamente as solicitações com base na capacidade atual do cache. Infelizmente, isso introduz o risco de troca quando a memória se esgota. Para eliminar essa sobrecarga de troca, definimos um comprimento máximo de saída e só executamos solicitações se houver memória suficiente para manter saídas desse comprimento. O pagedAttention também nos permite compartilhar a página de cache de valor-chave sugerida em todas as saídas correspondentes. No geral, isso resultou em um aumento de mais de 2x na taxa de transferência durante a amostragem de rejeição.

Composição de dados agregados.A Tabela 7 mostra as estatísticas de cada uma das categorias amplas de dados em nossa combinação de "utilidade". Embora os dados de SFT e de preferências contenham domínios sobrepostos, eles são curados de forma diferente, resultando em estatísticas de contagem diferentes. Na Seção 4.2.3, descrevemos as técnicas usadas para categorizar o assunto, a complexidade e a qualidade das nossas amostras de dados. Em cada rodada de pós-treinamento, ajustamos cuidadosamente nossa combinação geral de dados para ajustar o desempenho em vários eixos para uma ampla gama de benchmarks. Nossa combinação final de dados será iterada várias vezes para determinadas fontes de alta qualidade e reduzida para outras.

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

4.2.3 Processamento de dados e controle de qualidade

Considerando que a maior parte dos nossos dados de treinamento é gerada por modelos, é necessária uma limpeza cuidadosa e um controle de qualidade.

Limpeza de dados: Nos estágios iniciais, observamos muitos padrões indesejados nos dados, como o uso excessivo de emoticons ou pontos de exclamação. Portanto, implementamos uma série de estratégias de modificação e exclusão de dados baseadas em regras para filtrar ou remover dados problemáticos. Por exemplo, para atenuar o problema da entonação excessivamente apologética, identificamos frases usadas em excesso (por exemplo, "I'm sorry" ou "I apologise") e equilibramos cuidadosamente a proporção de tais amostras no conjunto de dados.

Poda de dados: Também aplicamos várias técnicas baseadas em modelos para remover amostras de treinamento de baixa qualidade e melhorar o desempenho geral do modelo:

  • Classificação do assunto: Primeiro, ajustamos o Llama 3 8B em um classificador de tópicos e analisamos todos os dados para categorizá-los em categorias de granulação grossa ("Raciocínio matemático") e categorias de granulação fina ("Geometria e trigonometria").
  • Classificação de qualidade: Usamos o modelo de recompensa e os sinais baseados em Llama para obter pontuações de qualidade para cada amostra. Para as pontuações baseadas em RM, consideramos os dados com pontuações no quartil mais alto como de alta qualidade. Para as pontuações baseadas na Llama, solicitamos que os pontos de verificação da Llama 3 pontuassem os dados de inglês geral em três níveis (precisão, aderência à instrução e tom/apresentação) e os dados de código em dois níveis (reconhecimento de erros e intenção do usuário) e consideramos as amostras que receberam as pontuações mais altas como dados de alta qualidade. As pontuações baseadas em RM e Llama têm altas taxas de conflito, e descobrimos que a combinação desses sinais resultou na melhor recuperação para o conjunto de testes internos. Por fim, selecionamos os exemplos que são rotulados como de alta qualidade pelos filtros baseados em RM ou Llama.
  • Classificação de dificuldade: Como também estávamos interessados em priorizar exemplos de modelos mais complexos, pontuamos os dados usando duas métricas de dificuldade: o Instag (Lu et al., 2023) e a pontuação baseada em Llama. Para o Instag, solicitamos à Llama 3 70B que realizasse a rotulagem de intenção nas dicas de SFT, em que mais intenção implica maior complexidade. Também pedimos à Llama 3 que medisse a dificuldade do diálogo em três níveis (Liu et al., 2024c).
  • Desênfase semântica: Por fim, realizamos a desduplicação semântica (Abbas et al., 2023; Liu et al., 2024c). Primeiro, agrupamos diálogos completos usando o RoBERTa (Liu et al., 2019b) e classificamos por pontuação de qualidade × pontuação de dificuldade em cada agrupamento. Em seguida, realizamos uma seleção gulosa iterando sobre todos os exemplos classificados, mantendo apenas aqueles cuja semelhança máxima de cosseno com os exemplos vistos nos clusters até o momento é menor que um limite.

 

4.3 Capacidade

Em particular, destacamos alguns dos esforços feitos para aprimorar competências específicas, como manuseio de códigos (Seção 4.3.1), multilinguismo (Seção 4.3.2), habilidades matemáticas e de raciocínio (Seção 4.3.3), contextualização longa (Seção 4.3.4), uso de ferramentas (Seção 4.3.5), factualidade (Seção 4.3.6) e controlabilidade (Seção 4.3.7).

 

4.3.1 Código

desde (uma época) Copiloto e Codex (Chen et al., 2021) foram lançados, os LLMs para código receberam muita atenção. Os desenvolvedores agora usam esses modelos extensivamente para gerar trechos de código, depurar, automatizar tarefas e melhorar a qualidade do código. Para o Llama 3, nosso objetivo é aprimorar e avaliar os recursos de geração, documentação, depuração e revisão de código para as seguintes linguagens de programação prioritárias: Python, Java, JavaScript, C/C++, TypeScript, Rust, PHP, HTML/CSS, SQL e bash/shell. treinamento de especialistas em código, geração de dados sintéticos para SFT, mudança para formatos aprimorados por meio de avisos do sistema e criação de filtros de qualidade para remover amostras ruins dos dados de treinamento para aprimorar esses recursos de codificação.

Treinamento especializado.Treinamos um especialista em código e o usamos em várias rodadas subsequentes de pós-treinamento para coletar anotações de código humano de alta qualidade. Isso foi obtido por meio da ramificação da execução principal do pré-treinamento e da continuação do pré-treinamento em uma combinação de tokens de 1T que eram principalmente dados de código (>85%). O pré-treinamento contínuo em dados específicos de domínio demonstrou ser eficaz para melhorar o desempenho em domínios específicos (Gururangan et al., 2020). Seguimos uma receita semelhante à do CodeLlama (Rozière et al., 2023). Nos últimos milhares de etapas do treinamento, realizamos o ajuste fino de contexto longo (LCFT) em uma combinação de alta qualidade de dados de código em nível de repositório, estendendo o comprimento do contexto do especialista para 16 mil tokens. Por fim, seguimos uma receita de modelagem pós-treinamento semelhante à descrita na Seção 4.1 para alinhar o modelo, mas usando uma combinação de dados de SFT e DPO que são principalmente específicos de código. O modelo também é usado para amostragem de rejeição de dicas de codificação (Seção 4.2.2).

Geração de dados sintéticos.Durante o desenvolvimento, identificamos os principais problemas com a geração de código, incluindo dificuldade em seguir instruções, erros de sintaxe de código, geração incorreta de código e dificuldade em corrigir erros. Embora anotações humanas densas pudessem teoricamente resolver esses problemas, a geração de dados sintéticos oferece uma abordagem complementar que é mais barata, melhor dimensionada e não é limitada pelo nível de especialização dos anotadores.

Portanto, usamos o Llama 3 e o Code Expert para gerar um grande número de diálogos sintéticos de SFT. Descrevemos três métodos de alto nível para gerar dados de código sintético. No total, usamos mais de 2,7 milhões de exemplos sintéticos durante o SFT.

1. Geração de dados sintéticos: implementação de feedback.Os modelos 8B e 70B apresentam melhorias significativas de desempenho em dados de treinamento gerados por modelos maiores e mais competentes. No entanto, nossos experimentos preliminares sugerem que treinar apenas o Llama 3 405B em seus próprios dados gerados não ajuda (ou até mesmo prejudica o desempenho). Para resolver essa limitação, introduzimos o feedback de execução como uma fonte de verdade que permite que o modelo aprenda com seus erros e permaneça no caminho certo. Em particular, geramos um conjunto de dados de aproximadamente um milhão de diálogos de código sintético usando o seguinte procedimento:

  • Geração de descrição de problemas:Primeiro, geramos um grande conjunto de descrições de problemas de programação que abrange uma variedade de tópicos (incluindo distribuições de cauda longa). Para alcançar essa diversidade, coletamos aleatoriamente trechos de código de várias fontes e solicitamos ao modelo que gerasse problemas de programação com base nesses exemplos. Isso nos permitiu aproveitar uma ampla gama de tópicos e criar um conjunto abrangente de descrições de problemas (Wei et al., 2024).
  • Geração de soluções:Em seguida, solicitamos ao Llama 3 que resolvesse cada problema na linguagem de programação fornecida. Observamos que adicionar boas regras de programação aos prompts melhorou a qualidade das soluções geradas. Além disso, achamos útil pedir ao modelo que explicasse seu processo de pensamento com anotações.
  • Análise da correção: Depois de gerar soluções, é fundamental reconhecer que sua correção não é garantida e que a inclusão de soluções incorretas no conjunto de dados ajustado pode comprometer a qualidade do modelo. Embora não possamos garantir a correção total, desenvolvemos métodos para aproximar a correção. Para isso, pegamos o código-fonte extraído das soluções geradas e aplicamos uma combinação de técnicas de análise estática e dinâmica para testar sua correção, incluindo:
    • Análise estática: Executamos todo o código gerado por meio de um analisador e de ferramentas de verificação de código para garantir a correção sintática, detectando erros de sintaxe, uso de variáveis não inicializadas ou funções não importadas, problemas de estilo de código, erros de tipo etc.
    • Geração e execução de testes unitários: Para cada problema e solução, solicitamos que o modelo gere testes unitários e os execute com a solução em um ambiente de contêiner, detectando erros de execução em tempo de execução e alguns erros semânticos.
  • Feedback de erros e autocorreção iterativa: Quando a solução falha em qualquer etapa, solicitamos ao modelo que a modifique. O aviso contém a descrição original do problema, a solução errada e o feedback do analisador/ferramenta de inspeção de código/programa de teste (saída padrão, erro padrão e código de retorno). Após uma falha na execução de um teste de unidade, o modelo pode corrigir o código para passar nos testes existentes ou modificar seus testes de unidade para se adequar ao código gerado. Somente os diálogos que passam em todas as verificações são incluídos no conjunto de dados final para o ajuste fino supervisionado (SFT). Notavelmente, observamos que aproximadamente 20% das soluções estavam inicialmente incorretas, mas foram autocorrigidas, o que sugere que o modelo aprendeu com o feedback da execução e melhorou seu desempenho.
  • Ajuste fino e aprimoramento iterativo: O processo de ajuste fino ocorre em várias rodadas, sendo que cada rodada se baseia na rodada anterior. Após cada rodada de ajuste fino, o modelo é aprimorado para gerar dados sintéticos de maior qualidade para a próxima rodada. Esse processo iterativo permite refinamentos incrementais e melhorias no desempenho do modelo.

 

2. geração de dados sintéticos: tradução da linguagem de programação. Observamos uma lacuna de desempenho entre as principais linguagens de programação (por exemplo, Python/C++) e as linguagens de programação menos comuns (por exemplo, Typescript/PHP). Isso não é surpreendente, pois temos menos dados de treinamento para linguagens de programação menos comuns. Para atenuar isso, complementaremos os dados disponíveis traduzindo dados de linguagens de programação comuns para linguagens menos comuns (semelhante a Chen et al. (2023) no campo da inferência). Isso é feito solicitando o Llama 3 e garantindo a qualidade por meio de análise sintática, compilação e execução. A Figura 8 mostra um exemplo de código PHP sintético traduzido do Python. Isso melhora significativamente o desempenho de linguagens menos comuns medidas pelo benchmark MultiPL-E (Cassano et al., 2023).

3. geração de dados sintéticos: tradução reversa. Para aprimorar determinados recursos de codificação (por exemplo, documentação, interpretação) em que a quantidade de informações do feedback de execução é insuficiente para determinar a qualidade, usamos outra abordagem em várias etapas. Usando esse processo, geramos aproximadamente 1,2 milhão de diálogos sintéticos relacionados à interpretação, geração, documentação e depuração de código. Começando com trechos de código em várias linguagens dos dados de pré-treinamento:

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

  • Gerar: Solicitamos que o Llama 3 gerasse dados que representassem os recursos-alvo (por exemplo, adicionando comentários e sequências de documentação a um trecho de código ou solicitando que o modelo interpretasse um trecho de código).
  • Tradução reversa. Solicitamos que o modelo faça a "retrotradução" dos dados gerados sinteticamente para o código original (por exemplo, solicitamos que o modelo gere código somente a partir de seus documentos ou solicitamos que o modelo gere código somente a partir de suas explicações).
  • Filtragem. Usando o código original como referência, solicitamos ao Llama 3 que determine a qualidade do resultado (por exemplo, perguntamos ao modelo se o código retrotraduzido é fiel ao código original). Em seguida, usamos o exemplo gerado com a maior pontuação de autovalidação no SFT.

Guia de prompt do sistema para rejeição de amostras. Durante a amostragem de rejeição, usamos dicas de sistema específicas do código para melhorar a legibilidade, a documentação, a integridade e a concretude do código. Lembre-se de que, na Seção 7, esses dados são usados para ajustar o modelo de linguagem. A Figura 9 mostra um exemplo de como as dicas do sistema podem ajudar a melhorar a qualidade do código gerado - ele adiciona os comentários necessários, usa nomes de variáveis mais informativos, economiza memória e assim por diante.

Filtragem de dados de treinamento usando a execução e o modelo como uma rubrica. Conforme descrito na Seção 4.2.3, ocasionalmente encontramos problemas de qualidade nos dados de amostragem rejeitados, como a inclusão de blocos de código errôneos. Detectar esses problemas nos dados de amostragem de rejeição não é tão simples quanto detectar nossos dados de código sintético, porque as respostas de amostragem de rejeição geralmente contêm uma mistura de linguagem natural e código que nem sempre pode ser executável. (Por exemplo, as solicitações do usuário podem pedir explicitamente pseudocódigo ou edições apenas em partes muito pequenas do executável). Para resolver esse problema, utilizamos uma abordagem de "modelo como juiz", em que as versões anteriores do Llama 3 são avaliadas e recebem uma pontuação binária (0/1) com base em dois critérios: correção do código e estilo do código. Somente as amostras com uma pontuação perfeita de 2 foram mantidas. Inicialmente, essa filtragem rigorosa resultou em uma degradação do desempenho do benchmark downstream, principalmente porque removeu desproporcionalmente amostras com dicas desafiadoras. Para neutralizar isso, modificamos estrategicamente algumas das respostas categorizadas como os dados codificados mais desafiadores até que elas atendessem aos critérios de "modelo como juiz" baseados no Llama. Ao melhorar essas perguntas desafiadoras, os dados codificados equilibraram a qualidade e a dificuldade para obter um desempenho downstream ideal.

 

4.3.2 Multilinguismo

Esta seção descreve como aprimoramos os recursos multilíngues da Llama 3, incluindo: treinamento de um modelo especializado em mais dados multilíngues; obtenção e geração de dados ajustados de alta qualidade de comandos multilíngues para alemão, francês, italiano, português, hindi, espanhol e tailandês; e solução dos desafios específicos da inicialização de idiomas multilíngues para melhorar o desempenho geral do nosso modelo.

Treinamento especializado.Nosso mix de dados de pré-treinamento do Llama 3 contém muito mais tokens em inglês do que tokens em outros idiomas. Para coletar anotações humanas de maior qualidade em idiomas diferentes do inglês, treinamos um modelo especializado multilíngue ramificando as execuções de pré-treinamento e continuando o pré-treinamento em um conjunto de dados contendo 901 tokens multilínguesTP3T. Em seguida, pós-treinamos esse modelo especializado, conforme descrito na Seção 4.1. Esse modelo especializado é então usado para coletar anotações humanas não inglesas de maior qualidade até que o pré-treinamento seja totalmente concluído.

Coleta de dados multilíngues.Nossos dados multilíngues de SFT são provenientes principalmente das seguintes fontes. A distribuição geral é de 2,4% de anotações humanas, 44,2% de dados de outras tarefas de NLP, 18,8% de dados de amostragem de rejeição e 34,6% de dados de inferência de tradução.

  • Anotação manual:Coletamos dados de alta qualidade, anotados manualmente por linguistas e falantes nativos. Essas anotações consistem principalmente em dicas abertas que representam casos de uso do mundo real.
  • Dados de outras tarefas de PNL:Para aprimoramento adicional, usamos dados de treinamento multilíngue de outras tarefas e os reescrevemos em formato de diálogo. Por exemplo, usamos dados do exams-qa (Hardalov et al., 2020) e do Conic10k (Wu et al., 2023). Para melhorar o alinhamento do idioma, também usamos textos paralelos da GlobalVoices (Prokopidis et al., 2016) e da Wikimedia (Tiedemann, 2012). Usamos a filtragem baseada em LID e o Blaser 2.0 (Seamless Communication et al., 2023) para remover dados de baixa qualidade. Para os dados de texto paralelo, em vez de usar diretamente pares de textos duplos, aplicamos um modelo multilíngue inspirado em Wei et al. (2022a) para simular melhor os diálogos reais em cenários de tradução e aprendizado de idiomas.
  • Rejeitar dados de amostragem:Aplicamos a amostragem por rejeição a pistas anotadas por humanos para gerar amostras de alta qualidade para ajuste fino, com poucas modificações em comparação com o processo para dados em inglês:
    • Geração: exploramos a seleção aleatória de hiperparâmetros de temperatura na faixa de 0,2 -1 nas primeiras rodadas de pós-treinamento para diversificar a geração. Ao usar altas temperaturas, as respostas às dicas multilíngues podem se tornar criativas e inspiradoras, mas também podem ser propensas à troca de código desnecessária ou não natural. Nos estágios finais do pós-treinamento, usamos um valor constante de 0,6 para equilibrar essa troca. Além disso, usamos dicas especializadas do sistema para melhorar a formatação, a estrutura e a legibilidade geral das respostas.
    • Seleção: antes da seleção baseada no modelo de recompensa, implementamos verificações específicas para vários idiomas a fim de garantir uma alta taxa de correspondências linguísticas entre solicitações e respostas (por exemplo, não se deve esperar que solicitações em hindi romanizado sejam respondidas usando scripts em hindi sânscrito).
  • Dados de tradução:Tentamos evitar o uso de dados de tradução automática para ajustar o modelo para evitar o surgimento de inglês transliterado (Bizzoni et al., 2020; Muennighoff et al., 2023) ou possível viés de nome (Wang et al., 2022a), viés de gênero (Savoldi et al., 2021) ou viés cultural (Ji et al., 2023). . Além disso, nosso objetivo era evitar que o modelo fosse exposto apenas a tarefas enraizadas em contextos culturais de língua inglesa, que podem não ser representativos da diversidade linguística e cultural que pretendíamos capturar. Fizemos uma exceção a isso e traduzimos os dados de raciocínio quantitativo sintetizados (consulte a Seção 4.3.3 para obter mais informações) para outro idioma que não o inglês para melhorar o desempenho do raciocínio quantitativo em idiomas que não o inglês. Devido à natureza simples da linguagem desses problemas matemáticos, verificou-se que as amostras traduzidas apresentavam poucos problemas de qualidade. Observamos ganhos significativos ao adicionar esses dados traduzidos ao MGSM (Shi et al., 2022).

 

4.3.3 Matemática e raciocínio

Definimos raciocínio como a capacidade de realizar um cálculo de várias etapas e chegar à resposta final correta.

Vários desafios orientaram nossa abordagem para treinar modelos que se destacam no raciocínio matemático:

  • Falta de dicas. À medida que a complexidade do problema aumenta, o número de dicas ou problemas válidos para o ajuste fino supervisionado (SFT) diminui. Essa escassez dificulta a criação de conjuntos de dados de treinamento diversificados e representativos para ensinar aos modelos várias habilidades matemáticas (Yu et al. 2023; Yue et al. 2023; Luo et al. 2023; Mitra et al. 2024; Shao et al. 2024; Yue et al. 2024b).
  • Falta de processos reais de raciocínio. O raciocínio eficaz requer soluções passo a passo para facilitar o processo de raciocínio (Wei et al., 2022c). Entretanto, muitas vezes faltam processos de raciocínio realistas que são essenciais para orientar o modelo sobre como decompor progressivamente o problema e chegar à resposta final (Zelikman et al., 2022).
  • Etapa intermediária incorreta. Ao usar cadeias de inferência geradas por modelos, as etapas intermediárias podem nem sempre estar corretas (Cobbe et al. 2021; Uesato et al. 2022; Lightman et al. 2023; Wang et al. 2023a). Essa imprecisão pode levar a respostas finais incorretas e precisa ser resolvida.
  • Treinamento do modelo usando ferramentas externas. A capacidade de aprimorar os modelos para utilizar ferramentas externas, como interpretadores de código, permite que eles raciocinem entrelaçando código e texto (Gao et al. 2023; Chen et al. 2022; Gou et al. 2023). Essa capacidade pode melhorar significativamente suas habilidades de resolução de problemas.
  • Diferenças entre treinamento e raciocínio: o A maneira como os modelos são ajustados durante o treinamento geralmente difere da maneira como são usados durante o raciocínio. Durante o raciocínio, o modelo ajustado pode interagir com seres humanos ou outros modelos e requerer feedback para melhorar seu raciocínio. Garantir a consistência entre o treinamento e os aplicativos do mundo real é fundamental para manter o desempenho da inferência.

Para enfrentar esses desafios, aplicamos a seguinte metodologia:

  • Resolver a falta de pistas. Pegamos dados de pré-treinamento relevantes de contextos matemáticos e os convertemos em um formato de pergunta-resposta que pode ser usado para o ajuste fino supervisionado. Além disso, identificamos as habilidades matemáticas em que o modelo tem um desempenho ruim e coletamos ativamente dicas de humanos para ensinar ao modelo essas habilidades. Para facilitar esse processo, criamos uma taxonomia de habilidades matemáticas (Didolkar et al., 2024) e pedimos aos humanos que forneçam os prompts/perguntas correspondentes.
  • Aumento dos dados de treinamento com etapas de raciocínio passo a passo. Usamos o Llama 3 para gerar soluções passo a passo para um conjunto de dicas. Para cada solicitação, o modelo produz um número variável de resultados gerados. Esses resultados gerados são então filtrados com base nas respostas corretas (Li et al., 2024a). Também realizamos a autovalidação, em que o Llama 3 é usado para verificar se uma determinada solução passo a passo é válida para um determinado problema. Esse processo melhora a qualidade dos dados ajustados, eliminando instâncias em que o modelo não produz trajetórias de inferência válidas.
  • Filtragem de etapas de raciocínio defeituoso. Treinamos resultados e modelos de recompensa por etapas (Lightman et al., 2023; Wang et al., 2023a) para filtrar dados de treinamento com etapas de inferência intermediárias incorretas. Esses modelos de recompensa são usados para eliminar dados com inferência por etapas inválida, garantindo que o ajuste fino produza dados de alta qualidade. Para pistas mais desafiadoras, usamos o Monte Carlo Tree Search (MCTS) com modelos de recompensa por etapas aprendidos para gerar trajetórias de inferência válidas, o que aumenta ainda mais a coleta de dados de inferência de alta qualidade (Xie et al., 2024).
  • Entrelaçamento de códigos e raciocínio textual. Sugerimos que a Llama 3 resolva o problema de inferência por meio de uma combinação de inferência textual e seu código Python associado (Gou et al., 2023). A execução do código é usada como um sinal de feedback para eliminar casos em que a cadeia de inferência é inválida e para garantir a correção do processo de inferência.
  • Aprendendo com o feedback e os erros. Para simular o feedback humano, utilizamos resultados de geração incorretos (ou seja, resultados de geração que levam a trajetórias de inferência incorretas) e fazemos correções de erros solicitando à Llama 3 que gere resultados de geração corretos (An et al. 2023b; Welleck et al. 2022; Madaan et al. 2024a). O processo autoiterativo de usar o feedback de tentativas incorretas e corrigi-las ajuda a melhorar a capacidade do modelo de raciocinar com precisão e aprender com seus erros.

 

4.3.4 Contextos longos

Na fase final de pré-treinamento, ampliamos o comprimento do contexto da Llama 3 de 8K para 128K tokens (consulte a Seção 3.4 para obter mais informações sobre isso). Semelhante ao pré-treinamento, descobrimos que, durante o ajuste fino, a formulação teve de ser cuidadosamente ajustada para equilibrar os recursos de contexto curto e longo.

SFT e geração de dados sintéticos. A simples aplicação de nossa formulação SFT existente usando apenas dados de contexto curto resultou em uma redução significativa na capacidade de contexto longo no pré-treinamento, destacando a necessidade de incorporar dados de contexto longo no portfólio de dados SFT. Na prática, porém, é impraticável ter a maioria desses exemplos rotulados manualmente, pois a leitura de contextos longos é tediosa e demorada, por isso dependemos muito de dados sintéticos para preencher essa lacuna. Usamos uma versão anterior do Llama 3 para gerar dados sintéticos com base nos principais casos de uso de contextos longos: (potencialmente várias rodadas de) perguntas e respostas, resumos de documentos longos e raciocínio sobre a base de código, e descrevemos esses casos de uso em mais detalhes abaixo.

  • PERGUNTAS E RESPOSTAS: Selecionamos cuidadosamente um conjunto de documentos longos do conjunto de dados de pré-treinamento. Dividimos esses documentos em 8 mil partes rotuladas e solicitamos uma versão anterior do modelo Llama 3 para gerar pares de QA em partes selecionadas aleatoriamente. O documento inteiro é usado como contexto durante o treinamento.
  • Resumos: Aplicamos o resumo hierárquico de documentos de contexto longo usando primeiro nosso modelo de contexto Llama 3 8K mais forte para resumir hierarquicamente blocos de 8K de comprimento de entrada. Em seguida, esses resumos são agregados. Durante o treinamento, fornecemos o documento completo e solicitamos ao modelo que faça o resumo do documento preservando todos os detalhes importantes. Também geramos pares de controle de qualidade com base nos resumos dos documentos e solicitamos ao modelo perguntas que exigem uma compreensão global de todo o documento longo.
  • Raciocínio de código de contexto longo: Analisamos os arquivos Python para identificar instruções de importação e determinar suas dependências. A partir daí, selecionamos os arquivos mais usados, especificamente aqueles que são referenciados por pelo menos cinco outros arquivos. Removemos um desses arquivos principais do repositório e solicitamos que o modelo identifique as dependências dos arquivos ausentes e gere o código necessário.

Além disso, classificamos essas amostras geradas sinteticamente de acordo com o comprimento da sequência (16K, 32K, 64K e 128K) para uma localização mais precisa do comprimento da entrada.

Por meio de experimentos de ablação cuidadosos, observamos que a mistura dos dados de contexto longo gerados sinteticamente de 0,1% com os dados de contexto curto originais otimiza o desempenho dos testes de benchmark de contexto curto e longo.

DPO. Observamos que o uso apenas de dados de treinamento de contexto curto no DPO não afeta negativamente o desempenho de contexto longo, desde que o modelo SFT funcione bem para tarefas de contexto longo. Suspeitamos que isso se deve ao fato de nossa formulação de DPO ter menos etapas de otimização do que a SFT. Levando em conta essa descoberta, mantemos a formulação padrão de DPO de contexto curto sobre os pontos de verificação de SFT de contexto longo.

 

4.3.5 Uso de ferramentas

Ensinar grandes modelos de linguagem (LLMs) a usar ferramentas como mecanismos de busca ou interpretadores de código pode expandir muito a gama de tarefas que eles podem resolver, transformando-os de modelos puramente tagarelas em assistentes mais versáteis (Nakano et al. 2021; Thoppilan et al. 2022; Parisi et al. 2022; Gao et al. 2023 2022; Parisi et al. 2022; Gao et al. 2023; Mialon et al. 2023a; Schick et al. 2024). Treinamos o Llama 3 para interagir com as seguintes ferramentas:

  • O Llama 3 foi treinado para usar o Brave Search7 para responder a perguntas sobre eventos recentes após o prazo de conhecimento ou solicitações que exigem a recuperação de informações específicas da Web.
  • O Llama 3 gera e executa código para realizar cálculos complexos, lê arquivos carregados pelo usuário e resolve tarefas com base nesses arquivos, como questionários, resumos, análise ou visualização de dados.
  • Mecanismo de computação matemática. O Llama 3 pode usar a API8 do Wolfram Alpha para resolver problemas matemáticos e científicos com mais precisão, ou para recuperar informações precisas dos bancos de dados do Wolfram.

O modelo gerado é capaz de usar essas ferramentas em configurações de bate-papo para resolver consultas de usuários, incluindo diálogos de várias rodadas. Se a consulta exigir várias invocações das ferramentas, o modelo pode escrever planos passo a passo que invocam as ferramentas sequencialmente e raciocinam após cada invocação de ferramenta.

Também aprimoramos os recursos de uso de ferramentas de amostra zero do Llama 3 - com definições de ferramentas potencialmente não vistas e consultas de usuários em uma configuração contextual, treinamos o modelo para gerar as chamadas de ferramentas corretas.

Realização.Implementamos as principais ferramentas como objetos Python com diferentes métodos. As ferramentas de amostra zero podem ser implementadas como funções Python com descrições e documentação (ou seja, exemplos de como usá-las), e o modelo só precisa da assinatura da função e da docstring como contexto para gerar as chamadas apropriadas.

Também convertemos definições e chamadas de funções para o formato JSON, por exemplo, para chamadas de API da Web. Todas as chamadas de ferramentas são executadas pelo interpretador Python, que deve ser ativado no prompt do sistema do Llama 3. As ferramentas principais podem ser ativadas ou desativadas separadamente no prompt do sistema.

Coleta de dados.Ao contrário de Schick et al. (2024), contamos com anotações e preferências humanas para ensinar a Llama 3 a usar as ferramentas. Isso difere do pipeline de pós-treinamento normalmente usado na Llama 3 de duas maneiras principais:

  • Com relação às ferramentas, os diálogos geralmente contêm mais de uma mensagem de assistente (por exemplo, invocar uma ferramenta e raciocinar sobre o resultado da ferramenta). Portanto, realizamos a anotação em nível de mensagem para coletar feedback detalhado: o anotador fornece preferências para duas mensagens de assistente no mesmo contexto ou edita uma das mensagens se houver um grande problema com ambas. A mensagem selecionada ou modificada é então adicionada ao contexto e o diálogo continua. Isso fornece feedback humano sobre a capacidade do assistente de invocar a ferramenta e raciocinar sobre o resultado da ferramenta. O anotador não pode classificar ou editar o resultado da ferramenta.
  • Não realizamos amostragem de rejeição porque não foram observados ganhos em nosso benchmarking de instrumentos.

Para acelerar o processo de anotação, primeiro inicializamos os recursos básicos de uso da ferramenta com o ajuste fino dos dados sintéticos dos pontos de verificação anteriores do Llama 3. Dessa forma, o anotador precisará realizar menos operações de edição. Da mesma forma, à medida que a Llama 3 melhora com o tempo durante o desenvolvimento, complicamos progressivamente nosso protocolo de anotação humana: começamos com uma única rodada de anotação do uso da ferramenta, depois passamos para o uso da ferramenta no diálogo e, por fim, anotamos o uso da ferramenta em várias etapas e a análise de dados.

Conjunto de dados de ferramentas.Para criar dados para uso em aplicativos que utilizam ferramentas, seguimos as seguintes etapas.

  • Uso da ferramenta em uma única etapa. Primeiro, realizamos uma pequena quantidade de geração de amostras para sintetizar as solicitações do usuário que, por construção, exigem uma chamada para uma de nossas principais ferramentas (por exemplo, uma pergunta que excede nosso prazo de conhecimento). Em seguida, ainda com base em uma pequena quantidade de geração de amostras, geramos chamadas de ferramentas apropriadas para essas dicas, as executamos e adicionamos a saída ao contexto do modelo. Por fim, solicitamos novamente que o modelo gere uma resposta final à consulta do usuário com base na saída da ferramenta. Acabamos com trajetórias da seguinte forma: dicas do sistema, dicas do usuário, chamadas de ferramentas, resultados de ferramentas e respostas finais. Também filtramos aproximadamente 30% do conjunto de dados para remover chamadas de ferramentas não aplicáveis ou outros problemas de formatação.
  • Uso de ferramentas em várias etapas. Seguimos um protocolo semelhante, primeiro gerando dados sintéticos para ensinar ao modelo os recursos básicos de uso de ferramentas. Para isso, primeiro solicitamos ao Llama 3 que gere dicas de usuário que exijam pelo menos duas invocações de ferramentas (da mesma ferramenta ou de ferramentas diferentes em nosso conjunto principal). Em seguida, com base nessas dicas, executamos um pequeno número de amostras para solicitar que a Llama 3 gere uma solução que consista em etapas de inferência e chamadas de ferramentas entrelaçadas, semelhante à ReAct (Yao et al., 2022). Veja na Figura 10 um exemplo da Lhama 3 realizando uma tarefa que envolve o uso de ferramentas em várias etapas.
  • Upload de arquivos. Anotamos os seguintes tipos de arquivo: .txt, .docx, .pdf, .pptx, .xlsx, .csv, .tsv, .py, .json, .jsonl, .html, .xml. Nossos prompts são baseados nos arquivos fornecidos e pedem para resumir o conteúdo dos arquivos, encontrar e corrigir bugs, otimizar os trechos de código e realizar análises ou visualizações de dados. A Figura 11 mostra um exemplo da Llama 3 executando uma tarefa que envolve uploads de arquivos.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Após o ajuste fino desses dados sintéticos, coletamos anotações humanas de diversos cenários, incluindo várias rodadas de interações, uso de ferramentas além de três etapas e situações em que as invocações de ferramentas não produziram respostas satisfatórias. Aumentamos os dados sintéticos com diferentes dicas do sistema para ensinar o modelo a usar ferramentas somente quando ativadas. Para treinar o modelo a evitar chamadas de ferramentas para consultas simples, também adicionamos consultas e suas respostas de conjuntos de dados fáceis de calcular ou de perguntas e respostas (Berant et al. 2013; Koncel-Kedziorski et al. 2016; Joshi et al. 2017; Amini et al. 2019), que não usam a ferramenta, mas nos quais as dicas do sistema ativaram a ferramenta.

Zero Sample Tool Usage Data (dados de uso de ferramenta de amostra zero). Aprimoramos a capacidade do Llama 3 de usar ferramentas de amostra zero (também conhecidas como chamadas de função) por meio do ajuste fino de um conjunto grande e diversificado de composições parciais (definições de função, consultas do usuário, chamadas correspondentes). Avaliamos nosso modelo em uma coleção de ferramentas não vistas.

  • Chamadas de função simples, aninhadas e paralelas: As chamadas podem ser simples, aninhadas (ou seja, passamos as chamadas de função como argumentos para outra função) ou paralelas (ou seja, o modelo retorna uma lista de chamadas de função independentes). Gerar uma variedade de funções, consultas e resultados reais pode ser um desafio (Mekala et al., 2024), e contamos com a mineração da pilha (Kocetkov et al., 2022) para basear nossas consultas de usuários sintéticos em funções reais. Mais precisamente, extraímos as chamadas de função e suas definições, limpamos e filtramos (por exemplo, cadeias de documentos ausentes ou funções não executáveis) e usamos o Llama 3 para gerar consultas em linguagem natural correspondentes às chamadas de função.
  • Chamadas de função de várias rodadas: Também geramos dados sintéticos para diálogos de várias rodadas contendo chamadas de função, seguindo um protocolo semelhante ao apresentado em Li et al. (2023b). Usamos vários agentes para gerar domínios, APIs, consultas de usuários, chamadas de API e respostas, garantindo que os dados gerados abranjam uma gama de diferentes domínios e APIs reais. Todos os agentes são variantes do Llama 3, promovidos de uma forma que depende de suas responsabilidades e colaboram de maneira gradual.

 

4.3.6 Fatos

A irrealidade continua sendo um grande desafio para modelos de linguagem de grande porte. Os modelos tendem a ter excesso de confiança, mesmo em domínios em que não têm conhecimento. Apesar dessas deficiências, eles são frequentemente usados como bases de conhecimento, o que pode levar a resultados perigosos, como a disseminação de informações errôneas. Embora reconheçamos que a veracidade transcende a ilusão, adotamos aqui uma abordagem que coloca a ilusão em primeiro lugar.

 

Llama 3: uma família versátil e de código aberto de modelos de IA

 

Llama 3: uma família versátil e de código aberto de modelos de IA

Figura 11 Processamento de upload de arquivo. O exemplo mostra como a Llama 3 analisa e visualiza um arquivo carregado.

 

Seguimos o princípio de que o pós-treinamento deve alinhar o modelo com "saber o que ele sabe" em vez de adicionar conhecimento (Gekhman et al., 2024; Mielke et al., 2020). Nossa principal abordagem envolve a geração de dados que alinham a geração do modelo com um subconjunto dos dados reais presentes nos dados de pré-treinamento. Para isso, desenvolvemos uma técnica de detecção de conhecimento que utiliza os recursos contextuais do Llama 3. Esse processo de geração de dados consiste nas seguintes etapas:

  1. Extraia um segmento de dados dos dados de pré-treinamento.
  2. Gere perguntas factuais sobre esses segmentos (contextos) solicitando a Llama 3.
  3. Exemplos de respostas a essa pergunta da Lhama 3.
  4. O contexto original foi usado como referência e o Llama 3 foi usado como juiz para pontuar a correção da geração.
  5. Use o Llama 3 como avaliador para pontuar a riqueza gerada.
  6. Gerar motivos de rejeição para respostas que sejam consistentemente informativas e incorretas em várias gerações e usar o Llama 3

Usamos dados gerados a partir de sondas de conhecimento para incentivar o modelo a responder somente às perguntas que ele conhece e a se recusar a responder às perguntas sobre as quais não tem certeza. Além disso, os dados de pré-treinamento nem sempre são factualmente consistentes ou corretos. Portanto, também coletamos um conjunto limitado de dados de veracidade rotulados que tratavam de tópicos delicados em que havia muitas declarações factualmente contraditórias ou incorretas.

 

4.3.7 Capacidade de controle

Controlabilidade é a capacidade de direcionar o comportamento e os resultados do modelo para atender às necessidades dos desenvolvedores e usuários. Como a Llama 3 é um modelo básico genérico, deve ser fácil direcioná-la para diferentes casos de uso posteriores. Para melhorar a capacidade de controle da Llama 3, concentramo-nos em melhorar sua capacidade de controle por meio de prompts do sistema (usando comandos de linguagem natural), especialmente no que diz respeito à duração da resposta, formatação, tom de voz e configuração de função/personagem.

Coleta de dados. Coletamos amostras de preferência de controlabilidade na categoria General English pedindo aos anotadores que criassem diferentes prompts de sistema para o Llama 3. Em seguida, o anotador envolveu o modelo em um diálogo para avaliar se o modelo era capaz de seguir consistentemente as instruções definidas nos prompts do sistema durante o diálogo. A seguir, exemplos de prompts personalizados do sistema usados para aumentar a capacidade de controle:

"Você é um chatbot de IA útil e enérgico que serve como assistente de planejamento de refeições para famílias ocupadas. As refeições do dia de trabalho devem ser rápidas e fáceis. Alimentos de conveniência, como cereais, muffins ingleses com bacon pré-cozido e outros alimentos rápidos e fáceis de fazer devem ser priorizados no café da manhã e no almoço. Essa família é ocupada. Não deixe de perguntar se eles têm à mão alimentos essenciais e bebidas favoritas, como café ou energéticos, para que não se esqueçam de comprá-los. A menos que seja uma ocasião especial, lembre-se de economizar em seu orçamento."

Modelagem. Depois de coletar os dados de preferência, usamos esses dados para modelagem de recompensa, amostragem de rejeição, SFT (ajuste fino contínuo) e DPO (otimização de parâmetros orientada por dados) para aumentar a capacidade de controle da Llama 3.

 

 

5 Resultados

 

Realizamos uma série extensa de avaliações da Llama 3, investigando o desempenho de (1) modelos de linguagem pré-treinados, (2) modelos de linguagem pós-treinados e (3) os recursos de segurança da Llama 3. Apresentamos os resultados dessas avaliações em subseções separadas abaixo.

 

5.1 Pré-treinamento de modelos de linguagem

Nesta seção, relatamos os resultados da avaliação do Llama 3 pré-treinado (Parte III) e os comparamos com outros modelos de tamanho comparável. Reproduziremos os resultados dos modelos concorrentes na medida do possível. Para modelos que não sejam da Llama, informaremos as melhores pontuações em resultados relatados publicamente ou (quando possível) em resultados que nós mesmos reproduzimos. Detalhes específicos dessas avaliações, incluindo configurações como contagens de disparos, métricas e outros hiperparâmetros e configurações relevantes, estão disponíveis em nosso repositório do Github: [inserir link aqui]. Além disso, também publicaremos os dados gerados como parte das avaliações públicas de benchmarking, que podem ser encontradas aqui: [inserir link aqui].

Avaliaremos a qualidade do modelo em relação aos padrões de referência (Seção V 5.1.1), testaremos a robustez das alterações nas configurações de múltipla escolha (Seção V 5.1.2) e realizaremos avaliações adversárias (Seção V 5.1.3). Também realizaremos análises de contaminação para estimar até que ponto a contaminação dos dados de treinamento afeta nossa avaliação (Seção V 5.1.4).

 

5.1.1 Referências padrão

Para comparar nosso modelo com o estado da arte atual, avaliamos o Llama 3 em um grande número de testes de benchmark padrão, que são mostrados abaixo:

(1) raciocínio de senso comum; (2) conhecimento; (3) compreensão de leitura; (4) matemática, raciocínio e solução de problemas; (5) contexto longo; (6) código; (7) avaliação contraditória; e (8) avaliação geral.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Configuração experimental.Para cada benchmark, calculamos as pontuações da Llama 3, bem como as pontuações de outros modelos pré-treinados com tamanhos comparáveis. Sempre que possível, recalculamos os dados de outros modelos usando nosso próprio pipeline. Para garantir uma comparação justa, escolhemos a melhor pontuação que temos entre os dados calculados e os números informados por esse modelo (usando as mesmas configurações ou configurações mais conservadoras). Você pode encontrar informações mais detalhadas sobre nossas configurações de avaliação aqui. Para alguns modelos, não é possível recalcular os valores de referência, por exemplo, devido a modelos pré-treinados não publicados ou porque a API não fornece acesso às probabilidades de registro. Isso se aplica, em particular, a todos os modelos comparáveis ao Llama 3 405B. Portanto, não informamos as médias das categorias para o Llama 3 405B, pois seria necessário que todos os valores de referência estivessem disponíveis.

Valor de significância.Ao calcular as pontuações de benchmarking, há várias fontes de variação que podem levar a estimativas imprecisas do desempenho do modelo que o benchmarking pretende medir, como um pequeno número de demonstrações, sementes aleatórias e tamanhos de lote. Isso torna difícil entender se um modelo é estatisticamente significativamente melhor do que outro. Portanto, informamos as pontuações juntamente com os intervalos de confiança (ICs) do 95% para refletir a variação introduzida pela escolha dos dados de referência. Calculamos o IC do 95% analiticamente usando a fórmula (Madaan et al., 2024b):

Llama 3: uma família versátil e de código aberto de modelos de IA-1

CI_analytic(S) = 1,96 * sqrt(S * (1 - S) / N)

em que S é a pontuação de referência preferida e N é o tamanho da amostra da referência. Observamos que, como a variação nos dados da referência não é a única fonte de variação, esses ICs do 95% são limites inferiores da variação da estimativa de capacidade real. Para indicadores que não são médias simples, os ICs serão omitidos.

Resultados dos modelos Llama 3 8B e 70B.A Figura 12 mostra o desempenho médio da Llama 3 8B e da 70B nos testes de Raciocínio de Senso Comum, Conhecimento, Compreensão de Leitura, Matemática e Raciocínio e Avaliação de Código. Os resultados mostram que a Llama 3 8B supera os modelos concorrentes em quase todas as categorias, tanto em termos de vitórias na categoria quanto de desempenho médio por categoria. Também descobrimos que o Llama 3 70B melhora substancialmente o desempenho em relação ao seu antecessor, o Llama 2 70B, na maioria dos benchmarks, com exceção dos benchmarks de senso comum, que podem estar saturados. O Llama 3 70B também supera o Mixtral 8x22B.

Resultados dos modelos 8B e 70B.A Figura 12 mostra o desempenho médio da Llama 3 8B e 70B nos testes Common Sense Reasoning, Knowledge, Reading Comprehension, Maths & Reasoning e Code Benchmark. Os resultados mostram que a Llama 3 8B supera os modelos concorrentes em quase todas as categorias, tanto em termos de taxa de vitória por categoria quanto de desempenho médio por categoria. Também descobrimos que o Llama 3 70B é uma melhoria significativa em relação ao seu antecessor, o Llama 2 70B, na maioria dos benchmarks, com exceção do Common Sense Benchmark, que pode ter atingido a saturação. O Llama 3 70B também supera o Mixtral 8x22B.

Resultados detalhados para todos os modelos.As tabelas 9, 10, 11, 12, 13 e 14 mostram o desempenho do teste de benchmark dos modelos pré-treinados Llama 3 8B, 70B e 405B em uma tarefa de compreensão de leitura, uma tarefa de codificação, uma tarefa de compreensão de conhecimentos gerais, uma tarefa de raciocínio matemático e uma tarefa de rotina. Essas tabelas comparam o desempenho da Llama 3 com modelos de tamanho semelhante. Os resultados mostram que a Llama 3 405B é competitiva em sua categoria e, especialmente, supera em muito os modelos de código aberto anteriores. Para testes com contextos longos, fornecemos resultados mais abrangentes (incluindo tarefas de detecção, como agulha no palheiro) na Seção 5.2.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

5.1.2 Robustez do modelo

Além do desempenho de benchmarking, a robustez é um fator importante na qualidade dos modelos de linguagem pré-treinados. Investigamos a robustez das escolhas de design feitas por modelos de linguagem pré-treinados em configurações de perguntas de múltipla escolha (MCQ). Estudos anteriores mostraram que o desempenho do modelo pode ser sensível a escolhas de design aparentemente arbitrárias nessas configurações, por exemplo, as pontuações do modelo e até mesmo as classificações podem mudar com a ordem e a rotulagem dos exemplos contextuais (Lu et al. 2022; Zhao et al. 2021; Robinson e Wingate 2023; Liang et al. 2022; Gupta et al. 2024), o formato exato dos prompts (Weber et al., 2023b; Mishra et al., 2022) ou o formato e a ordem das opções de resposta (Alzahrani et al., 2024; Wang et al., 2024a; Zheng et al., 2023). Inspirados por esse trabalho, usamos o benchmark MMLU para avaliar a robustez do modelo pré-treinado para (1) viés de rotulagem de poucos disparos, (2) variantes de rotulagem, (3) ordem das respostas e (4) formato da pista:

  • Alguns rótulos de lentes estão fora do lugar. Seguindo Zheng et al. (2023), ... (detalhes experimentais e descrição dos resultados omitidos aqui).
  • Variantes de rótulos. Também investigamos a resposta do modelo a diferentes conjuntos de tokens selecionados. Consideramos dois conjuntos de tags propostos por Alzahrani et al. (2024): a saber, um conjunto de tags comuns independentes do idioma ($ & # @) e um conjunto de tags raras (oe § з ü) que não têm nenhuma ordem relativa implícita. Também consideramos duas versões de tags canônicas (A. B. C. D. e A) B) C) D)) e uma lista de números (1. 2. 3. 4.).
  • Ordem das respostas. Seguindo Wang et al. (2024a), calculamos a estabilidade dos resultados sob diferentes ordens de resposta. Para isso, remapeamos todas as respostas no conjunto de dados de acordo com uma permutação fixa. Por exemplo, para as permutações A B C D, todas as opções de resposta rotuladas como A e B mantêm seus rótulos, enquanto todas as opções de resposta rotuladas como C adquirem o rótulo D e vice-versa.
  • Formato do taco. Avaliamos as diferenças de desempenho entre cinco dicas de tarefas que diferiam na quantidade de informações que continham: uma dica simplesmente solicitava que o modelo respondesse à pergunta, enquanto outras afirmavam a experiência do modelo ou que ele deveria escolher a melhor resposta.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

Tabela 11 Desempenho de modelos pré-treinados em uma tarefa de compreensão de conhecimento geral. Os resultados incluem intervalos de confiança de 95%.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

Tabela 12 Desempenho de modelos pré-treinados em tarefas matemáticas e de raciocínio. Os resultados incluem intervalos de confiança de 95%. 11 fotos.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

Tabela 13 Desempenho de modelos pré-treinados em tarefas de linguagem de uso geral. Os resultados incluem intervalos de confiança de 95%.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

Fig. 13 Robustez do nosso modelo de linguagem pré-treinado em relação a diferentes opções de design no benchmarking MMLU. Lado esquerdo: desempenho com diferentes variantes de rotulagem. Lado direito: desempenho na presença de rótulos diferentes no exemplo sem amostra.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

Fig. 14 Robustez do nosso modelo de linguagem pré-treinado em relação a diferentes opções de design no teste de referência MMLU. Lado esquerdo: desempenho para diferentes ordens de resposta. Lado direito: desempenho para diferentes formatos de prompt.

 

A Figura 13 ilustra os resultados de nossos experimentos que investigam a robustez do desempenho do modelo para variantes de rótulos (esquerda) e viés de rótulos de poucas tentativas (direita). Os resultados mostram que nosso modelo de linguagem pré-treinado é muito robusto para variações de rótulos de MCQ, bem como para a estrutura de rótulos de dicas de poucas tentativas. Essa robustez é particularmente evidente para o modelo paramétrico 405B.

A Figura 14 ilustra os resultados de nossos estudos sobre a robustez da ordem das respostas e do formato das dicas. Esses resultados enfatizam ainda mais a robustez do desempenho de nossos modelos de linguagem pré-treinados, em especial a robustez do Llama 3 405B.

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

5.1.3 Benchmarking adversarial

Além dos testes de benchmark mencionados acima, avaliamos vários benchmarks adversários em três domínios: perguntas e respostas, raciocínio matemático e detecção de reescrita de frases. Esses testes foram projetados para sondar a capacidade do modelo em tarefas especificamente projetadas para serem desafiadoras e podem apontar problemas de ajuste excessivo do modelo nos testes de referência.

  • Perguntas e respostasPara o SQuAD, usamos o Adversarial SQuAD (Jia e Liang, 2017) e o Dynabench SQuAD (Kiela et al., 2021).
  • Raciocínio matemáticoUsamos o GSM-Plus (Li et al., 2024c).
  • Aspectos de teste de reescrita de frasesusamos o PAWS (Zhang et al., 2019).

A Figura 15 mostra as pontuações da Llama 3 8B, 70B e 405B nos testes de benchmark contraditórios como uma função de seu desempenho nos testes de benchmark não contraditórios. Os testes de referência não contraditórios que usamos são SQuAD para perguntas e respostas (Rajpurkar et al., 2016), GSM8K para raciocínio matemático e QQP para detecção de reescrita de frases (Wang et al., 2017). Cada ponto de dados representa um conjunto de dados contraditório e um par de conjuntos de dados não contraditório (por exemplo, QQP emparelhado com PAWS), e mostramos todos os emparelhamentos possíveis dentro da categoria. A linha preta na diagonal indica a paridade entre os conjuntos de dados contraditórios e não contraditórios - onde a linha indica que o modelo tem desempenho semelhante, independentemente de ser contraditório ou não contraditório.

Em termos de detecção da prosódia da frase, nem os modelos pré-treinados nem os pós-treinados parecem ser afetados pela natureza contraditória dos construtos do PAWS, o que representa uma grande melhoria em relação à geração anterior de modelos. Esse resultado confirma as descobertas de Weber et al. (2023a), que também descobriram que os modelos de linguagem grandes são menos sensíveis a correlações espúrias em vários conjuntos de dados contraditórios. No entanto, para raciocínio matemático e perguntas e respostas, o desempenho contraditório é significativamente inferior ao desempenho não contraditório. Esse padrão se aplica tanto aos modelos pré-treinados quanto aos pós-treinados.

 

5.1.4 Análise da poluição

Realizamos uma análise de contaminação para estimar o grau em que as pontuações de benchmark podem ser afetadas pela contaminação dos dados de avaliação no corpus de pré-treinamento. Alguns trabalhos anteriores usaram uma variedade de métodos de contaminação e hiperparâmetros diferentes - referimo-nos ao estudo de Singh et al. (2024). Os resultados mostram que nosso modelo de linguagem pré-treinado é muito robusto para variações na rotulagem de perguntas de múltipla escolha, bem como para variações na estrutura de rótulos com menos amostras (descrito em 2024). Falsos positivos e falsos negativos podem ocorrer com qualquer uma dessas abordagens, e a melhor forma de realizar análises de contaminação ainda é uma área aberta de pesquisa. Aqui, seguimos principalmente as recomendações de Singh et al. (2024).

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Métodos:Especificamente, Singh et al. (2024) sugerem a escolha empírica de um método de detecção de contaminação com base em qual método leva à maior diferença entre o conjunto de dados "limpo" e o conjunto de dados inteiro, que eles chamam de ganho de desempenho estimado. Para todos os conjuntos de dados de avaliação, pontuamos com base na sobreposição de 8 gramas, que Singh et al. (2024) descobriram ser precisa para muitos conjuntos de dados. Consideramos que um exemplo do conjunto de dados D está contaminado se sua rotulagem TD de uma proporção deles aparecem pelo menos uma vez no corpus de pré-treinamento. Selecionamos individualmente para cada conjunto de dados TDdependendo de qual valor mostra o ganho de desempenho estimado máximo significativo (nos três tamanhos de modelo).

Resultados:A Tabela 15 mostra a porcentagem dos dados de avaliação de todos os principais benchmarks que são considerados contaminados para o ganho máximo de desempenho estimado, conforme descrito acima. Dessa tabela, excluímos os valores de benchmark em que os resultados não eram significativos, por exemplo, devido ao número insuficiente de amostras limpas ou contaminadas agrupadas, ou em que as estimativas de ganho de desempenho observadas apresentavam comportamento extremamente errático.

Na Tabela 15, podemos ver que, em alguns conjuntos de dados, a contaminação tem um grande impacto, enquanto em outros não. Por exemplo, para PiQA e HellaSwag, tanto a estimativa de contaminação quanto a estimativa de ganho de desempenho são altas. Por outro lado, no caso do Natural Questions, a contaminação estimada do 52% parece não ter quase nenhum efeito sobre o desempenho. Para SQuAD e MATH, os limites baixos resultam em altos níveis de contaminação, mas nenhum ganho de desempenho. Isso sugere que a contaminação pode não ser útil para esses conjuntos de dados ou que é necessário um n maior para obter melhores estimativas. Por fim, para MBPP, HumanEval, MMLU e MMLU-Pro, outros métodos de detecção de contaminação podem ser necessários: mesmo com limites mais altos, a sobreposição de 8 gramas fornece pontuações de contaminação tão altas que não é possível obter boas estimativas de ganho de desempenho.

 

5.2 Ajuste fino do modelo de linguagem

Mostramos os resultados do modelo Llama 3 após o treinamento em testes de referência de diferentes recursos. Semelhante ao pré-treinamento, publicamos os dados gerados como parte de nossa avaliação em benchmarks publicamente disponíveis que podem ser encontrados no Huggingface (insira o link aqui). Informações mais detalhadas sobre nossa configuração de avaliação podem ser encontradas aqui (insira o link aqui).

Benchmarking e indicadores.A Tabela 16 resume todos os testes de referência, categorizados por habilidade. Descontaminaremos os dados pós-treinamento fazendo correspondências exatas com as dicas em cada teste de referência. Além dos testes de referência acadêmicos padrão, também realizamos uma avaliação manual extensa de diferentes habilidades. Consulte a Seção 5.3 para obter informações detalhadas.

Configuração experimental.Usamos uma configuração experimental semelhante à da fase de pré-treinamento e analisamos o Llama 3 em comparação com outros modelos de tamanho e recursos comparáveis. Sempre que possível, nós mesmos avaliaremos o desempenho dos outros modelos e compararemos os resultados com os números relatados para selecionar a melhor pontuação. Informações mais detalhadas sobre nossa configuração de avaliação podem ser encontradas aqui (link inserido aqui).

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

Tabela 16 Testes de benchmark pós-treinamento por categoria. Visão geral de todos os testes de benchmark que usamos para avaliar o modelo Llama 3 pós-treinamento, classificados por capacidade.

 

5.2.1 Avaliação comparativa de conformidade de conhecimento genérico e instrução

Usamos os padrões de referência listados na Tabela 2 para avaliar os recursos da Llama 3 em termos de conhecimento geral e adesão às instruções.

Conhecimentos gerais: Usamos o MMLU (Hendrycks et al., 2021a) e o MMLU-Pro (Wang et al., 2024b) para avaliar o desempenho da Llama 3 em recursos de questionamento baseados em conhecimento. O MMLU-Pro é uma versão estendida do MMLU que contém perguntas mais desafiadoras e focadas em inferência, elimina perguntas com ruído e amplia o leque de escolhas de quatro para dez opções. Dado seu foco no raciocínio complexo, relatamos cinco exemplos de CoTs para o MMLU-Pro. Todas as tarefas são formatadas como tarefas generativas, semelhantes a provas simples (OpenAI, 2024).

Conforme mostrado na Tabela 2, nossas variantes 8B e 70B do Llama 3 superam outros modelos de tamanho semelhante em ambas as tarefas de conhecimento geral. Nosso modelo 405B supera o GPT-4 e o Nemotron 4 340B, e o Claude 3.5 Sonnet lidera os modelos maiores.

Instruções a seguir: Usamos o IFEval (Zhou et al., 2023) para avaliar a capacidade do Llama 3 e de outros modelos de seguir instruções em linguagem natural. O IFEval consiste em cerca de 500 "instruções verificáveis", como "escreva em mais de 400 palavras", que podem ser verificadas usando heurística. O IFEval inclui cerca de 500 "instruções verificáveis", como "escreva em mais de 400 palavras", que podem ser verificadas por meio de heurística. Relatamos a média das precisões em nível de prompt e em nível de instrução sob restrições rígidas e flexíveis na Tabela 2. Observe que todas as variantes do Llama 3 superam os modelos comparáveis no IFEval.

 

5.2.2 Exames de competência

Em seguida, avaliamos nosso modelo em uma série de testes de aptidão originalmente projetados para testar seres humanos. Obtemos esses exames de fontes oficiais disponíveis publicamente; para alguns exames, informamos as pontuações médias dos diferentes conjuntos de exames como resultado de cada teste de aptidão. Especificamente, calculamos a média:

  • GRE: Os testes práticos oficiais GRE 1 e 2 oferecidos pelo Educational Testing Service;
  • LSAT: Pré-teste oficial 71, 73, 80 e 93;
  • SAT: 8 exames do Guia de Estudo Oficial do SAT, edição 2018;
  • AP: um exame prático oficial por matéria;
  • GMAT: O teste oficial on-line do GMAT.

As perguntas desses exames contêm questões de múltipla escolha e perguntas geradoras. Excluiremos todas as perguntas com imagens anexadas. Para as perguntas GRE que contêm várias opções corretas, qualificamos o resultado como correto somente se o modelo selecionar todas as opções corretas. Nos casos em que há mais de um conjunto de exames, usamos um pequeno número de dicas para avaliação. Ajustamos as pontuações para a faixa de 130 a 170 (para o GRE) e informamos a precisão para todos os outros exames.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Nossos resultados são mostrados na Tabela 17. Constatamos que nosso modelo Llama 3 405B tem um desempenho semelhante ao da Claude O Sonnet 3.5 é muito semelhante ao GPT-4 4o. Nosso modelo 70B, por outro lado, apresenta um desempenho ainda mais impressionante. Ele é significativamente melhor do que o GPT-3.5 Turbo e supera o Nemotron 4 340B em muitos testes.

 

5.2.3 Referências de codificação

Avaliamos os recursos de geração de código da Llama 3 em vários benchmarks populares de programação Python e multilíngue. Para medir a eficácia do modelo na geração de código funcionalmente correto, usamos a métrica pass@N, que avalia a taxa de aprovação do teste de unidade para um conjunto de N gerações. Relatamos os resultados para pass@1.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Geração de código Python. O HumanEval (Chen et al., 2021) e o MBPP (Austin et al., 2021) são benchmarks populares de geração de código Python que se concentram em funcionalidades relativamente simples e independentes. A versão de referência do MBPP EvalPlus (v0.2.0) é uma seleção de 378 perguntas bem formatadas (Liu et al., 2024a) de 974 perguntas iniciais no conjunto de dados original do MBPP (treinamento e teste). Os resultados desses testes de referência são mostrados na Tabela 18. Ao avaliar essas variantes do Python, o Llama 3 8B e 70B superou os modelos do mesmo tamanho com desempenho semelhante. Para os modelos maiores, o Llama 3 405B, o Claude 3.5 Sonnet e o GPT-4o têm desempenho semelhante, com o GPT-4o apresentando os resultados mais fortes.

Modelos. Comparamos o Llama 3 com outros modelos de tamanho semelhante. Para o maior modelo, o Llama 3 405B, o Claude 3.5 Sonnet e o GPT-4o têm desempenho semelhante, com o GPT-4o apresentando os melhores resultados.

Geração de código de linguagem de multiprogramação: Para avaliar os recursos de geração de código de outras linguagens além do Python, relatamos os resultados do benchmark MultiPL-E (Cassano et al., 2023) com base nas traduções das perguntas do HumanEval e do MBPP. A Tabela 19 mostra os resultados de uma seleção de linguagens de programação populares.

Observe que há uma queda significativa no desempenho em comparação com o equivalente em Python na Tabela 18.

 

5.2.4 Avaliação comparativa multilíngue

A Llama 3 suporta 8 idiomas - inglês, alemão, francês, italiano, português, hindi, espanhol e tailandês - embora o modelo básico tenha sido treinado usando um conjunto mais amplo de idiomas. Na Tabela 20, mostramos os resultados de nossa avaliação da Llama 3 nos benchmarks Multilingual MMLU (Hendrycks et al., 2021a) e Multilingual Primary Mathematics (MGSM) (Shi et al., 2022).

  • MMLU multilíngueTradução: Usamos o Google Translate para traduzir as perguntas, exemplos curtos e respostas do MMLU para diferentes idiomas. Mantivemos as descrições das tarefas em inglês e as avaliamos em uma configuração de 5 disparos.
  • MGSM (Shi et al., 2022)Para nosso modelo Llama 3, relatamos resultados de CoT de 0 disparo para MGSM. O MMLU multilíngue é um benchmark interno que envolve a tradução de perguntas e respostas do MMLU (Hendrycks et al., 2021a) para 7 idiomas - os resultados de 5 disparos que relatamos são a média desses idiomas.

Para o MGSM (Shi et al., 2022), testamos nosso modelo usando os mesmos prompts nativos do simple-evals (OpenAI, 2024) e o colocamos em um ambiente de CoT de 0 disparos. Na Tabela 20, relatamos os resultados médios de todos os idiomas incluídos no benchmark MGSM.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Descobrimos que o Llama 3 405B supera a maioria dos outros modelos no MGSM, com uma pontuação média de 91,61TP3 T. No MMLU, de acordo com os resultados do MMLU em inglês acima, o Llama 3 405B fica atrás do GPT-4o 21TP3 T. Por outro lado, os modelos 70B e 8B do Llama 3 superam os concorrentes, liderando a concorrência por uma grande margem em ambas as tarefas. em ambas as tarefas.

 

5.2.5 Referenciais matemáticos e de raciocínio

Os resultados de nossos benchmarks matemáticos e de inferência são mostrados na Tabela 2. O modelo Llama 3 8B supera outros modelos do mesmo tamanho em GSM8K, MATH e GPQA. Nosso modelo 70B apresenta desempenho significativamente melhor do que seus equivalentes em todos os testes de benchmark. Por fim, o modelo Llama 3 405B é o melhor modelo em sua categoria para GSM8K e ARC-C, enquanto no MATH ele é o segundo melhor modelo. No GPQA, ele compete bem com o GPT-4 4o, enquanto o Claude 3.5 Sonnet está no topo da lista por uma margem significativa.

 

5.2.6 Benchmarking de contexto longo

Consideramos uma série de tarefas em diferentes domínios e tipos de texto. Nos benchmarks abaixo, concentramo-nos em subtarefas que usam um protocolo de avaliação imparcial, ou seja, métricas baseadas em precisão em vez de métricas de sobreposição de n-gramas. Também priorizamos as tarefas em que há menor variação.

  • Agulha em um palheiro (Kamradt, 2023) Meça a capacidade do modelo de recuperar informações ocultas em partes aleatórias de documentos longos. Nosso modelo Llama 3 apresenta um desempenho perfeito de recuperação de agulhas, recuperando com sucesso 100% "agulhas" em todas as profundidades de documentos e comprimentos de contexto. Também medimos o desempenho do Multi-needle (Tabela 21), uma variação do Needle-in-a-Haystack, em que inserimos quatro "agulhas" no contexto e testamos se o modelo conseguia recuperar duas delas. Nosso modelo Llama 3 obtém resultados de recuperação quase perfeitos.
  • ZeroSCROLLS (Shaham et al., 2023)é um teste de referência de amostra zero para a compreensão de linguagem natural de textos longos. Como as respostas verdadeiras não estão disponíveis publicamente, relatamos os números do conjunto de validação. Nossos modelos Llama 3 405B e 70B igualam ou superam os outros modelos em uma variedade de tarefas nesse teste de referência.
  • InfiniteBench (Zhang et al., 2024) Os modelos são necessários para entender as dependências de longa distância nas janelas de contexto. Avaliamos o Llama 3 no En.QA (questionário sobre romances) e no En.MC (questionário de múltipla escolha sobre romances), onde nosso modelo 405B supera todos os outros modelos. O ganho é particularmente significativo no En.QA.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

Tabela 21 Avaliação comparativa de textos longos. Para o ZeroSCROLLS (Shaham et al., 2023), relatamos os resultados no conjunto de validação. Para QuALITY, relatamos correspondências exatas, para Qasper - f1 e para SQuALITY - rougeL. Relatamos f1 para as métricas En.QA do InfiniteBench (Zhang et al., 2024) e precisão para En.MC. Para Multi-needle (Kamradt, 2023), inserimos 4 agulhas no contexto e testamos se o modelo é capaz de recuperar 2 agulhas de diferentes comprimentos de contexto, e calculamos a recuperação média para até 128k de 10 comprimentos de sequência.

 

5.2.7 Desempenho da ferramenta

Avaliamos nosso modelo usando uma série de benchmarks de uso de ferramenta de amostra zero (ou seja, chamada de função): o Nexus (Srinivasan et al., 2023), o API-Bank (Li et al., 2023b), o Gorilla API-Bench (Patil et al., 2023) e o Berkeley Function Call Leaderboard ( BFCL) (Yan et al., 2024). Os resultados são mostrados na Tabela 22.

No Nexus, nossa variante Llama 3 tem o melhor desempenho, superando os outros modelos em sua categoria. No API-Bank, nossos modelos Llama 3 8B e 70B superam significativamente os outros modelos em suas respectivas categorias. O modelo 405B está atrás apenas do Claude 3.5 Sonnet 0.6%. Por fim, nossos modelos 405B e 70B têm desempenho superior no BFCL e estão em segundo lugar em suas respectivas categorias de tamanho. O Llama 3 8B teve o melhor desempenho em sua categoria.

Também realizamos uma avaliação manual para testar a capacidade do modelo de usar a ferramenta, com foco nas tarefas de execução de código. Coletamos 2.000 solicitações de usuários, geração de desenhos e uploads de arquivos relacionados à execução de códigos (não incluindo uploads de desenhos ou arquivos). Esses avisos são provenientes de LMSys (Chiang et al., 2024), benchmarks GAIA (Mialon et al., 2023b), anotadores humanos e geração sintética. Comparamos o Llama 3 405B com o GPT-4o usando a API de assistentes da OpenAI10 . Os resultados são mostrados na Figura 16. A Llama 3 405B supera claramente o GPT-4o em tarefas de execução de código somente de texto e geração de desenhos; no entanto, fica atrás do GPT-4o no caso de uso de upload de arquivos.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

5.3 Avaliação manual

Além das avaliações no conjunto de dados de referência padrão, realizamos uma série de avaliações humanas. Essas avaliações nos permitem medir e otimizar aspectos mais sutis do desempenho do modelo, como o tom do modelo, o nível de redundância e a compreensão das nuances e do contexto cultural. Avaliações humanas cuidadosamente projetadas estão intimamente relacionadas à experiência do usuário, fornecendo insights sobre o desempenho do modelo no mundo real.

https://platform.openai.com/docs/assistants/overview

Para avaliações humanas de várias rodadas, o número de rodadas em cada pista variou de 2 a 11. Avaliamos a resposta do modelo na última rodada.

Coleta de dicas. Coletamos prompts de alta qualidade que abrangem uma ampla gama de categorias e dificuldades. Para isso, primeiro desenvolvemos uma taxonomia com categorias e subcategorias para o maior número possível de habilidades modelo. Usamos essa taxonomia para coletar aproximadamente 7.000 prompts abrangendo seis habilidades de uma única rodada (inglês, raciocínio, codificação, hindi, espanhol e português) e três habilidades de várias rodadas11 (Inglês, Raciocínio e Codificação). Asseguramos que, dentro de cada categoria, os prompts fossem distribuídos igualmente entre as subcategorias. Também categorizamos cada prompt em um dos três níveis de dificuldade e garantimos que nosso conjunto de prompts contivesse aproximadamente 10% de prompts fáceis, 30% de prompts moderadamente difíceis e 60% de prompts difíceis. Todas as avaliações humanas Figura 16 Resultados da avaliação humana para o Llama 3 405B vs. GPT-4o em tarefas de execução de código, incluindo desenho e upload de arquivos. O Llama 3 405B supera o GPT-4o na execução de código (não incluindo plotagem ou upload de arquivos), bem como na geração de plotagem, mas fica atrás no caso de uso de upload de arquivos.

Os conjuntos de sinais foram submetidos a um rigoroso processo de garantia de qualidade. A equipe de modelagem não tem acesso às nossas dicas de avaliação humana para evitar contaminação acidental ou ajuste excessivo do conjunto de testes.

Processo de avaliação. Para realizar avaliações humanas emparelhadas dos dois modelos, perguntamos aos anotadores humanos qual das duas respostas do modelo (geradas por modelos diferentes) eles preferem. Os anotadores usam uma escala de 7 pontos que lhes permite indicar se a resposta de um modelo é muito melhor, melhor, ligeiramente melhor ou quase igual à outra. Quando os anotadores indicarem que a resposta de um modelo é muito melhor ou melhor do que a resposta de outro modelo, consideraremos isso como uma "vitória" para esse modelo. Compararemos os modelos em pares e informaremos a taxa de vitória para cada recurso no conjunto de dicas.

no final. Comparamos o Llama 3 405B com o GPT-4 (versão API 0125), o GPT-4o (versão API) e o Claude 3.5 Sonnet (versão API) usando um processo de avaliação humana. Os resultados dessas avaliações são mostrados na Figura 17. Observamos que o Llama 3 405B tem um desempenho mais ou menos comparável ao da versão API 0125 do GPT-4, com resultados mistos (algumas vitórias e algumas derrotas) quando comparado ao GPT-4o e ao Claude 3.5 Sonnet. Em quase todas as capacidades, o Llama 3 e o GPT-4 vencem dentro da margem de erro. O Llama 3 405B supera o GPT-4 nas tarefas de raciocínio e codificação de várias rodadas, mas não nos prompts multilíngues (hindi, espanhol e português). O Llama 3 tem o mesmo desempenho que o GPT-4 nos prompts em inglês, bem como nos prompts multilíngues, e supera o Claude 3.5 Sonnet nos prompts em inglês de rodada única e de várias rodadas. No entanto, ele fica aquém do Claude 3.5 Sonnet em áreas como codificação e inferência. Qualitativamente, descobrimos que o desempenho do modelo na avaliação humana é muito influenciado por fatores sutis, como tom de voz, estrutura da resposta e nível de redundância - todos fatores que estamos otimizando no processo de pós-treinamento. fatores que estão sendo otimizados. De modo geral, os resultados da nossa avaliação humana são consistentes com os das avaliações de referência padrão: o Llama 3 405B compete muito bem com os principais modelos do setor, o que o torna o modelo disponível publicamente com melhor desempenho.

limitações. Todos os resultados da avaliação humana foram submetidos a um rigoroso processo de garantia de qualidade dos dados. No entanto, devido à dificuldade de definir critérios objetivos para a resposta do modelo, as avaliações humanas ainda podem ser influenciadas por vieses pessoais, históricos e preferências dos anotadores humanos, o que pode levar a resultados inconsistentes ou não confiáveis.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

Figura 16 Resultados da avaliação humana do Llama 3 405B vs. GPT-4o em tarefas de execução de código (incluindo plotagem e upload de arquivos). O Llama 3 405B supera o GPT-4o na execução de código (excluindo plotagem e upload de arquivos) e na geração de plotagem, mas fica atrás no caso de uso de upload de arquivos.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

Fig. 17 Resultados da avaliação manual do modelo Llama 3 405B. Esquerda: comparação com o GPT-4. Centro: comparação com o GPT-4o. Direita: comparação com o Claude 3.5 Sonnet. Todos os resultados incluem intervalos de confiança 95% e excluem empates.

5.4 Segurança

A seção de segurança envolve palavras sensíveis, que podem ser ignoradas ou baixadas em PDF, obrigado!

Chefe do Círculo de Compartilhamento de IAEste conteúdo foi ocultado pelo autor. Digite o código de verificação para visualizar o conteúdo
Captcha:
Preste atenção ao número público do WeChat deste site, responda "CAPTCHA, um tipo de teste de desafio-resposta (computação)", obtenha o código de verificação. Pesquise no WeChat por "Chefe do Círculo de Compartilhamento de IA"ou"Aparência-AI"ou WeChat escaneando o lado direito do código QR pode prestar atenção a esse número público do WeChat do site.

 

6 Inferência

Investigamos duas técnicas principais para melhorar a eficiência da inferência do modelo Llama 3 405B: (1) paralelismo de pipeline e (2) quantificação FP8. Lançamos publicamente uma implementação da quantificação FP8.

 

6.1 Paralelismo de pipeline

O modelo Llama 3 405B não cabe na memória da GPU de uma única máquina equipada com 8 GPUs Nvidia H100 ao usar BF16 para representar os parâmetros do modelo. Para resolver esse problema, usamos a precisão do BF16 para paralelizar a inferência do modelo em 16 GPUs em duas máquinas. Dentro de cada máquina, o NVLink de alta largura de banda permite o uso do paralelismo de tensor (Shoeybi et al., 2019). No entanto, as conexões entre nós têm menor largura de banda e maior latência, por isso usamos o paralelismo de pipeline (Huang et al., 2019).

As bolhas são um grande problema de eficiência durante o treinamento usando o paralelismo do pipeline (consulte a Seção 3.3). No entanto, elas não são um problema durante a inferência porque a inferência não envolve retropropagação que exija a descarga do pipeline. Portanto, usamos o micro-batching para melhorar o rendimento da inferência paralela de pipeline.

Avaliamos o efeito do uso de dois microlotes em uma carga de trabalho de inferência de 4.096 tokens de entrada e 256 tokens de saída para a fase de pré-população do cache de valores-chave e a fase de decodificação da inferência, respectivamente. Descobrimos que o microbatching melhora a taxa de transferência da inferência para o mesmo tamanho de lote local; veja a Figura 24. Essas melhorias decorrem da capacidade do microbatching de executar simultaneamente microbatches em ambas as fases. Como o microbatching leva a pontos de sincronização adicionais, ele também aumenta a latência, mas, de modo geral, o microbatching ainda leva a uma melhor relação entre taxa de transferência e latência.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

6.2 Quantificação do FP8

Realizamos experimentos de inferência de baixa precisão usando o suporte FP8 inerente à GPU H100. Para obter inferência de baixa precisão, aplicamos a quantificação do FP8 à maioria das multiplicações de matrizes dentro do modelo. Especificamente, quantificamos a grande maioria dos parâmetros e valores de ativação nas camadas da rede de alimentação do modelo, que representam aproximadamente 50% do tempo de computação da inferência. Utilizamos um fator de escala dinâmico para melhorar a precisão (Xiao et al., 2024b) e otimizamos nosso kernel CUDA15 para reduzir a sobrecarga de escala computacional.

Descobrimos que a qualidade do Llama 3 405B era sensível a certos tipos de quantificação e fizemos algumas alterações adicionais para melhorar a qualidade do resultado do modelo:

  1. De forma semelhante a Zhang et al. (2021), não quantificamos a primeira e a última camadas do Transformer.
  2. Os tokens altamente alinhados (por exemplo, datas) podem resultar em grandes valores de ativação. Por sua vez, isso pode levar a fatores de escala dinâmica mais altos no FP8 e a uma quantidade não negligenciável de underflow de ponto flutuante, levando a erros de decodificação. A Figura 26 mostra a distribuição das pontuações de recompensa para Llama 3 405B usando inferência BF16 e FP8. Nosso método de quantificação FP8 tem pouco efeito sobre a resposta do modelo.

Para resolver esse problema, definimos o limite superior do fator de escala dinâmico como 1200.

  1. Usamos a quantificação linha por linha para calcular os fatores de escala entre as linhas das matrizes de parâmetros e de ativação (veja a Figura 25). Descobrimos que isso funciona melhor do que a abordagem de quantificação em nível de tensor.

quantificar o impacto dos erros. As avaliações de benchmarks padrão normalmente mostram que, mesmo sem essas atenuações, o raciocínio FP8 tem desempenho comparável ao raciocínio BF16. No entanto, descobrimos que esses benchmarks não refletem adequadamente o impacto da quantificação do FP8. Quando o fator de escala não é limitado, o modelo ocasionalmente produz respostas corrompidas, mesmo quando o desempenho do parâmetro de comparação é forte.

Em vez de depender de referências para medir as alterações na distribuição devido à quantificação, é possível analisar a distribuição das pontuações do modelo de recompensa para as 100.000 respostas geradas usando o BF16 e o FP8. A Figura 26 mostra a distribuição das recompensas obtidas pelo nosso método de quantificação. Os resultados mostram que nosso método de quantificação do FP8 tem um impacto muito limitado sobre as respostas do modelo.

avaliação experimental da eficiência. A Figura 27 mostra a relação entre taxa de transferência e latência para realizar a inferência FP8 nas fases de pré-população e decodificação usando 4.096 tokens de entrada e 256 tokens de saída usando o Llama 3 405B. A figura compara a eficiência da inferência FP8 com a abordagem de inferência BF16 de duas máquinas descrita na Seção 6.1. Os resultados mostram que o uso da inferência FP8 melhora a taxa de transferência na fase de pré-população em até 50% e melhora substancialmente a relação entre taxa de transferência e atraso durante a decodificação.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

 

7 Experimentos visuais

 

Realizamos uma série de experimentos para integrar recursos de reconhecimento visual ao Llama 3 por meio de uma abordagem combinada. A abordagem é dividida em duas fases principais:

Primeiro estágio. Combinamos um codificador de imagem pré-treinado (Xu et al., 2023) com um modelo de linguagem pré-treinado e introduzimos e treinamos um conjunto de camadas de atenção cruzada (Alayrac et al., 2022) em um grande número de pares imagem-texto. Isso resultou no modelo mostrado na Figura 28.

Segunda etapa. Introduzimos uma camada de agregação temporal e camadas adicionais de atenção cruzada de vídeo que atuam em um grande número de pares de textos de vídeo para aprender o modelo de reconhecimento e processamento de informações temporais de vídeos.

A abordagem combinatória para criar o modelo básico tem várias vantagens.

(1) Ele nos permite desenvolver recursos de modelagem visual e linguística em paralelo;

(2) Ele evita as complexidades associadas ao pré-treinamento conjunto de dados visuais e verbais, que surgem da tokenização de dados visuais, das diferenças de perplexidade de fundo entre as modalidades e da concorrência entre as modalidades;

(3) Ele garante que a introdução de recursos de reconhecimento visual não afete o desempenho do modelo em tarefas somente de texto;

(4) A arquitetura de atenção cruzada garante que não seja necessário passar imagens de resolução total para o backbone LLM em constante crescimento (especialmente a rede feed-forward em cada camada do Transformer), melhorando assim a eficiência da inferência.

Observe que nosso modelo multimodal ainda está em desenvolvimento e não está pronto para ser lançado.

Antes de apresentar os resultados experimentais nas Seções 7.6 e 7.7, descrevemos os dados usados para treinar os recursos de reconhecimento visual, a arquitetura do modelo dos componentes visuais, como ampliamos o treinamento desses componentes e nossas receitas de pré-treinamento e pós-treinamento.

 

7.1 Dados

Descrevemos os dados de imagem e vídeo separadamente.

 

7.1.1 Dados de imagem

Nossos codificadores e adaptadores de imagem são treinados em pares imagem-texto. Construímos esse conjunto de dados por meio de um complexo pipeline de processamento de dados que consiste em quatro estágios principais:

(1) Filtragem de qualidade (2) Desduplicação perceptual (3) Reamostragem (4) Reconhecimento óptico de caracteres . Também aplicamos uma série de medidas de segurança.

  • Filtragem de massa. Implementamos filtros de qualidade para remover legendas que não estejam em inglês e legendas de baixa qualidade por meio de heurística, como as baixas pontuações de alinhamento geradas por (Radford et al., 2021). Especificamente, removemos todos os pares imagem-texto que estão abaixo de uma pontuação CLIP específica.
  • Desacentuação. A desduplicação de conjuntos de dados de treinamento em grande escala melhora o desempenho do modelo, pois reduz os cálculos de treinamento para dados redundantes (Esser et al. 2024; Lee et al. 2021; Abbas et al. 2023) e reduz o risco de memorização do modelo (Carlini et al. 2023; Somepalli et al. 2023). Portanto, eliminamos a duplicação dos dados de treinamento por motivos de eficiência e privacidade. Para esse fim, usamos a versão interna mais recente do modelo de detecção de cópia SSCD (Pizzi et al., 2022) para desduplicar massivamente as imagens. Para todas as imagens, primeiro calculamos uma representação de 512 dimensões usando o modelo SSCD. Em seguida, usamos esses embeddings para realizar uma pesquisa de vizinho mais próximo (NN) em todas as imagens do conjunto de dados, usando uma métrica de similaridade de cosseno. Definimos exemplos acima de um limite de similaridade específico como termos duplicados. Agrupamos esses termos duplicados usando um algoritmo de componente conectado e retemos apenas um único par imagem-texto para cada componente conectado. Melhoramos a eficiência do pipeline de desduplicação ao (1) pré-agrupar os dados usando o agrupamento k-mean (2) usando o FAISS para pesquisa e agrupamento de NN (Johnson et al., 2019).
  • Reamostragem. Garantimos a diversidade de pares imagem-texto, semelhante a Xu et al. (2023); Mahajan et al. (2018); Mikolov et al. (2013). Primeiro, construímos um glossário gramatical de n-tuplas analisando fontes de texto de alta qualidade. Em seguida, calculamos a frequência de gramáticas de n-tuplas para cada glossário no conjunto de dados. Em seguida, reamostramos os dados da seguinte maneira: se qualquer gramática de n tuplas em uma legenda ocorrer menos de T vezes no glossário, mantemos o par imagem-texto correspondente. Caso contrário, amostramos independentemente cada gramática de n-tuplas n i na manchete com probabilidade T / f i, em que f i denota a frequência da gramática de n-tuplas n i; se qualquer gramática de n-tuplas foi amostrada, mantivemos o par imagem-texto. Essa reamostragem ajuda a melhorar o desempenho das categorias de baixa frequência e das tarefas de reconhecimento de granulação fina.
  • Reconhecimento óptico de caracteres. Aprimoramos ainda mais nossos dados de texto de imagem extraindo o texto da imagem e colocando-o junto com uma legenda. O texto escrito foi extraído usando um pipeline proprietário de reconhecimento óptico de caracteres (OCR). Observamos que adicionar dados de OCR aos dados de treinamento pode melhorar muito o desempenho de tarefas que exigem recursos de OCR, como a compreensão de documentos.

 

Para melhorar o desempenho do modelo na tarefa de compreensão de documentos, renderizamos as páginas dos documentos como imagens e emparelhamos as imagens com seus respectivos textos. O texto do documento é obtido diretamente da fonte ou por meio de um pipeline de análise de documentos.

Segurança: Nosso foco principal é garantir que os conjuntos de dados de pré-treinamento de reconhecimento de imagem não contenham conteúdo inseguro, como material sexualmente abusivo (CSAM) (Thiel, 2023). Usamos métodos de hashing perceptual, como o PhotoDNA (Farid, 2021), bem como um classificador próprio interno que verifica todas as imagens de treinamento em busca de CSAM. Também usamos um pipeline de recuperação de risco de mídia próprio para identificar e remover pares de texto-imagem que consideramos NSFW, por exemplo, por conterem conteúdo sexual ou violento. Acreditamos que minimizar a prevalência desse tipo de material no conjunto de dados de treinamento aumenta a segurança e a utilidade do modelo final, sem comprometer sua utilidade. Por fim, realizamos o desfoque facial em todas as imagens do conjunto de treinamento. Testamos o modelo em relação a dicas geradas por humanos que se referem a imagens adicionais.

Dados de recozimento: Criamos um conjunto de dados recozidos com aproximadamente 350 milhões de exemplos, reamostrando pares de legendas de imagens usando n-gramas. Como a reamostragem de n-gramas favorece descrições textuais mais ricas, ela seleciona um subconjunto de dados de maior qualidade. Também aumentamos os dados resultantes com aproximadamente 150 milhões de exemplos de cinco fontes adicionais:

    • Orientação visual. Associamos frases nominais no texto a caixas ou máscaras delimitadoras na imagem. As informações de localização (caixas delimitadoras e máscaras) são especificadas nos pares imagem-texto de duas maneiras:(1) Sobrepomos as caixas ou máscaras na imagem e usamos marcadores como referências no texto, semelhante a um conjunto de marcadores (Yang et al., 2023a). (2) Inserimos as coordenadas normalizadas (x min, y min, x max, y max) diretamente no texto e as separamos com marcadores especiais.
    • Análise da captura de tela. Processamos capturas de tela a partir do código HTML e deixamos o modelo prever o código que gera elementos específicos da captura de tela, semelhante a Lee et al. (2023). Os elementos de interesse são indicados na captura de tela por caixas delimitadoras.
    • Perguntas e respostas com. Incluímos pares de perguntas e respostas que nos permitem usar grandes quantidades de dados de perguntas e respostas que são muito grandes para serem usados no ajuste fino do modelo.
    • Título sintético. Incluímos imagens com legendas sintéticas geradas a partir de versões anteriores do modelo. Em comparação com as legendas originais, descobrimos que as legendas sintéticas forneciam uma descrição mais abrangente da imagem do que as legendas originais.
    • Síntese de imagens estruturadas. Também incluímos imagens geradas sinteticamente para vários campos, como gráficos, tabelas, fluxogramas, fórmulas matemáticas e dados de texto. Essas imagens são acompanhadas de representações estruturadas correspondentes, como a notação Markdown ou LaTeX correspondente. Além de aprimorar os recursos de reconhecimento do modelo nesses domínios, consideramos esses dados úteis para gerar pares de perguntas e respostas para ajuste fino por meio de modelagem textual.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

Fig. 28 Esquema da abordagem combinada para adicionar recursos multimodais à Llama 3 estudada neste documento. Essa abordagem resulta em um modelo multimodal que é treinado em cinco estágios: pré-treinamento do modelo de linguagem, pré-treinamento do codificador multimodal, treinamento do adaptador visual, ajuste fino do modelo e treinamento do adaptador de fala.

 

7.1.2 Dados de vídeo

Para o pré-treinamento de vídeo, usamos um grande conjunto de dados de pares de texto e vídeo. Nosso conjunto de dados é coletado por meio de um processo de vários estágios. Usamos heurística baseada em regras para filtrar e limpar o texto relevante, por exemplo, garantindo o comprimento mínimo e fixando letras maiúsculas. Em seguida, executamos modelos de reconhecimento de idioma para filtrar textos que não estejam em inglês.

Executamos o modelo de detecção de OCR para filtrar vídeos com texto excessivamente sobreposto. Para garantir um alinhamento razoável entre os pares de texto de vídeo, usamos modelos de comparação de texto de imagem e texto de vídeo no estilo CLIP (Radford et al., 2021). Primeiro, calculamos a semelhança entre imagem e texto usando um único quadro do vídeo e filtramos os pares com baixa semelhança e, em seguida, filtramos os pares com alinhamento ruim entre vídeo e texto. Alguns de nossos dados continham vídeos estáticos ou com pouco movimento; filtramos esses vídeos usando a filtragem baseada em pontuação de movimento (Girdhar et al., 2023). Não aplicamos nenhum filtro à qualidade visual dos vídeos, como pontuações estéticas ou filtros de resolução.

Nosso conjunto de dados contém vídeos com duração média de 16 segundos e duração média de 21 segundos, e mais de 99% dos vídeos têm menos de um minuto. A resolução espacial varia muito entre vídeos de 320p e 4K, com mais de 70% de vídeos com bordas curtas maiores que 720 pixels. Os vídeos têm diferentes proporções, sendo que quase todos os vídeos têm uma proporção entre 1:2 e 2:1, com uma média de 1:1.

 

7.2 Arquitetura do modelo

Nosso modelo de reconhecimento visual consiste em três componentes principais: (1) um codificador de imagem, (2) um adaptador de imagem e (3) um adaptador de vídeo.

Codificador de imagem.

Nosso codificador de imagem é um Visual Transformer (ViT; Dosovitskiy et al. (2020)) padrão que é treinado para alinhar imagens e texto (Xu et al., 2023). Usamos a versão ViT-H/14 do codificador de imagem, que tem 630 milhões de parâmetros e foi treinado para cinco épocas em 2,5 bilhões de pares imagem-texto. A resolução da imagem de entrada do codificador de imagem foi 224 × 224; a imagem foi dividida em 16 × 16 pedaços de tamanho igual (ou seja, um tamanho de bloco de 14 × 14 pixels). Conforme demonstrado em trabalhos anteriores, como o ViP-Llava (Cai et al., 2024), descobrimos que os codificadores de imagem treinados pela comparação de alvos alinhados a texto não retêm informações de localização de granulação fina. Para atenuar esse problema, usamos uma abordagem de extração de recursos de várias camadas que forneceu recursos nas camadas 4, 8, 16, 24 e 31, além da última camada de recursos.

Além disso, inserimos mais 8 camadas de autoatenção (40 blocos Transformer no total) antes do pré-treinamento das camadas de atenção cruzada para aprender recursos específicos de alinhamento. Como resultado, o codificador de imagem acabou com 850 milhões de parâmetros e camadas adicionais. Com várias camadas de recursos, o codificador de imagem produz uma representação de 7680 dimensões para cada um dos 16 × 16 = 256 blocos gerados. Não congelamos os parâmetros do codificador de imagem nas fases de treinamento subsequentes, pois descobrimos que isso melhora o desempenho, especialmente em áreas como o reconhecimento de texto.

Adaptadores de imagem.

Introduzimos uma camada de atenção cruzada entre a representação do marcador visual produzida pelo codificador de imagem e a representação do marcador produzida pelo modelo de linguagem (Alayrac et al., 2022). A camada de atenção cruzada é aplicada após cada quarta camada de autoatenção no modelo de linguagem central. Assim como o próprio modelo de linguagem, a camada de atenção cruzada usa a atenção generalizada à consulta (GQA) para aumentar a eficiência.

A camada de atenção cruzada introduz um grande número de parâmetros treináveis no modelo: para o Llama 3 405B, a camada de atenção cruzada tem cerca de 100 bilhões de parâmetros. Pré-treinamos os adaptadores de imagem em dois estágios: (1) pré-treinamento inicial e (2) recozimento:* Pré-treinamento inicial. Treinamos previamente nossos adaptadores de imagem no conjunto de dados mencionado anteriormente, com cerca de 6 bilhões de pares imagem-texto. Para aumentar a eficiência computacional, redimensionamos todas as imagens para caberem em um máximo de quatro blocos de 336 × 336 pixels, onde organizamos os blocos para suportar diferentes proporções, como 672 × 672, 672 × 336 e 1344 × 336. ● Os adaptadores de imagem são projetados para caberem em um máximo de quatro blocos de 336 × 336 pixels. Recozimento. Continuamos a treinar o adaptador de imagens usando aproximadamente 500 milhões de imagens do conjunto de dados de recozimento descrito acima. Durante o processo de recozimento, aumentamos a resolução da imagem de cada gráfico para melhorar o desempenho em tarefas que exigem imagens de maior resolução, como a compreensão de infográficos.

Adaptador de vídeo.

Nosso modelo aceita entradas de até 64 quadros (amostragem uniforme do vídeo completo), cada um dos quais é processado por um codificador de imagem. Modelamos a estrutura temporal no vídeo por meio de dois componentes: (i) os quadros de vídeo codificados são mesclados em um único por meio de um agregador temporal, que combina 32 quadros consecutivos em um; e (ii) camadas adicionais de atenção cruzada de vídeo são adicionadas antes de cada quarta camada de atenção cruzada de imagem. Os agregadores temporais são implementados como reamplificadores de perceptron (Jaegle et al., 2021; Alayrac et al., 2022). Usamos 16 quadros por vídeo (agregados em 1 quadro) para pré-treinamento, mas aumentamos o número de quadros de entrada para 64 durante o ajuste fino supervisionado. O agregador de vídeo e a camada de atenção cruzada têm 0,6 e 4,6 bilhões de parâmetros no Llama 3 7B e 70B, respectivamente.

 

7.3 Tamanho do modelo

Depois de adicionar os componentes de reconhecimento visual ao Llama 3, o modelo contém uma camada de autoatenção, uma camada de atenção cruzada e um codificador de imagem ViT. Descobrimos que o paralelismo de dados e o paralelismo de tensor foram as combinações mais eficientes ao treinar adaptadores para modelos menores (8 e 70 bilhões de parâmetros). Nessas escalas, o paralelismo de modelo ou de pipeline não aumentará a eficiência porque a coleta de parâmetros de modelo dominará o cálculo. No entanto, usamos o paralelismo de pipeline (além do paralelismo de dados e tensor) ao treinar o adaptador para o modelo de 405 bilhões de parâmetros. O treinamento nessa escala apresenta três novos desafios, além dos descritos na Seção 3.3: heterogeneidade do modelo, heterogeneidade dos dados e instabilidade numérica.

heterogeneidade do modelo. A computação do modelo é heterogênea, pois alguns tokens executam mais computação do que outros. Em particular, os tokens de imagem são processados por meio do codificador de imagem e da camada de atenção cruzada, enquanto os tokens de texto são processados somente por meio da rede de backbone linguístico. Essa heterogeneidade pode levar a gargalos na programação paralela do pipeline. Resolvemos esse problema garantindo que cada estágio do pipeline contenha cinco camadas: ou seja, quatro camadas de autoatenção e uma camada de atenção cruzada na rede de backbone linguístico. (Lembre-se de que introduzimos uma camada de atenção cruzada após cada quatro camadas de autoatenção). Além disso, replicamos o codificador de imagem em todos os estágios do pipeline. Como treinamos com dados de texto e imagem emparelhados, isso nos permite equilibrar a carga entre as partes de imagem e texto do cálculo.

Heterogeneidade de dadosOs dados são heterogêneos porque, em média, as imagens têm mais tokens do que o texto associado: uma imagem tem 2308 tokens, enquanto o texto associado tem apenas 192, em média. Os dados são heterogêneos porque, em média, as imagens têm mais tokens do que o texto associado: uma imagem tem 2308 tokens, enquanto o texto associado tem apenas 192 tokens em média. Como resultado, o cálculo da camada de atenção cruzada leva mais tempo e requer mais memória do que o cálculo da camada de autoatenção. Resolvemos esse problema introduzindo o paralelismo de sequência no codificador de imagem para que cada GPU processe aproximadamente o mesmo número de tokens. Também usamos um tamanho de micro-lote maior (8 em vez de 1) devido ao tamanho médio relativamente pequeno do texto.

Instabilidade numérica. Depois de adicionar o codificador de imagem ao modelo, descobrimos que a acumulação de gradiente usando bf16 resultava em valores instáveis. A explicação mais provável é que os marcadores de imagem são introduzidos na rede de backbone linguístico por meio de todas as camadas de atenção cruzada. Isso significa que os desvios numéricos na representação marcada por imagens têm um impacto desproporcional no cálculo geral, pois os erros são compostos. Abordamos esse problema executando a acumulação de gradiente usando o FP32.

 

7.4 Pré-treinamento

Pré-treinamento de imagens. Iniciamos a inicialização com o modelo de texto pré-treinado e os pesos do codificador visual. O codificador visual foi descongelado, enquanto os pesos do modelo de texto permaneceram congelados, conforme descrito acima. Primeiro, treinamos o modelo usando 6 bilhões de pares imagem-texto, cada imagem sendo redimensionada para caber em quatro parcelas de 336 × 336 pixels. Usamos um tamanho de lote global de 16.384 e um esquema de taxa de aprendizado de cosseno com uma taxa de aprendizado inicial de 10 × 10 -4 e decaimento de peso de 0,01. No entanto, essas descobertas não se aplicam bem a cronogramas de treinamento muito longos, e reduzimos a taxa de aprendizagem várias vezes durante o treinamento quando os valores de perda estagnam. Após o pré-treinamento básico, aumentamos ainda mais a resolução da imagem e continuamos o treinamento com os mesmos pesos no conjunto de dados recozido. O otimizador é reinicializado a uma taxa de aprendizado de 2 × 10 -5 por meio do aquecimento, novamente seguindo o cronograma de cosseno.

Pré-treinamento em vídeo. Para o pré-treinamento de vídeo, começamos com o pré-treinamento de imagem e os pesos de recozimento descritos acima. Adicionaremos camadas de agregador de vídeo e de atenção cruzada conforme descrito na arquitetura e as inicializaremos de forma aleatória. Congelamos todos os parâmetros do modelo, exceto os específicos de vídeo (agregador e atenção cruzada de vídeo) e os treinamos com os dados de pré-treinamento de vídeo. Usamos os mesmos hiperparâmetros de treinamento da fase de recozimento de imagem, com taxas de aprendizado ligeiramente diferentes. Amostramos uniformemente 16 quadros do vídeo completo e usamos quatro blocos de tamanho 448 × 448 pixels para representar cada quadro. Usamos um fator de agregação de 16 no agregador de vídeo para obter um quadro válido no qual os marcadores de texto terão foco cruzado. Treinamos usando um tamanho de lote global de 4.096, um comprimento de sequência de 190 tokens e uma taxa de aprendizado de 10 -4 .

 

7.5 Processamento pós-treinamento

Nesta seção, descrevemos em detalhes as etapas de treinamento subsequentes para o adaptador visual.

Após o pré-treinamento, ajustamos o modelo para dados de diálogo multimodal altamente selecionados para permitir a funcionalidade de bate-papo.

Além disso, implementamos a otimização de preferência direta (DPO) para melhorar o desempenho da avaliação manual e empregamos a amostragem de rejeição para melhorar a inferência multimodal.

Por fim, adicionamos uma fase de ajuste de qualidade em que continuamos a fazer o ajuste fino do modelo em um conjunto de dados muito pequeno de diálogos de alta qualidade, o que melhora ainda mais os resultados da avaliação manual, preservando o desempenho do teste de referência.

Informações detalhadas sobre cada etapa são fornecidas abaixo.

 

7.5.1 Monitoramento de dados ajustados

A seguir, descrevemos os dados de ajuste fino supervisionado (SFT) para funções de imagem e vídeo, respectivamente.

IMAGEM. Usamos uma mistura de conjuntos de dados diferentes para o ajuste fino supervisionado.

  • Conjuntos de dados acadêmicos: convertemos conjuntos de dados acadêmicos existentes altamente filtrados em pares de pergunta-resposta usando modelos ou por meio de reescritas LLM (Large Language Modelling). As reescritas LLM são projetadas para aumentar os dados com instruções diferentes e melhorar a qualidade linguística das respostas.
  • Anotação manual: coletamos dados de diálogo multimodal para uma variedade de tarefas (perguntas e respostas abertas, legendas, casos de uso no mundo real etc.) e domínios (por exemplo, imagens naturais e imagens estruturadas) por meio de anotadores manuais. O anotador receberá as imagens e será solicitado a compor o diálogo.

Para garantir a diversidade, agrupamos o conjunto de dados em grande escala e amostramos imagens uniformemente em diferentes agrupamentos. Além disso, obtemos imagens adicionais para alguns domínios específicos expandindo as sementes usando os vizinhos mais próximos. O anotador também recebe pontos de verificação intermediários de modelos existentes para facilitar a anotação estilística dos modelos no loop, de modo que a geração de modelos possa ser usada como ponto de partida para que o anotador forneça edições humanas adicionais. Esse é um processo iterativo no qual os pontos de verificação do modelo são atualizados periodicamente para versões de melhor desempenho que são treinadas com os dados mais recentes. Isso aumenta a quantidade e a eficiência da anotação manual e, ao mesmo tempo, melhora a qualidade.

  • Dados sintéticos: exploramos diferentes abordagens para gerar dados multimodais sintéticos usando representações textuais de imagens e LLMs de entrada textual. A ideia básica é usar os recursos de inferência do LLM de entrada de texto para gerar pares de perguntas e respostas no domínio do texto e substituir as representações textuais por suas imagens correspondentes para produzir dados multimodais sintéticos. Os exemplos incluem a renderização de texto de conjuntos de dados de perguntas e respostas como imagens ou dados tabulares como imagens sintéticas de tabelas e gráficos. Além disso, usamos legendas e extração de OCR de imagens existentes para gerar diálogos gerais ou dados de perguntas e respostas associados às imagens.

Vídeo. Da mesma forma que o adaptador de imagens, usamos conjuntos de dados acadêmicos anotados pré-existentes para transformação em instruções textuais apropriadas e respostas-alvo. Os objetivos serão convertidos em respostas abertas ou perguntas de múltipla escolha, conforme apropriado. Pedimos a anotadores humanos que adicionassem perguntas e respostas correspondentes aos vídeos. Pedimos ao anotador que se concentrasse em perguntas que não pudessem ser respondidas com base em quadros individuais, a fim de direcionar o anotador para perguntas que levariam tempo para serem compreendidas.

 

7.5.2 Monitoramento do programa de ajuste fino

Apresentamos esquemas de ajuste fino supervisionado (SFT) para recursos de imagem e vídeo, respectivamente:

IMAGEM. Inicializamos o modelo a partir dos adaptadores de imagem pré-treinados, mas substituímos os pesos do modelo de linguagem pré-treinado pelos pesos do modelo de linguagem ajustado por instruções. Para manter o desempenho somente de texto, os pesos do modelo de linguagem são mantidos congelados, ou seja, atualizamos somente os pesos do codificador visual e do adaptador de imagem.

Nossa abordagem de ajuste fino é semelhante à de Wortsman et al. (2022). Primeiro, realizamos varreduras de hiperparâmetros usando vários subconjuntos aleatórios de dados, taxas de aprendizado e valores de decaimento de peso. Em seguida, classificamos os modelos com base em seu desempenho. Por fim, calculamos a média dos pesos dos K principais modelos para obter o modelo final. O valor de K foi determinado pela avaliação do modelo médio e pela seleção da instância de melhor desempenho. Observamos que o modelo médio produz resultados consistentemente melhores em comparação com o melhor modelo individual encontrado por meio da pesquisa em grade. Além disso, essa estratégia reduz a sensibilidade aos hiperparâmetros.

Vídeo. Para o SFT de vídeo, inicializamos o agregador de vídeo e a camada de atenção cruzada usando pesos pré-treinados. Os demais parâmetros do modelo (pesos de imagem e LLM) são inicializados a partir do modelo correspondente e seguem seus estágios de ajuste fino. Semelhante ao pré-treinamento de vídeo, somente os parâmetros de vídeo nos dados de vídeo SFT são ajustados. Nessa fase, aumentamos a duração do vídeo para 64 quadros e usamos um fator de agregação de 32 para obter dois quadros válidos. A resolução do bloco aynı zamanda é aumentada adequadamente para ser consistente com os hiperparâmetros de imagem correspondentes.

 

7.5.3 Preferências

Para recompensar a modelagem e a otimização direta de preferências, criamos conjuntos de dados multimodais de preferências emparelhadas.

  • Etiquetagem manual. Os dados de preferência anotados manualmente consistem em uma comparação dos resultados de dois modelos diferentes, rotulados como "selecionar" e "rejeitar", e classificados em uma escala de 7 pontos. Os modelos usados para gerar respostas são amostrados aleatoriamente a cada semana em um conjunto dos melhores modelos recentes, cada um com características diferentes. Além dos rótulos de preferência, pedimos ao anotador que fizesse uma edição manual opcional para corrigir imprecisões na resposta "Selecionar", pois a tarefa visual é menos tolerante a imprecisões. Observe que a edição manual é uma etapa opcional, pois há uma compensação entre quantidade e qualidade na prática.
  • Dados de síntese. Os pares de preferências sintéticas também podem ser gerados usando a edição LLM somente de texto e introduzindo deliberadamente erros no conjunto de dados de ajuste fino supervisionado. Pegamos os dados do diálogo como entrada e usamos o LLM para introduzir erros sutis, mas significativos (por exemplo, alterar objetos, alterar atributos, adicionar erros de computação etc.). Essas respostas editadas são usadas como amostras negativas de "rejeição" e emparelhadas com os dados de ajuste fino supervisionados originais "selecionados".
  • Rejeitar amostragem. Além disso, para criar amostras negativas mais estratégicas, utilizamos um processo iterativo de amostragem de rejeição para coletar dados de preferência adicionais. Discutiremos como a amostragem por rejeição é usada em mais detalhes nas próximas seções. Em resumo, a amostragem de rejeição é usada para obter amostras iterativas de resultados gerados de alta qualidade a partir do modelo. Portanto, como um subproduto, todos os resultados gerados não selecionados podem ser usados como amostras de rejeição negativa e como pares de dados de preferência adicionais.

 

7.5.4 Modelagem de recompensas

Treinamos um modelo de recompensa visual (RM) com base em um modelo SFT visual e um RM linguístico. O codificador visual e as camadas de atenção cruzada foram inicializados a partir do modelo SFT visual e descongelados durante o treinamento, enquanto a camada de autoatenção foi inicializada a partir do RM linguístico e mantida congelada. Observamos que o congelamento da parte do RM linguístico geralmente leva a uma melhor precisão, especialmente em tarefas que exigem que o RM faça julgamentos com base em seu conhecimento ou na qualidade do idioma. Usamos o mesmo objetivo de treinamento do RM linguístico, mas adicionamos um termo de regularização ponderado para elevar ao quadrado os logits de recompensa com média de lote para evitar o desvio da pontuação de recompensa.

Seguimos a mesma abordagem dos dados de preferência linguística (Seção 4.2.1), criando dois ou três pares com classificações claras (versão editada > versão selecionada > versão rejeitada). Além disso, aprimoramos sinteticamente as respostas negativas embaralhando palavras ou frases (por exemplo, números ou texto visual) associadas às informações da imagem. Isso incentiva o RM visual a fazer julgamentos com base no conteúdo real da imagem.

 

7.5.5 Otimização de preferência direta

Da mesma forma que o modelo de linguagem (Seção 4.1.4), treinamos ainda mais o adaptador visual usando a otimização direta de preferências (DPO; Rafailov et al. (2023)) com os dados de preferência descritos na Seção 7.5.3. Para neutralizar o viés distributivo durante o pós-treinamento, mantivemos apenas os lotes mais recentes de anotações de preferências humanas e descartamos os lotes com uma grande lacuna na estratégia (por exemplo, se o modelo subjacente de pré-treinamento foi alterado). Descobrimos que, em vez de congelar o modelo de referência o tempo todo, atualizá-lo a cada k etapas como uma média móvel exponencial (EMA) ajuda o modelo a aprender mais com os dados, levando a um melhor desempenho nas avaliações humanas. De modo geral, observamos que o modelo visual DPO supera consistentemente seu ponto de partida SFT em avaliações humanas e apresenta bom desempenho em cada iteração de ajuste fino.

 

7.5.6 Rejeição da amostragem

A maioria dos pares de questionários existentes contém apenas respostas finais e não possui as explicações de cadeia de pensamento necessárias para raciocinar sobre modelos que generalizam bem a tarefa. Usamos a amostragem por rejeição para gerar as explicações que faltam para esses exemplos, melhorando assim a inferência do modelo.

Dado um par de testes, geramos várias respostas por meio da amostragem do modelo de ajuste fino usando diferentes dicas ou temperaturas do sistema. Em seguida, comparamos as respostas geradas com as respostas verdadeiras por meio de heurística ou árbitros LLM. Por fim, treinamos novamente o modelo adicionando respostas corretas aos dados de ajuste fino. Achamos útil manter várias respostas corretas por pergunta.

Para garantir que apenas exemplos de alta qualidade fossem adicionados ao treinamento, implementamos as duas medidas de segurança a seguir:

  1. Descobrimos que alguns exemplos continham explicações incorretas, mesmo que a resposta final estivesse correta. Observamos que esse padrão é mais comum em perguntas em que apenas uma pequena fração das respostas geradas está correta. Portanto, descartamos respostas de perguntas cuja probabilidade de uma resposta correta estava abaixo de um limite específico.
  2. Os revisores favorecem determinadas respostas devido a diferenças de idioma ou estilo. Usamos um modelo de recompensa para selecionar as K respostas de maior qualidade e adicioná-las ao treinamento.

 

7.5.7 Ajuste de qualidade

Fizemos a curadoria cuidadosa de um conjunto de dados de ajuste fino (SFT) pequeno, mas altamente seletivo, em que todas as amostras são reescritas e validadas para atender aos mais altos padrões, seja manualmente ou por nossos melhores modelos. Usamos esses dados para treinar modelos de DPO para melhorar a qualidade da resposta e nos referimos a esse processo como ajuste de qualidade (QT). Descobrimos que, quando o conjunto de dados de QT abrange uma ampla gama de tarefas e são aplicadas paradas antecipadas adequadas, o QT pode melhorar significativamente os resultados da avaliação humana sem afetar o desempenho geral da validação do teste de referência. Nesse estágio, selecionamos pontos de verificação com base apenas em testes de benchmark para garantir que os recursos sejam mantidos ou aprimorados.

 

7.6 Resultados do reconhecimento de imagens

Avaliamos o desempenho dos recursos de compreensão de imagens do Llama 3 em uma série de tarefas que abrangem a compreensão de imagens naturais, a compreensão de textos, a compreensão de diagramas e o raciocínio multimodal:

  • O MMMU (Yue et al., 2024a) é um conjunto de dados de raciocínio multimodal desafiador, em que os modelos precisam entender as imagens e resolver problemas de nível universitário em 30 disciplinas diferentes. Isso inclui perguntas de múltipla escolha e abertas. Avaliamos o modelo em um conjunto de validação que contém 900 imagens, de acordo com outros trabalhos.
  • O VQAv2 (Antol et al., 2015) testa a capacidade do modelo de combinar compreensão de imagem, compreensão de linguagem e conhecimento geral para responder a perguntas gerais sobre imagens naturais.
  • O AI2 Diagram (Kembhavi et al., 2016) avalia a capacidade dos modelos de analisar diagramas científicos e responder a perguntas sobre eles. Usamos o mesmo modelo que Gêmeos O mesmo protocolo de avaliação do x.ai e usa caixas delimitadoras transparentes para informar as pontuações.
  • O ChartQA (Masry et al., 2022) é um teste de referência desafiador para a compreensão de gráficos. Ele exige que os modelos compreendam visualmente diferentes tipos de gráficos e respondam a perguntas sobre a lógica desses gráficos.
  • O TextVQA (Singh et al., 2019) é um conjunto de dados de referência popular que exige que os modelos leiam e raciocinem sobre o texto em imagens para responder a consultas sobre elas. Isso testa a capacidade do modelo de entender o OCR em imagens naturais.
  • O DocVQA (Mathew et al., 2020) é um conjunto de dados de referência voltado para a análise e o reconhecimento de documentos. Ele contém imagens de uma ampla variedade de documentos e avalia a capacidade dos modelos de realizar OCR para entender e raciocinar sobre o conteúdo dos documentos para responder a perguntas sobre eles.

A Tabela 29 mostra os resultados de nossos experimentos. Os resultados da tabela mostram que o módulo de visão anexado ao Llama 3 é competitivo em vários benchmarks de reconhecimento de imagem com diferentes capacidades de modelo. Usando o modelo resultante da Llama 3-V 405B, superamos o GPT-4V em todos os benchmarks, mas temos um desempenho ligeiramente inferior ao do Gemini 1.5 Pro e do Claude 3.5 Sonnet.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

7.7 Resultados do reconhecimento de vídeo

Avaliamos o adaptador de vídeo do Llama 3 em três benchmarks:

  • Teste de percepção (Lin et al., 2023)Esse benchmark testa a capacidade do modelo de entender e prever clipes de vídeo curtos. Ele contém vários tipos de problemas, como reconhecimento de objetos, ações, cenas etc. Relatamos os resultados com base no código fornecido oficialmente e nas métricas de avaliação (precisão).
  • TVQA (Lei et al., 2018)Esse benchmark avalia a capacidade do modelo de raciocínio composto, o que implica a localização espaço-temporal, o reconhecimento de conceitos visuais e o raciocínio conjunto com o diálogo legendado. Como o conjunto de dados é derivado de programas de TV populares, ele também testa a capacidade do modelo de usar o conhecimento externo desses programas de TV para responder a perguntas. Ele contém mais de 15.000 pares de QA validados, cada um correspondendo a um videoclipe com duração média de 76 segundos. Ele usa um formato de múltipla escolha com cinco opções por pergunta, e relatamos o desempenho no conjunto de validação com base em trabalhos anteriores (OpenAI, 2023b).
  • ActivityNet-QA (Yu et al., 2019)Esse benchmark avalia a capacidade do modelo de compreender videoclipes longos para entender ações, relações espaciais, relações temporais, contagem e muito mais. Ele contém 8.000 pares de QA de teste de 800 vídeos, cada um com uma duração média de 3 minutos. Para avaliação, seguimos o protocolo de trabalhos anteriores (Google, 2023; Lin et al., 2023; Maaz et al., 2024), em que o modelo gera respostas curtas de palavras ou frases e as compara com respostas reais usando a API GPT-3.5 para avaliar a correção do resultado. Relatamos a precisão média calculada pela API.

 

processo de raciocínio

Ao realizar a inferência, amostramos uniformemente os quadros do videoclipe completo e os passamos para o modelo junto com um breve prompt textual. Como a maioria dos benchmarks envolve responder a perguntas de múltipla escolha, usamos os seguintes avisos:

  • Escolha a resposta correta dentre as opções a seguir:{question}. Responda usando apenas a letra da opção correta e não escreva mais nada.

Para benchmarks que precisam gerar respostas curtas (por exemplo, ActivityNet-QA e NExT-QA), usamos as seguintes dicas:

  • Responda à pergunta usando uma palavra ou frase: {question}.

Para o NExT-QA, como as métricas de avaliação (WUPS) são sensíveis ao comprimento e às palavras específicas usadas, também solicitamos que o modelo fosse específico e respondesse às respostas mais importantes, por exemplo, especificando "sala de estar" quando perguntado sobre o local em vez de simplesmente responder "casa ". Para benchmarks que incluem legendas (ou seja, TVQA), incluímos as legendas correspondentes do clipe na sugestão durante o processo de inferência.

no final

A Tabela 30 mostra o desempenho dos modelos Llama 3 8B e 70B. Comparamos seu desempenho com o dos dois modelos Gemini e dos dois modelos GPT-4. Observe que todos os resultados são resultados de amostra zero, pois não incluímos nenhuma parte desses benchmarks em nossos dados de treinamento ou ajuste fino. Descobrimos que nosso modelo Llama 3 é muito competitivo no treinamento de pequenos adaptadores de vídeo durante o pós-processamento e, em alguns casos, supera até mesmo outros modelos que podem aproveitar o processamento multimodal nativo a partir do pré-treinamento. O Llama 3 tem um desempenho particularmente bom no reconhecimento de vídeo, pois avaliamos apenas os modelos de parâmetros 8B e 70B. O Llama 3 obteve o melhor desempenho no Teste de Percepção, demonstrando a forte capacidade do modelo de realizar raciocínios temporais complexos. Em tarefas de compreensão de atividades de clipes longos, como o ActivityNet-QA, a Llama 3 obtém bons resultados mesmo quando processa apenas até 64 quadros (em um vídeo de 3 minutos, o modelo processa apenas um quadro a cada 3 segundos).

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

 

8 Experimento de fala

 

Realizamos experimentos para investigar uma abordagem combinatória para integrar a funcionalidade de fala ao Llama 3, semelhante ao esquema que usamos para o reconhecimento visual. Na entrada, codificadores e adaptadores foram adicionados para processar o sinal de fala. Utilizamos dicas do sistema (na forma de texto) para permitir que a Llama 3 ofereça suporte a diferentes modos de compreensão da fala. Se não forem fornecidos avisos do sistema, o modelo atuará como um modelo genérico de diálogo de fala que pode responder efetivamente à fala do usuário de forma consistente com a versão somente de texto do Llama 3. A introdução do histórico de diálogo como um prefixo de sugestão pode melhorar a experiência de diálogo em várias rodadas. Também experimentamos o uso de prompts do sistema para Reconhecimento Automático de Fala (ASR) e Tradução Automática de Fala (AST) na Llama 3. A interface de fala da Llama 3 suporta até 34 idiomas.18 Ela também permite a entrada alternada de texto e fala, possibilitando que o modelo resolva tarefas avançadas de compreensão de áudio.

Também experimentamos uma abordagem de geração de fala na qual implementamos um sistema de transmissão de texto para fala (TTS) que gera dinamicamente formas de onda de fala durante a decodificação do modelo de linguagem. Projetamos o gerador de fala da Llama 3 com base no sistema TTS proprietário e não ajustamos o modelo de linguagem para a geração de fala. Em vez disso, nos concentramos em aprimorar a latência, a precisão e a naturalidade da síntese de fala utilizando a incorporação de palavras da Llama 3 durante a inferência. A interface de fala é mostrada nas Figuras 28 e 29.

 

8.1 Dados

8.1.1 Compreensão de fala

Os dados de treinamento podem ser divididos em duas categorias. Os dados de pré-treinamento consistem em grandes quantidades de fala não rotulada usadas para inicializar o codificador de fala de forma autossupervisionada. Os dados de ajuste fino supervisionados incluem reconhecimento de fala, tradução de fala e dados de diálogo falado; eles são usados para desbloquear recursos específicos ao se integrar a modelos de idiomas grandes.

Dados de pré-treinamento. Para pré-treinar o codificador de fala, reunimos um conjunto de dados com cerca de 15 milhões de horas de gravações de fala em vários idiomas. Filtramos os dados de áudio usando um modelo de detecção de atividade de voz (VAD) e selecionamos amostras de áudio com um limite de VAD acima de 0,7 para o pré-treinamento. Nos dados de pré-treinamento de voz, também nos concentramos em garantir a ausência de informações de identificação pessoal (PII). Usamos o Presidio Analyzer para identificar essas PII.

Reconhecimento de fala e dados de tradução. Nossos dados de treinamento de ASR contêm 230.000 horas de gravações de fala transcritas à mão em 34 idiomas. Nossos dados de treinamento de AST contêm 90.000 horas de tradução bidirecional: de 33 idiomas para o inglês e do inglês para 33 idiomas. Esses dados contêm dados supervisionados e sintéticos gerados usando o kit de ferramentas NLLB (NLLB Team et al., 2022). O uso de dados AST sintéticos melhora a qualidade dos modelos para idiomas com poucos recursos. A duração máxima dos segmentos de fala em nossos dados é de 60 segundos.

Dados de diálogos falados. Para ajustar os adaptadores de fala para o diálogo falado, sintetizamos as respostas às solicitações de fala pedindo ao modelo de linguagem que respondesse às transcrições dessas solicitações (Fathullah et al., 2024). Usamos um subconjunto do conjunto de dados ASR (contendo 60.000 horas de fala) para gerar dados sintéticos dessa forma.

Além disso, geramos 25.000 horas de dados sintéticos executando o sistema Voicebox TTS (Le et al., 2024) em um subconjunto dos dados usados para fazer o ajuste fino do Llama 3. Usamos várias heurísticas para selecionar um subconjunto de dados de ajuste fino que correspondesse à distribuição da fala. Essas heurísticas incluíam o foco em dicas relativamente curtas e de estrutura simples e não incluíam símbolos não textuais.

 

8.1.2 Geração de fala

语音生成数据集主要包括用于训练文本规范化(TN)模型和韵律模型(PM)的数据集。两种训练数据都通过添加 Llama 3 词嵌入作为额外的输入特征进行增强,以提供上下文信息。

文本规范化数据。我们的 TN 训练数据集包含 5.5 万个样本,涵盖了广泛的符号类别(例如,数字、日期、时间),这些类别需要非平凡的规范化。每个样本由书面形式文本和相应的规范化口语形式文本组成,并包含一个推断的手工制作的 TN 规则序列,用于执行规范化。

声韵模型数据。PM 训练数据包括从一个包含 50,000 小时的 TTS 数据集提取的语言和声韵特征,这些特征与专业配音演员在录音室环境中录制的文字稿件和音频配对。

Llama 3 嵌入。Llama 3 嵌入取自第 16 层解码器输出。我们仅使用 Llama 3 8B 模型,并提取给定文本的嵌入(即 TN 的书面输入文本或 PM 的音频转录),就像它们是由 Llama 3 模型在空用户提示下生成的。在一个样本中,每个 Llama 3 标记序列块都明确地与 TN 或 PM 本地输入序列中的相应块对齐,即 TN 特定的文本标记(由 Unicode 类别区分)或语音速率特征。这允许使用 Llama 3 标记和嵌入的流式输入训练 TN 和 PM 模块。

8.2 Arquitetura do modelo

8.2.1 Compreensão de fala

No lado da entrada, o módulo de fala consiste em dois módulos consecutivos: um codificador de fala e um adaptador. A saída do módulo de fala é alimentada diretamente no modelo de linguagem como uma representação de token, permitindo a interação direta entre tokens de fala e de texto. Além disso, introduzimos dois novos tokens especiais para conter sequências de representações de fala. O módulo de fala é significativamente diferente do módulo de visão (consulte a Seção 7), que insere informações multimodais no modelo de linguagem por meio da camada de atenção cruzada. Em contrapartida, os embeddings gerados pelo módulo de fala podem ser perfeitamente integrados aos tokens textuais, permitindo que a interface de fala aproveite todos os recursos do modelo de linguagem do Llama 3.

Codificador de voz:Nosso codificador de fala é um modelo Conformer com 1 bilhão de parâmetros (Gulati et al., 2020). A entrada para o modelo consiste em recursos de espectrograma Meier de 80 dimensões, que são primeiro processados por meio de uma camada empilhada com um tamanho de passo de 4 e, em seguida, reduzidos a um comprimento de quadro de 40 milissegundos por projeção linear. Os recursos processados são tratados por um codificador que contém 24 camadas Conformer. Cada camada Conformer tem uma dimensão potencial de 1536 e inclui duas redes feedforward estilo Macron-net com uma dimensão de 4096, um módulo convolucional com um tamanho de kernel de 7 e um módulo de atenção rotacional com 24 cabeças de atenção (Su et al., 2024).

Adaptador de voz:O adaptador de fala contém cerca de 100 milhões de parâmetros. Ele consiste em uma camada convolucional, uma camada de transformador rotativo e uma camada linear. A camada convolucional tem um tamanho de kernel de 3 e um tamanho de passo de 2 e foi projetada para reduzir o comprimento do quadro de fala para 80 ms. A camada Transformer, com uma dimensão potencial de 3072, e a rede feed-forward, com uma dimensão de 4096, processam ainda mais as informações de fala que foram reduzidas na amostragem pela convolução. Por fim, a camada Linear mapeia a dimensão de saída para corresponder à camada de incorporação do modelo de linguagem.

 

8.2.2 Geração de fala

Usamos a incorporação da Llama 3 8B em dois componentes principais da geração de fala: normalização de texto e modelagem métrica. O módulo de Normalização de Texto (TN) garante a correção semântica convertendo contextualmente o texto escrito em forma falada. O módulo Prosodic Modelling (PM) aprimora a naturalidade e a expressividade usando esses embeddings para prever recursos prosódicos. Esses dois componentes trabalham em conjunto para obter uma geração de fala precisa e natural.

**Normalização de texto**: como determinante da correção semântica da fala gerada, o módulo de normalização de texto (TN) executa a conversão sensível ao contexto do texto escrito para a forma falada correspondente, que é finalmente verbalizada por componentes posteriores. Por exemplo, dependendo do contexto semântico, a forma escrita "123" pode ser lida como um número de base (cento e vinte e três) ou soletrada dígito por dígito (um dois três). transformar sequências de regras de TN criadas manualmente do texto de entrada (Kang et al., 2024). O modelo neural também recebe os embeddings do Llama 3 por meio de atenção cruzada para aproveitar as informações contextuais codificadas nele, permitindo uma previsão mínima de rotulagem de texto e entrada/saída de streaming.

**Modelagem de rima**: para melhorar a naturalidade e a expressividade da fala sintética, integramos um modelo de rima (PM) (Radford et al., 2021) que decodifica apenas a arquitetura do Transformer, que usa os embeddings do Llama 3 como entrada adicional. Essa integração aproveita os recursos linguísticos do Llama 3, usando sua saída textual e embeddings intermediários (Devlin et al. 2018; Dong et al. 2019; Raffel et al. 2020; Guo et al. 2023) para aprimorar a previsão de recursos de rima, reduzindo assim a antecipação exigida pelo modelo. O PM integra vários componentes de entrada para gerar previsões abrangentes de rima: do front-end de normalização de texto detalhado acima O PM integra vários componentes de entrada para gerar previsões métricas abrangentes: recursos linguísticos, tokens e embeddings derivados do front-end de normalização de texto detalhado acima. Três recursos métricos principais são previstos pelo PM: o log de duração de cada fonema, o log da média da frequência fundamental (F0) e o log da média de potência ao longo da duração do fonema. O modelo consiste em um transformador unidirecional e seis cabeças de atenção. Cada bloco é composto por uma camada de atenção cruzada e uma camada dupla totalmente conectada com 864 dimensões ocultas. Uma característica distintiva do PM é seu mecanismo de atenção cruzada dupla, com uma camada dedicada à entrada linguística e a outra à incorporação da Llama. Essa configuração gerencia efetivamente diferentes taxas de entrada sem a necessidade de alinhamento explícito.

 

8.3 Programas de treinamento

8.3.1 Compreensão de fala

O treinamento do módulo de fala foi realizado em duas etapas. Na primeira fase, o pré-treinamento da fala, um codificador de fala é treinado usando dados não rotulados que exibem fortes habilidades de generalização com relação às condições linguísticas e acústicas. Na segunda fase, o ajuste fino supervisionado, o adaptador e o codificador pré-treinado são integrados ao modelo de fala e treinados em conjunto com ele, enquanto o LLM permanece congelado. Isso permite que o modelo responda à entrada de fala. Essa fase usa dados rotulados correspondentes aos recursos de compreensão de fala.

A ASR multilíngue e a modelagem AST geralmente causam confusão/interferência de idiomas, o que prejudica o desempenho. Um método popular de atenuação é incluir informações de identificação de idioma (LID) tanto na origem quanto no destino. Isso pode melhorar o desempenho em uma direção predeterminada, mas também pode levar à degradação da generalização. Por exemplo, se um sistema de tradução espera fornecer informações de LID na origem e no destino, é improvável que o modelo apresente um bom desempenho de amostra zero em direções não vistas no treinamento. Portanto, nosso desafio é projetar um sistema que permita algum grau de informações de LID e, ao mesmo tempo, mantenha o modelo geral o suficiente para a tradução de fala em direções não vistas. Para resolver esse problema, projetamos pistas do sistema que contêm apenas informações de LID para o texto a ser produzido (lado de destino). Essas dicas não contêm informações de LID para a entrada da fala (lado de origem), o que também pode possibilitar o tratamento da fala com alternância de código. Para ASR, usamos o seguinte prompt do sistema: Repeat my words in {language}:, em que {language} é um dos 34 idiomas (inglês, francês etc.). Para a tradução de fala, o prompt do sistema é: "Translate the following sentence into {language}:" (Traduza a seguinte frase para {language}:). Esse design demonstrou ser eficaz para solicitar que os modelos de idioma respondam no idioma desejado. Usamos o mesmo prompt do sistema durante o treinamento e a inferência.

Usamos o algoritmo BEST-RQ autossupervisionado (Chiu et al., 2022) para pré-treinar a fala.

编码器采用长度为 32 帧的掩码,对输入 mel 谱图的概率为 2.5%。如果语音话语超过 60 秒,我们将随机裁剪 6K 帧,对应 60 秒的语音。通过堆叠 4 个连续帧、将 320 维向量投影到 16 维空间,并在 8192 个向量的代码库内使用余弦相似度度量进行最近邻搜索,对 mel 谱图特征进行量化。为了稳定预训练,我们采用 16 个不同的代码库。投影矩阵和代码库随机初始化,在模型训练过程中不更新。多软最大损失仅用于掩码帧,以提高效率。编码器经过 50 万步训练,全局批处理大小为 2048 个语音。

监督微调。预训练语音编码器和随机初始化的适配器在监督微调阶段与 Llama 3 联合优化。语言模型在此过程中保持不变。训练数据是 ASR、AST 和对话数据的混合。Llama 3 8B 的语音模型经过 650K 次更新训练,使用全局批大小为 512 个话语和初始学习率为 10。Llama 3 70B 的语音模型经过 600K 次更新训练,使用全局批大小为 768 个话语和初始学习率为 4 × 10。

8.3.2 Geração de fala

Para dar suporte ao processamento em tempo real, o modelo de rima emprega um mecanismo de antecipação que leva em conta um número fixo de posições fonêmicas futuras e um número variável de tokens futuros. Isso garante uma antecipação consistente durante o processamento do texto de entrada, o que é fundamental para aplicativos de síntese de fala de baixa latência.

Treinamento. Desenvolvemos uma estratégia de alinhamento dinâmico utilizando máscaras causais para facilitar o fluxo da síntese de fala. A estratégia combina um mecanismo de antecipação no modelo prosódico para um número fixo de fonemas futuros e um número variável de tokens futuros, de acordo com o processo de fragmentação no processo de normalização de texto (Seção 8.1.2).

Para cada fonema, o marcador de look-ahead consiste no número máximo de marcadores definido pelo tamanho do bloco, resultando em Llama embeddings com look-ahead variável e fonemas com look-ahead fixo.

Llama 3 embeddings do modelo Llama 3 8B, mantido congelado durante o treinamento do modelo de rima. Os recursos de taxa de chamada de entrada incluem elementos de controlabilidade linguística e de locutor/estilo. O modelo é treinado usando um otimizador AdamW com um tamanho de lote de 1.024 tons e uma taxa de aprendizado de 9 × 10 -4. O modelo é treinado em 1 milhão de atualizações, com as primeiras 3.000 atualizações realizando um aquecimento da taxa de aprendizado e, em seguida, seguindo o agendamento de cosseno.

Raciocínio. Durante a inferência, o mesmo mecanismo de look-ahead e a mesma estratégia de mascaramento causal são usados para garantir a consistência entre o treinamento e o processamento em tempo real. O PM processa o texto de entrada de forma contínua, atualizando a entrada telefone por telefone para recursos de taxa de telefone e bloco por bloco para recursos de taxa rotulada. Novas entradas de bloco são atualizadas somente quando o primeiro telefone do bloco é atual, mantendo assim o alinhamento e a antecipação durante o treinamento.

Para prever os alvos de rima, usamos uma abordagem de modo retardado (Kharitonov et al., 2021), que aumenta a capacidade do modelo de capturar e replicar dependências de rima de longo alcance. Essa abordagem contribui para a naturalidade e expressividade da fala sintetizada, garantindo baixa latência e saída de alta qualidade.

 

8.4 Resultados da compreensão de fala

Avaliamos os recursos de compreensão de fala da interface de fala Llama 3 para três tarefas: (1) Reconhecimento automático de fala (2) Tradução de fala (3) Perguntas e respostas sobre fala. Comparamos o desempenho da interface de fala da Llama 3 com três modelos de compreensão de fala de última geração: Whisper (Radford et al., 2023), SeamlessM4T (Barrault et al., 2023) e Gemini.Em todas as avaliações, usamos a busca gulosa para prever os tokens da Llama 3.

Reconhecimento de fala. Avaliamos o desempenho da ASR no Multilingual LibriSpeech (MLS; Pratap et al., 2020), LibriSpeech (Panayotov et al., 2015), VoxPopuli (Wang et al., 2021a) e um subconjunto do conjunto de dados multilíngue FLEURS (Conneau et al. 2023) no conjunto de dados em inglês para avaliar o desempenho da ASR. Na avaliação, o uso de Sussurro O procedimento de normalização de texto pós-processa os resultados da decodificação para garantir a consistência com os resultados relatados por outros modelos. Em todos os benchmarks, medimos a taxa de erro de palavras da interface de fala Llama 3 no conjunto de testes padrão desses benchmarks, exceto para chinês, japonês, coreano e tailandês, em que relatamos taxas de erro de caracteres.

A Tabela 31 mostra os resultados da avaliação de ASR. Ela demonstra o bom desempenho da Llama 3 (e dos modelos de base multimodal em geral) em tarefas de reconhecimento de fala: nosso modelo supera os modelos específicos de fala, como o Whisper20 e o SeamlessM4T, em todos os benchmarks. Para o inglês MLS, o desempenho da Llama 3 é semelhante ao do Gemini.

Tradução de voz. Também avaliamos o desempenho do nosso modelo em uma tarefa de tradução de fala em que o modelo foi solicitado a traduzir uma fala que não fosse em inglês para um texto em inglês. Usamos os conjuntos de dados FLEURS e Covost 2 (Wang et al., 2021b) nessas avaliações e medimos as pontuações BLEU para o inglês traduzido. A Tabela 32 mostra os resultados desses experimentos. O desempenho do nosso modelo na tradução de fala destaca as vantagens dos modelos de base multimodal em tarefas como a tradução de fala.

Quiz de voz. A interface de fala da Llama 3 demonstra recursos incríveis de resposta a perguntas. O modelo pode compreender facilmente a fala com alternância de código sem exposição prévia a esses dados. É importante ressaltar que, embora o modelo tenha sido treinado apenas em uma única rodada de diálogo, ele é capaz de realizar sessões de diálogo estendidas e coerentes em várias rodadas. A Figura 30 mostra alguns exemplos que destacam esses recursos multilíngues e de várias rodadas.

Segurança. Avaliamos o desempenho de segurança de nosso modelo de fala no MuTox (Costa-jussà et al., 2023), um conjunto de dados para conjuntos de dados multilíngues baseados em áudio que contém 20.000 segmentos em inglês e espanhol e 4.000 segmentos em 19 outros idiomas, cada um rotulado com uma etiqueta de toxicidade. O áudio é passado como entrada para o modelo e a saída é avaliada quanto à toxicidade após a remoção de alguns caracteres especiais. Aplicamos o classificador MuTox (Costa-jussà et al., 2023) ao Gemini 1.5 Pro e comparamos os resultados. Avaliamos a porcentagem de toxicidade adicionada (AT) quando a entrada sugere segurança e a saída é tóxica, e a porcentagem de toxicidade perdida (LT) quando a entrada sugere toxicidade e a resposta é segura. A Tabela 33 mostra os resultados para o inglês e nossos resultados médios em todos os 21 idiomas. A porcentagem de toxicidade adicionada é muito baixa: nosso modelo de fala tem a menor porcentagem de toxicidade adicionada para o inglês, menos de 11 TP3T.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

8.5 Resultados da geração de fala

No contexto da geração de fala, nosso foco é avaliar a qualidade dos modelos de entrada de streaming baseados em tokens que usam vetores Llama 3 para normalização de texto e tarefas de modelagem de rima. A avaliação se concentra em comparações com modelos que não usam vetores Llama 3 como entrada adicional.

Normalização de texto. Para medir o impacto do vetor Llama 3, tentamos variar a quantidade de contexto do lado direito usado pelo modelo. Treinamos o modelo usando um contexto do lado direito de 3 tokens de normalização de texto (TN) (separados por categorias Unicode). Esse modelo foi comparado a modelos que não usaram os vetores Llama 3 e usaram o contexto do lado direito com 3 tags ou o contexto bidirecional completo. Como esperado, a Tabela 34 mostra que o uso do contexto completo do lado direito melhora o desempenho do modelo sem os vetores da Llama 3. No entanto, o modelo que inclui os vetores da Llama 3 supera todos os outros modelos, permitindo o fluxo de entrada/saída de taxa de marca sem precisar depender de contextos longos na entrada. Comparamos modelos com e sem os vetores Llama 3 8B e usando diferentes valores de contexto do lado direito.

Modelagem rítmica. Para avaliar o desempenho do nosso modelo de rima (PM) com Llama 3 8B, realizamos dois conjuntos de avaliações humanas comparando modelos com e sem vetores de Llama 3. Os avaliadores ouviram amostras de diferentes modelos e indicaram suas preferências.

Para gerar a forma de onda final da fala, usamos um modelo acústico interno baseado em Transformer (Wu et al., 2021), que prevê recursos espectrais, e um vocoder neural WaveRNN (Kalchbrenner et al., 2018) para gerar a forma de onda final da fala.

No primeiro teste, faremos uma comparação direta com o modelo de referência de streaming sem usar os vetores da Llama 3. No segundo teste, o Llama 3 8B PM foi comparado a um modelo de referência sem fluxo contínuo que não usa vetores do Llama 3. Conforme mostrado na Tabela 35, a Llama 3 8B PM foi preferida por 60% de tempo (em comparação com a referência de streaming) e 63,6% de tempo foi preferida (em comparação com a referência sem streaming), o que indica uma melhoria significativa na qualidade perceptual. A principal vantagem do Llama 3 8B PM é seu recurso de streaming baseado em marcadores (Seção 8.2.2), que mantém baixa latência durante o processo de inferência. Isso reduz os requisitos de antecipação do modelo, permitindo que o modelo alcance uma síntese de fala mais responsiva e em tempo real em comparação com o modelo de referência sem streaming. De modo geral, o modelo de rimas Llama 3 8B supera consistentemente o modelo de referência, demonstrando sua eficácia em melhorar a naturalidade e a expressividade da fala sintetizada.

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

Llama 3: uma família versátil e de código aberto de modelos de IA-1

 

 

9 Trabalhos relacionados

 

O desenvolvimento da Llama 3 baseia-se em um grande conjunto de pesquisas anteriores sobre modelos fundamentais de linguagem, imagem, vídeo e fala. O escopo deste documento não inclui uma visão geral abrangente desse trabalho; para essa visão geral, recomendamos ao leitor consultar Bordes et al. (2024); Madan et al. (2024); Zhao et al. (2023a). A seguir, apresentamos uma breve visão geral dos trabalhos seminais que influenciaram diretamente o desenvolvimento da Llama 3.

 

9.1 Idioma

Escopo. A Llama 3 segue a tendência duradoura de aplicar métodos simples a escalas cada vez maiores que caracterizam o modelo básico. As melhorias são impulsionadas por aumentos na capacidade computacional e na qualidade dos dados, com o modelo 405B usando quase cinquenta vezes o orçamento computacional de pré-treinamento do 70B da Llama 2. Embora nosso maior Llama 3 contenha 405B parâmetros, na verdade ele tem menos parâmetros do que os modelos anteriores e de pior desempenho, como o PALM (Chowdhery et al., 2023), devido a uma melhor compreensão das leis de escala (Kaplan et al., 2020; Hoffmann et al., 2022). Outros modelos de fronteira estão disponíveis em tamanhos como Claude 3 ou GPT 4 (OpenAI, 2023a), com informações públicas limitadas, mas com desempenho geral comparável.

Modelos em pequena escala. O desenvolvimento de modelos de pequena escala tem andado de mãos dadas com o desenvolvimento de modelos de grande escala. Modelos com menos parâmetros podem melhorar significativamente os custos de inferência e simplificar a implantação (Mehta et al., 2024; Team et al., 2024). O modelo menor Llama 3 consegue isso excedendo em muito os pontos de treinamento computacionalmente ideais, trocando efetivamente o cálculo do treinamento pela eficiência da inferência. Outro caminho é destilar modelos maiores em modelos menores, como o Phi (Abdin et al., 2024).

Arquitetura. Em comparação com a Llama 2, a Llama 3 tem modificações arquitetônicas mínimas, mas outros modelos básicos recentes exploraram projetos alternativos. Mais notavelmente, as arquiteturas híbridas especializadas (Shazeer et al. 2017; Lewis et al. 2021; Fedus et al. 2022; Zhou et al. 2022) podem ser usadas como uma forma de aumentar eficientemente a capacidade de um modelo, como em Mixtral (Jiang et al. 2024) e Arctic (Snowflake 2024). O desempenho da Llama 3 supera o desses modelos, sugerindo que as arquiteturas densas não são um fator limitante, mas que ainda há muitas compensações em termos de eficiência de treinamento e inferência e estabilidade do modelo em grandes escalas.

Código aberto. Os modelos básicos de código aberto evoluíram rapidamente no último ano, com o Llama3-405B agora no mesmo nível do atual estado da arte em código fechado. Várias famílias de modelos foram desenvolvidas recentemente, incluindo Mistral (Jiang et al., 2023), Falcon (Almazrouei et al., 2023), MPT (Databricks, 2024), Pythia (Biderman et al., 2023), Arctic (Snowflake, 2024), OpenELM (Mehta et al., 2024), OLMo (Groeneveld et al., 2024), StableLM (Bellagente et al., 2024), OpenLLaMA (Geng e Liu, 2023), Qwen (Bai et al., 2023), Gemma (Team et al., 2024), Grok (Biderman et al., 2023) e Gemma (Biderman et al., 2024). 2024), Grok (XAI, 2024) e Phi (Abdin et al., 2024).

Pós-treinamento. O pós-treinamento da Llama 3 segue uma estratégia estabelecida de alinhamento de instruções (Chung et al., 2022; Ouyang et al., 2022), seguida de alinhamento com feedback humano (Kaufmann et al., 2023). Embora alguns estudos tenham mostrado resultados inesperados com procedimentos de alinhamento leves (Zhou et al., 2024), a Llama 3 usa milhões de instruções e julgamentos de preferências humanas para aprimorar modelos pré-treinados, incluindo amostragem de rejeição (Bai et al., 2022), ajuste fino supervisionado (Sanh et al., 2022) e otimização direta de preferências (Rafailov et al., 2023). Para selecionar esses exemplos de instruções e preferências, implantamos versões anteriores do Llama 3 para filtrar (Liu et al., 2024c), reescrever (Pan et al., 2024) ou gerar dicas e respostas (Liu et al., 2024b) e aplicamos essas técnicas em várias rodadas de pós-treinamento.

 

9.2 Multimodalidade

Nossos experimentos de capacidade multimodal da Llama 3 fazem parte de um estudo de longo prazo de modelos fundamentais para a modelagem conjunta de várias modalidades. Nossa abordagem Llama 3 combina ideias de vários artigos para obter resultados comparáveis ao Gemini 1.0 Ultra (Google, 2023) e ao GPT-4 Vision (OpenAI, 2023b); consulte a Seção 7.6.

vídeoApesar do número crescente de modelos básicos que suportam a entrada de vídeo (Google, 2023; OpenAI, 2023b), não foram feitas muitas pesquisas sobre a modelagem conjunta de vídeo e linguagem. Semelhante à Llama 3, a maioria das pesquisas atuais usa métodos adaptadores para alinhar representações de vídeo e linguagem e para desvendar perguntas e respostas e raciocínio sobre vídeo (Lin et al. 2023; Li et al. 2023a; Maaz et al. 2024; Zhang et al. 2023; Zhao et al. 2022). Descobrimos que esses métodos produzem resultados que são competitivos com o estado da arte; consulte a Seção 7.7.

pronúncia coloquial (em vez de literária) de um caractere chinêsNosso trabalho também contribui para um corpo maior de trabalho que combina modelagem de linguagem e fala. Os primeiros modelos conjuntos de texto e fala incluem AudioPaLM (Rubenstein et al., 2023), VioLA (Wang et al., 2023b), VoxtLM Maiti et al. (2023), SUTLM (Chou et al., 2023) e Spirit-LM (Nguyen et al., 2024) . Nosso trabalho se baseia em abordagens de composição anteriores para combinar fala e linguagem, como Fathullah et al. (2024). Diferentemente da maioria desses trabalhos anteriores, optamos por não fazer o ajuste fino do modelo de linguagem para a tarefa de fala, pois isso poderia levar à concorrência de tarefas que não são de fala. Descobrimos que, mesmo sem esse ajuste fino, é possível obter um bom desempenho com modelos de tamanhos maiores; consulte a Seção 8.4.

 

 

10 Conclusão

 

O desenvolvimento de modelos básicos de alta qualidade ainda está em seus estágios iniciais. Nossa experiência no desenvolvimento da Llama 3 sugere que há muito espaço para o aprimoramento futuro desses modelos. Ao desenvolver a família de modelos da Llama 3, descobrimos que um forte foco em dados de alta qualidade, escala e simplicidade leva consistentemente aos melhores resultados. Em experimentos preliminares, exploramos arquiteturas de modelo e cenários de treinamento mais complexos, mas não descobrimos que os benefícios dessas abordagens compensavam a complexidade adicional que elas introduziam no desenvolvimento do modelo.

O desenvolvimento de um modelo básico emblemático como a Llama 3 exige não apenas a superação de muitos problemas técnicos profundos, mas também a tomada de decisões organizacionais bem informadas. Por exemplo, para garantir que a Llama 3 não seja acidentalmente ajustada em excesso aos testes de benchmark comumente usados, nossos dados de pré-treinamento são obtidos e processados por uma equipe independente que é fortemente incentivada a evitar a contaminação de testes de benchmark externos com dados de pré-treinamento. Como outro exemplo, garantimos a credibilidade das avaliações humanas, permitindo que apenas um pequeno grupo de pesquisadores não envolvidos no desenvolvimento de modelos realize e acesse essas avaliações. Embora essas decisões organizacionais raramente sejam discutidas em documentos técnicos, consideramos que elas foram fundamentais para o desenvolvimento bem-sucedido da família de modelos Llama 3.

Compartilhamos detalhes do nosso processo de desenvolvimento, pois acreditamos que isso ajudará a comunidade de pesquisa mais ampla a entender os principais elementos do desenvolvimento de modelos de base e contribuirá para uma discussão pública mais perspicaz sobre o desenvolvimento futuro de modelos de base. Também compartilhamos resultados experimentais preliminares da integração da funcionalidade multimodal no Llama 3. Embora esses modelos ainda estejam em desenvolvimento ativo e não estejam prontos para serem lançados, esperamos que o compartilhamento antecipado de nossos resultados acelere a pesquisa nessa direção.

Considerando os resultados positivos das análises de segurança detalhadas neste documento, estamos divulgando publicamente nosso modelo de linguagem Llama 3 para acelerar o processo de desenvolvimento de sistemas de IA para uma ampla gama de casos de uso socialmente relevantes e para permitir que a comunidade de pesquisa analise nossos modelos e encontre maneiras de torná-los melhores e mais seguros. Acreditamos que o lançamento público dos modelos subjacentes é fundamental para o desenvolvimento responsável desses modelos e esperamos que o lançamento do Llama 3 incentive o setor como um todo a adotar o desenvolvimento aberto e responsável de IA.

Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Llama 3: uma família versátil e de código aberto de modelos de IA

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil