RAG
Miguel Ángel Rodrigo Technical Product Manager

Retrival-Augmented Generation (RAG): a sinergia entre memória e criatividade

Um dos principais desafios na implementação de casos de utilização baseados em IA generativa textual é fornecer-lhe informações externas. As técnicas RAG permitem resolver este problema fornecendo aos modelos de linguagem a capacidade de procurar respostas em documentação externa para a qual não foram treinados.

O que é RAG?

Consiste em enriquecer a informação disponível num modelo linguístico

Embora não tenha uma boa tradução em português, é algo como “geração aumentada de recuperação”. Consiste em enriquecer a informação disponível para um modelo de linguagem, de modo a que este possa responder utilizando informação adicional que nunca viu ante, como dados financeiros privados ou discursos de vendas internos de uma empresa. Não só isso, mas graças ao avanço dos modelos open source, é possível fazer isso completamente on-premise, para que todas as informações possam permanecer confidenciais.

A ideia subjacente ao RAG consiste em, a partir de um prompt do utilizador à IA, procurar automaticamente num corpo de conhecimento que fragmentos de texto que mais se assemelham à pergunta feita pelo utilizador e utilizar essa informação recolhida para construir um novo prompt, que inclui tanto a pergunta original como o contexto adicional relevante extraído da base de conhecimentos. Finalmente, com este novo prompt, um modelo de linguagem gera uma resposta.

Desta forma, é possível que este modelo de linguagem seja capaz de responder com base em informações adicionais às utilizadas para a sua formação, tais como documentos PDF, emails, bases de dados ou websites.

Como funciona o RAG?

Existem diferentes arquiteturas, mas a mais básica e comum consiste em três etapas:

  • Criação de índices: antes de se poderem efetuar consultas, é necessário que a informação seja pré-processada num formato que permita pesquisar nela a alta velocidade. Para isso, os textos são divididos em pedaços mais pequenos, denominados chunks. Cada um destes chuncks é passado por um modelo de embedding, que transforma o fragmento de texto num vetor numérico que, idealmente, contém a informação sobre o assunto do chunck. Ou seja, pedaços de texto que são semanticamente muito semelhantes, dado um bom modelo de embedding, devem gerar vetores que são muito semelhantes, mesmo que o mesmo significado seja expresso com um vocabulário completamente diferente. Por outro lado, um par de fragmentos de texto não relacionados deverá gerar vetores muito diferentes. Estes modelos de incorporação são o coração do RAG e tornam-no mais eficaz do que uma simples pesquisa por palavra-chave, uma vez que a mesma ideia pode ser expressa com muitas palavras diferentes, mas também a mesma palavra pode significar coisas que não têm absolutamente nada a ver uma com a outra.
  • Pesquisa: dada uma consulta ao sistema por um utilizador, é efectuada uma pesquisa vetorial para devolver os fragmentos de texto que mais se aproximam da consulta. Esta fase é fundamental para o seu correto funcionamento e existem dezenas de técnicas para a melhorar. Por exemplo, combinando esta pesquisa com uma pesquisa por palavra-chave (utilizando BM25 e combinando os resultados utilizando RRF) ou criando respostas hipotéticas e efectuando a pesquisa, uma vez que estas se assemelham semanticamente mais aos fragmentos do que à pergunta original (Hypothetical Document Embeddings, HyDEs). Há tantas possibilidades que só isto é tema para um artigo inteiro, pelo que não serão aqui detalhadas. Mas isto não significa que estas técnicas devam ser subestimadas: acertar nesta fase é o ponto mais importante de todo o sistema.
  • Geração de respostas: finalmente, tanto a pergunta original como os fragmentos de texto recolhidos na fase anterior são utilizados para gerar uma resposta.

Todo o sistema funciona da mesma forma que copiar e colar o texto relevante no chatGPT juntamente com a pergunta a fazer, com a grande vantagem de não ter de ler e procurar manualmente estes fragmentos de contexto.

