Modelos e plataformas de IA
Melhorando Modelos de Linguagem Aumentados por Recuperação: Auto-Raciocínio e Aumento Adaptativo para Sistemas Conversacionais

Por
Aayush Mittal Mittal
Modelos de linguagem de grande escala frequentemente lutam para fornecer informações precisas e atuais, especialmente em tarefas baseadas em conhecimento complexo. Para superar esses obstáculos, os pesquisadores estão investigando métodos para melhorar esses modelos integrando-os com fontes de dados externas.
Duas novas abordagens que surgiram nesse campo são arcabouços de auto-raciocínio e geração aumentada por recuperação adaptativa para sistemas conversacionais. Neste artigo, mergulharemos profundamente nessas técnicas inovadoras e exploraremos como elas estão empurrando os limites do que é possível com modelos de linguagem.
A Promessa e Armadilhas dos Modelos de Linguagem Aumentados por Recuperação
Vamos entender o conceito de Modelos de Linguagem Aumentados por Recuperação (RALMs). A ideia central por trás dos RALMs é combinar o vasto conhecimento e a capacidade de compreensão de linguagem dos modelos de linguagem pré-treinados com a capacidade de acessar e incorporar informações externas e atualizadas durante a inferência.
Aqui está uma ilustração simples de como um RALM básico pode funcionar:
- Um usuário faz uma pergunta: “Qual foi o resultado dos Jogos Olímpicos de 2024?”
- O sistema recupera documentos relevantes de uma base de conhecimento externa.
- O modelo de linguagem processa a pergunta junto com as informações recuperadas.
- O modelo gera uma resposta com base em seu conhecimento interno e nos dados externos.
Essa abordagem mostrou grande promessa em melhorar a precisão e a relevância das saídas dos modelos de linguagem, especialmente para tarefas que exigem acesso a informações atuais ou conhecimento específico de domínio. No entanto, os RALMs não estão sem desafios. Dois problemas principais com os quais os pesquisadores têm lidado são:
- Confiabilidade: Como podemos garantir que as informações recuperadas sejam relevantes e úteis?
- Rastreabilidade: Como podemos tornar o processo de raciocínio do modelo mais transparente e verificável?
Pesquisas recentes propuseram soluções inovadoras para esses desafios, que exploraremos em profundidade.
Auto-Raciocínio: Aumentando os RALMs com Trajetórias de Raciocínio Explícitas
Essa é a arquitetura e o processo por trás dos modelos de linguagem aumentados por recuperação, focando em um arcabouço chamado Auto-Raciocínio. Essa abordagem usa trajetórias para melhorar a capacidade do modelo de raciocinar sobre os documentos recuperados.
Quando uma pergunta é feita, documentos relevantes são recuperados e processados por meio de uma série de etapas de raciocínio. O mecanismo de Auto-Raciocínio aplica processos de análise de evidências e trajetórias para filtrar e sintetizar informações antes de gerar a resposta final. Esse método não apenas melhora a precisão da saída, mas também garante que o raciocínio por trás das respostas seja transparente e rastreável.
Nos exemplos fornecidos, como determinar a data de lançamento do filme “Catch Me If You Can” ou identificar os artistas que pintaram o teto da Catedral de Florença, o modelo efetivamente filtra os documentos recuperados para produzir respostas precisas e contextualmente suportadas.
Essa tabela apresenta uma análise comparativa de diferentes variantes de modelos de linguagem, incluindo modelos LLaMA2 e outros modelos aumentados por recuperação em tarefas como NaturalQuestions, PopQA, FEVER e ASQA. Os resultados são divididos entre linhas de base sem recuperação e aquelas melhoradas com capacidades de recuperação.
Essa imagem apresenta um cenário em que um modelo de linguagem é solicitado a fornecer sugestões com base em consultas do usuário, demonstrando como o uso de conhecimento externo pode influenciar a qualidade e a relevância das respostas. O diagrama destaca duas abordagens: uma em que o modelo usa um trecho de conhecimento e outra em que não o faz. A comparação destaca como a incorporação de informações específicas pode adaptar respostas para atender melhor às necessidades do usuário, fornecendo profundidade e precisão que poderiam faltar em um modelo puramente gerativo.
Uma abordagem inovadora para melhorar os RALMs é a introdução de arcabouços de auto-raciocínio. A ideia central por trás desse método é aproveitar as próprias capacidades do modelo de linguagem para gerar trajetórias de raciocínio explícitas, que podem ser usadas para melhorar a qualidade e a confiabilidade de suas saídas.
Vamos desmembrar os componentes principais de um arcabouço de auto-raciocínio:
- Processo de Conhecimento Relevante (RAP)
- Processo Seletivo de Evidências (EAP)
- Processo de Análise de Trajetórias (TAP)
Processo de Conhecimento Relevante (RAP)
O RAP é projetado para abordar um dos desafios fundamentais dos RALMs: determinar se os documentos recuperados são realmente relevantes para a pergunta dada. Aqui está como funciona:
- O sistema recupera um conjunto de documentos potencialmente relevantes usando um modelo de recuperação (por exemplo, DPR ou Contriever).
- O modelo de linguagem é então instruído a julgar a relevância desses documentos para a pergunta.
- O modelo explicitamente gera razões explicando por que os documentos são considerados relevantes ou irrelevantes.
Por exemplo, dada a pergunta “Quando a Torre Eiffel foi construída?”, o RAP poderia produzir uma saída como esta:
Relevante: Verdadeiro
Razão de Relevância: Os documentos recuperados contêm informações específicas sobre as datas de construção da Torre Eiffel, incluindo seu início em 1887 e conclusão em 1889.Esse processo ajuda a filtrar informações irrelevantes cedo no pipeline, melhorando a qualidade geral das respostas do modelo.
Processo Seletivo de Evidências (EAP)
O EAP leva a avaliação de relevância um passo adiante, instruindo o modelo a identificar e citar peças específicas de evidências dos documentos relevantes. Esse processo imita como os humanos abordariam uma tarefa de pesquisa, selecionando frases-chave e explicando sua relevância. Aqui está como a saída do EAP pode parecer:
Conteúdo citado: "A construção da Torre Eiffel começou em 28 de janeiro de 1887 e foi concluída em 31 de março de 1889."
Razão para citar: Essa frase fornece as datas exatas de início e conclusão da construção da Torre Eiffel, respondendo diretamente à pergunta sobre quando ela foi construída.Ao citar explicitamente fontes e explicar a relevância de cada peça de evidência, o EAP melhora a rastreabilidade e a interpretabilidade das saídas do modelo.
Processo de Análise de Trajetórias (TAP)
O TAP é a etapa final do arcabouço de auto-raciocínio, onde o modelo consolida todas as trajetórias de raciocínio geradas nas etapas anteriores. Ele analisa essas trajetórias e produz um resumo conciso junto com uma resposta final. A saída do TAP pode parecer algo como:
Análise: A Torre Eiffel foi construída entre 1887 e 1889. A construção começou em 28 de janeiro de 1887 e foi concluída em 31 de março de 1889. Essa informação é suportada por múltiplas fontes confiáveis que fornecem datas consistentes para o período de construção da torre.
Resposta: A Torre Eiffel foi construída de 1887 a 1889.
Esse processo permite que o modelo forneça tanto uma explicação detalhada de seu raciocínio quanto uma resposta concisa, atendendo a diferentes necessidades do usuário.
Implementando o Auto-Raciocínio na Prática
Para implementar esse arcabouço de auto-raciocínio, os pesquisadores exploraram várias abordagens, incluindo:
- Prompting modelos de linguagem pré-treinados
- Fine-tuning de modelos de linguagem com técnicas eficientes de parâmetro como QLoRA
- Desenvolvendo arquiteturas neurais especializadas, como modelos de atenção multi-cabeça
Cada uma dessas abordagens tem seus próprios trade-offs em termos de desempenho, eficiência e facilidade de implementação. Por exemplo, a abordagem de prompting é a mais simples de implementar, mas pode não produzir resultados consistentes. O fine-tuning com QLoRA oferece um bom equilíbrio entre desempenho e eficiência, enquanto arquiteturas especializadas podem fornecer o melhor desempenho, mas exigem mais recursos computacionais para treinamento.
Aqui está um exemplo simplificado de como você pode implementar o RAP usando uma abordagem de prompting com um modelo de linguagem como GPT-3:
import openai
<p>def processo_de_conhecimento_relevante(pergunta, documentos):
prompt = f"""
Pergunta: {pergunta}
Documentos recuperados:
{documentos}
Tarefa: Determine se os documentos recuperados são relevantes para responder à pergunta.
Formato de saída:
Relevante: [Verdadeiro/Falso]
Razão de Relevância: [Explicação]
Sua análise:
"""
<p>resposta = openai.Completion.create(
engine="text-davinci-002",
prompt=prompt,
max_tokens=150
)</p>
return resposta.choices[0].text.strip()
<p># Exemplo de uso
pergunta = "Quando a Torre Eiffel foi construída?"
documentos = "A Torre Eiffel é uma torre de treliça de ferro fundido no Champ de Mars em Paris, França. Ela é nomeada após o engenheiro Gustave Eiffel, cuja empresa projetou e construiu a torre. Construída de 1887 a 1889 como a arcada de entrada para a Exposição Mundial de 1889, ela foi inicialmente criticada por alguns dos principais artistas e intelectuais da França por seu design, mas se tornou um ícone cultural global da França."
<p>resultado = processo_de_conhecimento_relevante(pergunta, documentos)
print(resultado)
Esse exemplo demonstra como o RAP pode ser implementado usando uma abordagem de prompting simples. Na prática, técnicas mais sofisticadas seriam usadas para garantir consistência e lidar com casos de bordo.
Geração Aumentada por Recuperação Adaptativa para Sistemas Conversacionais
Enquanto o arcabouço de auto-raciocínio se concentra em melhorar a qualidade e a interpretabilidade de respostas individuais, outra linha de pesquisa tem explorado como tornar a geração aumentada por recuperação mais adaptativa no contexto de sistemas conversacionais. Essa abordagem, conhecida como geração aumentada por recuperação adaptativa, visa determinar quando o conhecimento externo deve ser usado em uma conversa e como incorporá-lo de forma eficaz.
A ideia principal por trás dessa abordagem é que nem todas as etapas de uma conversa exigem a incorporação de conhecimento externo. Em alguns casos, confiar demais em informações recuperadas pode levar a respostas pouco naturais ou verbosas. O desafio, então, é desenvolver um sistema que possa decidir dinamicamente quando usar conhecimento externo e quando confiar nas capacidades inerentes do modelo.
Componentes da Geração Aumentada por Recuperação Adaptativa
Para abordar esse desafio, os pesquisadores propuseram um arcabouço chamado RAGate, que consiste em vários componentes principais:
- Um mecanismo de porta de conhecimento binário
- Um processo de conhecimento relevante
- Um processo seletivo de evidências
- Um processo de análise de trajetórias
O Mecanismo de Porta de Conhecimento Binário
O núcleo do sistema RAGate é uma porta de conhecimento binário que decide se o conhecimento externo deve ser usado para uma determinada etapa da conversa. Essa porta leva em consideração o contexto da conversa e, opcionalmente, os trechos de conhecimento recuperados para tomar sua decisão.
Aqui está uma ilustração simplificada de como a porta de conhecimento binário pode funcionar:
def porta_de_conhecimento(contexto, conhecimento_recuperado=None): # Analise o contexto e o conhecimento recuperado # Retorne True se o conhecimento externo deve ser usado, False caso contrário pass <p>def gerar_resposta(contexto, conhecimento=None): if porta_de_conhecimento(contexto, conhecimento): # Use geração aumentada por recuperação return gerar_com_conhecimento(contexto, conhecimento) else: # Use geração padrão do modelo de linguagem return gerar_sem_conhecimento(contexto)
Esse mecanismo de porta permite que o sistema seja mais flexível e consciente do contexto em seu uso de conhecimento externo.
Implementando o RAGate
Essa imagem ilustra o arcabouço RAGate, um sistema avançado projetado para incorporar conhecimento externo em modelos de linguagem para melhorar a geração de respostas. Essa arquitetura mostra como um modelo de linguagem básico pode ser suplementado com contexto ou conhecimento, seja por meio de entrada direta ou integrando bancos de dados externos durante o processo de geração. Essa abordagem híbrida — usando tanto as capacidades internas do modelo quanto dados externos — permite que o modelo de linguagem forneça respostas mais precisas e contextualmente relevantes. Esse método híbrido preenche a lacuna entre o poder computacional bruto e a expertise específica de domínio.
Essa imagem apresenta métricas de desempenho para várias variantes de modelos sob o arcabouço RAGate, que se concentra na integração de recuperação com fine-tuning eficiente de parâmetro (PEFT). Os resultados destacam a superioridade dos modelos que integram contexto e conhecimento, particularmente aqueles que utilizam embeddings de ner-know e ner-source.
Os modelos RAGate-PEFT e RAGate-MHA demonstram melhorias significativas em precisão, recall e escores F1, destacando os benefícios da incorporação de ambos os contextos e conhecimentos. Essas estratégias de fine-tuning permitem que os modelos performem mais eficazmente em tarefas intensivas em conhecimento, fornecendo uma solução mais robusta e escalável para aplicações do mundo real.
Para implementar o RAGate, os pesquisadores exploraram várias abordagens, incluindo:
- Usando grandes modelos de linguagem com prompts cuidadosamente elaborados
- Fine-tuning de modelos de linguagem usando técnicas eficientes de parâmetro
- Desenvolvendo arquiteturas neurais especializadas, como modelos de atenção multi-cabeça
Cada uma dessas abordagens tem suas próprias forças e fraquezas. Por exemplo, a abordagem de prompting é relativamente simples de implementar, mas pode não produzir resultados consistentes. O fine-tuning oferece um bom equilíbrio entre desempenho e eficiência, enquanto arquiteturas especializadas podem fornecer o melhor desempenho, mas exigem mais recursos computacionais para treinamento.
Aqui está um exemplo simplificado de como você pode implementar um sistema semelhante ao RAGate usando um modelo de linguagem fine-tuned:
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
<p>class RAGate:
def __init__(self, nome_do_modelo):
self.tokenizador = AutoTokenizer.from_pretrained(nome_do_modelo)
self.modelo = AutoModelForSequenceClassification.from_pretrained(nome_do_modelo)</p>
<p>def deve_usar_conhecimento(self, contexto, conhecimento=None):
entradas = self.tokenizador(contexto, conhecimento or "", return_tensors="pt", truncation=True, max_length=512)
with torch.no_grad():
saidas = self.modelo(**entradas)
probabilidades = torch.softmax(saidas.logits, dim=1)
return probabilidades[0][1].item() > 0.5 # Supondo classificação binária (0: não usar conhecimento, 1: usar conhecimento)</p>
<p>class SistemaConversacional:
def __init__(self, ragate, modelo_de_linguagem, recuperador):
self.ragate = ragate
self.modelo_de_linguagem = modelo_de_linguagem
self.recuperador = recuperador</p>
<p>def gerar_resposta(self, contexto):
conhecimento = self.recuperador.recuperar(contexto)
if self.ragate.deve_usar_conhecimento(contexto, conhecimento):
return self.modelo_de_linguagem.gerar_com_conhecimento(contexto, conhecimento)
else:
return self.modelo_de_linguagem.gerar_sem_conhecimento(contexto)</p>
<p># Exemplo de uso
ragate = RAGate("caminho/para/modelo/fine-tuned")
modelo_de_linguagem = ModeloDeLinguagem() # Seu modelo de linguagem preferido
recuperador = RecuperadorDeConhecimento() # Seu sistema de recuperação de conhecimento</p>
<p>sistema_conversacional = SistemaConversacional(ragate, modelo_de_linguagem, recuperador)</p>
<p>contexto = "Usuário: O que é a capital da França?\nSistema: A capital da França é Paris.\nUsuário: Me conte mais sobre seus pontos turísticos."
resposta = sistema_conversacional.gerar_resposta(contexto)
print(resposta)</p>
Esse exemplo demonstra como um sistema semelhante ao RAGate pode ser implementado na prática. A classe RAGate usa um modelo fine-tuned para decidir se o conhecimento externo deve ser usado, enquanto a classe SistemaConversacional orquestra a interação entre a porta, o modelo de linguagem e o recuperador.
Desafios e Direções Futuras
Embora os arcabouços de auto-raciocínio e a geração aumentada por recuperação adaptativa mostrem grande promessa, ainda há vários desafios que os pesquisadores estão trabalhando para resolver:
- Eficiência Computacional: Ambas as abordagens podem ser computacionalmente intensivas, especialmente ao lidar com grandes quantidades de informações recuperadas ou ao gerar trajetórias de raciocínio longas. Otimizar esses processos para aplicações em tempo real permanece uma área ativa de pesquisa.
- Robustez: Garantir que esses sistemas performem consistentemente em uma ampla gama de tópicos e tipos de perguntas é crucial. Isso inclui lidar com casos de bordo e entradas adversárias que podem confundir os mecanismos de julgamento de relevância ou de porta.
- Suporte Multilíngue e Cross-Língue: Estender essas abordagens para funcionar eficazmente em várias línguas e lidar com recuperação e raciocínio cross-linguais é uma direção importante para o trabalho futuro.
- Integração com Outras Tecnologias de IA: Explorar como essas abordagens podem ser combinadas com outras tecnologias de IA, como modelos multimodais ou aprendizado por reforço, pode levar a sistemas ainda mais poderosos e flexíveis.
Conclusão
O desenvolvimento de arcabouços de auto-raciocínio e geração aumentada por recuperação adaptativa representa um passo significativo no campo do processamento de linguagem natural. Ao permitir que os modelos de linguagem raciocinem explicitamente sobre as informações que usam e adaptem suas estratégias de aumento de conhecimento dinamicamente, essas abordagens prometem tornar os sistemas de IA mais confiáveis, interpretáveis e conscientes do contexto.
À medida que a pesquisa nessa área continua a evoluir, podemos esperar ver essas técnicas refinadas e integradas em uma ampla gama de aplicações, desde sistemas de resposta a perguntas e assistentes virtuais até ferramentas educacionais e auxílios de pesquisa. A capacidade de combinar o vasto conhecimento codificado em modelos de linguagem de grande escala com informações externas dinamicamente recuperadas tem o potencial de revolucionar a forma como interagimos com sistemas de IA e acessamos informações.
Eu passei os últimos cinco anos me imergindo no fascinante mundo de Aprendizado de Máquina e Aprendizado Profundo. Minha paixão e expertise me levaram a contribuir para mais de 50 projetos de engenharia de software diversificados, com um foco particular em IA/ML. Minha curiosidade contínua também me levou em direção ao Processamento de Linguagem Natural, um campo que estou ansioso para explorar mais.
Descubra mais


O que é Geração Aumentada por Recuperação (RAG)? Como a IA responde com conhecimento externo


O Problema de Memória do AI: Por que o Contexto Longo Eficiente Muda Tudo e o que é Necessário para Fazê-lo Corretamente


Por que o seu RAG biomédico está escondendo contradições de você


O Verdadeiro Motivo pelo Qual Seu Pipeline RAG Continua Alucinando


Previsão 2026 – O Código Aberto Cavalgará a Onda da IA para sua Próxima Idade de Ouro


O Dilema do Controle de IA: Riscos e Soluções




