Pular para o conteúdo principal
InicioBlogInteligência Artificial (IA)

O que é Retrieval Augmented Generation (RAG)?

Explorar a Geração Aumentada de Recuperação (RAG) RAG: Integração de LLMs com pesquisa de dados para respostas de IA diferenciadas. Compreender suas aplicações e seu impacto.
abr. de 2024  · 8 min leer

O que é RAG?

RAG, ou Retrieval Augmented Generation, é uma técnica que combina os recursos de um modelo de linguagem grande pré-treinado com uma fonte de dados externa. Essa abordagem combina o poder de geração de LLMs como GPT-3 ou GPT-4 com a precisão de mecanismos especializados de pesquisa de dados, resultando em um sistema que pode oferecer respostas diferenciadas.

Este artigo explora a geração aumentada de recuperação em mais detalhes, dando alguns exemplos práticos e aplicativos, bem como alguns recursos para ajudá-lo a aprender mais sobre LLMs. Para começar, confira nosso curso sobre como dominar os conceitos do LLM. Você também pode ver nosso code-along abaixo sobre Retrieval Augmented Generation com o PineCone.

Por que usar o RAG para aprimorar os LLMs? Um exemplo

Para demonstrar melhor o que é o RAG e como a técnica funciona, vamos considerar um cenário que muitas empresas enfrentam atualmente.

Imagine que você é um executivo de uma empresa de eletrônicos que vende dispositivos como smartphones e laptops. Você deseja criar um chatbot de suporte ao cliente para a sua empresa para responder às consultas dos usuários relacionadas a especificações de produtos, solução de problemas, informações sobre garantia e muito mais.

Você gostaria de usar os recursos de LLMs como GPT-3 ou GPT-4 para alimentar seu chatbot.

No entanto, os modelos de linguagem grandes têm as seguintes limitações, o que leva a uma experiência ineficiente para o cliente:

Falta de informações específicas

Os modelos de linguagem estão limitados a fornecer respostas genéricas com base em seus dados de treinamento. Se os usuários fizerem perguntas específicas sobre o software que você vende ou se tiverem dúvidas sobre como solucionar problemas em profundidade, um LLM tradicional poderá não ser capaz de fornecer respostas precisas.

Isso ocorre porque eles não foram treinados em dados específicos de sua organização. Além disso, os dados de treinamento desses modelos têm uma data de corte, o que limita sua capacidade de fornecer respostas atualizadas.

Alucinações

Os LLMs podem "alucinar", o que significa que eles tendem a gerar respostas falsas com confiança com base em fatos imaginados. Esses algoritmos também podem fornecer respostas fora do tópico se não tiverem uma resposta precisa para a consulta do usuário, levando a uma experiência ruim para o cliente.

Respostas genéricas

Os modelos de linguagem geralmente fornecem respostas genéricas que não são adaptadas a contextos específicos. Isso pode ser uma grande desvantagem em um cenário de suporte ao cliente, pois as preferências individuais do usuário geralmente são necessárias para facilitar uma experiência personalizada do cliente.

O RAG preenche essas lacunas de forma eficaz, oferecendo uma maneira de integrar a base de conhecimento geral dos LLMs com a capacidade de acessar informações específicas, como os dados presentes no banco de dados do produto e nos manuais do usuário. Essa metodologia permite obter respostas altamente precisas e confiáveis, adaptadas às necessidades de sua organização.

Como o RAG funciona?

Agora que você já sabe o que é RAG, vamos examinar as etapas envolvidas na configuração dessa estrutura:

Etapa 1: Coleta de dados

Primeiro, você deve reunir todos os dados necessários para o seu aplicativo. No caso de um chatbot de suporte ao cliente para uma empresa de eletrônicos, isso pode incluir manuais do usuário, um banco de dados de produtos e uma lista de perguntas frequentes.

Etapa 2: Agrupamento de dados

A fragmentação de dados é o processo de dividir seus dados em partes menores e mais gerenciáveis. Por exemplo, se você tiver um longo manual do usuário de 100 páginas, poderá dividi-lo em diferentes seções, cada uma respondendo potencialmente a diferentes perguntas dos clientes.