Vantagens do RAG

O RAG dá acesso a vastos recursos de conhecimento armazenados em bases de dados

  • Conhecimento atualizado: os modelos de geração de texto puro, embora impressionantes na sua capacidade de imitar a linguagem humana, podem não estar atualizados ou não ter informações sobre tópicos específicos. O RAG permite que o modelo complemente as suas capacidades criativas com dados externos atualizados e específicos, resultando em respostas mais relevantes e precisas em vez de respostas vagas e genéricas.
  • Memória alargada: em vez de depender apenas da memória interna do modelo, o RAG permite o acesso a vastos recursos de conhecimento armazenados em bases de dados, documentos de texto desorganizados, e-mails... Isto permite que o sistema tenha uma “memória infinita” na prática, onde a informação não se limita apenas ao conjunto de dados com que o modelo foi treinado.
  • Adaptabilidade: o RAG pode personalizar as suas respostas de acordo com a informação que recupera. Isto torna-o ideal para tarefas como a assistência personalizada, a pesquisa de informações técnicas, a criação de conteúdos específicos para diferentes indústrias, entre outras.
  • Redução das alucinações: um dos problemas comuns dos modelos generativos é a tendência para produzir respostas que parecem verdadeiras, mas que não têm base em factos reais, conhecidas como “alucinações”. Ao incorporar uma camada de recuperação de dados verificados, o RAG reduz consideravelmente a ocorrência destas respostas incorretas.

Aplicações RAG

Os modelos RAG podem ajudar os profissionais a aceder a investigação actualizada

As aplicações do RAG são vastas e variadas, abrangendo múltiplos setores e casos de utilização. Algumas das mais proeminentes incluem:

  • Sistemas de apoio ao cliente: com o RAG, as empresas podem fornecer aos seus clientes respostas mais detalhadas e precisas às suas questões, acedendo a manuais, documentação de produtos ou bases de conhecimento específicas, melhorando a satisfação do cliente. Provavelmente o caso de utilização nº 1 sobre RAG atualmente.
  • Motores de pesquisa avançada de informação especializada: por exemplo, no domínio da medicina, os modelos RAG podem ajudar os profissionais a aceder a investigação atualizada ou a artigos médicos quando confrontados com casos clínicos complexos. Os jornalistas podem utilizar sistemas baseados em RAG para aceder a dados históricos ou relatórios em tempo real, permitindo-lhes gerar artigos informativos e precisos sobre eventos recentes ou investigação em curso.
  • Geração de conteúdos especializados: quer se trate de domínios técnicos como a engenharia, a economia, a ciência ou de uma simples resposta a uma mensagem de correio eletrónico, o RAG permite a criação de conteúdos não só coerentes, mas também apoiados em dados atualizados e fiáveis.

Desafios e futuro do RAG

Embora o RAG represente um avanço significativo na geração de texto, ainda enfrenta alguns desafios. A seleção correta das fontes de dados é crucial para evitar a divulgação de informações erradas ou tendenciosas. Além disso, a eficiência da recuperação de informações é um fator determinante para a qualidade das respostas.

A Geração Aumentada por Recuperação é um passo em direção à criação de sistemas de IA

É necessário tomar muitas decisões acertadas durante a conceção do sistema, bem como um sistema de teste robusto para garantir que cada alteração no sistema melhora os resultados globais. É por isso que é uma boa ideia desenvolver sistemas RAG com um partner especializado que poupa tempo, retrabalho desnecessário e dores de cabeça como a Izertis.

O Retrieval-Augmented Generation é um passo em frente na criação de sistemas de IA que não só são capazes de gerar texto fluido e coerente, como também podem aceder e utilizar informação externa em tempo real para dar respostas precisas e relevantes. Com a sua capacidade de combinar criatividade e conhecimento, a RAG tem o potencial de transformar indústrias inteiras, desde o serviço de apoio ao cliente à investigação científica, e marcar uma nova era na interação entre humanos e máquinas.