Texto original:
https://ai.meta.com/blog/adapting-large-language-models-llms/
https://ai.meta.com/blog/when-to-fine-tune-llms-vs-other-techniques/
https://ai.meta.com/blog/how-to-fine-tune-llms-peft-dataset-curation/
Esta é a primeira de uma série de três partes de postagens de blog sobre a adaptação de LLMs (Large Language Models) de código aberto. Neste artigo, conheceremos os vários métodos disponíveis para adaptar os LLMs aos dados de domínio.
introdutório
Modelos de linguagem grandes (LLMs) em uma ampla gama de tarefas de linguagem e processamento de linguagem natural (NLP) avaliação comparativaO número de casos de uso de produtos com base nesses modelos "genéricos" está aumentando. O número de casos de uso de produtos baseados nesses modelos "genéricos" está crescendo. Nesta postagem do blog, forneceremos orientações para pequenas equipes de produtos de IA que desejam adaptar e integrar LLMs em seus projetos. Vamos começar esclarecendo a terminologia (muitas vezes confusa) dos LLMs, depois comparar brevemente as diferentes abordagens de adaptação disponíveis e, por fim, recomendar um fluxograma passo a passo para determinar a abordagem certa para o seu caso de uso.
Método de adaptação LLM
pré-treinamento
O pré-treinamento é o processo de treinar o LLM do zero usando trilhões de tokens de dados. Os modelos são treinados usando algoritmos autossupervisionados. Mais comumente, o treinamento prevê por autorregressão o próximo token para realizar (também conhecido como modelagem de linguagem causal). O pré-treinamento normalmente requer milhares de horas de GPU (105 - 107 [fonte1, fonte2]) são distribuídos em várias GPUs. O modelo de saída pré-treinado é chamado de modelo básico.
Pré-treinamento contínuo
O pré-treinamento contínuo (também conhecido como pré-treinamento em dois estágios) envolve o treinamento adicional do modelo básico usando dados de domínio novos e não vistos. O mesmo algoritmo autossupervisionado é usado para o pré-treinamento inicial. Normalmente, envolve todos os pesos do modelo e a mistura de uma parte dos dados originais com os novos dados.
ajuste fino
O ajuste fino é o processo de adaptação de um modelo de linguagem pré-treinado usando um conjunto de dados anotados de forma supervisionada ou usando técnicas baseadas em aprendizado por reforço. Há duas diferenças principais em relação ao pré-treinamento:
- Treinamento supervisionado em conjuntos de dados anotados - contendo rótulos/respostas/preferências corretos - e não treinamento autossupervisionado
- São necessários menos tokens (milhares ou milhões, em vez dos bilhões ou trilhões necessários para o pré-treinamento), com o objetivo principal de aprimorar o acompanhamento de comandos, o alinhamento humano, o desempenho de tarefas etc.
Há duas dimensões para entender a grade de ajuste fino atual: a porcentagem de parâmetros alterados e os novos recursos adicionados como resultado do ajuste fino.
Porcentagem de parâmetros alterados
Há dois tipos de algoritmos, dependendo do número de parâmetros alterados:
- Completamente ajustado: Como o nome sugere, isso envolve a alteração de todos os parâmetros do modelo, incluindo o ajuste fino tradicional de modelos menores, como o XLMR e o BERT (100 a 300 milhões de parâmetros), bem como o Lhama 2O ajuste fino de modelos grandes, como o GPT3 (mais de 1 bilhão de parâmetros).
- Parameter Efficient Fine Tuning (PEFT): Ao contrário do ajuste fino de todos os pesos LLM, o algoritmo PEFT ajusta apenas um pequeno número de parâmetros adicionais ou atualiza um subconjunto dos parâmetros de pré-treinamento, normalmente de 1 a 6% do total de parâmetros.
Capacidade de adicionar ao modelo básico
O objetivo de realizar o ajuste fino é adicionar recursos aos modelos pré-treinados - por exemplo, aderência à instrução, alinhamento humano, etc. O Llama 2 para ajuste de diálogo é um modelo de ajuste fino com a capacidade de adicionar aderência e alinhamento de instruções. exemplo típico.
Geração aprimorada de pesquisa (RAG)
As organizações também podem se adaptar aos LLMs adicionando bases de conhecimento específicas do domínio.O RAG é essencialmente a "Geração de texto de LLM orientada por pesquisa".O RAG, que será lançado em 2020, usa contextos de dicas dinâmicas recuperadas com base na pergunta de um usuário e injetadas com dicas de LLM para orientá-lo a usar o conteúdo recuperado em vez de conhecimento pré-treinado - e potencialmente desatualizado. -conhecimento.Chat LangChain é um exemplo popular de um chatbot de perguntas e respostas sobre documentos LangChain com tecnologia RAG.
Aprendizagem contextual (ICL)
Com a ICL, adaptamos o LLM colocando exemplos de protótipos nos prompts, e vários estudos mostraram que a "demonstração por exemplo" é eficaz. Esses exemplos podem conter diferentes tipos de informações:
- Somente texto de entrada e saída - ou seja, menos aprendizado de amostra
- Traços de raciocínio: adicionar etapas intermediárias de raciocínio; cf. cadeia de pensamento Dicas (CoT)
- Trilha de planejamento e reflexão: adicione informações que ensinem o LLM a planejar e refletir sobre sua estratégia de solução de problemas; consulte ReACT
Há uma variedade de outras estratégias para modificar os prompts queGuia de engenharia de dicasUma visão geral abrangente está incluída.
Escolha do método de adaptação correto
Para decidir qual dos métodos acima é adequado para um determinado aplicativo, você deve considerar vários fatores: os recursos do modelo necessários para a tarefa que está sendo executada, o custo de treinamento, o custo de inferência, o tipo de conjunto de dados e assim por diante. O fluxograma abaixo resume nossas recomendações para ajudá-lo a escolher o método correto de adaptação do Modelo de Linguagem Grande (LLM).
Pré-treinamento
O pré-treinamento é uma parte importante do treinamento do LLM, usando variantes de previsão de token como funções de perda. Sua natureza autossupervisionada permite o treinamento em grandes quantidades de dados. Por exemplo, o Llama 2 foi treinado com 2 trilhões de tokens. Isso requer uma infraestrutura de computação maciça: Llama 2 70B cost 1.720.320 horas de GPU. Portanto, não recomendamos o pré-treinamento como um método viável de adaptação do LLM para equipes com recursos limitados.
Como o pré-treinamento é computacionalmente proibitivo, a atualização dos pesos de um modelo já pré-treinado pode ser uma maneira eficaz de adaptar o LLM a uma tarefa específica. Qualquer abordagem para atualizar pesos de modelos pré-treinados é suscetível ao fenômeno do esquecimento catastrófico, um termo usado para descrever um modelo que esquece habilidades e conhecimentos aprendidos anteriormente. Por exemplo.este estudomostra que os modelos ajustados no domínio médico têm desempenho reduzido em tarefas de acompanhamento de instruções e de perguntas e respostas comuns. Outros estudos também demonstraram que o conhecimento geral adquirido no pré-treinamento pode ser esquecido durante o treinamento subsequente. Por exemplo.este estudoAlgumas evidências do esquecimento de conhecimento do LLM são fornecidas a partir das perspectivas de conhecimento de domínio, raciocínio e compreensão de leitura.
Pré-treinamento contínuo
Considerando o esquecimento catastrófico, desenvolvimentos recentes sugerem que o pré-treinamento contínuo (CPT) pode melhorar ainda mais o desempenho com uma fração do custo computacional necessário para o pré-treinamento. O CPT pode ser benéfico para tarefas que exigem que o LLM adquira novas habilidades de conversão. Por exemplo.Há relatos de que...No entanto, o pré-treinamento contínuo foi bem-sucedido na adição de multilinguismo.
No entanto, o CPT ainda é um processo caro que exige dados e recursos computacionais significativos. Por exemplo, o conjunto Pythia passou por um segundo estágio de pré-treinamento, que resultou na criação do FinPythia-6.9BEsse modelo foi projetado para dados financeiros. Esse modelo, projetado especificamente para dados financeiros, foi submetido a 18 dias de CPT usando um conjunto de dados contendo 24 bilhões de tokens. Portanto, não recomendamos o pré-treinamento contínuo como uma abordagem viável para a adaptação do LLM para equipes com recursos limitados.
Concluindo, o uso de algoritmos autossupervisionados e conjuntos de dados não rotulados para adaptar LLMs (como feito no pré-treinamento e no pré-treinamento contínuo) consome muitos recursos e é caro, e não é recomendado como uma abordagem viável.
Ajuste fino completo e ajuste fino paramétrico eficiente (PEFT)
O ajuste fino com conjuntos de dados rotulados menores é uma abordagem mais econômica do que o pré-treinamento com conjuntos de dados não rotulados. Ao adaptar o modelo pré-treinado a uma tarefa específica, o modelo com ajuste fino demonstrou obter resultados de última geração em uma ampla gama de aplicações e especializações (por exemplo, jurídica, médica ou financeira).
O ajuste fino, especialmente o Parameter Efficient Fine-Tuning (PEFT), requer apenas uma fração dos recursos computacionais necessários para o pré-treinamento/pré-treinamento contínuo. Portanto, esse é um método de adaptação LLM viável para equipes com recursos limitados. Nesta série deParte 3Nele, nos aprofundamos nos detalhes do ajuste fino, incluindo o ajuste fino completo, o PEFT e um guia prático sobre como fazê-lo.
Recuperação de geração aumentada (RAG)
O RAG é outro método popular de adaptação do LLM. Se o seu aplicativo precisar extrair informações de uma base de conhecimento dinâmica (por exemplo, um bot de quiz), o RAG pode ser uma boa solução. A complexidade de um sistema baseado em RAG está principalmente na implementação do mecanismo de recuperação. O custo de raciocínio desses sistemas pode ser maior porque as dicas incluem documentos recuperados e a maioria dos provedores usa um modelo baseado em token. Nesta série deParte 2no qual discutimos o RAG de forma mais ampla e o comparamos com o ajuste fino.
Aprendizagem contextual (ICL)
Essa é a maneira mais econômica de adaptar o LLM.ICL não requer dados de treinamento ou recursos computacionais adicionais, o que a torna uma abordagem econômica. No entanto, de forma semelhante ao RAG, o custo e a latência da inferência podem aumentar devido ao processamento de mais tokens no momento da inferência.
resumos
A criação de um sistema baseado em LLM é um processo iterativo. Recomendamos começar com uma abordagem simples e aumentar gradualmente a complexidade até atingir sua meta. O fluxograma acima descreve esse processo iterativo e fornece uma base sólida para sua estratégia de adaptação ao LLM.
uma nota de agradecimento
Gostaríamos de agradecer a Suraj Subramanian e Varun Vontimitta por seus comentários construtivos sobre a organização e a preparação desta postagem do blog.
Parte II: Fazer ou não fazer o ajuste fino
Esta é a segunda de uma série de postagens de blog sobre a adaptação de LLMs (Large Language Models) de código aberto. Nesta postagem, discutiremos a seguinte pergunta: "Quando devemos fazer o ajuste fino e quando devemos considerar outras tecnologias?"
introdutório
Antes do surgimento dos grandes modelos de linguagem, o ajuste fino era comumente usado para modelos de menor escala (100 milhões a 300 milhões de parâmetros). Os aplicativos de domínio mais avançados foram criados usando o ajuste fino supervisionado (SFT), ou seja, modelos pré-treinados foram treinados posteriormente usando dados anotados de seu próprio domínio e tarefas posteriores. No entanto, com o advento de modelos maiores (> 1 bilhão de parâmetros), a questão do ajuste fino se torna mais sutil. Mais importante ainda, modelos maiores exigem mais recursos e hardware comercial para o ajuste fino. A Tabela 1 abaixo fornece uma lista do pico de uso de memória da GPU para o ajuste fino dos modelos Llama 2 7B e Llama 2 13B em três cenários. Você pode notar que modelos como QLoRA Esses algoritmos facilitam o ajuste fino de modelos grandes usando recursos limitados. Por exemplo, a Tabela 1 mostra o pico de memória da GPU para três cenários de ajuste fino (ajuste fino completo, LoRA e QLoRA) no Llama 2 7B. Reduções de memória semelhantes como resultado do ajuste fino eficiente paramétrico (PEFT) ou quantificação também são mostradas no Llama 1. relatórios Sobre. Além dos recursos de computação, o esquecimento catastrófico (para obter mais informações, consulte esta série de Parte I) é uma armadilha comum do ajuste fino de parâmetros completos. A técnica PEFT visa solucionar essas deficiências treinando um pequeno número de parâmetros.
Tabela 1: Memória (GB) no LLama 2 7B para diferentes métodos de ajuste fino (fonte (de informações etc.)O QLoRA é quantificado usando um NormalFloat de 4 bits.
Protótipos que podem se beneficiar de um ajuste fino
Identificamos os seguintes cenários como casos de uso comuns que poderiam se beneficiar de um ajuste fino:
- Personalização de tom, estilo e formato: Os casos de uso podem exigir um modelo de linguagem grande que reflita uma personalidade específica ou atenda a um público específico. Ao ajustar o modelo de biglanguage usando um conjunto de dados personalizado, podemos moldar as respostas do chatbot para que se alinhem melhor com os requisitos específicos ou com a experiência pretendida de seu público. Também podemos querer estruturar o resultado de uma maneira específica, por exemplo, no formato JSON, YAML ou Markdown.
- Melhore a precisão e lide com casos extremos: O ajuste fino pode ser usado para corrigir ilusões ou erros difíceis de corrigir por meio da engenharia de dicas e da aprendizagem contextual. Também pode aprimorar a capacidade de um modelo de executar novas habilidades ou tarefas difíceis de serem expressas em dicas. Esse processo pode ajudar a corrigir falhas em que os modelos não conseguem seguir dicas complexas e aumentar sua confiabilidade na produção do resultado desejado. Apresentamos dois exemplos:
- Precisão do Phi-2 na análise de sentimentos de dados financeiros Atualizado de 34% para 85%.
- ChatGPT Precisão na análise de sentimento dos comentários do Reddit Aumento de 25 pontos percentuais (de 48% a 73%), usando apenas 100 exemplos.
Normalmente, para números de precisão iniciais menores (< 50%), o ajuste fino com algumas centenas de exemplos produzirá melhorias significativas.
- Abordar áreas de sub-representação: Embora os modelos de big language sejam treinados em grandes quantidades de dados de uso geral, eles nem sempre podem ser bem versados no jargão, na terminologia ou nas idiossincrasias de cada domínio de nicho. Para diversos domínios, como direito, saúde ou finanças, foi demonstrado que o ajuste fino ajuda a melhorar a precisão das tarefas posteriores. Apresentamos dois exemplos:
- Como este escritos Foi destacado que o registro médico de um paciente contém dados altamente confidenciais que normalmente não são encontrados em domínio público. Portanto, os sistemas baseados em grandes modelos de linguagem para resumir registros médicos precisam ser ajustados.
- Ajuste fino de idiomas sub-representados, como os idiomas indígenas, usando técnicas PEFT Útil em todas as tarefas.
- Redução de custos: O ajuste fino permite a destilação de habilidades de modelos maiores, como o Llama 2 70B/GPT-4, em modelos menores, como o Llama 2 7B, reduzindo o custo e a latência sem comprometer a qualidade. Além disso, o ajuste fino reduz a necessidade de dicas longas ou específicas (como as usadas na engenharia de dicas), economizando tokens e reduzindo ainda mais os custos. Por exemplo, oeste artigo Mostra como a economia de custos pode ser obtida por meio do refinamento do modelo GPT-4, mais caro, para ajustar o juiz GPT-3.5.
- Novas tarefas/capacidades: Muitas vezes, novos recursos podem ser obtidos por meio do ajuste fino. Apresentamos três exemplos:
- Ajuste fino de modelos de linguagem grandes para Melhor uso do contexto de um determinado pesquisador Ou ignorá-lo completamente
- Ajuste fino de modelos de linguagem grandes Juízes para avaliar outros modelos de linguagem de grande porteNo caso de um novo sistema, a avaliação de indicadores como veracidade, conformidade ou utilidade não é uma questão óbvia.
- Ajuste fino de modelos de linguagem grandes para Adicionar janela de contexto
Comparação com tecnologias de adaptação em outras áreas
Ajuste fino vs. aprendizado contextual (menos amostras)
A aprendizagem contextual (ICL) é uma forma eficiente de melhorar o desempenho de sistemas baseados em grandes modelos de linguagem. Além disso, os experimentos de ICL podem ajudá-lo a avaliar se o ajuste fino melhora o desempenho das tarefas posteriores. As considerações comuns ao usar a ICL são:
- À medida que o número de exemplos a serem mostrados aumenta, também aumentam o custo de inferência e a latência.
- Com mais e mais exemplos, o modelo de linguagem grande Muitas vezes esquecidos são alguns dos. Isso significa que você pode precisar de um sistema baseado em RAG que encontre os exemplos mais relevantes com base na entrada.
- Modelos de linguagem grandes podem cuspir o conhecimento fornecido a eles como exemplos. Esse problema também existe durante o ajuste fino.
ajuste fino vs. e RAG
O consenso geral é que, quando o desempenho subjacente de um modelo de linguagem grande é insatisfatório, você pode "começar com o RAG, avaliar seu desempenho e passar para o ajuste fino se ele for considerado insuficiente" ou "o RAG pode ter vantagens" sobre o ajuste fino (fonte (de informações etc.)). No entanto, acreditamos que esse paradigma é uma simplificação excessiva porque, em muitos casos, o RAG não só não é uma alternativa ao ajuste fino, como também é uma abordagem complementar ao ajuste fino. Dependendo das características do problema, uma ou possivelmente ambas as abordagens devem ser tentadas. O uso de este artigo estrutura, aqui estão algumas perguntas que você pode fazer para determinar se o ajuste fino ou o RAG (ou possivelmente ambos) são adequados para o seu problema:
- Seu aplicativo precisa de conhecimento externo? O ajuste fino geralmente não se aplica à injeção de novos conhecimentos.
- Seu aplicativo exige um tom/comportamento/vocabulário ou estilo personalizado? Para esses tipos de requisitos, o ajuste fino geralmente é a abordagem correta.
- Qual é a tolerância do seu aplicativo às alucinações? Em aplicativos em que a supressão de falsidades e fabricações imaginativas é fundamental, o sistema RAG oferece mecanismos integrados para minimizar as alucinações.
- Qual é a quantidade de dados de treinamento rotulados disponíveis?
- Quão estáticos/dinâmicos são os dados? Se o problema exigir acesso a um corpus dinâmico de dados, o ajuste fino pode não ser a abordagem correta, pois o conhecimento do modelo de linguagem grande fica desatualizado muito rapidamente.
- Qual é o grau de transparência/interpretabilidade necessário para grandes aplicativos de modelagem de linguagem? O RAG pode essencialmente fornecer referências, que são úteis para interpretar grandes resultados de modelagem de linguagem.
- Custo e complexidade: a equipe tem conhecimento especializado na criação de sistemas de busca ou experiência prévia em ajustes finos?
- Qual é a diversidade de tarefas em seu aplicativo?
Na maioria dos casos, uma solução híbrida de ajuste fino e RAG produzirá os melhores resultados - e, então, a questão passa a ser o custo, o tempo e os ganhos autônomos adicionais de fazer as duas coisas ao mesmo tempo. Consulte as perguntas acima para orientar suas decisões sobre a necessidade de RAG e/ou ajuste fino e realize experimentos internos analisando os erros para entender os possíveis ganhos de métricas. Por fim, a exploração do ajuste fino exige uma estratégia robusta de coleta e aprimoramento de dados, que recomendamos como pré-requisito para iniciar o ajuste fino.
uma nota de agradecimento
Gostaríamos de agradecer a Suraj Subramanian e Varun Vontimitta por seus comentários construtivos sobre a organização e a preparação desta postagem do blog.
Parte III: Como fazer o ajuste fino: foco em conjuntos de dados eficazes
Esta é a terceira postagem de uma série de blogs sobre a adaptação de modelos de linguagem grandes (LLMs) de código aberto. Neste artigo, examinamos algumas regras básicas para reunir conjuntos de dados de treinamento de boa qualidade.
introdutório
O ajuste fino dos LLMs é uma combinação de arte e ciência, e as melhores práticas nesse campo ainda estão surgindo. Nesta postagem do blog, vamos nos concentrar nas variáveis de design do ajuste fino e fornecer orientações sobre as práticas recomendadas para modelos de ajuste fino em configurações com recursos limitados. Sugerimos as seguintes informações como ponto de partida para o desenvolvimento de uma estratégia para experimentos de ajuste fino.
Ajuste fino completo vs. ajuste fino paramétrico eficiente (PEFT)
Quantidade total de ajuste fino e PEFT em academia responder cantando aplicação prática Todos eles demonstraram melhorar o desempenho downstream quando aplicados em novos domínios. A escolha de um deles depende, em última análise, dos recursos computacionais disponíveis (em termos de horas de GPU e memória de GPU), do desempenho em tarefas que não sejam a tarefa downstream de destino (o compromisso de aprender a esquecer) e do custo da anotação manual.
É mais provável que o ajuste fino de volume total sofra de dois problemas:colisão de modelos responder cantando esquecimento cataclísmico. O colapso do modelo ocorre quando a saída do modelo converge para um conjunto finito de saídas e as caudas da distribuição do conteúdo original desaparecem. Esquecimento catastrófico, como nesta série Parte I discutido, pode fazer com que o modelo perca sua força. Alguns estudos empíricos iniciais mostraram queEm comparação com a técnica PEFT, a técnica de ajuste fino de volume total é mais propensa a esses problemasembora sejam necessárias mais pesquisas.
A técnica PEFT pode ser projetada para atuar como um regularizador natural para o ajuste fino. Em geral, a PEFT requer relativamente poucos recursos computacionais para treinar modelos downstream e é mais fácil de usar em cenários com restrição de recursos e tamanhos limitados de conjuntos de dados. Em alguns casos, o ajuste fino completo apresenta melhor desempenho em tarefas específicas, mas geralmente ao custo de esquecer alguns dos recursos do modelo original. Essa compensação de "aprender a esquecer" entre o desempenho em uma tarefa downstream específica e o desempenho em outras tarefas é mais facilmente explorada no Este documento. Uma comparação detalhada do LoRA e do ajuste fino completo é apresentada em.
Considerando as restrições de recursos, a técnica PEFT pode proporcionar uma melhor relação entre desempenho e custo do que o ajuste fino completo. Se o desempenho downstream for fundamental em uma situação de restrição de recursos, o ajuste fino de volume total será mais eficaz. Em ambos os casos, é fundamental ter em mente os seguintes princípios-chave para criar conjuntos de dados de alta qualidade.
Agrupamento de conjuntos de dados
Em experimentos de ajuste fino na literatura, os conjuntos de dados são essenciais para colher os benefícios do ajuste fino. Há mais nuances aqui do que apenas "melhor qualidade e mais exemplos", e você pode investir sabiamente na coleta de conjuntos de dados para melhorar o desempenho em experimentos de ajuste fino com recursos limitados.
Qualidade/quantidade de dados
- A qualidade é fundamental: A tendência geral que observamos é que a qualidade é mais importante do que a quantidade, ou seja, é melhor ter um pequeno conjunto de dados de alta qualidade do que um grande conjunto de dados de baixa qualidade. Os princípios fundamentais da qualidade são: rotulagem consistente, ausência de erros, dados com rotulagem incorreta, entradas/saídas ruidosas e uma distribuição representativa em comparação com o todo. Ao fazer o ajuste fino doConjunto de dados LIMA de alguns milhares de exemplos cuidadosamente selecionados teve um desempenho melhor do que o conjunto de dados Alpaca de 50 mil gerados por máquina.Documentação de ajuste fino da OpenAI Sugere-se que até mesmo um conjunto de dados de 50 a 100 exemplos pode ter um impacto.
- Tarefas linguísticas mais difíceis exigem mais dados: Tarefas relativamente difíceis, como geração e resumo de textos, são mais difíceis de ajustar e exigem mais dados do que tarefas simples, como classificação e extração de entidades. "Mais difícil", nesse contexto, pode significar uma variedade de coisas: mais tokens na saída, recursos humanos de ordem superior necessários, várias respostas corretas.
- Coleta de dados eficaz e de alta qualidade: Devido ao alto custo da coleta de dados, as seguintes estratégias são recomendadas para melhorar a eficiência da amostra e reduzir os custos
- Observe os padrões de falha: observe exemplos de recursos de ML anteriores que falharam e adicione exemplos que abordem esses padrões de falha.
- Colaboração homem-máquina: essa é uma maneira mais econômica de dimensionar a anotação de dados. Usamos o LLM para automatizar a geração de respostas básicas, que os anotadores humanos podem anotar em menos tempo.
Diversidade de dados
Em termos simples, se você treinar demais um modelo com um tipo específico de resposta, ele será tendencioso a dar essa resposta, se não a resposta mais adequada. A regra geral aqui é garantir, tanto quanto possível, que os dados de treinamento reflitam como o modelo deve se comportar no mundo real.
- Repetir: foi rejeitado por descobertas é a causa da degradação do modelo no ajuste fino e no pré-treinamento. A obtenção de diversidade por meio da eliminação da duplicação geralmente melhora as métricas de desempenho.
- Diversidade de entrada: Aumente a diversidade parafraseando as entradas. No Ajuste fino do SQLCoder2 A equipe reformulou o texto simples que acompanha as consultas SQL para introduzir diversidade sintática e semântica. Da mesma forma, a equipeTradução reversa das instruções foi usado para textos escritos manualmente, perguntando ao LLM "Para qual pergunta isso pode ser uma resposta?" para gerar um conjunto de dados de perguntas e respostas.
- Diversidade do conjunto de dados: Ao fazer o ajuste fino para tarefas de downstream mais gerais (por exemplo, adaptação multilíngue), o uso de diversos conjuntos de dados demonstrou melhorar a compensação entre o esquecimento dos recursos originais de um modelo e o aprendizado de novos recursos. O direcionamento para diferentes idiomas, como Hindi (idioma) responder cantando Austronésico (idioma) O modelo de ajuste fino usa um rico conjunto de dados específico do idioma, bem como outros conjuntos de dados de ajuste fino de comandos, como o FLANeAlpacaDolly et al. para introduzir a diversidade.
- Saída padronizada: A remoção de espaços em branco da saída e outros truques de formatação têm se mostrado úteis.SQLCoder2 A remoção de espaços em branco do SQL gerado permite que o modelo se concentre em aprender conceitos importantes de SQL em vez de truques como espaços e recuo. Se você quiser um tom específico na resposta." O chatbot do helpdesk é..." adicione-os ao conjunto de dados de cada exemplo.
Pipeline de dados baseado em LLM
Para reunir conjuntos de dados diversos e de alta qualidade, os pipelines de dados geralmente usam LLMs para reduzir os custos de anotação. As técnicas a seguir foram observadas na prática:
- Avaliação: Treine o modelo com um conjunto de dados de alta qualidade e use-o para fazer anotações em seu conjunto de dados maior para filtrar exemplos de alta qualidade.
- Gerar: Semear os LLMs com exemplos de alta qualidade e solicitar a geração de exemplos semelhantes de alta qualidade.Práticas recomendadas para conjuntos de dados sintéticos está começando a tomar forma.
- Colaboração entre homem e computador: Use LLMs para gerar um conjunto inicial de resultados e permita que os humanos melhorem a qualidade editando ou selecionando preferências.
Depuração de seu conjunto de dados
- Avalie seu conjunto de dados quanto a resultados ruins: Se o modelo ainda tiver um desempenho inferior em determinadas áreas, adicione exemplos de treinamento que mostrem diretamente ao modelo como lidar com essas áreas corretamente. Se o seu modelo tiver problemas de sintaxe, lógica ou estilo, verifique se há os mesmos problemas em seus dados. Por exemplo, se o modelo agora diz "I'll organise this meeting for you" (quando não deveria), veja se os exemplos existentes ensinam ao modelo que ele pode fazer algo novo que na verdade não pode.
- Verifique novamente o equilíbrio das categorias positivo/negativo: Você pode receber muitas rejeições se a resposta do auxiliar 60% nos dados disser "Não posso responder a essa pergunta", mas somente a resposta 5% deve dizer isso ao raciocinar.
- Abrangência e consistência: Certifique-se de que seus exemplos de treinamento contenham todas as informações necessárias para a resposta. Se quisermos que o modelo elogie o usuário com base em suas características pessoais, e os exemplos de treinamento contiverem o elogio do assistente para características que não apareceram no diálogo anterior, o modelo poderá aprender a falsificar as informações. Certifique-se de que todos os exemplos de treinamento estejam no mesmo formato esperado durante o raciocínio. Verifique a consistência dos exemplos de treinamento. Se várias pessoas criaram os dados de treinamento, o desempenho do modelo pode ser limitado pelo nível de consistência interpessoal. Por exemplo, em uma tarefa de extração de texto, o modelo pode não ter um desempenho melhor se as pessoas concordarem apenas com os segmentos extraídos de 70%.
chegar a um veredicto
O ajuste fino é um aspecto fundamental no desenvolvimento de um modelo de linguagem grande que exige um equilíbrio delicado entre arte e ciência. A qualidade e a curadoria do conjunto de dados desempenham um papel importante no sucesso do ajuste fino, oModelos pequenos e ajustados de linguagens grandes tendem a superar os modelos maiores em tarefas específicas. Uma vez tomada a decisão de fazer o ajuste fino Guia de ajuste fino da lhama fornece um ponto de partida sólido. A natureza proprietária do portfólio de conjuntos de dados ajustados tem impedido o compartilhamento de práticas recomendadas e o progresso do código aberto. À medida que o campo continua a evoluir, prevemos o surgimento de práticas recomendadas comuns, mantendo a criatividade e a adaptabilidade do ajuste fino.
uma nota de agradecimento
Gostaríamos de agradecer a Suraj Subramanian e Varun Vontimitta por seus comentários construtivos sobre a organização e a preparação desta postagem do blog.