Entre em contato

Melhorando modelos de linguagem aumentada de recuperação: auto-raciocínio e aumento adaptativo para sistemas conversacionais

Inteligência artificial

Melhorando modelos de linguagem aumentada de recuperação: auto-raciocínio e aumento adaptativo para sistemas conversacionais

mm
estruturas de auto-raciocínio e geração aumentada de recuperação adaptativa

Grandes modelos de linguagem muitas vezes têm dificuldade em fornecer informações precisas e atuais, especialmente em tarefas complexas baseadas em conhecimento. Para superar estes obstáculos, os investigadores estão a investigar métodos para melhorar estes modelos, integrando-os com fontes de dados externas.

Duas novas abordagens que surgiram neste campo são estruturas de auto-raciocínio e geração de recuperação aumentada adaptativa para sistemas conversacionaisNeste artigo, vamos nos aprofundar nessas técnicas inovadoras e explorar como elas estão expandindo os limites do que é possível com modelos de linguagem.

A promessa e as armadilhas dos modelos de linguagem aumentada 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 as capacidades de compreensão da linguagem de modelos de linguagem pré-treinados com a capacidade de acessar e incorporar informações externas atualizadas durante a inferência.

Aqui está uma ilustração simples de como um RALM básico pode funcionar:

  1. Um usuário faz uma pergunta: “Qual foi o resultado dos Jogos Olímpicos de 2024?”
  2. O sistema recupera documentos relevantes de uma base de conhecimento externa.
  3. O LLM processa a pergunta junto com as informações recuperadas.
  4. O modelo gera uma resposta baseada tanto em seu conhecimento interno quanto em dados externos.

Esta abordagem tem se mostrado muito promissora na melhoria da precisão e relevância dos resultados do LLM, especialmente para tarefas que exigem acesso a informações atuais ou conhecimentos específicos de um domínio. No entanto, os RALMs têm seus desafios. Duas questões principais com as quais os pesquisadores têm lutado são:

  1. Confiabilidade: Como podemos garantir que as informações recuperadas sejam relevantes e úteis?
  2. 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: aprimorando RALMs com trajetórias de raciocínio explícito

Esta é a arquitetura e o processo por trás dos LLMs com recuperação aumentada, com foco em uma estrutura chamada Autoraciocínio. Essa abordagem utiliza trajetórias para aprimorar a capacidade do modelo de raciocinar sobre os documentos recuperados.

Quando uma questão é colocada, os documentos relevantes são recuperados e processados ​​através de uma série de etapas de raciocínio. O mecanismo de auto-raciocínio aplica processos de análise de trajetória e reconhecimento de evidências para filtrar e sintetizar informações antes de gerar a resposta final. Este método não só aumenta a precisão dos resultados, mas também garante que o raciocínio por trás das respostas seja transparente e rastreável.

Nos exemplos fornecidos acima, como determinar a data de lançamento do filme “Prenda-me Se For Capaz” ou identificar os artistas que pintaram o teto da Catedral de Florença, o modelo filtra efetivamente os documentos recuperados para produzir respostas precisas e contextualmente suportadas.

Esta tabela apresenta uma análise comparativa de diferentes variantes de LLM, incluindo modelos LLaMA2 e outros modelos de recuperação aumentada em tarefas como NaturalQuestions, PopQA, FEVER e ASQA. Os resultados são divididos entre linhas de base sem recuperação e aquelas aprimoradas com recursos de recuperação.

Esta imagem apresenta um cenário em que um LLM é encarregado de fornecer sugestões com base nas 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 utiliza um fragmento 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 as respostas para que estejam mais alinhadas às necessidades do usuário, proporcionando profundidade e precisão que, de outra forma, poderiam faltar em um modelo puramente generativo.

Uma abordagem inovadora para aprimorar RALMs é a introdução de estruturas de autoraciocínio. A ideia central por trás desse método é alavancar as capacidades do próprio modelo de linguagem para gerar trajetórias de raciocínio explícitas, que podem então ser usadas para aprimorar a qualidade e a confiabilidade de seus resultados.

Vamos analisar os principais componentes de uma estrutura de auto-raciocínio:

  1. Processo ciente da relevância (RAP)
  2. Processo Seletivo Baseado em Evidências (EAP)
  3. Processo de Análise de Trajetória (TOQUE)

Processo Consciente da Relevância (RAP)

