Usando RAG para enriquecer o modelo

RAG é um framework para melhorar geração de texto de um LLM, que faz uso de informações adicionais de uma fonte externa. No RAG os modelos buscam documentos e passam para um modelo seq2seq (como o encoder-decoder).

Ele é composto dos seguintes componentes:

  • Retriever
  • Ranker
  • Generator

Retriever

Tem como função buscar fontes de informação de um grande conjunto de textos ou de um banco de dados, para que o modelo tenha informações relevantes, atualizada e precisas que podem não estar presentes no conjunto de dados de treinamento do modelo. Faz uso de várias técnicas de retrieval, como embeddings.

Ranker

Tem como função avaliar e priorizar as informações pesquisadas pelo retriever, para que o modelo receba as informações de maior qualidade e pertinência. Faz uso de vários algoritmos que avaliam a qualidade do conhecimento buscado, com criteŕios como similaridade semântica ou precisão.

Generator

Tem como função gerar textos parecidos com os criados por humanos, com as informações fornecidas pelos outros componentes e com o texto de input fornecido pelo usuário. Visa gerar uma resposta baseada em fatos, precisa, relevante e coerente. Faz uso de LLMs para fabricar o output que será fornecido ao usuário.

RAG Techniques

RAG Sequence

  • Para cada input, o modelo busca um conjunto de informações relevantes. Desse conjunto, gera uma única resposta que resulta da combinação de todas as fontes.

RAG Token

  • Para cada parte da respostas, como uma sentença ou palavra, o modelo adquire documentos relevantes. A partir disso, a resposta é gerada incrementalmente de cada documento adquirido a partir de cada parte da resposta.

RAG Sequence x RAG Token

  • A principal diferença entre essas técnicas é que enquanto o RAG Sequence busca um conjunto completo de informações antes de gerar uma resposta, o RAG Token trabalha de forma incremental, ajustando a busca conforme a resposta é construída.

RAG Pipeline

  • Ingestion

Os documento são divididos em trechos de informação, processados e por fim indexados ao banco de dados.

  • Retrieval

As informações são buscadas no database, em seguida são selecionados os melhores resultados.

  • Generation

A partir dos melhores resultados, o modelo gera uma resposta contexualizada e específica para o usuário.

RAG Triad

Método para avaliar a eficiência do RAG, ver mais em https://truera.com/ai-quality-education/generative-ai-rags/what-is-the-rag-triad/