RAG Offline: Usando LM Studio e Ollama para Processar Documentos

Outros posts sobre o tema:


Nesta postagem, apresento duas formas de realizar RAG em documentos de forma offline, utilizando o LM Studio e o Ollama.

Geração Aumentada de Recuperação (RAG) é uma técnica que combina modelos de linguagem com sistemas de busca, recuperando informações relevantes de documentos para melhorar respostas em tarefas de geração de texto.

Neste vídeo, demonstro como executar o RAG no LM Studio:

Quando gravei o vídeo acima, eu ainda não sabia como realizar o processo de RAG com o Ollama. Graças à excelente extensão Page Assist, descobri que é possível fazê-lo também no Ollama, como apresentado aqui:

Para este vídeo, utilizei um notebook Acer Nitro com CPU Core i5 9300H, 16 GB de RAM e GPU Nvidia GeForce GTX 1650.

Antes de mais nada, alguns lembretes:

  1. Lembre-se de que, por rodarem offline, essas aplicações dependem do poder computacional do seu computador, da quantidade de memória RAM e da capacidade de processamento da sua GPU.

  2. Importante: Nunca use LLMs como oráculos ou fontes de informação definitiva; já encontrei vários erros em modelos, tanto online quanto offline. Utilize-os apenas como suporte para suas atividades.

Para este post, utilizei um arquivo no formato CSV, importado do Zotero, que contém as publicações acadêmicas das quais sou autor ou coautor. O arquivo pode ser encontrado aqui.

Zotero

Lembrando que, em ambos os casos, você vai precisar de um modelo de embedding, Embedding é uma técnica usada em aprendizado de máquina para converter palavras ou frases em vetores numéricos, permitindo que modelos de linguagem compreendam e processem o significado semântico das palavras em um espaço matemático. Para saber mais, clique aqui.

1. LM Studio

Ainda não havia testado esta ferramenta, mas achei o LM Studio muito prático. A grande vantagem é que não precisa de instalação no Linux (não testei em outros sistemas operacionais). Você pode conhecer os modelos disponíveis neste link.

Porém, seu uso se mostrou mais complicado do que o Ollama, e não tive sucesso em rodar modelos com mais de 3 bilhões de parâmetros na minha máquina.

O mais interessante é que ele tem uma interface bem intuitiva:

Interface

Ele facilita o processo de controle dos modelos LLMs baixados:

Interface

1.1 - Adicionando um arquivo para RAG

Para incluir um arquivo e realizar o processo de RAG, basta ir à página principal do LM Studio, clicar no ícone de anexo (1) e selecionar o arquivo:

Interface
Interface

1.2 - Começando a “conversar” sobre o arquivo

Depois, é só começar a interagir com o arquivo:

Interface

No LM Studio, estou utilizando o modelo Llama3.2:3B (não consegui rodar modelos maiores). Note que ele pode se perder ou gerar respostas alucinadas.

Interface

2. Ollama

Para realizar RAG no Ollama, é possível utilizar a extensão Page Assist e, após alguns ajustes, começar a realizar inferências.

2.1 - Configurando a extensão Page Assist

Com o servidor do Ollama rodando, basta abrir a extensão em seu navegador:

Interface

Clique no ícone de ajustes (1), vá até o campo “RAG Settings” (2) e escolha o modelo de embedding (3). Lembre-se de que você já deve ter baixado esse modelo; caso contrário, ele não aparecerá.

Interface

Caso você ainda não tenha um modelo de embedding, é possível baixar, por exemplo, o modelo Nomic-Embed-text com o comando no terminal:

ollama pull nomic-embed-text

Ou diretamente pela extensão:

Interface
Interface

2.2 - Adicionando um arquivo para RAG

Agora, podemos incluir o arquivo que desejamos analisar, clicando (1) em “Manage Knowledge” e adicionando um novo conhecimento no botão “Add New Knowledge”.

Interface

A extensão suporta alguns tipos de arquivos, e você deve nomear esta base de conhecimento:

Interface
Interface

Aguarde enquanto ele processa o documento (embedding):

Interface

Agora, a base de conhecimento está disponível:

Interface

2.3 - Selecionando a base de conhecimento

Voltando à tela inicial da extensão, você verá um novo ícone onde digita as mensagens (1). Clicando nele, abrirá as bases de conhecimento (2), e assim você poderá selecionar aquela que deseja utilizar para o RAG.

Interface

Após escolher, a base de conhecimento selecionada aparecerá na parte superior da interface:

Interface

2.4 - Interagindo com o modelo sobre o documento

Agora, é só começar a “conversar” com o modelo sobre o documento:

Interface
Interface
Interface

Observações

Devido à limitação do modelo e do hardware, podem ocorrer alucinações e incorreções:

  • Aqui, ele mostrou 4 artigos em vez de 5:

Interface

  • E aqui, ao utilizar um modelo maior (Llama3.1:8B), ele se perdeu:

Interface

Conclusão

As ferramentas e os modelos utilizados ainda são experimentais e devem ser validados antes de qualquer uso em produção. Para analisar arquivos maiores, são necessários mais recursos computacionais, mas isso não diminui o valor do experimento, que pode ser útil em casos específicos, como a análise de currículos, documentos pequenos ou anotações.

Sucesso a todos!

Leonardo Grando
Leonardo Grando
Technology Ph.D. Candidate

My research interests include Agent-Based Simulation, Artificial Intelligence, Machine Learning.