O RAP foi desenvolvido para abordar um dos desafios fundamentais dos RALMs: determinar se os documentos recuperados são realmente relevantes para a questão em questão. Veja como funciona:

  1. O sistema recupera um conjunto de documentos potencialmente relevantes usando um modelo de recuperação (por exemplo, DPR ou Contriever).
  2. O modelo de linguagem é então instruído a julgar a relevância desses documentos para a questão.
  3. O modelo gera explicitamente razões que explicam porque os documentos são considerados relevantes ou irrelevantes.

Por exemplo, dada a pergunta “Quando foi construída a Torre Eiffel?”, o RAP pode produzir resultados como este:

Relevant: True
Relevant Reason: The retrieved documents contain specific information about the construction dates of the Eiffel Tower, including its commencement in 1887 and completion in 1889.

Esse processo ajuda a filtrar informações irrelevantes no início do pipeline, melhorando a qualidade geral das respostas do modelo.

Processo Seletivo Baseado em Evidências (EAP)

O PAE leva a avaliação de relevância um passo adiante, instruindo o modelo a identificar e citar evidências específicas dos documentos relevantes. Esse processo imita a forma como humanos abordariam uma tarefa de pesquisa, selecionando frases-chave e explicando sua relevância. Veja como o resultado do PAE pode ser:

Cite content: "Construction of the Eiffel Tower began on January 28, 1887, and was completed on March 31, 1889."
Reason to cite: This sentence provides the exact start and end dates for the construction of the Eiffel Tower, directly answering the question about when it was built.

Ao citar explicitamente as fontes e explicar a relevância de cada evidência, o EAP melhora a rastreabilidade e a interpretabilidade dos resultados do modelo.

Processo de Análise de Trajetória (TAP)

O TAP é a etapa final do quadro de auto-raciocínio, onde o modelo consolida todas as trajetórias de raciocínio geradas nas etapas anteriores. Analisa essas trajetórias e produz um resumo conciso junto com uma resposta final. A saída do TAP pode ser semelhante a esta:

Analysis: The Eiffel Tower was built between 1887 and 1889. Construction began on January 28, 1887, and was completed on March 31, 1889. This information is supported by multiple reliable sources that provide consistent dates for the tower's construction period.

Resposta: A Torre Eiffel foi construída de 1887 a 1889.

Este processo permite que o modelo forneça tanto uma explicação detalhada de seu raciocínio quanto uma resposta concisa, atendendo às diferentes necessidades do usuário.

Implementando o auto-raciocínio na prática

Para implementar esta estrutura de auto-raciocínio, os investigadores exploraram várias abordagens, incluindo:

  1. Solicitando modelos de linguagem pré-treinados
  2. Ajustando modelos de linguagem com técnicas eficientes em parâmetros, como QLoRA
  3. Desenvolvimento de arquiteturas neurais especializadas, como modelos de atenção com múltiplas cabeças

Cada uma dessas abordagens tem suas próprias vantagens em termos de desempenho, eficiência e facilidade de implementação. Por exemplo, a abordagem de estímulo é a mais simples de implementar, mas nem sempre pode produzir resultados consistentes. O ajuste fino com QLoRA oferece um bom equilíbrio entre desempenho e eficiência, enquanto arquiteturas especializadas podem fornecer o melhor desempenho, mas requerem mais recursos computacionais para treinamento.

Aqui está um exemplo simplificado de como você pode implementar o RAP usando uma abordagem de prompt com um modelo de linguagem como GPT-3:

import openai

def relevance_aware_process(question, documents):
    prompt = f"""
    Question: {question}
    
    Retrieved documents:
    {documents}
    
    Task: Determine if the retrieved documents are relevant to answering the question.
    Output format:
    Relevant: [True/False]
    Relevant Reason: [Explanation]
    
    Your analysis:
    """
    
    response = openai.Completion.create(
        engine="text-davinci-002",
        prompt=prompt,
        max_tokens=150
    )
    
    return response.choices[0].text.strip()

# Example usage
question = "When was the Eiffel Tower built?"
documents = "The Eiffel Tower is a wrought-iron lattice tower on the Champ de Mars in Paris, France. It is named after the engineer Gustave Eiffel, whose company designed and built the tower. Constructed from 1887 to 1889 as the entrance arch to the 1889 World's Fair, it was initially criticized by some of France's leading artists and intellectuals for its design, but it has become a global cultural icon of France."

