Uso de Scikit-LLM con LLM de código abierto

En este artículo, aprenderá cómo utilizar modelos de lenguaje alojados localmente a través de Ollama para realizar tareas de clasificación de texto, todo sin gastar un centavo en llamadas API.

Los temas que cubriremos incluyen:

Cómo instalar Ollama y ejecutar modelos de código abierto como Llama 3, Mistral y Gemma para ejecutarlos localmente en su máquina. Cómo configurar la biblioteca Scikit-LLM para enrutar solicitudes a un punto final local de Ollama en lugar de a una API de nube paga. Cómo construir un clasificador de texto de disparo cero utilizando un modelo de lenguaje grande local y scikit-LLM en un flujo de trabajo familiar estilo scikit-learn.

Uso de Scikit-LLM con LLM de código abierto

Introducción

Este artículo le enseñará cómo realizar una tarea de lenguaje como la clasificación de texto mediante la integración de modelos de lenguaje grandes (LLM) alojados localmente de tamaño manejable, como Mistral, Gemma y Llama 3: todo gratis gracias a Ollama, un repositorio gratuito para LLM locales, y la biblioteca Scikit-LLM Python.

Requisito previo: instalación de Ollama

Se recomienda utilizar un IDE para ejecutar este tutorial, ya que necesitaremos interactuar con su versión de Ollama instalada localmente desde allí. ¿Nuevo en Ollama? Entonces te recomiendo que consultes este artículo primero. No obstante, aquí hay un resumen de qué hacer en la terminal de línea de comando local para descargar un LLM local después de instalar Ollama en su computadora.

Una vez que vea la ventana de interacción del modelo en la terminal, puede escribir “/bye” para mantenerlo ejecutándose en segundo plano, esperando llamadas API. Mientras tanto, en un proyecto recién creado en su IDE de Python, necesitará tener instaladas las siguientes bibliotecas:

Si encuentra el error “Módulo no encontrado” al ejecutar el código Python, intente instalar las dependencias anteriores una por una.

¡Bueno! Es hora de completar nuestro archivo de código Python (¡nómbralo como desees!), paso a paso. Primero, por supuesto, vienen las importaciones. Uno de ellos es la clase ZeroShotGPTClassifier. Similar al scikit-learn clásico, esta es una clase dedicada a entrenar y usar un modelo para la clasificación de tiro cero: concretamente, un LLM de Ollama.

A continuación, necesitamos aplicar un par de configuraciones específicas para poder comunicarnos con Ollama.

Después de eso, creamos un pequeño conjunto de datos y lo preparamos para su clasificación. Dado que no vamos a evaluar el rendimiento de clasificación del modelo en este tutorial (nuestro objetivo principal es aprender a usar Scikit-LLM localmente con modelos de código abierto como los disponibles a través de Ollama), no necesitamos una gran cantidad de ejemplos de datos.

El conjunto de datos contiene opiniones de usuarios y sus categorías correspondientes, por ejemplo, tipos de consultas o comentarios de los clientes. También hicimos una división de entrenamiento/prueba como es habitual con el modelado de aprendizaje automático.

En la siguiente parte del código, agregamos las instrucciones necesarias para inicializar y ejecutar nuestro clasificador, que será en esencia una instancia de ejecución adaptada a la tarea de uno de nuestros modelos Ollama instalados, como Llama 3:

Para terminar, imprimimos algunos resultados que consisten en un par de resultados de inferencia del modelo (predicciones de clasificación) en los dos ejemplos contenidos en el conjunto de prueba. Este es un conjunto de datos muy pequeño, pero el objetivo aquí es mostrar cómo logramos vincular Scikit-LLM con un modelo de Ollama local y gratuito para usar elegantemente un LLM para una tarea específica sin costo.

El resultado (puede variar según los ejemplos de prueba):

Alternativamente, puede ejecutar su script Python desde su terminal. Por ejemplo, si lo nombró local_classification.py, ejecute este comando:

De cualquier manera, si siguió todos los pasos, debería tenerlo funcionando. ¡Bien hecho!

Concluyendo

Este artículo ilustró cómo intercambiar modelos gratuitos ejecutados localmente a través de Ollama, como Llama, Mistral o Gemma, todo gratis y en unos sencillos pasos, gracias a la biblioteca Scikit-LLM de Python, que permite el uso de LLM de vanguardia dentro de un flujo de trabajo de aprendizaje automático clásico y familiar.