GGUF es un formato de archivo binario diseñado para el almacenamiento eficiente y la carga rápida de modelos de lenguaje grandes (LLM) con GGML, una biblioteca de tensores basada en C para aprendizaje automático.
GGUF encapsula todos los componentes necesarios para la inferencia, incluidos el tokenizador y el código, en un solo archivo. Admite la conversión de varios modelos de lenguaje, como Llama 3, Phi y Qwen2. Además, facilita la cuantificación del modelo con precisiones más bajas para mejorar la velocidad y la eficiencia de la memoria en los procesadores.
A menudo escribimos «cuantización GGUF», pero GGUF en sí es solo un formato de archivo, no un método de cuantificación. Hay varios algoritmos de cuantificación implementados en llama.cpp para reducir el tamaño del modelo y serializar el modelo resultante en formato GGUF.
En este artículo, veremos cómo cuantificar con precisión un LLM y convertirlo a GGUF, utilizando una matriz de importancia (imatrix) y el método K-Quantization. Proporciono código de conversión GGUF para Gemma 2 Instruct, usando una matriz. Funciona igual con otros modelos soportados por llama.cpp: Qwen2, Llama 3, Phi-3, etc. También veremos cómo evaluar la precisión de la cuantificación y el rendimiento de inferencia de los modelos resultantes.