¿Buscas nuestro logo?
Aquí te dejamos una copia, pero si necesitas más opciones o quieres conocer más, visita nuestra área de marca.
¿Buscas nuestro logo?
Aquí te dejamos una copia, pero si necesitas más opciones o quieres conocer más, visita nuestra área de marca.
dev
Simón Rodríguez Hace 1 día Cargando comentarios…
En esta cuarta entrega de la serie de ejecución de LLMs en local, hablamos sobre cómo ejecutarlos con Llamafile, una herramienta alternativa a Ollama y LM Studio. Veremos cómo funciona y el paso a paso para su implementación.
¿Quieres ponerte al día con los posts anteriores de la serie?
Llamafile es una herramienta que transforma los LLMs en un único fichero ejecutable, el cual agrupa los pesos del modelo con una versión especial de la librería llama.cpp. Este fichero se puede ejecutar en la mayoría de ordenadores sin instalar dependencias adicionales, además de incluir un servidor de inferencia que proporciona un API de interacción con el modelo. Todo esto se logra al combinar la librería llama.cpp con el proyecto Cosmopolitan Libc (un proyecto que permite compilar y ejecutar programas en C en un gran número de plataformas y arquitecturas).
Algunos llamafiles de modelos que podemos encontrar son:
| Model | Tamaño | Licencia | Llamafile |
|---|---|---|---|
| LLaMA 3.2 1B Instruct Q4_K_M | 1.12 GB | LLAMA 3.2 | Mozilla/Llama-3.2-1B-Instruct-Q4_K_M-llamafile |
| Gemma 3 1B Instruct Q4_K_M | 1.11 GB | Gemma 3 | Mozilla/gemma-3-1b-it-Q4_K_M-llamafile |
| Mistral-7B-Instruct v0.3 Q2_K | 3.03 GB | Apache 2.0 | Mozilla/Mistral-7B-Instruct-v0.3-Q2_K-llamafile |
*Pincha en cada celda de "licencia" y "llamafile" para ver los enlaces.
Se pueden encontrar más llamafile aquí y aquí.
Debido a la versatilidad de ejecución proporcionada por el proyecto Cosmopolitan Libc, actualmente Llamafile se puede ejecutar en las siguientes plataformas:
En el caso de las GPUs, pueden ser necesarias configuraciones adicionales como instalar el SDK CUDA de Nvidia o el SDK ROCm HIP de AMD. En el caso de que no se identifiquen correctamente las GPUs, llamafile configurará el uso de la CPU por defecto.
En este artículo ejecutaremos los llamafiles en el sistema operativo Ubuntu. Para ello, se deberán ejecutar los siguientes pasos para poder activar el llamafile de un modelo:
chmod +x Llama-3.2-1B-Instruct-Q4_K_M.llamafile
./Llama-3.2-1B-Instruct-Q4_K_M.llamafile

Además, el propio llamafile proporciona una interfaz de usuario en formato chat para interactuar con el modelo (http://localhost:8080).

Aunque la ejecución directa nos permite interactuar con los modelos, puesto que estamos revisando estas herramientas desde el punto de vista del equipo de desarrollo, también es necesario un API con el que poder integrar las aplicaciones. Llamafile expone, entre otros, los siguientes endpoints:


![-H "Content-Type: application/json" \ -d '{ "content": "hola ¿Que puedes decirme de Paris?" {"tokens": [71,8083, 29386, 26860, 60045, 50018, 2727, 409, 12366, 30]} simonrodriguez@simonrodriguez:~$ simonrodriguez@simonrodriguez:~$ curl -X POST https://www.paradigmadigital.com/tokenize](https://www.paradigmadigital.com/assets/img/resize/small/llamafile_tokenize_post_bed7a7a817.png)
![simonrodriguez@simonrodriguez:~$ curl -X POST https://www.paradigmadigital.com/detokenize \ -H "Content-Type: application/json" \ - d '{ "tokens": [71,8083,29386, 26860, 60045, 50018, 2727, 409, 12366, 30] {"content": "hola ¿Que puedes decirme de Paris?"}simonrodriguez@simonrodriguez:~$](https://www.paradigmadigital.com/assets/img/resize/small/llamafile_detokenize_post_f9846e3a19.png)

En este enlace se pueden consultar todos los parámetros posibles de los distintos endpoints.
Como sucede en Ollama y LM Studio, Llamafile también puede manejar modelos externos mientras estén guardados en el formato GGUF. Aunque a nivel general esta afirmación se considere válida, es cierto que en ocasiones puede ser necesario realizar algunos ajustes dependiendo de la aplicación desde la que se hayan descargado dichos modelos.
Para poder ejecutar los ficheros GGUF sí que será necesario compilar llamafile en el pc. La instalación de llamafile implica estos pasos (en este caso, en el sistema operativo Ubuntu):
make -j8
sudo make install PREFIX=/usr/local
Una vez se tiene llamafile instalado en el sistema, ya se pueden ejecutar los modelos desde ficheros en formato GGUF que pueden haber sido descargados previamente desde otras aplicaciones como LM Studio u Ollama.
Con los modelos de LM Studio guardados habitualmente en ~/.cache/lm-studio/models o ~/.lm-studio/models, se puede ejecutar llamafile simplemente con el siguiente comando:
llamafile -m llama-3.2-1b-instruct-q4_k_m.gguf

Cuando se descarga un modelo en Ollama, sus metadatos se guardan en un fichero (manifest) en el directorio correspondiente, normalmente en ~/.ollama/models/manifests/registry.ollama.ai/library/.
Si abrimos ese fichero podremos ver las propiedades en estilo JSON. Dentro de layers, la propiedad digest (cuyo valor de mediaType termine en .model) es la que debemos tener en cuenta.

Este valor de digest se usa como nombre de fichero en la carpeta de blobs (~/.ollama/models/blobs). Es con este fichero de la carpeta blobs con el que se puede ejecutar el llamafile para el modelo correspondiente. Un ejemplo de ejecución sería:
llamafile -m sha256-74701a8c35f6c8d9a4b91f3f3497643001d63e0c7a84e085bed452548fa88d45

En este post hemos visto otra alternativa a Ollama y LM Studio: Llamafile. Esta herramienta maneja un concepto un poco diferente, en el cual la ejecución de cada modelo viene dado por un ejecutable diferente, con la ventaja de que no se necesita instalar ningún software adicional.
En el siguiente post nos encontraremos con un viejo conocido en el mundo del desarrollo que también se suma a la moda de ejecución de LLMs. ¡Te leo en comentarios!
Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.
Cuéntanos qué te parece.