Criar uma aplicação de inteligência artificial inicia com a escolha de um LLM (Large Language Model ou grande modelo de linguagem), e não necessariamente para por aqui. Digo isso porque haverá um momento em que a sua aplicação precisará acessar documentos internos, precisará responder com base em informações atualizadas e até executará tarefas específicas para fazer uma entrega consistente.
E, para atender à demanda da sua aplicação, utilizamos duas abordagens notavelmente conhecidas pelo acrônimo RAG (Retrieval-Augmented Generation ou geração aumentada por recuperação) e a outra por seu nome, ajuste fino (fine-tuning).
Embora ambas possam melhorar a utilidade e a qualidade da saída de uma informação, de uma aplicação que utiliza o LLM, elas possuem características e funcionamento de uso diferentes.
Neste artigo, vamos entender essa diferença, quando escolher a melhor abordagem e a explicação de uso em cenários.
Sumário
Qual a diferença entre RAG e Ajuste Fino?
O RAG recupera informações externas e as inclui no contexto que o modelo recebe, antes de gerar uma resposta. Esse processo de recuperação não altera os pesos do modelo de linguagem.
Por exemplo, um assistente de suporte pode recuperar uma informação no manual de um produto e usá-la para responder à pergunta de um cliente. Quando o manual é atualizado, o desenvolvedor atualiza a base de conhecimento utilizada pelo RAG, sem precisar treinar novamente o modelo.
Já o ajuste fino precisa de treinamento adicional para ajustar os parâmetros de um modelo. E, para isso, utilizamos exemplos de treinamento para adaptar o modelo a uma tarefa, a um estilo de escrita ou a um padrão de resposta que desejamos que ele entregue.
Quando usar o RAG?
Utilizamos o RAG quando queremos que a nossa aplicação responda às perguntas usando documentos internos e quando eles mudam com frequência.
Entre as aplicações mais comuns estão:
- Assistentes de atendimento que consultam a documentação dos produtos.
- Assistentes para funcionários que pesquisam as políticas da empresa.
- Assistentes técnicos que respondem sobre procedimentos internos.
- Portais de conhecimento que ajudam a encontrar informações em diferentes documentos.
Para facilitar o entendimento, imagine um funcionário perguntando:
“Quais despesas posso solicitar como reembolso durante uma viagem de trabalho?”
Uma aplicação com RAG recuperaria a política de viagens relevante e forneceria essas informações ao modelo, que geraria uma resposta baseada no conteúdo recuperado.
O RAG também pode fornecer referências às fontes, permitindo que o usuário verifique de onde veio a resposta. Entretanto, a aplicação precisa preservar e apresentar essas referências corretamente. E é neste momento que entra em ação o ajuste fino.
Quando usar o Ajuste Fino?
O ajuste fino é útil quando você precisa adaptar a maneira de como um modelo executa uma tarefa ou apresenta suas respostas. Posso mencionar os seguintes cenários de uso:
- Ter um estilo de escrita consistente com o tom da empresa.
- Haver maior consistência na execução de uma tarefa especializada.
- Entregar resumos que sigam uma estrutura específica.
- Classificar categorias que foram claramente definidas.
Por exemplo, uma equipe de suporte pode precisar classificar os tickets de atendimento, como dúvidas de cobrança, problemas técnicos ou solicitações de cancelamento. O treinamento do ajuste fino com exemplos de tickets anteriores, ajudará o modelo a aprender as diferenças de quando utilizar cada uma das categorias.
Outro exemplo de aplicação é quando é preciso gerar resumos em um formato consistente. E os exemplos adicionados para treinamento permitirão que se consiga entregar no nível de detalhe e na linguagem esperada.
Para isso, o ajuste fino exige dados de treinamento adequados e posterior avaliação dos resultados. Esse treinamento também leva tempo, e nem todos os modelos permitem essa personalização. Por este motivo, o uso do ajuste fino é menos conveniente para informações que mudam frequentemente.
Como aplicar no seu projeto?
Considere uma empresa que está criando um assistente interno para uso da equipe de suporte.
Com o RAG, o assistente recuperará as instruções atualizadas de solução de problemas e as políticas dos produtos e serviços. Seu principal objetivo será fornecer informações relevantes para cada pergunta que a equipe de suporte fizer.
Com o ajuste fino, a empresa adaptará o modelo para responder no estilo desejado ou executar uma tarefa de maneira consistente.
Agora vamos supor que os recursos humanos atualizem a política de reembolso. Então, a equipe de desenvolvimento precisará atualizar os documentos na base do RAG, para permitir que respostas sejam atualizadas nessa base de conhecimento. Porém, se o assistente começar a entregar repetidamente respostas mal estruturadas, precisaremos verificar o tipo de dado que usamos para treinar o modelo e posteriormente utilizar o ajuste fino, para corrigir esse tipo de comportamento.
Elas podem trabalhar juntos?
Sim. Uma aplicação com RAG pode utilizar um modelo personalizado por ajuste fino para gerar suas respostas. Nessa combinação, o RAG recupera informações relevantes dos documentos, e o ajuste fino ajuda o modelo a apresentá-las no estilo e no formato desejados.
Para entender como isso funciona, imagine um analista de suporte que consulta um assistente sobre um problema técnico. O RAG recupera as instruções na documentação, enquanto o modelo organiza a resposta em uma estrutura aprendida durante o treinamento, apresentando os passos da solução. A aplicação também pode exibir as fontes recuperadas para que o analista confira as orientações.
Esse exemplo mostra como as abordagens se complementam, mas a necessidade de combiná-las depende do problema que você precisa resolver. Se a aplicação precisa consultar documentos próprios e informações que mudam com frequência, comece com RAG. Se também precisar melhorar a consistência em tarefas específicas, estilos de escrita ou formatos de resposta, avalie o ajuste fino.
Por isso, minha recomendação para um assistente que consulta documentos da empresa é implementar o RAG e testar as respostas com perguntas reais. Esses resultados ajudarão a identificar se o ajuste fino trará um benefício adicional, permitindo que você amplie a solução com base na sua necessidade.