AIUnlimited
🌳

Fundamentos de IA

🌱
AI Seeds

Empieza desde cero

🌿
AI Sprouts

Construye bases

🌳
AI Branches

Aplica en la práctica

🏕️
AI Canopy

Profundiza

🌲
AI Forest

Domina la IA

🔨

Maestría en IA

✏️
AI Sketch

Empieza desde cero

🪨
AI Chisel

Construye bases

⚒️
AI Craft

Aplica en la práctica

💎
AI Polish

Profundiza

🏆
AI Masterpiece

Domina la IA

📘

Práctica de IA

📖
Entendiendo modelos open-source

Fundamentos y recursos para modelos open-source

🎯
Del problema a la tarea del modelo

Convertir problemas de negocio en tareas de modelos

⚡
Ejecutando tu primer modelo

Mira tus primeros resultados en 30 minutos

🔧
Fine-tuning y evaluación

Ajusta modelos y evalúa el rendimiento

🚀
Sistemas de aplicación

Construye aplicaciones IA del mundo real

🎨
IA generativa

Explora modelos AIGC open-source

🤖
Agentes

Aprende frameworks Agent y herramientas MCP

📐
Fundamentos complementarios

Fundamentos LLM y evaluación

🎓

Claude Academia

🤖
Claude 101

Learn AI basics with Claude

💻
Claude Code 101

Code with Claude as your pair programmer

🤝
Introduction to Claude Cowork

Collaborate with Claude on complex projects

⚙️
Claude Platform 101

Build apps with the Claude API

Laboratorio

7 experimentos cargados
🧬Sandbox de Red Neuronal🤖¿IA o Humano?🥋Dojo de Prompt Engineering🏁Carrera de Algoritmos🧠Trivia de IA🏗️Lienzo de diseño de sistemas
🎯Entrevista simuladaEntrar al Laboratorio→
🚀

Desarrollo profesional

🚀
Plataforma de Entrevistas

Comienza tu camino

🌟
Dominio Conductual

Domina las habilidades blandas

💻
Entrevistas Técnicas

Supera la ronda de código

🤖
Entrevistas de IA y ML

Dominio en entrevistas de ML

🏆
Oferta y Más Allá

Consigue la mejor oferta

Empezar
AIUnlimited

Licencia MIT

沪ICP备18025655号-11

Aprender

  • Fundamentos de IA
  • Práctica de IA
  • Claude Academia
  • Laboratorio
  • Desarrollo profesional

Comunidad

  • Acerca de
  • Preguntas Frecuentes

Soporte

  • Términos de Servicio
  • Política de Privacidad
  • Contacto
Académicos de IA e Ingeniería›⚡ Ejecutando tu primer modelo›Lecciones›Model Quantization Basics
📦
Ejecutando tu primer modelo • Principiante⏱️ 15 min de lectura

Model Quantization Basics

Los modelos requieren demasiados recursos — ¿en qué puede ayudar la cuantificación?

Después de descargar el modelo, es posible que encuentres un error de memoria insuficiente o de memoria de video insuficiente durante la ejecución. Este es probablemente el último resultado que cualquier persona quiere ver al probar modelos locales.

Como se introdujo anteriormente, el modelo necesita cargar sus pesos en RAM o VRAM durante la ejecución, y la generación de respuestas también requiere espacio adicional. Si tu dispositivo no puede contener el modelo, además de cambiar a un modelo con menos parámetros, también puedes verificar si existe una versión cuantizada.

¿Cuánto espacio puede ahorrar la cuantificación?

Los pesos del modelo están compuestos por una gran cantidad de valores numéricos, y almacenar cada valor requiere una cierta cantidad de espacio. La cuantificación reduce el consumo de recursos del modelo al disminuir la precisión de la representación de estos valores numéricos. Por ejemplo, los pesos originalmente almacenados como números de punto flotante de 16 bits pueden convertirse en representaciones de baja precisión predominantemente de 8 bits o 4 bits. El número de parámetros generalmente no cambia, pero el espacio ocupado por cada parámetro se reduce.

Tomando como ejemplo un modelo de 7 mil millones de parámetros, y considerando solo los pesos en sí sin los costos adicionales de cuantificación, podemos obtener las siguientes estimaciones aproximadas:

Representación de pesos

Tamaño teórico de pesos

16 bits

Aproximadamente 14 GB

8 bits

Aproximadamente 7 GB

4 bits

Aproximadamente 3.5 GB

Los valores en GB aquí se calculan en unidades decimales. Los archivos cuantizados reales también almacenan información como coeficientes de escala y pueden usar precisiones mixtas, por lo que el tamaño real puede diferir de la estimación.

Para los usuarios ordinarios, el beneficio más directo de la cuantificación es que los archivos de modelo se hacen más pequeños, ahorrando espacio para descarga y almacenamiento, y requiriendo menos RAM o VRAM para los pesos durante la ejecución. Cuando el hardware y los frameworks de inferencia lo soportan, la cuantificación también puede mejorar la velocidad de inferencia.

Sin embargo, reducir el archivo a un cuarto de su tamaño original no significa que la velocidad de respuesta aumente cuatro veces.

Reducir la precisión también puede afectar la calidad de la respuesta, dependiendo del modelo, el método de cuantificación y la tarea. Al elegir una versión cuantizada, además de confirmar que puede ejecutarse, también debes probarla con tus propias preguntas para ver si las respuestas siguen siendo confiables.

