Hoje, temos o prazer de compartilhar os dois primeiros modelos da próxima geração do Llama, Meta Llama 3, disponíveis para amplo uso. Esta versão apresenta modelos de linguagem pré-treinados e ajustados por instrução com parâmetros 8B e 70B, que podem suportar uma grande variedade de casos de usabilidade. Esta próxima geração do Llama demonstra desempenho de última geração em uma vasta gama de benchmarks do setor e oferece novos recursos, incluindo raciocínio aprimorado. Acreditamos que esses são os melhores modelos de código aberto de sua classe – ponto final. E em apoio à nossa abordagem de código aberto de longa data, estamos colocando o Llama 3 nas mãos da comunidade. Queremos dar início à próxima onda de inovação em IA em todos os aspectos – desde aplicativos até ferramentas para desenvolvedores, avaliações, otimizações de inferência e muito mais. Mal podemos esperar para ver o que você construirá – e aguardamos o seu feedback!
Nossos objetivos para o Llama 3
Com o Llama 3, pretendemos construir os melhores modelos abertos que estejam no mesmo nível dos melhores modelos proprietários disponíveis atualmente. Quisemos considerar o feedback dos desenvolvedores para aumentar a utilidade geral do Llama 3 e estamos fazendo isso enquanto continuamos desempenhando um papel de liderança no uso responsável e na implementação de LLMs (grandes modelos de linguagem). Estamos adotando o ‘espírito’ do código aberto ao lançar de forma antecipada e frequente para permitir que a comunidade tenha acesso a esses modelos enquanto eles ainda estão em desenvolvimento. Os modelos baseados em texto que lançamos hoje são os primeiros da coleção de modelos Llama 3. O nosso objetivo num futuro próximo é tornar o Llama 3 multilíngue e multimodal, ter um contexto mais longo e continuar melhorando o desempenho geral em todos os principais recursos do LLM, como raciocínio e codificação.
Desempenho de última geração
Os nossos novos modelos Llama 3 de parâmetros 8B e 70B são um grande salto em relação ao Llama 2 e estabelecem um novo parâmetro para modelos LLM nessas escalas. Graças às melhorias no pré e pós-treinamento, os nossos modelos pré-treinados e ajustados por instrução são os melhores modelos existentes hoje na escala de parâmetros 8B e 70B. As melhorias nos nossos procedimentos pós-treinamento reduziram substancialmente as taxas de falsas recusas, melhoraram o alinhamento e aumentaram a diversidade nas respostas dos modelos. Também vimos recursos bastante aprimorados, como raciocínio, geração de código e instruções a seguir, tornando o Llama 3 mais orientável.
* Consulte os detalhes da avaliação para conhecer as configurações e os parâmetros com os quais essas avaliações são calculadas.
No desenvolvimento do Llama 3, analisamos o desempenho do modelo em benchmarks padrão e também procuramos otimizar o desempenho para cenários do mundo real. Para este fim, desenvolvemos um novo conjunto de avaliação humana de alta qualidade. Este conjunto contém 1.800 prompts, que cobrem 12 casos de uso principais: solicitação de conselhos, brainstorming, classificação, resposta a perguntas fechadas, codificação, escrita criativa, extração, habitar um personagem/persona, resposta a perguntas abertas, raciocínio, reescrita e resumo. Para evitar overfitting (ajuste excessivo) acidental de nossos modelos neste conjunto de avaliação, mesmo as nossas próprias equipes de modelagem não têm acesso a ele. O gráfico abaixo mostra resultados agregados de nossas avaliações humanas nessas categorias e solicitações em relação a Claude Sonnet, Mistral Medium e GPT-3.5.
As classificações de preferência feitas por humanos com base neste conjunto de avaliação destacam o forte desempenho do nosso modelo de seguimento de instruções 70B em comparação com modelos concorrentes de tamanho comparável em cenários do mundo real.
Nosso modelo pré-treinado também estabelece um novo parâmetro para modelos LLM nessas escalas.
*Consulte os detalhes da avaliação para conhecer as configurações e os parâmetros com os quais essas avaliações são calculadas.
Para desenvolver um excelente modelo de linguagem, acreditamos que é importante inovar, dimensionar e otimizar para simplificar. Adotamos essa filosofia de design em todo o projeto Llama 3, com foco em quatro ‘ingredientes principais’: a arquitetura do modelo, os dados de pré-treinamento, ampliação do pré-treinamento e ajuste fino das instruções.
Arquitetura do modelo
Em linha com a nossa filosofia de design, optamos por uma arquitetura de transformador decoder-only relativamente padrão no Llama 3. Em comparação com o Llama 2, fizemos várias melhorias importantes. O Llama 3 usa uma tokenização (análise léxica) com um vocabulário de 128 mil tokens, que codifica a linguagem com muito mais eficiência, o que leva a um desempenho do modelo substancialmente melhorado. Para aprimorar a eficiência de inferência dos modelos Llama 3, adotamos atenção de consulta agrupada (GQA) nos tamanhos 8B e 70B. Treinamos os modelos em sequências de 8.192 tokens, usando uma máscara para garantir que a autoatenção não ultrapasse os limites do documento.
Dados de treinamento
Para treinar o melhor modelo de linguagem, a curadoria de um conjunto de dados de treinamento grande e de alta qualidade é fundamental. Em linha com os nossos princípios de design, investimos pesadamente em dados de pré-treinamento. O Llama 3 é pré-treinado em mais de 15T de tokens, todos coletados de fontes disponíveis publicamente. Nosso conjunto de dados de treinamento é sete vezes maior que o usado para o Llama 2 e inclui quatro vezes mais código. Para estarmos preparados para os próximos casos de uso multilíngue, mais de 5% do conjunto de dados de pré-treinamento do Llama 3 consistem em dados de alta qualidade em idiomas diferentes do inglês, abrangendo mais de 30 idiomas. Contudo, não esperamos o mesmo nível de desempenho nestas línguas do que em inglês.
Para garantir que o Llama 3 seja treinado com dados da mais alta qualidade, desenvolvemos uma série de pipelines de filtragem de dados. Esses pipelines incluem o uso de filtros heurísticos, filtros NSFW, abordagens de desduplicação semântica e classificadores de texto para prever a qualidade dos dados. Descobrimos que as gerações anteriores do Llama são surpreendentemente boas na identificação de dados de alta qualidade, por isso usamos o Llama 2 para gerar os dados de treinamento para os classificadores de qualidade de texto que alimentam o Llama 3.
Também realizamos extensos experimentos para avaliar as melhores maneiras de misturar dados de diferentes fontes em nosso conjunto de dados final de pré-treinamento. Esses experimentos nos permitiram selecionar um mix de dados que garante que o Llama 3 tenha um bom desempenho em todos os casos de uso, incluindo perguntas triviais, STEM, codificação, conhecimento histórico, etc.
Ampliando o pré-treinamento
Para aproveitar efetivamente nossos dados de pré-treinamento nos modelos Llama 3, colocamos um esforço substancial na ampliação do pré-treinamento. Especificamente, desenvolvemos uma série de leis de escala detalhadas para avaliações de benchmark posteriores. Essas leis de escalabilidade nos permitem selecionar um mix de dados ideal e tomar decisões informadas sobre como usar melhor nossa computação de treinamento. É importante ressaltar que as leis de escalonamento nos permitem prever o desempenho de nossos maiores modelos em tarefas principais (por exemplo, geração de código avaliada no benchmark HumanEval – veja acima) antes de realmente treinarmos os modelos. Isso nos ajuda a garantir um forte desempenho de nossos modelos finais em uma variedade de casos de uso e recursos.
Fizemos várias novas observações sobre o comportamento de escalonamento durante o desenvolvimento do Llama 3. Por exemplo, embora a quantidade ideal de computação de treinamento do Chinchilla para um modelo de parâmetro de 8B corresponda a aproximadamente 200B de tokens, descobrimos que o desempenho do modelo continua melhorando mesmo após ele ser treinado em duas ordens de magnitude a mais de dados. Nossos modelos de parâmetros 8B e 70B continuaram melhorando log-linearmente depois que os treinamos em tokens de até 15T. Modelos maiores podem igualar o desempenho desses modelos menores com menos treinamento de computação, mas modelos menores são geralmente preferidos porque são muito mais eficientes durante a inferência.
Para treinar nossos maiores modelos do Llama 3, combinamos três tipos de paralelização: paralelização de dados, paralelização de modelo e paralelização de pipeline. Nossa implementação mais eficiente atinge uma utilização computacional de mais de 400 TFLOPS por GPU quando treinada em GPUs de 16K simultaneamente. Realizamos execuções de treinamento em dois clusters de GPU de 24K personalizados. Para maximizar o tempo de atividade da GPU, desenvolvemos uma nova amostra de treinamento avançada que automatiza a detecção, o tratamento e a manutenção de erros. Também melhoramos bastante a confiabilidade do nosso hardware e os mecanismos de detecção de corrupção silenciosa de dados, e desenvolvemos novos sistemas de armazenamento escaláveis que reduzem as despesas gerais de verificação e reversão. Essas melhorias resultaram em um tempo de treinamento eficaz geral de mais de 95%. Combinadas, as melhorias aumentaram a eficiência do treinamento do Llama 3 em aproximadamente 3x em comparação com o Llama 2.
Ajuste fino de instrução
Para desbloquear totalmente o potencial de nossos modelos pré-treinados em casos de uso de chat, inovamos também em nossa abordagem de ajuste de instrução. Nossa abordagem ao pós-treinamento é uma combinação de ajuste fino supervisionado (SFT), amostragem de rejeição, otimização de política proximal (PPO) e otimização de política direta (DPO). A qualidade dos prompts usados em OFVM e as classificações de preferência usadas em PPO e DPO têm uma influência descomunal no desempenho de modelos alinhados. Algumas de nossas maiores melhorias na qualidade do modelo vieram da curadoria cuidadosa desses dados e da realização de diversas rodadas de garantia de qualidade em anotações fornecidas por profissionais humanos.
Aprender com as classificações de preferência via PPO e DPO também melhorou muito o desempenho do Llama 3 em tarefas de raciocínio e codificação. Descobrimos que se fizermos a um modelo uma pergunta de raciocínio que ele se esforça para responder, o modelo produzirá por vezes o traço de raciocínio correto: ele sabe como produzir a resposta certa, mas não sabe como selecioná-la. O treinamento em classificações de preferência permite que o modelo aprenda como selecioná-la.
Construindo com o Llama 3
A nossa visão é permitir que os desenvolvedores personalizem o Llama 3 para oferecer suporte a casos de uso relevantes e facilitar a adoção de melhores práticas e a melhoria do ecossistema aberto. Com este lançamento, estamos fornecendo novas ferramentas de confiança e segurança, incluindo componentes atualizados com Llama Guard 2 e Cybersec Eval 2, e a introdução do Code Shield – uma proteção de tempo de inferência para filtrar código inseguro produzido por LLMs.
Também co-desenvolvemos o Llama 3 com torchtune, a nova biblioteca nativa do PyTorch para fácil criação, ajuste fino e experimentação com LLMs. O torchtune fornece receitas de treinamento hackeáveis com eficiência de memória, escritas inteiramente em PyTorch. A biblioteca é integrada a plataformas populares, como Hugging Face, Weights & Biases e EleutherAI, e ainda oferece suporte ao Executorch para permitir que inferências eficientes sejam executadas em uma ampla variedade de dispositivos móveis e edge. Para tudo que vai desde a engenharia imediata até o uso do Llama 3 com LangChain, temos um guia de primeiros passos abrangente, que vai te orientar desde o download do Llama 3 até a implantação em escala dentro de seu aplicativo de IA generativo.
Uma abordagem responsável sistêmica
Projetamos os modelos Llama 3 para serem extremamente úteis e, ao mesmo tempo, garantir uma abordagem líder do setor para implementá-los com responsabilidade. Para conseguir isso, adotamos uma nova abordagem sistêmica para o desenvolvimento e implementação responsável do Llama. Imaginamos os modelos Llama como parte de um sistema mais amplo, que coloca o desenvolvedor no comando. Os modelos Llama servirão como peça fundamental de um sistema que os desenvolvedores projetam com seus objetivos finais exclusivos em mente.
O ajuste fino das instruções também desempenha um papel importante na garantia da segurança de nossos modelos. Nossos modelos aprimorados de instrução foram reunidos (testados) em termos de segurança por meio de esforços internos e externos. Nossa abordagem de red teaming utiliza especialistas humanos e métodos de automação para gerar prompts adversários que tentam obter respostas problemáticas. Por exemplo, aplicamos testes abrangentes para avaliar os riscos de uso indevido relacionados às áreas de risco químico, biológico, cibernético, entre outras áreas. Todos esses esforços são iterativos e usados para informar o ajuste fino de segurança dos modelos que estão sendo lançados. Você pode ler mais sobre nossos esforços no cartão modelo.
Os modelos Llama Guard destinam-se a ser uma base para a segurança imediata e de resposta e podem ser facilmente ajustados para criar uma nova taxonomia dependendo das necessidades da aplicação. Como ponto de partida, o novo Llama Guard 2 utiliza a recentemente anunciada taxonomia MLCommons, num esforço para apoiar o surgimento de padrões da indústria nesta importante área. Além disso, o CyberSecEval 2 expande seu antecessor, adicionando medidas de propensão de um LLM para permitir o abuso de seu interpretador de código, capacidades ofensivas de segurança cibernética e suscetibilidade a ataques de injeção imediata (saiba mais em nosso artigo técnico). Por fim, estamos apresentando o Code Shield, que adiciona suporte para filtragem em tempo de inferência de código inseguro produzido por LLMs. Isso oferece mitigação de riscos relacionados a sugestões de código inseguro, prevenção de abuso de intérpretes de código e execução segura de comandos.
Com a velocidade em que o espaço da IA generativa está se movendo, acreditamos que uma abordagem aberta é uma forma importante de unir o ecossistema e mitigar estes potenciais danos. Como parte disso, estamos atualizando o nosso Guia de Uso Responsável (RUG), que fornece um guia abrangente para o desenvolvimento responsável com LLMs. Conforme descrito no RUG, recomendamos que todas as entradas e saídas sejam verificadas e filtradas de acordo com as diretrizes de conteúdo apropriadas à aplicação. Além disso, muitos provedores de serviços em nuvem oferecem APIs de moderação de conteúdo e outras ferramentas para implantação responsável, e incentivamos os desenvolvedores a também considerarem o uso dessas opções.
Implementando o Llama 3 em escala
Em breve, o Llama 3 estará disponível em todas as principais plataformas, incluindo provedores de nuvem, provedores de modelo de API e muito mais. O Llama 3 estará em toda parte.
Nossos benchmarks mostram que a tokenização oferece maior eficiência de token, rendendo até 15% menos tokens em comparação com o Llama 2. Além disso, o Group Query Attention (GQA) agora também foi adicionado ao Llama 3 8B. Como resultado, observamos que, apesar do modelo ter 1B a mais de parâmetros em comparação ao Llama 2 7B, a eficiência aprimorada de tokenização e o GQA contribuem para manter a eficiência de inferência no mesmo nível do Llama 2 7B.
Para obter exemplos de como aproveitar todos esses recursos, acesse Llama Recipes, que contém todo o nosso código-fonte aberto que pode ser aproveitado para tudo, desde o ajuste fino até a implementação e a avaliação do modelo.
O que vem por aí para o Llama 3?
Os modelos Llama 3 8B e 70B marcam o início do que planejamos lançar para o Llama 3. E tem muito mais por vir.
Nossos maiores modelos têm parâmetros acima de 400B e, enquanto esses modelos ainda estão em treinamento, nossa equipe está animada com a forma como estão performando. Nos próximos meses, lançaremos vários modelos com novos recursos, incluindo multimodalidade, capacidade de conversar em vários idiomas, uma janela de contexto muito mais longa e recursos gerais mais fortes. Também publicaremos um artigo de pesquisa detalhado assim que terminarmos de treinar o Llama 3.
Para dar uma prévia de onde esses modelos estão hoje à medida que continuam o treinamento, pensamos em compartilhar alguns snapshots de como o nosso maior modelo LLM está performando. Observe que esses dados são baseados em um ponto de verificação inicial do Llama 3, que ainda está em treinamento, e esses recursos não são suportados como parte dos modelos lançados hoje.
*Consulte os detalhes da avaliação para conhecer as configurações e os parâmetros com os quais essas avaliações são calculadas.
Estamos comprometidos com o crescimento e desenvolvimento contínuos de um ecossistema aberto de IA para lançar os nossos modelos de forma responsável. Há muito tempo acreditamos que a abertura conduz a produtos melhores e mais seguros, a inovações mais rápidas e a um mercado global mais saudável. Isso é bom para Meta e é bom para a sociedade. Estamos adotando uma abordagem que prioriza a comunidade com o Llama 3 e, a partir de hoje, esses modelos estão disponíveis nas principais plataformas de nuvem, hospedagem e hardware, com muito mais por vir.
Meta Llama 3 hoje
Graças aos nossos últimos avanços com o Meta Llama 3, também estamos anunciando a expansão internacional da IA da Meta, permitindo que mais pessoas usem esta tecnologia gratuita no Facebook, Instagram, WhatsApp e Messenger na Austrália, Canadá, Gana, Jamaica, Malawi, Nova Zelândia , Nigéria, Paquistão, Singapura, África do Sul, Uganda, Zâmbia e Zimbábue — e estamos apenas a começar! Você pode ler mais sobre a experiência da IA da Meta aqui.
Visite o site do Llama 3 para baixar os modelos e consulte o Guia de primeiros passos para obter a lista mais recente de todas as plataformas disponíveis.