Pular para o conteúdo principal

O que é RAFT? Combinando RAG e ajuste fino para adaptar LLMs a domínios especializados

O RAFT combina o Retrieval-Augmented Generation (RAG) e o ajuste fino para aumentar o desempenho de modelos de linguagem grandes em domínios especializados
Actualizado 29 de jul. de 2024  · 11 min de leitura

Como o processamento de linguagem natural (PLN) continua crescendo rapidamente, os modelos de linguagem grandes (LLMs) se tornaram ferramentas muito poderosas, capazes de lidar com um número cada vez maior de tarefas. No entanto, um desafio constante tem sido a adaptação desses modelos gerais a áreas altamente especializadas, como literatura médica ou documentação de software.

É aí que entra o Retrieval-Augmented Fine-Tuning (RAFT), uma nova técnica que pode transformar a PNL específica do domínio. O RAFT combina os pontos fortes do Retrieval-Augmented Generation (RAG), um método que combina LLMs com fontes de dados externas, e o ajuste fino, permitindo que os modelos não apenas aprendam conhecimentos específicos do domínio, mas também aprendam a recuperar e entender com precisão o contexto externo para executar tarefas.

Neste artigo, exploraremos o funcionamento interno da RAFT, analisaremos suas vantagens e veremos como essa técnica de ponta pode revolucionar a forma como abordamos as tarefas de PNL específicas de um domínio. Para começar, confira alguns recursos sobre o RAG, como nossa introdução ao RAG e aplicações práticas do RAG.

O que é RAFT (Retrieval Augmented Fine-Tuning)?

O Retrieval Augmented Fine-Tuning (RAFT) é uma abordagem inovadora para modelos de linguagem que combina os benefícios do RAG e do ajuste fino. Essa técnica adapta os modelos de linguagem a domínios específicos, aprimorando a capacidade dos modelos de compreender e utilizar o conhecimento específico do domínio e, ao mesmo tempo, garantindo a robustez contra recuperações imprecisas.

O RAFT foi projetado especificamente para enfrentar os desafios da adaptação de LLMs a domínios especializados. Nesses contextos, o raciocínio de conhecimento geral torna-se menos crítico, e o foco principal passa a ser a maximização da precisão em relação a um conjunto predefinido de documentos específicos do domínio.

Entendendo o RAG e o ajuste fino

O que é RAG?

O Retrieval-Augmented Generation (RAG) é uma técnica que aprimora os modelos de linguagem integrando um módulo de recuperação que obtém informações relevantes de bases de conhecimento externas.

Esse módulo de recuperação busca documentos relevantes com base na consulta de entrada. O modelo de linguagem usa esse contexto adicional para gerar o resultado final.

Operando sob o paradigma de "recuperar e ler", o RAG provou ser altamente eficaz em várias tarefas de PLN, incluindo modelagem de linguagem e resposta a perguntas de domínio aberto.

No entanto, esses modelos de linguagem não foram treinados para recuperar documentos precisos específicos do domínio e, em vez disso, só têm conhecimento geral do domínio a partir do pré-treinamento.

Conforme observado no artigo original, os métodos existentes de recuperação no contexto são equivalentes a fazer um exame com consulta sem saber quais documentos são mais relevantes para responder à pergunta.

Para saber mais sobre o RAG, veja como o RAG pode ser usado com o GPT e o Milvus para realizar a resposta a perguntas.

O que é ajuste fino?

O ajuste fino é uma abordagem amplamente adotada para adaptar LLMs pré-treinados a tarefas posteriores. Esse processo envolve o treinamento adicional do modelo em dados específicos da tarefa, permitindo que ele aprenda padrões e se alinhe com o formato de saída desejado.

O ajuste fino foi comprovadamente bem-sucedido em vários aplicativos de PNL, como resumo, resposta a perguntas e geração de diálogos. No entanto, os métodos tradicionais de ajuste fino podem ter dificuldades para aproveitar o conhecimento externo específico do domínio ou lidar com recuperações imperfeitas durante a inferência.

Usando uma analogia semelhante à anterior, o ajuste fino é como memorizar documentos e responder a perguntas sem consultá-los durante o exame. O problema dessa abordagem é que o ajuste fino pode ser caro, e o conhecimento ajustado pode ficar desatualizado. Além disso, esses métodos de ajuste fino não são tão responsivos quanto os métodos baseados em RAG.

Para saber mais sobre o ajuste fino, aqui está um guia introdutório para o ajuste fino de LLMs.

Por que não os dois? Combinação de RAG e ajuste fino com RAFT

Intuição por trás da RAFT

O RAFT reconhece as limitações das abordagens existentes e tem como objetivo combinar os pontos fortes do RAG e do ajuste fino. Ao incorporar documentos específicos do domínio durante o processo de ajuste fino, o RAFT permite que o modelo aprenda padrões específicos do domínio de destino e, ao mesmo tempo, aprimora sua capacidade de entender e utilizar o contexto externo de forma eficaz.