Dessa forma, cada bloco de dados é focado em um tópico específico. Quando uma informação é recuperada do conjunto de dados de origem, é mais provável que ela seja diretamente aplicável à consulta do usuário, pois evitamos incluir informações irrelevantes de documentos inteiros.

Isso também melhora a eficiência, pois o sistema pode obter rapidamente as informações mais relevantes em vez de processar documentos inteiros.

Etapa 3: Embeddings de documentos

Agora que os dados de origem foram divididos em partes menores, eles precisam ser convertidos em uma representação vetorial. Isso envolve a transformação de dados de texto em embeddings, que são representações numéricas que capturam o significado semântico por trás do texto.

Em palavras simples, a incorporação de documentos permite que o sistema compreenda as consultas do usuário e as combine com informações relevantes no conjunto de dados de origem com base no significado do texto, em vez de uma simples comparação palavra a palavra. Esse método garante que as respostas sejam relevantes e alinhadas com a consulta do usuário.

Se você quiser saber mais sobre como os dados de texto são convertidos em representações vetoriais, recomendamos explorar nosso tutorial sobre incorporação de texto com a API OpenAI.

Etapa 4: Tratamento de consultas de usuários

Quando uma consulta do usuário entra no sistema, ela também deve ser convertida em uma representação vetorial ou de incorporação. O mesmo modelo deve ser usado para a incorporação do documento e da consulta para garantir a uniformidade entre os dois.

Depois que a consulta é convertida em uma incorporação, o sistema compara a incorporação da consulta com as incorporações do documento. Ele identifica e recupera blocos cujas incorporações são mais semelhantes às incorporações da consulta, usando medidas como similaridade de cosseno e distância euclidiana.

Esses blocos são considerados os mais relevantes para a consulta do usuário.

Etapa 5: Geração de respostas com um LLM

Os blocos de texto recuperados, juntamente com a consulta inicial do usuário, são alimentados em um modelo de linguagem. O algoritmo usará essas informações para gerar uma resposta coerente às perguntas do usuário por meio de uma interface de bate-papo.

Aqui está um fluxograma simplificado que resume o funcionamento do RAG:

Fluxograma que descreve o funcionamento do RAG.

Imagem do autor

Para realizar com perfeição as etapas necessárias para gerar respostas com LLMs, você pode usar uma estrutura de dados como o LlamaIndex.

Essa solução permite que você desenvolva seus próprios aplicativos LLM, gerenciando com eficiência o fluxo de informações de fontes de dados externas para modelos de linguagem como o GPT-3. Para saber mais sobre essa estrutura e como você pode usá-la para criar aplicativos baseados em LLM, leia nosso tutorial sobre o LlamaIndex.

Aplicações práticas do RAG

Agora sabemos que o RAG permite que os LLMs formem respostas coerentes com base em informações fora de seus dados de treinamento. Um sistema como esse tem uma variedade de casos de uso comercial que melhorarão a eficiência organizacional e a experiência do usuário. Além do exemplo do chatbot do cliente que vimos anteriormente no artigo, aqui estão algumas aplicações práticas do RAG:

Resumo de texto

Visual de um resumo gerado por um aplicativo RAG.

Imagem por DALLE-3

O RAG pode usar conteúdo de fontes externas para produzir resumos precisos, o que resulta em uma economia de tempo considerável. Por exemplo, gerentes e executivos de alto nível são pessoas ocupadas que não têm tempo para examinar relatórios extensos.

Com um aplicativo acionado por RAG, eles podem acessar rapidamente as descobertas mais importantes dos dados de texto e tomar decisões com mais eficiência, em vez de ter que ler documentos extensos.

Recomendações personalizadas

Os sistemas RAG podem ser usados para analisar dados de clientes, como compras anteriores e avaliações, para gerar recomendações de produtos. Isso aumentará a experiência geral do usuário e, por fim, gerará mais receita para a organização.

Por exemplo, os aplicativos RAG podem ser usados para recomendar melhores filmes em plataformas de streaming com base no histórico de visualização e nas classificações do usuário. Eles também podem ser usados para analisar avaliações escritas em plataformas de comércio eletrônico.

Como os LLMs são excelentes na compreensão da semântica por trás dos dados de texto, os sistemas RAG podem oferecer aos usuários sugestões personalizadas com mais nuances do que as de um sistema de recomendação tradicional.

