Inteligência artificial
Uma Imersão Profunda na Geração Aumentada por Recuperação em LLM

Imagine que você é um Analista e tem acesso a um Modelo de Linguagem Grande. Você está animado com as perspectivas que isso traz para o seu fluxo de trabalho. Mas então, você pergunta sobre os preços das ações mais recentes ou a taxa de inflação atual, e é atingido por:
“Desculpe, mas não posso fornecer dados em tempo real ou pós-corte. Meus dados de treinamento mais recentes só vão até janeiro de 2022.”
Modelos de Linguagem Grande, apesar de todo o seu poder linguístico, carecem da capacidade de capturar o “agora“. E no mundo rápido, “agora” é tudo.
Pesquisas mostraram que modelos de linguagem grandes pré-treinados (LLM) também são repositórios de conhecimento factual.
Eles foram treinados em tantos dados que absorveram muitos fatos e figuras. Quando ajustados, podem alcançar resultados notáveis em uma variedade de tarefas de NLP.
Mas aqui está a pegadinha: sua capacidade de acessar e manipular esse conhecimento armazenado não é perfeita. Especialmente quando a tarefa em questão é intensiva em conhecimento, esses modelos podem ficar atrás de arquiteturas mais especializadas. É como ter uma biblioteca com todos os livros do mundo, mas sem um catálogo para encontrar o que você precisa.
O ChatGPT da OpenAI Ganha uma Atualização de Navegação
O anúncio recente da OpenAI sobre a capacidade de navegação do ChatGPT é um salto significativo na direção da Geração Aumentada por Recuperação (RAG). Com o ChatGPT agora capaz de vasculhar a internet em busca de informações atuais e autorizadas, ele reflete a abordagem RAG de puxar dinamicamente dados de fontes externas para fornecer respostas enriquecidas.
https://twitter.com/OpenAI/status/1707077710047216095
Atualmente disponível para usuários Plus e Enterprise, a OpenAI planeja lançar essa funcionalidade para todos os usuários em breve. Os usuários podem ativá-la selecionando ‘Navegar com Bing’ sob a opção GPT-4.
Engenharia de Prompt é Eficaz, mas Insuficiente
Os prompts servem como a porta de entrada para o conhecimento do LLM. Eles guiam o modelo, fornecendo uma direção para a resposta. No entanto, criar um prompt eficaz não é a solução completa para obter o que você deseja de um LLM. Ainda assim, vamos passar por algumas boas práticas a considerar ao escrever um prompt:
- Clareza: Um prompt bem definido elimina a ambiguidade. Deve ser direto, garantindo que o modelo entenda a intenção do usuário. Essa clareza frequentemente se traduz em respostas mais coerentes e relevantes.
- Contexto: Especialmente para entradas extensas, a colocação da instrução pode influenciar a saída. Por exemplo, mover a instrução para o final de um prompt longo pode frequentemente produzir resultados melhores.
- Precisão na Instrução: A força da pergunta, frequentemente transmitida pelo quadro “quem, o que, onde, quando, por quê, como”, pode guiar o modelo em direção a uma resposta mais focada. Além disso, especificar o formato de saída desejado ou o tamanho pode refinar ainda mais a saída do modelo.
- Manipulação da Incerteza: É essencial guiar o modelo sobre como responder quando estiver incerto. Por exemplo, instruir o modelo a responder com “Eu não sei” quando incerto pode prevenir que ele gere respostas imprecisas ou “alucinadas“.
- Pensamento Passo a Passo: Para instruções complexas, guiar o modelo a pensar sistematicamente ou quebrar a tarefa em subtarefas pode levar a saídas mais abrangentes e precisas.
Em relação à importância dos prompts em guiar o ChatGPT, um artigo abrangente pode ser encontrado em um artigo no Unite.ai.
Desafios em Modelos de IA Gerativos
A engenharia de prompt envolve ajustar as diretrizes dadas ao seu modelo para melhorar seu desempenho. É uma maneira muito econômica de aumentar a precisão da aplicação de IA Gerativa, exigindo apenas pequenas alterações no código. Embora a engenharia de prompt possa melhorar significativamente as saídas, é crucial entender as limitações inerentes dos grandes modelos de linguagem (LLM). Dois desafios primários são alucinações e cortes de conhecimento.
- Alucinações: Isso se refere a instâncias em que o modelo retorna uma resposta confiante, mas incorreta ou fabricada. Embora os LLM avançados tenham mecanismos internos para reconhecer e evitar tais saídas.
- Cortes de Conhecimento: Cada modelo LLM tem uma data de término de treinamento, após a qual ele não tem conhecimento de eventos ou desenvolvimentos. Essa limitação significa que o conhecimento do modelo é congelado no ponto de sua data de treinamento final. Por exemplo, um modelo treinado até 2022 não saberia dos eventos de 2023.
Geração Aumentada por Recuperação (RAG) oferece uma solução para esses desafios. Ela permite que os modelos acessem informações externas, mitigando problemas de alucinações ao fornecer acesso a dados proprietários ou específicos de domínio. Para cortes de conhecimento, a RAG pode acessar informações atuais além da data de treinamento do modelo, garantindo que a saída esteja atualizada.
Isso também permite que o LLM puxe dados de várias fontes externas em tempo real. Isso pode ser bases de conhecimento, bancos de dados ou até mesmo a vasta extensão da internet.
Introdução à Geração Aumentada por Recuperação
A geração aumentada por recuperação (RAG) é um quadro, e não uma tecnologia específica, que permite que os Modelos de Linguagem Grande acessem dados nos quais não foram treinados. Existem várias maneiras de implementar a RAG, e a melhor opção depende da tarefa específica e da natureza dos dados.
O quadro RAG opera de maneira estruturada:
Entrada de Prompt
O processo começa com a entrada do usuário ou prompt. Isso pode ser uma pergunta ou uma declaração que busca informações específicas.
Recuperação de Fontes Externas
Em vez de gerar uma resposta diretamente com base em seu treinamento, o modelo, com a ajuda de um componente de recuperação, busca em fontes de dados externas. Essas fontes podem variar de bases de conhecimento, bancos de dados e repositórios de documentos para dados acessíveis na internet.
Entendendo a Recuperação
Em sua essência, a recuperação espelha uma operação de busca. É sobre extrair as informações mais pertinentes em resposta à entrada do usuário. Esse processo pode ser dividido em duas etapas:
- Indexação: Sem dúvida, a parte mais desafiadora de toda a jornada RAG é indexar sua base de conhecimento. O processo de indexação pode ser amplamente dividido em duas fases: Carregamento e Divisão. Em ferramentas como LangChain, esses processos são denominados “carregadores” e “divisores“. Os carregadores buscam conteúdo de várias fontes, seja de páginas da web ou PDFs. Uma vez buscado, os divisores então segmentam esse conteúdo em pedaços mastigáveis, otimizando-os para incorporação e busca.
- Consulta: Isso é o ato de extrair os fragmentos de conhecimento mais relevantes com base em um termo de busca.
Embora haja muitas maneiras de abordar a recuperação, desde a correspondência de texto simples até o uso de mecanismos de busca como o Google, os sistemas RAG modernos dependem da busca semântica. No coração da busca semântica está o conceito de incorporações.
As incorporações são centrais para como os Modelos de Linguagem Grande (LLM) entendem a linguagem. Quando os humanos tentam articular como derivam significado das palavras, a explicação frequentemente volta ao entendimento inerente. Profundamente dentro de nossas estruturas cognitivas, reconhecemos que “criança” e “garoto” são sinônimos, ou que “vermelho” e “verde” denotam cores.
Aumentando o Prompt
As informações recuperadas são então combinadas com o prompt original, criando um prompt aumentado ou expandido. Esse prompt aumentado fornece ao modelo contexto adicional, o que é especialmente valioso se os dados forem específicos de domínio ou não fizerem parte do corpus de treinamento original do modelo.
Gerando a Conclusão
Com o prompt aumentado em mãos, o modelo então gera uma conclusão ou resposta. Essa resposta não é apenas baseada no treinamento do modelo, mas também é informada pelos dados em tempo real recuperados.
Arquitetura do Primeiro LLM RAG
O artigo de pesquisa publicado pela Meta em 2020 “Geração Aumentada por Recuperação para Tarefas de NLP Intensivas em Conhecimento” fornece uma visão aprofundada nessa técnica. O modelo de Geração Aumentada por Recuperação aumenta o processo tradicional de geração com um mecanismo de recuperação ou busca externo. Isso permite que o modelo puxe informações relevantes de vastos corpora de dados, melhorando sua capacidade de gerar respostas contextualmente precisas.
Aqui está como funciona:
- Memória Paramétrica: Isso é o seu modelo de linguagem tradicional, como um modelo seq2seq. Ele foi treinado em vastos conjuntos de dados e sabe muito.
- Memória Não Paramétrica: Pense nisso como um mecanismo de busca. É um índice de vetor denso de, digamos, Wikipedia, que pode ser acessado usando um buscador neural.
Quando combinados, esses dois criam um modelo preciso. O modelo RAG primeiro recupera informações relevantes de sua memória não paramétrica e, em seguida, usa seu conhecimento paramétrico para fornecer uma resposta coerente.
1. Processo de Dois Passos:
O LLM RAG opera em um processo de dois passos:
- Recuperação: O modelo primeiro busca documentos ou passagens relevantes de um grande conjunto de dados. Isso é feito usando um mecanismo de recuperação denso, que emprega incorporações para representar tanto a consulta quanto os documentos. As incorporações são então usadas para calcular pontuações de similaridade, e os documentos melhor ranqueados são recuperados.
- Geração: Com os documentos mais relevantes em mãos, eles são então canalizados para um gerador de sequência para sequência, juntamente com a consulta inicial. Esse gerador, em seguida, cria a saída final, desenhando contexto tanto da consulta quanto dos documentos recuperados.
2. Recuperação Densa:
Sistemas de recuperação tradicionais frequentemente dependem de representações esparsas como TF-IDF. No entanto, o LLM RAG emprega representações densas, onde tanto a consulta quanto os documentos são incorporados em espaços de vetor contínuos. Isso permite comparações de similaridade mais nuances, capturando relações semânticas além do mero acoplamento de palavras.
3. Geração de Sequência para Sequência:
Os documentos recuperados atuam como um contexto estendido para o modelo de geração. Esse modelo, frequentemente baseado em arquiteturas como Transformers, gera a saída final, garantindo que seja coerente e contextualmente relevante.
Pesquisa de Documentos
Indexação e Recuperação de Documentos
Para recuperação de informações eficiente, especialmente de grandes documentos, os dados são frequentemente armazenados em um banco de dados de vetores. Cada pedaço de dados ou documento é indexado com base em um vetor de incorporação, que captura a essência semântica do conteúdo. Indexação eficiente garante a recuperação rápida de informações relevantes com base no prompt de entrada.
Bancos de Dados de Vetores

