Retrieval Augmented Generation

De BrapciWiki
Revisão de 21h40min de 6 de março de 2025 por Renefgj (discussão | contribs)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

RAG

RAG (Retrieval-Augmented Generation) é uma técnica utilizada em modelos de inteligência artificial, especialmente em sistemas de geração de texto, como os baseados em transformers. A ideia por trás do RAG é combinar a geração de texto com a recuperação de informações relevantes de fontes externas (ou bases de dados), tornando as respostas mais precisas e atualizadas.

O RAG funciona em duas etapas principais:

  • Recuperação de informações (Retrieval): Quando o modelo recebe uma pergunta ou uma solicitação, ele primeiro consulta uma base de conhecimento ou um conjunto de documentos relevantes. Isso pode incluir informações armazenadas em bases de dados, enciclopédias, ou outros repositórios de dados. Em vez de depender unicamente da memória interna do modelo, ele busca fatos ou textos específicos para ajudar a gerar uma resposta mais precisa.
  • Geração de texto (Generation): Após recuperar as informações relevantes, o modelo gera a resposta combinando essas informações com seu conhecimento pré-treinado. Essa geração de texto é guiada pelos dados recuperados, tornando o conteúdo mais confiável e baseado em fatos atuais.

A vantagem do RAG é que ele consegue melhorar a precisão e a relevância das respostas em contextos onde o modelo pode não ter conhecimento suficiente por conta própria, ou quando é necessário acesso a dados dinâmicos e atualizados. Ele é amplamente utilizado em aplicações de IA que exigem respostas baseadas em fatos, como sistemas de perguntas e respostas, assistentes virtuais e mecanismos de busca.

Ajuste Fino

Modelo

Top-p (ou nucleus sampling), top-k e temperatura são métodos de controle sobre a aleatoriedade e a criatividade na geração de texto por modelos de IA, como o GPT. Eles são usados para ajustar a forma como o modelo escolhe a próxima palavra durante a geração de texto.

  • Top-p (Nucleus Sampling): O top-p (ou nucleus sampling) faz com que o modelo escolha a próxima palavra de um subconjunto variável das palavras mais prováveis, até que a soma de suas probabilidades atinja um certo limite, que é o valor de p.

Valor de p: um número entre 0 e 1. Se p = 0.9, o modelo considera as palavras mais prováveis cuja soma de probabilidades seja 90%. As palavras menos prováveis, além desse limite, são descartadas. Esse método permite mais flexibilidade do que o top-k, pois o tamanho do subconjunto varia de acordo com as probabilidades.

  • Top-k: No top-k, o modelo escolhe a próxima palavra apenas de um subconjunto fixo das k palavras mais prováveis.

Valor de k: um número inteiro. Se k = 10, o modelo seleciona a próxima palavra entre as 10 palavras mais prováveis, ignorando todas as outras. Valores maiores de k tendem a gerar respostas mais criativas, enquanto valores menores produzem respostas mais focadas e previsíveis.

  • Temperatura: A temperatura controla a aleatoriedade da escolha das palavras ao ajustar a probabilidade de seleção das próximas palavras.

Valor de temperatura: um número maior que 0. Se a temperatura é baixa (por exemplo, 0.2), o modelo dá preferência a escolhas mais prováveis e cria respostas mais conservadoras e previsíveis. Se a temperatura é alta (por exemplo, 1.0 ou 1.5), o modelo escolhe palavras de forma mais aleatória, gerando respostas mais criativas e diversificadas. Temperatura zero tornaria o comportamento do modelo completamente determinístico, sempre escolhendo a palavra com a maior probabilidade.

Fine Tunning

Fine-tuning é uma técnica usada em aprendizado de máquina, especialmente em modelos de aprendizado profundo, para ajustar um modelo pré-treinado em um novo conjunto de dados ou tarefa específica. Em vez de treinar um modelo do zero, o fine-tuning aproveita o conhecimento que o modelo já aprendeu durante seu pré-treinamento e faz ajustes finos para adaptá-lo a uma tarefa ou domínio particular.

Aqui está como funciona:

  • Pré-treinamento: Um modelo de grande escala (como o GPT, BERT ou ResNet) é inicialmente treinado em um conjunto de dados massivo e diverso. Esse treinamento inicial ensina ao modelo uma vasta gama de padrões e representações gerais. No caso de modelos de linguagem, isso inclui o entendimento de gramática, sintaxe, significado semântico, etc.
  • Fine-tuning: Após o pré-treinamento, o modelo é ajustado em um conjunto de dados menor e mais especializado para uma tarefa específica. Por exemplo, você pode querer usar um modelo de linguagem pré-treinado para realizar classificação de sentimentos, resumo automático de textos, ou tradução de idiomas. O fine-tuning ajusta os parâmetros do modelo para que ele seja otimizado para essa tarefa.
  • Congelamento de camadas (opcional): Em alguns casos, partes do modelo (geralmente as camadas mais baixas, que capturam padrões mais gerais) são "congeladas", o que significa que seus parâmetros não são atualizados durante o fine-tuning. Apenas as camadas superiores, que são mais especializadas, são ajustadas.