Inteligência de negócios

Normalmente, as organizações tomam decisões de negócios observando o comportamento dos concorrentes e analisando as tendências do mercado. Isso é feito por meio da análise meticulosa dos dados presentes em relatórios comerciais, demonstrações financeiras e documentos de pesquisa de mercado.

Com um aplicativo RAG, as organizações não precisam mais analisar e identificar manualmente as tendências nesses documentos. Em vez disso, um LLM pode ser empregado para obter com eficiência insights significativos e aprimorar o processo de pesquisa de mercado.

Desafios e práticas recomendadas de implementação de sistemas RAG

Embora os aplicativos RAG nos permitam preencher a lacuna entre a recuperação de informações e o processamento de linguagem natural, sua implementação apresenta alguns desafios específicos. Nesta seção, analisaremos as complexidades enfrentadas na criação de aplicativos RAG e discutiremos como elas podem ser atenuadas.

Complexidade da integração

Pode ser difícil integrar um sistema de recuperação com um LLM. Essa complexidade aumenta quando há várias fontes de dados externos em formatos variados. Os dados que são alimentados em um sistema RAG devem ser consistentes, e os embeddings gerados precisam ser uniformes em todas as fontes de dados.

Para superar esse desafio, módulos separados podem ser projetados para lidar com diferentes fontes de dados de forma independente. Os dados de cada módulo podem ser pré-processados para obter uniformidade, e um modelo padronizado pode ser usado para garantir que os embeddings tenham um formato consistente.

Escalabilidade

À medida que a quantidade de dados aumenta, torna-se mais desafiador manter a eficiência do sistema RAG. Muitas operações complexas precisam ser realizadas, como a geração de embeddings, a comparação do significado entre diferentes partes do texto e a recuperação de dados em tempo real.

Essas tarefas são computacionalmente intensas e podem tornar o sistema mais lento à medida que o tamanho dos dados de origem aumenta.

Para enfrentar esse desafio, você pode distribuir a carga computacional entre diferentes servidores e investir em uma infraestrutura de hardware robusta. Para melhorar o tempo de resposta, também pode ser útil armazenar em cache as consultas que são feitas com frequência.

A implementação de bancos de dados vetoriais também pode atenuar o desafio da escalabilidade nos sistemas RAG. Esses bancos de dados permitem lidar facilmente com embeddings e podem recuperar rapidamente os vetores mais alinhados com cada consulta.

Se quiser saber mais sobre a implementação de bancos de dados vetoriais em um aplicativo RAG, assista à nossa sessão de código ao vivo, intitulada Retrieval Augmented Generation with GPT and Milvus. Este tutorial oferece um guia passo a passo para combinar o Milvus, um banco de dados vetorial de código aberto, com modelos GPT.

Qualidade dos dados

A eficácia de um sistema RAG depende muito da qualidade dos dados que estão sendo inseridos nele. Se o conteúdo de origem acessado pelo aplicativo for ruim, as respostas geradas serão imprecisas.

As organizações devem investir em um processo diligente de curadoria e ajuste de conteúdo. É necessário refinar as fontes de dados para melhorar sua qualidade. Para aplicativos comerciais, pode ser benéfico envolver um especialista no assunto para revisar e preencher as lacunas de informações antes de usar o conjunto de dados em um sistema RAG.

Considerações finais

Atualmente, o RAG é a técnica mais conhecida para aproveitar os recursos de linguagem dos LLMs juntamente com um banco de dados especializado. Esses sistemas abordam alguns dos desafios mais urgentes encontrados ao trabalhar com modelos de linguagem e apresentam uma solução inovadora no campo do processamento de linguagem natural.

No entanto, como qualquer outra tecnologia, os aplicativos RAG têm suas limitações, principalmente a dependência da qualidade dos dados de entrada. Para tirar o máximo proveito dos sistemas RAG, é fundamental incluir a supervisão humana no processo.

A curadoria meticulosa das fontes de dados, juntamente com o conhecimento especializado, é fundamental para garantir a confiabilidade dessas soluções.

