A arquitetura RAG, mostrada no diagrama acima, pode ser dividida em duas seções:
O caminho que geralmente é usado para criar uma solução RAG é o seguinte:
Um engenheiro de IA prepara os dados do cliente (por exemplo, manuais de procedimentos, documentação de produtos, tickets de help desk etc.) durante o pré-processamento de dados. Os dados do cliente são transformados e/ou enriquecidos para torná-los adequados para a ampliação do modelo. As transformações podem incluir conversões de formato simples, como converter documentos PDF em texto ou transformações mais complexas, como traduzir estruturas de tabelas em instruções do tipo se-então. O enriquecimento pode incluir a expansão de abreviações comuns, adição de metadados, como informações de moedas e outras inclusões para melhorar a relevância dos resultados de busca.
As informações enriquecidas dos documentos são divididas em segmentos menores chamados fragmentos, para gerenciar o texto de forma mais eficiente. Isso pode ser feito usando diversas estratégias de fragmentação, cada uma com sua própria maneira de separar e agrupar as informações.
Os fragmentos são então ingeridos em um banco de dados onde devem ser armazenados e acessados durante o uso da solução. Diferentes estratégias de recuperação de dados exigirão diferentes tipos de bancos de dados; algumas até mesmo exigirão múltiplos tipos de bancos de dados. Contudo, a solução RAG geral utilizará apenas um banco de dados de vetores. Nesse caso, um modelo de embedding é usado para converter os fragmentos em uma série de vetores, que podem, então, ser armazenados no banco de dados vetorial.
O sistema agora já está pronto para ser utilizado pelos usuários finais.
Os usuários finais interagem com uma aplicação habilitada para a IA generativa e inserem uma consulta.
A aplicação de IA generativa recebe a consulta e executa a estratégia de recuperação empregada para obter as principais informações "K" (onde K é apenas um espaço reservado para um número) que a estratégia considera mais semelhantes à consulta do usuário. Por exemplo, se a consulta do usuário for "Qual é o limite diário de saque na conta da MaxSavers", a pesquisa pode retornar trechos como "A conta da MaxSavers é…", "Limites diários de saque são…" e "...limites de contas... ".
A consulta original, os principais trechos e um prompt de instruções, selecionado para a aplicação específica, são enviados ao LLM.
Em seguida, o LLM segue o prompt de instruções para gerar e formatar uma resposta à consulta original do usuário usando as informações recuperadas.
Atualizado em: 15 de novembro de 2024