Em um alto nível, no RAFT, os dados de treinamento consistem em perguntas, documentos (relevantes e irrelevantes) e respostas correspondentes no estilo cadeia de raciocínio geradas a partir dos documentos relevantes. O modelo é treinado para responder a perguntas com base nesses documentos fornecidos, incluindo documentos de distração que não contêm informações relevantes. Essa abordagem ensina o modelo a identificar e priorizar informações relevantes e a desconsiderar conteúdo irrelevante.

Componentes principais da RAFT

Vamos nos aprofundar na mecânica de como o ajuste fino aumentado por recuperação funciona. O RAFT propõe um novo método para preparar dados de ajuste fino para treinar modelos de resposta RAG no domínio. No RAFT, cada ponto de dados no conjunto de dados de treinamento consiste em:

  1. Uma pergunta (Q)
  2. Um conjunto de documentos (Dk), que são divididos em dois tipos:
    1. Documentos "Oracle" - documentos que contêm a resposta à pergunta. Você pode ter vários documentos do oráculo para cada pergunta.
    2. Documentos "distratores" - documentos que não contêm informações relevantes para responder à pergunta.
  3. Uma resposta no estilo cadeia de raciocínio (A*): Uma resposta gerada a partir dos documentos do oráculo que inclui um processo de raciocínio detalhado.

No conjunto de dados de treinamento de ajuste fino RAFT, cada pergunta é combinada com um conjunto de documentos, alguns contendo as respostas e outros não, juntamente com uma resposta no estilo cadeia de raciocínio. Essa estrutura é particularmente útil para treinar o modelo para distinguir entre informações úteis e irrelevantes ao derivar respostas.

Para aprimorar ainda mais o aprendizado do modelo, o conjunto de dados de treinamento RAFT inclui uma combinação de tipos de perguntas:

  • Perguntas com documentos Oracle e Distractor: Uma porcentagem 𝑃 das perguntas incluirá documentos de oráculo e de distração. Isso ajuda o modelo a aprender a identificar e priorizar informações relevantes.
  • Perguntas com apenas documentos do Distractor: A porcentagem restante de 1𝑃 das perguntas terá apenas documentos de distração. Isso imita o ajuste fino tradicional, treinando o modelo para lidar com perguntas sem depender de documentos externos.

Por fim, as respostas no estilo cadeia de raciocínio incorporam segmentos dos documentos do oráculo e um processo de raciocínio detalhado. Essa abordagem aumenta a precisão do modelo nas respostas às perguntas, ensinando-o a formar uma cadeia de raciocínio usando segmentos relevantes do contexto original.

Solicitação RAFT para gerar respostas no estilo Chain-of-Thought

Fonte da imagem: RAFT: Adaptação do modelo de linguagem ao RAG específico do domínio

Processo de ajuste fino

Depois que os dados de treinamento são preparados, o processo de ajuste fino envolve:

  • Treinamento do modelo: Usando o aprendizado supervisionado, o modelo é treinado para gerar respostas no estilo cadeia de raciocínio a partir do contexto fornecido, que inclui perguntas e conjuntos de documentos.
  • Objetivo: O objetivo é que o modelo aprenda a identificar e priorizar informações relevantes dos documentos do oráculo e, ao mesmo tempo, desconsiderar os documentos de distração.

Inferência

Durante o estágio de inferência, nosso modelo ajustado será apresentado com uma pergunta e os principais K documentos recuperados pelo pipeline RAG. Observe que o módulo retriever opera independentemente do RAFT.

Resultados da RAFT

Para demonstrar que a RAFT é excelente na extração de informações relevantes de documentos do domínio e na resposta a perguntas, o artigo original comparou a abordagem da RAFT com um modelo de uso geral com RAG e com modelos ajustados específicos do domínio. Especificamente, eles ajustaram o Llama-2 usando o método RAFT para criar o modelo RAFT 7B e o compararam com o seguinte:

  1. Llama-2 com prompt de 0 disparos
  2. Llama-2 com RAG
  3. Ajuste fino específico de domínio (DSF) Llama-2 (um processo de ajuste fino supervisionado padrão)
  4. DSF + RAG (Llama-2 com ajuste fino específico de domínio e RAG)
  5. GPT-3.5 + RAG

Esses modelos foram avaliados em três tipos de conjuntos de dados para avaliar o desempenho do RAFT em uma variedade de domínios:

  1. Conjuntos de dados de conhecimento geral - incluindo Natural Questions, Trivia QA e HotpotQA, com foco na resposta a perguntas de conhecimento comum.
  2. Documentação de software (APIs) - incluindo HuggingFace, Torch Hub e TensorFlow Hub, com foco na geração de chamadas de API executáveis corretas com base na documentação.
  3. Conjuntos de dados específicos do domínio - incluindo o PubMedQA, com foco em questões de pesquisa biomédica e biológica.

Em geral, os resultados mostram que o RAFT superou consistentemente o método de ajuste fino supervisionado, com e sem RAG, no PubMed, HotpotQA e outros conjuntos de dados de API.

