Llamafile - permite desplegar y ejecutar LLM en un solo archivo
(github.com/Mozilla-Ocho)Resumen del proyecto llamafile
- Desarrollo de un framework que combina
llama.cppy Cosmopolitan Libc para hacer realidad el sueño de que los desarrolladores de IA puedan compilar y ejecutar en cualquier lugar llamafilepuede ejecutarse en diversas microarquitecturas y arquitecturas de CPU, y permite ejecutar código con una sola compilación en múltiples sistemas operativos- Es posible incluir los pesos del LLM dentro de
llamafilepara lograr una ejecución rápida mediante mapeo directo en memoria
Uso del binario
- Se proporcionan binarios de ejemplo de varios modelos descargables a través de Hugging Face
- El binario de línea de comandos se ejecuta igual que invocar manualmente la función "main" de
llama.cpp - El binario de servidor ejecuta un servidor web local para ofrecer un chatbot basado en web
Precauciones
- En macOS, si se usa Apple Silicon, es necesario instalar Xcode
- En Windows, es necesario cambiar el nombre del archivo a
llamafile.exepara poder ejecutarlo - Si hay problemas de ejecución en
zsh, Pythonsubprocess, Fish, etc., se recomienda usar comandos alternativos - Se ofrece un método de solución cuando aparece un problema con
binfmt_miscen Linux
Soporte de GPU
- En Apple Silicon funciona automáticamente al instalar Xcode
- En Linux, se requiere instalar el compilador y configurar flags para el soporte de GPU Nvidia cuBLAS
- En Windows, después de la primera ejecución desde el símbolo del sistema nativo MSVC x64, es necesario configurar la ruta de CUDA
Cómo compilar el código fuente
- Se explica cómo compilar el código fuente de
llamafileusando la toolchaincosmocc - Se proporcionan ejemplos de generación de código de funciones
libcy de ejecución de un servidor HTTP
Documento de zipalign
- Se explica cómo usar la herramienta
zipalignpara agregar archivos sin comprimir alineados a un archivo PKZIP - Permite una ejecución más rápida que las herramientas tradicionales para archivos ZIP y cumple con los requisitos de alineación de memoria
Detalles técnicos
llamafileaprovecha la funciónmmap()para combinar scripts de shell y pesos, haciendo posible una ejecución rápida- Presenta soluciones técnicas para la inclusión de pesos en ZIP, la portabilidad entre microarquitecturas y arquitecturas, y el soporte de GPU
Licencia
- El proyecto
llamafileusa la licencia Apache 2.0, y los cambios realizados allama.cppse distribuyen bajo la licencia MIT
Problemas conocidos
- En Windows de 64 bits existe un límite de tamaño de archivo de 4 GB, por lo que los pesos deben usarse como archivo separado
Opinión de GN⁺
Lo más importante de este texto es el enfoque innovador del proyecto llamafile para que los desarrolladores de IA puedan compilar y ejecutar LLM fácilmente en cualquier lugar. El proyecto ofrece compatibilidad con diversas plataformas y arquitecturas, y mejora mucho la comodidad de uso al permitir la distribución en un solo archivo que incluye los pesos. Este avance técnico tiene el potencial de acelerar aún más la investigación y el desarrollo en IA, por lo que resulta muy interesante para quienes siguen este campo.
1 comentarios
Opiniones de Hacker News
Cómo usar el modelo LLaVA
llamafile-server-0.1-llava-v1.5-7b-q4de 4.26 GBhttp://127.0.0.1:8080/para subir una imagen y empezar a conversar con el modeloExperiencia compartida desarrollando una app para macOS
Recomendación de una publicación relacionada de Simon Willison
Enlaces relacionados compartidos
Propuesta del nombre Llaminate
Admiración por el soporte de CUDA usando Cosmopolitan
Mención del límite de tamaño de ejecutables en Windows
Se comparte cómo experimentar con varios modelos en llama.cpp
Se señala la limitación de un binario que solo funciona con un único modelo y un único conjunto de pesos
Mención de la sorprendente velocidad de Justine para crear proyectos increíbles