Mozilla dio a conocer, mediante una publicación de blog, el lanzamiento de un compilador, el cual tiene como finalidad el simplificar drásticamente el uso de varios modelos de lenguaje grandes (LLM) en casi cualquier escritorio o servidor.
El nuevo proyecto de Mozilla bautizado como «llamafile», es un compilador de código abierto que puede tomar un archivo de parámetros de modelo de aprendizaje automático en formato GGUF y convertirlo en un archivo ejecutable que puede ejecutarse en seis sistemas operativos diferentes en hardware AMD64 y ARM64.
Y es que no me dejaran mentir, pero los modelos de lenguaje grande (LLM) para uso local generalmente se distribuyen generalmente en diversos conjuntos, los cuales el peso de cada uno de esos archivos suele ser de varios gigabytes. Estos archivos no son directamente utilizables por sí mismos, lo que complica su distribución y ejecución en comparación con otros tipos de software. Además, un modelo específico puede haber experimentado modificaciones y ajustes, dando lugar a resultados diversos al utilizar versiones distintas.
Mozilla se dio cuenta de ello, tomo cartas en el asunto y para abordar este desafío, el grupo de innovación de Mozilla ha lanzado «llamafile», el cual como ya se mencionó arriba, es un compilador que convierte los LLM en un solo archivo binario capaz de ejecutarse en seis sistemas operativos diferentes (macOS, Windows, Linux, FreeBSD, OpenBSD y NetBSD) sin necesidad de instalación adicional. Esta solución facilita considerablemente la distribución y ejecución de LLM, al mismo tiempo que garantiza la consistencia y reproducibilidad de una versión específica de LLM a lo largo del tiempo.
Sobre el compilador llamafile, se menciona que se creó combinando dos proyectos: llama.cpp (un marco de chatbot LLM de código abierto) y Cosmopolitan Libc (un proyecto de código abierto que permite compilar y ejecutar programas en C en muchas plataformas y arquitecturas). Durante la implementación, Mozilla menciona que enfrentó desafíos interesantes y tuvo que ampliar significativamente el alcance de Cosmopolitan para lograr los objetivos planteados.
Nuestro objetivo es hacer que los modelos de lenguajes grandes de código abierto sean mucho más accesibles tanto para los desarrolladores como para los usuarios finales. Lo estamos haciendo combinando llama.cpp con Cosmopolitan Libc en un marco que colapsa toda la complejidad de los LLM en un único archivo ejecutable (llamado «llamafile») que se ejecuta localmente en la mayoría de las computadoras, sin instalación.
Se menciona que uno de los principales objetivos de llamafile era que pudiera ejecutarse en múltiples microarquitecturas de CPU. Aquí es donde entra llama.cpp para permitir que los nuevos sistemas Intel utilicen las funciones de los procesadores modernos sin sacrificar el soporte para computadoras más antiguas, mientras que para AMD64 y ARM64 estas concatenan mediante un script de shell que inicia la versión adecuada. El formato de archivo es compatible con WIN32 y la mayoría de los shells UNIX.
Otro de los desafíos que fue abordado fue el tema de los pesos de los archivos de los LLM, los cuales se pueden integrar en llamafile, esto gracias al soporte para PKZIP a la biblioteca GGML. Esto permite asignar pesos sin comprimir directamente a la memoria, como un archivo autoextraíble, además de que permite que los pesos cuantificados distribuidos en línea tengan como prefijo una versión compatible del software llama.cpp, lo que garantiza que los comportamientos observados originalmente puedan reproducirse indefinidamente.
Supongamos que tiene un conjunto de pesos LLM en forma de archivo de 4 GB (en el formato GGUF de uso común). Con llamafile puedes transformar ese archivo de 4GB en un binario que se ejecuta en seis sistemas operativos sin necesidad de instalación.
Finalmente, cabe mencionar que Mozilla lanzó el proyecto «llamafile» escrito en C/C++ y distribuido bajo la licencia Apache, lo que implica menos restricciones en términos de métodos de uso y disponibilidad de recursos, en comparación con licencias como la GPL.
En cuanto a los interesados en poder conocer más al respecto sobre el proyecto o ya quieren utilizarlo, pueden consultar los detalles y/o la guía rápida de uso en el siguiente enlace.