LLMs: Un caso de uso real

TLDR: Trabajamos en la implementación de LLMs, Base de Datos Vectorial y RAG para elMejorTrato.com. Concluimos que:

  • Trabajar con el idioma español tiene sus engaños
  • La API ChatGPT es demasiado costosa
  • LangChain y los agentes a veces son un exceso
  • Con SentenceBert y una Base de Datos Vectorial, se pueden lograr maravillas
  • Los LLMs cuantizados de código abierto dan muy buenos resultados

Dejamos aquí el código base de código abierto dockerizado para que lo uses en tus proyectos

Creando un prototipo

Los Grandes Modelos de Lenguaje, que han ganado popularidad desde que ChatGPT se hiciera disponible para el público general, han despertado entusiasmo por sus posibles usos futuros. Hay muchos ejemplos de cómo los LLMs se usan para simular inteligencia artificial general, que realmente parecen futurista. Aquí nos enfocaremos en usar LLMs para un caso específico en el sitio web elMejorTrato.com.

Los LLMs introdujeron dos increíbles novedades para los desarrolladores de software:

  1. La capacidad de interpretar lenguaje natural.
  2. La capacidad de realizar búsquedas vectoriales en texto, audio y imágenes.

Un ejemplo específico del elMejorTrato.com fue que en lugar de ingresar un número, los usuarios tenían la opción de ingresar la cantidad de préstamo que deseaban buscar como texto, como "Necesito $10,000 para ampliar mi casa". La solución fue reemplazar una caja de texto con una caja de selección. Hoy, con las capacidades de interpretación del lenguaje natural proporcionadas por los LLMs, las interacciones pueden ser mejor capturadas, brindando a los usuarios un mejor servicio.

Un segundo ejemplo es la capacidad de responder preguntas de los usuarios que ya han sido respondidas para otros usuarios mediante búsquedas vectoriales en texto utilizando embeddings generados por el LLM.

Para probar estas nuevas soluciones, creamos un prototipo a partir de una rama de este excelente plantilla de docker con las siguientes adaptaciones:

  • Prompt para que llama2 funcione correctamente en español.
  • Modelo de embeddings en español desde la Universidad de Chile.
  • Weaviate como base de datos para realizar búsquedas híbridas (vector, texto) y también para poder usarlo localmente o en la nube.
  • Simplificación del código para hacerlo más fácil de entender y adaptarlo a tu proyecto.