Quando comparado ao ajuste fino específico do domínio (DSF), o RAFT superou significativamente o DSF. É interessante notar que o DSF com RAG não levou a um melhor desempenho e, na verdade, teve um desempenho pior.

Isso indica que o DSF não tem a capacidade de extrair informações relevantes dos documentos fornecidos de forma eficaz. Ao utilizar o RAFT, treinamos o modelo para processar documentos com precisão e fornecer um estilo de resposta adequado.

A abordagem RAFT superou até mesmo o GPT-3.5 com o RAG, que é um modelo de linguagem muito maior, demonstrando a eficácia do RAFT.

Comparação dos resultados da RAFT com os modelos básicos

Fonte da imagem: RAFT: Adaptação do modelo de linguagem ao RAG específico do domínio

Estudos de ablação

Além dos experimentos principais, o artigo original também realizou vários estudos de ablação para entender o impacto de vários componentes no desempenho da RAFT:

  1. Efeito da cadeia de raciocínio - Os resultados mostram que, na maioria dos casos, a RAFT com cadeia de raciocínio (CoT) superou a RAFT sem ela.
  2. Proporção de documentos Oracle - Qual é a proporção ideal de documentos oracle a serem incluídos nos dados de treinamento? O estudo de ablação revela que a porcentagem ideal de instâncias de treinamento que devem incluir os documentos do oráculo varia de acordo com os conjuntos de dados, sendo que 80% alcançam um desempenho consistentemente forte em todos os conjuntos de dados.
  3. Número de documentos de distração - O estudo de ablação constatou que a configuração de treinamento de um documento do oráculo com quatro documentos de distração é ideal para equilibrar o treinamento do modelo para priorizar e selecionar informações relevantes sem sobrecarregá-lo com documentos irrelevantes.

Como fazer experimentos com a RAFT

Para implementar o RAFT, os pesquisadores e profissionais podem seguir as etapas descritas no documento. Isso inclui a geração de respostas no estilo cadeia de pensamento a partir de documentos relevantes, a incorporação de documentos de distração durante o treinamento e o ajuste fino do modelo usando técnicas de aprendizado supervisionado. Os autores também abriram o código e forneceram uma demonstração para facilitar a experimentação e a adoção do RAFT.

Saiba mais sobre o RAG e o ajuste fino

O RAFT representa um avanço significativo no campo da modelagem de linguagem específica de domínio, oferecendo uma solução poderosa para adaptar LLMs a domínios especializados. Ao combinar os pontos fortes do RAG e do ajuste fino, o RAFT equipa os modelos de linguagem com a capacidade de aproveitar efetivamente o conhecimento específico do domínio e, ao mesmo tempo, manter a robustez contra imprecisões de recuperação.

Para os interessados em se aprofundar no mundo do RAG e do ajuste fino, recomendamos que você explore os seguintes recursos:

Como a demanda por modelos de linguagem específicos de domínio continua a crescer, técnicas como a RAFT desempenharão um papel fundamental na viabilização de aplicativos de PNL mais precisos e confiáveis em vários setores e domínios.

Temas

Continue sua jornada de aprendizado de IA hoje mesmo!

curso

Large Language Models (LLMs) Concepts

2 hr
27.7K
Discover the full potential of LLMs with our conceptual course covering LLM applications, training methodologies, ethical considerations, and latest research.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

Entendendo e atenuando o viés em modelos de idiomas grandes (LLMs)

Mergulhe em um passo a passo abrangente sobre a compreensão do preconceito nos LLMs, o impacto que ele causa e como atenuá-lo para garantir a confiança e a justiça.
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

12 min

tutorial

Guia de Introdução ao Ajuste Fino de LLMs

O ajuste fino dos grandes modelos de linguagem (LLMs, Large Language Models) revolucionou o processamento de linguagem natural (PLN), oferecendo recursos sem precedentes em tarefas como tradução de idiomas, análise de sentimentos e geração de textos. Essa abordagem transformadora aproveita modelos pré-treinados como o GPT-2, aprimorando seu desempenho em domínios específicos pelo processo de ajuste fino.
Josep Ferrer's photo

Josep Ferrer

12 min

tutorial

Guia para iniciantes do LlaMA-Factory WebUI: Ajuste fino dos LLMs

Saiba como fazer o ajuste fino dos LLMs em conjuntos de dados personalizados, avaliar o desempenho e exportar e servir modelos com facilidade usando a estrutura com pouco ou nenhum código do LLaMA-Factory.
Abid Ali Awan's photo

Abid Ali Awan

12 min

tutorial

RAG With Llama 3.1 8B, Ollama e Langchain: Tutorial

Aprenda a criar um aplicativo RAG com o Llama 3.1 8B usando Ollama e Langchain, configurando o ambiente, processando documentos, criando embeddings e integrando um retriever.
Ryan Ong's photo

Ryan Ong

12 min

tutorial

Como treinar um LLM com o PyTorch

Domine o processo de treinamento de grandes modelos de linguagem usando o PyTorch, desde a configuração inicial até a implementação final.
Zoumana Keita 's photo

Zoumana Keita

8 min

Ver maisVer mais