¿Qué enfoques existen para la cuantificación de modelos?

Lección 5 de 50% completado
←Cloud Notebooks: CPU and GPU

Discusión

Iniciar sesión unirse a la discusión

Para los modelos que ya han sido descargados o ajustados, el enfoque común es la Cuantización Post-Entrenamiento (PTQ), que convierte los pesos y otros valores numéricos en representaciones de menor precisión después de que el entrenamiento del modelo está completo. Algunos métodos requieren un pequeño lote de datos representativos para calibrar el proceso de cuantificación y minimizar el error.

Otra categoría es la Cuantización Sensible al Entrenamiento (QAT), que simula los efectos de la cuantificación durante el entrenamiento, permitiendo al modelo adaptarse a las representaciones de baja precisión de antemano.

Este capítulo primero cubre los modelos cuantizados GGUF comúnmente utilizados en el despliegue local, ayudándote a comprender los archivos, distinguir versiones y hacer elecciones. Los detalles sobre otros métodos de cuantificación se cubrirán más adelante.

¿Qué hay dentro de un archivo GGUF?

Al ejecutar modelos con Ollama, frecuentemente encontrarás nombres como GGUF, Q4, Q8, etc. Estos nombres están principalmente relacionados con el formato de almacenamiento y el método de cuantificación del modelo, y son una razón importante por la cual los modelos grandes pueden ejecutarse en computadoras personales.

En agosto de 2023, Georgi Gerganov introdujo el formato GGUF. Sus principales ventajas incluyen despliegue en un solo archivo, escalabilidad, soporte para mapeo de memoria, información completa y facilidad de uso. Un archivo GGUF incluye un encabezado de archivo, pares clave-valor de metadatos e información de tensores. Estos componentes definen juntos la estructura y el comportamiento del modelo. Como se muestra a continuación, GGUF es un formato de archivo de modelo para inferencia de modelos grandes, actualmente utilizado ampliamente por herramientas de inferencia locales como llama.cpp y Ollama. Ollama encapsula el manejo del formato GGUF, la cuantificación de modelos y la carga de modelos, de modo que los usuarios no necesitan convertir los formatos de modelo por sí mismos — pueden descargar y ejecutar directamente modelos pre-cuantizados. Un archivo GGUF no solo contiene parámetros del modelo; también incluye información básica del modelo, arquitectura del modelo y datos de tensores. GGUF organiza esta información a través de un formato de archivo unificado, permitiendo que herramientas de inferencia como llama.cpp la lean y carguen directamente. Su estructura básica se muestra en la figura de abajo.

ModelScope también soporta la visualización de archivos GGUF estructurados, como se muestra a continuación. Cuando las herramientas de inferencia cargan archivos GGUF, pueden leer directamente esta información y cargar el modelo sin necesidad de preparar múltiples archivos de configuración de modelo por separado.

GGUF en sí mismo es solo un formato de archivo de modelo y no reduce directamente el uso de RAM o VRAM del modelo. Lo que verdaderamente reduce el consumo de recursos del modelo es la cuantificación.

¿Cómo interpretar nombres como Q4 y Q8?

En llama.cpp y los modelos GGUF, Q4, Q5, Q8, Q4_K_M representan diferentes nombres de cuantificación. Aquí, Q significa cuantificación, y el número siguiente indica el ancho de bits principal de cuantificación. Por ejemplo, Q4 significa cuantificación predominantemente de 4 bits, y Q8 significa cuantificación predominantemente de 8 bits.

Ten en cuenta que Q4 no significa que todos los parámetros del modelo usen uniformemente representación de 4 bits. Tomando el Q4_K_M común como ejemplo, pertenece al tipo de cuantificación K-quant en llama.cpp. El Q4 en el nombre significa cuantificación predominantemente de 4 bits, K indica el uso del esquema de cuantificación K-quant, y M denota la configuración Medium dentro de ese esquema. En la práctica, diferentes tensores en el modelo pueden usar diferentes precisiones de cuantificación en lugar de que todos los parámetros usen uniformemente representación de 4 bits, como se muestra en la figura de abajo.

¿Qué versión debo descargar para el mismo modelo?

Al elegir un modelo GGUF, primero confirma que tu herramienta de inferencia soporta el modelo, luego mira la versión de cuantificación específica. Una precisión de cuantificación más baja generalmente reduce el uso de RAM y VRAM, haciendo más fácil ejecutar el modelo en dispositivos ordinarios, pero puede sacrificar algo del rendimiento del modelo. Una precisión de cuantificación más alta generalmente preserva más de las capacidades del modelo original, pero también requiere más recursos de hardware.

Si una versión ya está cerca de los límites de RAM o VRAM de tu dispositivo, considera cambiar a una versión más pequeña para dejar margen para el contexto y las operaciones de ejecución. Si los recursos son suficientes, puedes usar las mismas preguntas para comparar las respuestas de diferentes versiones, prestando especial atención a tus tareas objetivo como extracción de información, generación de código o producción de salidas estructuradas.

Primero confirma una ejecución estable, luego verifica la calidad de las respuestas. De esta manera, la versión cuantizadas que elijas será más adecuada para tu dispositivo y caso de uso.