result = relevance_aware_process(question, documents)
print(result)

Este exemplo demonstra como o PAR pode ser implementado utilizando uma abordagem simples de solicitação. Na prática, técnicas mais sofisticadas seriam usadas para garantir consistência e lidar com casos extremos.

Geração Aumentada de Recuperação Adaptativa para Sistemas Conversacionais

Embora a estrutura de auto-raciocínio se concentre em melhorar a qualidade e a interpretabilidade das respostas individuais, outra linha de pesquisa tem explorado como tornar a geração aumentada por recuperação mais adaptativa no contexto de sistemas conversacionais. Esta abordagem, conhecida como geração aumentada de recuperação adaptativa, visa determinar quando o conhecimento externo deve ser usado em uma conversa e como incorporá-lo de forma eficaz.

A principal percepção por trás dessa abordagem é que nem toda conversa requer a ampliação do conhecimento externo. Em alguns casos, confiar demais nas informações recuperadas pode levar a respostas artificiais ou excessivamente prolixas. 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 de recuperação adaptativa

Para enfrentar este desafio, os pesquisadores propuseram uma estrutura chamada RAGate, que consiste em vários componentes principais:

  1. Um mecanismo de porta de conhecimento binário
  2. Um processo consciente da relevância
  3. Um processo seletivo ciente de evidências
  4. Um processo de análise de trajetória

O Mecanismo Binário do Portal do Conhecimento

O núcleo do sistema RAGate é uma porta de conhecimento binária que decide se deve usar conhecimento externo para um determinado turno de conversa. Este portão leva em consideração o contexto da conversa e, opcionalmente, os fragmentos de conhecimento recuperados para tomar sua decisão.

Aqui está uma ilustração simplificada de como o portão do conhecimento binário pode funcionar:

def knowledge_gate(context, retrieved_knowledge=None):
    # Analyze the context and retrieved knowledge
    # Return True if external knowledge should be used, False otherwise
    pass

def generate_response(context, knowledge=None):
    if knowledge_gate(context, knowledge):
        # Use retrieval-augmented generation
        return generate_with_knowledge(context, knowledge)
    else:
        # Use standard language model generation
        return generate_without_knowledge(context)

Este mecanismo de controle permite que o sistema seja mais flexível e consciente do contexto no uso do conhecimento externo.

Implementando RAGate

Esta imagem ilustra a estrutura RAGate, um sistema avançado projetado para incorporar conhecimento externo em LLMs para melhorar a geração de respostas. Esta arquitetura mostra como um LLM básico pode ser complementado com contexto ou conhecimento, seja por meio de entrada direta ou pela integração de bancos de dados externos durante o processo de geração. Esta abordagem dupla – utilizando capacidades de modelo interno e dados externos – permite ao LLM fornecer respostas mais precisas e contextualmente relevantes. Este método híbrido preenche a lacuna entre o poder computacional bruto e o conhecimento específico do domínio.

Isso mostra métricas de desempenho para várias variantes de modelo na estrutura RAGate, que se concentra na integração da recuperação com ajuste fino com eficiência de parâmetros (PEFT). Os resultados destacam a superioridade dos modelos integrados ao contexto, particularmente aqueles que utilizam incorporações de ner-know e ner-source.

Os modelos RAGate-PEFT e RAGate-MHA demonstram melhorias substanciais na precisão, na recuperação e nas pontuações F1, ressaltando os benefícios da incorporação de informações de contexto e de conhecimento. Essas estratégias de ajuste fino permitem que os modelos tenham um desempenho mais eficaz em tarefas que exigem muito 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:

  1. Usando modelos de linguagem grandes com prompts cuidadosamente elaborados
  2. Ajustando modelos de linguagem usando técnicas eficientes em parâmetros
  3. Desenvolvimento de arquiteturas neurais especializadas, como modelos de atenção com múltiplas cabeças

Cada uma dessas abordagens tem seus próprios pontos fortes e fracos. Por exemplo, a abordagem de estímulo é relativamente simples de implementar, mas nem sempre pode produzir resultados consistentes. O ajuste fino oferece um bom equilíbrio entre desempenho e eficiência, enquanto arquiteturas especializadas podem fornecer o melhor desempenho, mas requerem 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 ajustado:

 
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification

