En este artículo, discutiré el uso de un LLM alternativo para la IA generativa. OpenAI es comúnmente utilizado, pero en este artículo os mostraré cómo usarlo y las ventajas de utilizar Ollama.
En el modelo de uso de IA generativa al que estamos acostumbrados, seguimos el siguiente flujo:
- Tomamos textos de una fuente de datos (un archivo, por ejemplo) y los transformamos en vectores.
- Almacenamos los vectores en una base de datos IRIS.
- Llamamos a un LLM (Large Language Model) que accede a estos vectores como contexto para generar respuestas en lenguaje humano.
Tenemos grandes ejemplos de esto en esta comunidad, como IRIS Vector Search (https://openexchange.intersystems.com/package/iris-vector-search) e IRIS AI Studio (https://openexchange.intersystems.com/package/IRIS-AI-Studio-2). En estos ejemplos, el LLM es un servicio al que debéis suscribiros (como OpenAI) para obtener una clave de uso. En resumen, lo que hacemos es llamar a la API REST de OpenAI pasando los datos vectorizados como contexto, y esta nos devuelve una respuesta basada en ese contexto.
En este artículo, en lugar de OpenAI, os sugiero usar el LLM Ollama. A diferencia de OpenAI, Ollama se ejecuta localmente. Veo dos ventajas principales en esto:
- Más seguridad, ya que no necesitáis transferir datos a una API de terceros.
- Menor coste, ya que no es necesario pagar una suscripción para llamar al servicio. Recordad que solo el tráfico de los vectores almacenados en IRIS y OpenAI ya supera el límite de su licencia gratuita. Por lo tanto, al probar con OpenAI, recibimos el error 429 - "Has excedido tu cuota actual, por favor revisa tu plan y los detalles de facturación."
La desventaja es que requiere recursos de vuestro ordenador (con menos de 16 GB de RAM será difícil ejecutarlo).
Para usar Ollama, debéis descargarlo e instalarlo en vuestro ordenador desde el sitio web https://ollama.com/download. Después de eso, simplemente indicad a la biblioteca llama_index de Python que use Ollama en lugar de OpenAI con este comando:
Settings.llm = Ollama(model="llama3.2", request_timeout=360.0)
PythonPython
En la aplicación de Open Exchange https://openexchange.intersystems.com/package/ollama-ai-iris encontraréis más detalles sobre el código.
El primer paso es cargar un texto en forma de vector en IRIS (en el directorio data_example de https://github.com/RodolfoPscheidtJr/ollama-ai-iris podéis ver el texto utilizado como ejemplo).
Luego, utilizad este texto vectorizado como contexto para hacerle algunas preguntas a Ollama. Al preguntar "¿Qué hizo el autor?", obtenemos:
Y al preguntar "¿Le gustan las pinturas al autor?", obtenemos: