LLMs: Um Caso de Uso Real

TLDR: Trabalhamos na implementação de LLMs, Banco de Dados Vetorial e RAG para elMejorTrato.com. Concluímos que:

  • Trabalhar com o idioma espanhol tem suas particularidades
  • O API ChatGPT é muito caro
  • LangChain e agentes às vezes são um excesso
  • Com SentenceBert e um Banco de Dados Vetorial, coisas maravilhosas podem ser feitas
  • LLMs de código aberto quantizados dão resultados muito bons

Deixamos aqui o código base aberto para uso em seus projetos

Criando um Protótipo

Os grandes modelos linguísticos, que ganharam popularidade desde que ChatGPT foi disponibilizado para o público geral, geraram entusiasmo sobre seu potencial de uso futuro. Há muitos exemplos de modelos linguísticos sendo usados para simular inteligência artificial geral, que realmente parecem futuristas. Aqui, focaremos no uso de modelos linguísticos para um caso específico no site elMejorTrato.com.

Modelos linguísticos introduziram duas inovações incríveis para desenvolvedores de software:

  1. A capacidade de interpretar linguagem natural.
  2. A capacidade de realizar buscas vetoriais em texto, áudio e imagens.

Um exemplo específico do elMejorTrato.com foi que, em vez de inserir um número, os usuários tinham a opção de inserir a quantia do empréstimo desejada como texto, como "Eu preciso $10,000 para ampliar minha casa". A solução foi substituir uma caixa de texto por uma caixa de seleção. Hoje, com as capacidades de interpretação de linguagem natural fornecidas pelos LLMs, as interações podem ser melhor capturadas, oferecendo aos usuários um melhor serviço.

Um segundo exemplo é a capacidade de responder às perguntas dos usuários que já foram respondidas por outros usuários usando buscas vetoriais em texto utilizando embeddings gerados pelo LLM.

Para testar essas novas soluções, criamos um protótipo a partir de uma fork deste excelente template de docker com as seguintes adaptações:

  • Prompt para que o llama2 funcione corretamente em espanhol.
  • Modelo de embeddings em espanhol do Universidade de Chile.
  • Weaviate como banco de dados para realizar buscas híbridas (vetorial, texto) e também para ser capaz de usá-lo localmente ou na nuvem.
  • Simplificação do código para torná-lo mais fácil de entender e adaptar ao seu projeto.