class RAGate:
    def __init__(self, model_name):
        self.tokenizer = AutoTokenizer.from_pretrained(model_name)
        self.model = AutoModelForSequenceClassification.from_pretrained(model_name)
        
    def should_use_knowledge(self, context, knowledge=None):
        inputs = self.tokenizer(context, knowledge or "", return_tensors="pt", truncation=True, max_length=512)
        with torch.no_grad():
            outputs = self.model(**inputs)
        probabilities = torch.softmax(outputs.logits, dim=1)
        return probabilities[0][1].item() > 0.5  # Assuming binary classification (0: no knowledge, 1: use knowledge)

class ConversationSystem:
    def __init__(self, ragate, lm, retriever):
        self.ragate = ragate
        self.lm = lm
        self.retriever = retriever
        
    def generate_response(self, context):
        knowledge = self.retriever.retrieve(context)
        if self.ragate.should_use_knowledge(context, knowledge):
            return self.lm.generate_with_knowledge(context, knowledge)
        else:
            return self.lm.generate_without_knowledge(context)

# Example usage
ragate = RAGate("path/to/fine-tuned/model")
lm = LanguageModel()  # Your preferred language model
retriever = KnowledgeRetriever()  # Your knowledge retrieval system

conversation_system = ConversationSystem(ragate, lm, retriever)

context = "User: What's the capital of France?\nSystem: The capital of France is Paris.\nUser: Tell me more about its famous landmarks."
response = conversation_system.generate_response(context)
print(response)

Este exemplo demonstra como um sistema semelhante ao RAGate pode ser implementado na prática. O RAGate classe usa um modelo ajustado para decidir se deve usar conhecimento externo, enquanto a classe ConversationSystem classe orquestra a interação entre o portão, o modelo de linguagem e o recuperador.

Desafios e Direções Futuras

Embora as estruturas de auto-raciocínio e a geração adaptativa de recuperação aumentada sejam muito promissoras, ainda existem vários desafios que os pesquisadores estão trabalhando para enfrentar:

  1. Eficiência Computacional: Ambas as abordagens podem ser computacionalmente intensivas, especialmente ao lidar com grandes quantidades de informações recuperadas ou gerar longas trajetórias de raciocínio. A otimização desses processos para aplicações em tempo real continua sendo uma área ativa de pesquisa.
  2. Robustez: é crucial garantir que esses sistemas funcionem de forma consistente em uma ampla variedade de tópicos e tipos de perguntas. Isso inclui lidar com casos extremos e informações adversárias que podem confundir o julgamento de relevância ou os mecanismos de controle.
  3. Suporte multilíngue e multilíngue: Ampliar essas abordagens para que funcionem de forma eficaz em vários idiomas e para lidar com a recuperação e o raciocínio de informações entre idiomas é uma direção importante para trabalhos futuros.
  4. Integração com outras tecnologias de IA: Explorar como estas abordagens podem ser combinadas com outras tecnologias de IA, tais como modelos multimodais ou aprendizagem por reforço, poderia levar a sistemas ainda mais poderosos e flexíveis.

Conclusão

O desenvolvimento de estruturas de auto-raciocínio e geração adaptativa de recuperação aumentada representa um avanço significativo no campo do processamento de linguagem natural. Ao permitir que os modelos de linguagem raciocinem explicitamente sobre as informações que utilizam e adaptem dinamicamente as suas estratégias de aumento de conhecimento, estas abordagens prometem tornar os sistemas de IA mais fiáveis, interpretáveis ​​e conscientes do contexto.

À medida que a investigação nesta área continua a evoluir, podemos esperar ver estas técnicas refinadas e integradas numa vasta gama de aplicações, desde sistemas de resposta a perguntas e assistentes virtuais até ferramentas educacionais e auxiliares de investigação. A capacidade de combinar o vasto conhecimento codificado em grandes modelos de linguagem com informações atualizadas e recuperadas dinamicamente tem o potencial de revolucionar a forma como interagimos com sistemas de IA e acessamos informações.

Passei os últimos cinco anos mergulhando no fascinante mundo do Machine Learning e Deep Learning. Minha paixão e experiência me levaram a contribuir para mais de 50 projetos diversos de engenharia de software, com foco particular em AI/ML. Minha curiosidade contínua também me atraiu para o Processamento de Linguagem Natural, um campo que estou ansioso para explorar mais.