Se você quiser se aprofundar no mundo do RAG e entender como ele pode ser usado para criar aplicativos de IA eficazes, assista ao nosso treinamento ao vivo sobre a criação de aplicativos de IA com o LangChain. Este tutorial lhe dará experiência prática com o LangChain, uma biblioteca projetada para permitir a implementação de sistemas RAG em cenários do mundo real.

Perguntas frequentes sobre o Retrieval Augmented Generation (RAG)

O que é Retrieval Augmented Generation (RAG)?

O RAG é uma técnica que combina os recursos de modelos de linguagem grandes (LLMs) pré-treinados com fontes de dados externas, permitindo respostas de IA mais matizadas e precisas.

Por que o RAG é importante para melhorar a funcionalidade dos LLMs?

O RAG aborda as principais limitações dos LLMs, como a tendência de fornecer respostas genéricas, gerar respostas falsas (alucinações) e carecer de informações específicas. Ao integrar LLMs com dados externos específicos, o RAG permite respostas mais precisas, confiáveis e específicas ao contexto.

Como funciona o RAG? Quais são as etapas envolvidas em sua implementação?

O RAG envolve várias etapas: coleta de dados, fragmentação de dados, incorporação de documentos, tratamento de consultas de usuários e geração de respostas usando um LLM. Esse processo garante que o sistema combine com precisão as consultas dos usuários com informações relevantes de fontes de dados externas.

Quais são alguns dos desafios na implementação de sistemas RAG e como eles podem ser resolvidos?

Os desafios incluem a complexidade da integração, o dimensionamento e a qualidade dos dados. As soluções envolvem a criação de módulos separados para diferentes fontes de dados, o investimento em uma infraestrutura robusta e a garantia de curadoria e ajuste fino diligentes do conteúdo.

O RAG pode ser integrado a diferentes tipos de modelos de linguagem além do GPT-3 ou GPT-4?

Sim, o RAG pode trabalhar com vários modelos de linguagem, desde que eles sejam capazes de gerar e entender linguagem sofisticada. A eficácia varia de acordo com os pontos fortes específicos do modelo.

O que diferencia o RAG dos mecanismos de pesquisa ou bancos de dados tradicionais?

O RAG combina o recurso de recuperação dos mecanismos de pesquisa com a compreensão diferenciada e a geração de respostas dos modelos de linguagem, fornecendo respostas detalhadas e sensíveis ao contexto, em vez de apenas buscar documentos.

Temas

Comece a trabalhar com LLMs hoje mesmo!

Course

Large Language Models (LLMs) Concepts

2 hr
25.7K
Discover the full potential of LLMs with our conceptual course covering LLM applications, training methodologies, ethical considerations, and latest research.
See DetailsRight Arrow
Start Course
Ver maisRight Arrow
Relacionado

blog

O que é um modelo generativo?

Os modelos generativos usam o aprendizado de máquina para descobrir padrões nos dados e gerar novos dados. Saiba mais sobre sua importância e aplicações em IA.
Abid Ali Awan's photo

Abid Ali Awan

11 min

blog

O que é IA multimodal?

Descubra a IA multimodal, uma das tendências mais promissoras da IA generativa.
Javier Canales Luna's photo

Javier Canales Luna

8 min

blog

O que é geração de texto?

A geração de texto é um processo em que a IA produz um texto que se assemelha à comunicação humana natural.
Abid Ali Awan's photo

Abid Ali Awan

4 min

blog

O que é reconhecimento de imagens?

O reconhecimento de imagens usa algoritmos e modelos para interpretar o mundo visual, convertendo imagens em informações simbólicas para uso em vários aplicativos.
Abid Ali Awan's photo

Abid Ali Awan

8 min

tutorial

IA explicável - Entendendo e confiando nos modelos de aprendizado de máquina

Mergulhe na IA explicável (XAI) e saiba como criar confiança em sistemas de IA com LIME e SHAP para interpretabilidade de modelos. Entenda a importância da transparência e da justiça nas decisões baseadas em IA.
Zoumana Keita 's photo

Zoumana Keita

12 min

tutorial

Agrupamento hierárquico em R

O agrupamento é a forma mais comum de aprendizado não supervisionado, um tipo de algoritmo de aprendizado de máquina usado para fazer inferências a partir de dados não rotulados.
DataCamp Team's photo

DataCamp Team

15 min

See MoreSee More