Source: Redis
Os bancos de dados de vetores, às vezes denominados armazenamento de vetores, são bancos de dados personalizados para armazenar e buscar dados de vetores. No reino da IA e da ciência da computação, os vetores são essencialmente listas de números que representam pontos em um espaço multidimensional. Ao contrário dos bancos de dados tradicionais, que são mais adaptados a dados tabulares, os bancos de dados de vetores brilham no gerenciamento de dados que naturalmente se encaixam em um formato de vetor, como incorporações de modelos de IA.
Alguns bancos de dados de vetores notáveis incluem Annoy, Faiss da Meta, Milvus e Pinecone. Esses bancos de dados são cruciais em aplicações de IA, auxiliando em tarefas que variam de sistemas de recomendação a buscas de imagens. Plataformas como AWS também oferecem serviços personalizados para necessidades de bancos de dados de vetores, como o Amazon OpenSearch Service e o Amazon RDS para PostgreSQL. Esses serviços são otimizados para casos de uso específicos, garantindo indexação e consulta eficientes.
Divisão para Relevância
Considerando que muitos documentos podem ser extensos, uma técnica conhecida como “divisão” é frequentemente usada. Isso envolve quebrar documentos grandes em pedaços menores, semanticamente coerentes. Esses pedaços são então indexados e recuperados conforme necessário, garantindo que as porções mais relevantes de um documento sejam usadas para aumentar o prompt.
Considerações de Janela de Contexto
Cada LLM opera dentro de uma janela de contexto, que é essencialmente a quantidade máxima de informações que ele pode considerar de uma vez. Se as fontes de dados externas fornecem informações que excedem essa janela, elas precisam ser quebradas em pedaços menores que se encaixem dentro da janela de contexto do modelo.
Vantagens de Utilizar a Geração Aumentada por Recuperação
- Precisão Aumentada: Ao aproveitar fontes de dados externas, o LLM RAG pode gerar respostas que não são apenas baseadas em seus dados de treinamento, mas também são informadas pelas informações mais relevantes e atualizadas disponíveis no corpus de recuperação.
- Superando Lacunas de Conhecimento: A RAG aborda efetivamente as limitações de conhecimento inerentes dos LLM, seja devido à data de término de treinamento do modelo ou à ausência de dados específicos de domínio em seu corpus de treinamento.
- Versatilidade: A RAG pode ser integrada a várias fontes de dados externas, desde bancos de dados proprietários dentro de uma organização até dados acessíveis publicamente na internet. Isso a torna adaptável a uma ampla gama de aplicações e indústrias.
- Redução de Alucinações: Um dos desafios com os LLM é a possibilidade de “alucinações” ou a geração de informações factualmente incorretas ou fabricadas. Ao fornecer contexto de dados em tempo real, a RAG pode reduzir significativamente as chances de tais saídas.
- Escalabilidade: Uma das principais vantagens do LLM RAG é sua capacidade de escalar. Ao separar os processos de recuperação e geração, o modelo pode lidar eficientemente com conjuntos de dados vastos, tornando-o adequado para aplicações do mundo real onde os dados são abundantes.
Desafios e Considerações
- Carga Computacional: O processo de dois passos pode ser computacionalmente intensivo, especialmente ao lidar com grandes conjuntos de dados.
- Dependência de Dados: A qualidade dos documentos recuperados impacta diretamente a qualidade da geração. Portanto, ter um corpus de recuperação abrangente e bem curado é crucial.
Conclusão
Ao integrar processos de recuperação e geração, a Geração Aumentada por Recuperação oferece uma solução robusta para tarefas intensivas em conhecimento, garantindo saídas que são informadas e contextualmente relevantes.
A promessa real da RAG reside em suas aplicações reais no mundo. Para setores como saúde, onde informações oportunas e precisas podem ser cruciais, a RAG oferece a capacidade de extrair e gerar insights de vastas literaturas médicas de forma transparente. No âmbito financeiro, onde os mercados evoluem a cada minuto, a RAG pode fornecer insights baseados em dados em tempo real, auxiliando na tomada de decisões informadas. Além disso, na academia e pesquisa, os estudiosos podem utilizar a RAG para vasculhar vastos repositórios de informações, tornando as revisões de literatura e análises de dados mais eficientes.

















