
En artÃculos anteriores hablé de algunas pautas que nos pueden indicar qué modelos trabajan con nuestras configuraciones de hardware; ahora hablaremos de cómo comenzar a trabajar con modelos locales en Linux. Pero antes comentaré el último parámetro que nos falta analizar.
Reitero otra vez mi consejo del artÃculo anterior: lo más fácil es darle a ChatGPT o Claude tu configuración de hardware y el nombre del modelo, para preguntarle si funciona. También puedes instalar el modelo y ejecutarlo prestando atención a la temperatura y funcionamiento de tu equipo.
Veamos el parámetro que nos quedaba del artÃculo anterior.
La ventana de contexto
La ventana de contexto mide en tokens la cantidad máxima de información que un modelo puede procesar, guardar y utilizar para producir una respuesta en una única interacción. El token es la unidad mÃnima de información con la que puede trabajar el lenguaje. Podemos definirlo como un fragmento de texto (letra, parte de una palabra, una palabra completa o un signo de puntuación) al que le corresponde un único número entero dentro del vocabulario especÃfico que maneja el modelo.
Una analogÃa adecuada es compararla con la memoria a corto plazo de los seres humanos. La ventana de contexto incluye:
- El pedido o pregunta del usuario.
- Los documentos y datos que adjunta.
- Las instrucciones del sistema: es la programación que determina la personalidad, el comportamiento, el tono, las reglas y los lÃmites del modelo.
- El historial de la conversación: los mensajes previos del usuario y las respuestas del modelo.
- La respuesta que el modelo está armando en ese momento.
- Lo que debemos tener en cuenta está marcado por la siguiente fórmula:
Tokens de Entrada (Input) + Tokens de Salida (Output) ≤ LÃmite de la Ventana de Contexto
Si el lÃmite es de 10.000 tokens y el prompt que ingresamos equivale a 9.500 tokens, el modelo solo tendrá 500 tokens para la respuesta.
¿Qué significa esto en una unidad de medida que entendamos?
- 4.000 tokens: son el equivalente a 3.000 palabras o entre 6 a 8 páginas de texto.
- 32.000 tokens: son el equivalente a 24.000 palabras, que es lo que ocupa un documento técnico largo o un libro corto.
- 128.000+ tokens: son el equivalente a 96.000 palabras, que equivalen al código de un software extenso o a varios libros.
Esta es la relación entre ventana de contexto y requisitos de hardware
| Ventana de contexto |
Consumo de RAM |
Uso recomendado |
| 4K |
Muy bajo |
Chat y preguntas breves |
| 8K |
Bajo |
Uso general (recomendado) |
| 16K |
Medio |
Documentos largos |
| 32K |
Alto |
Libros y proyectos grandes |
| 64K |
Muy alto |
Análisis extensos |
| 128K |
Extremadamente alto |
Investigación y bases documentales |
| 256K+ |
Enorme |
Servidores y estaciones de trabajo |
| Memoria RAM del equipo |
Ventana de contexto recomendada |
| 8 GB |
4K – 8K |
| 16 GB |
8K – 16K |
| 32 GB |
16K – 32K |
| 64 GB |
32K – 64K |
| 128 GB o más |
64K – 128K o superior |
De todas maneras, hay otros factores que también tienen influencia en el tamaño de la ventana de contexto:
- El tamaño del modelo (7B, 14B, 32B, 70B…);
- La cuantización (Q4, Q5, Q8, etc.);
- La implementación del modelo (dependiendo del tipo de arquitectura, será necesaria más memoria para la caché de atención que en otras);
- El hardware sobre el que se ejecuta el modelo.
Cómo comenzar a trabajar con modelos locales
Qué es Ollama
Ollama ofrece un script de instalación que permite instalar y actualizar la herramienta.
Ollama es una herramienta de código abierto que nos permite instalar, modificar y eliminar modelos de nuestro disco. La selección de modelos es variada, y lo que podemos hacer con ellos estará determinado por el hardware en el que corran.
El comando para instalar Ollama en Linux es:
curl -fsSL https://ollama.com/install.sh | sh
Si te da error, debes instalar curl desde el gestor de paquetes de tu distribución.
Comprobamos que el programa está funcionando:
systemctl status ollama
Actualizamos con:
curl -fsSL https://ollama.com/install.sh | sh
Si quieres eliminar completamente el programa, tienes que utilizar todos estos comandos:
Primero detenemos el programa si lo estamos usando:
sudo systemctl stop ollama
En segundo lugar, debemos deshabilitar el inicio automático:
sudo systemctl disable ollama
Ahora eliminamos el servicio:
sudo rm /etc/systemd/system/ollama.service
sudo systemctl daemon-reload
También borramos el ejecutable:
sudo rm $(which ollama)
Y no nos olvidemos de las bibliotecas:
sudo rm -rf /usr/lib/ollama
sudo rm -rf /usr/local/lib/ollama
Quitamos los usuarios y grupos que creó Ollama en su instalación:
sudo userdel ollama
sudo groupdel ollama
Ya no necesitamos los modelos:
sudo rm -rf /usr/share/ollama
Liberamos la caché y la configuración del usuario:
rm -rf ~/.ollama
Para poder usar Ollama debemos seleccionar un modelo de esta lista.
El modelo se instala con el comando:
ollama pull nombre_del_modelo
Para ejecutar un modelo (y descargarlo si no lo hiciste previamente):
ollama run nombre_del_modelo
Una vez que termina de descargarse (si no lo estaba), podrás empezar a chatear con el modelo.
Para ver todos los modelos instalados con su tamaño y fecha de instalación:
ollama list
Borramos un modelo con el comando:
ollama list nombre_del_modelo
Para usar Ollama en distribuciones Linux que no usen systemd:
ollama serve
Para ver toda la información acerca de un modelo:
ollama show nombre_del_modelo
Crear una copia de un modelo con otro nombre:
ollama cp nombre_del_modelo nombre_de_la _copia
Salir de la conversación:
/bye
Otros comandos que podemos usar mientras interactuamos con un modelo:
- /help: muestra todos los comandos que se pueden utilizar durante la sesión.
- /clear: elimina el historial de la conversación de la sesión sin necesidad de salir.
- /set system (texto): modifica en tiempo real las instrucciones de comportamiento del modelo.
- /show info: permite ver la información del modelo que estamos utilizando.
- /show modelfile: muestra el archivo de configuración del modelo que estamos usando.
El archivo modelfile
Una vez que aprendamos a utilizar Ollama y sus diferentes modelos, podemos experimentar modificando el archivo de configuración. Este indica los siguientes parámetros:
- FROM: es obligatorio e inmodificable. Indica el modelo del cual se deriva el resto de la configuración.
- SYSTEM: es un parámetro opcional. Establece el rol del asistente, el comportamiento del sistema y el contexto de la sesión.
- PARAMETER: maneja los parámetros de generación, temperatura, longitud de la ventana de contexto, penalizaciones y el resto de los controles de inferencia. Explicaremos esto en próximos artÃculos. Es un parámetro opcional.
- MESSAGE: parámetro opcional que inserta mensajes de ejemplo para establecer el tono de la respuesta que se le dará al usuario.
- TEMPLATE: el más opcional de los parámetros de esta lista, ya que casi nunca es necesario tocarlo. Establece la estructura que Ollama le dará a la consulta del usuario antes de enviarla al modelo.
En el próximo artÃculo daremos ejemplos prácticos del uso de Ollama.