- Kimi K3 de Moonshot AI es un modelo de pesos abiertos con 2.8T de parámetros totales, 104B activos, visión nativa y contexto de 1 millón de tokens; Unsloth ofrece cuantizaciones GGUF para ejecución local
- La inferencia en precisión completa requiere 1.56TB, pero Dynamic 1-bit
UD-IQ1_S logra cerca de 78.9% de precisión Top-1 con 594GB, y el modelo de 2 bits UD-Q2_K_XL de 861.3GB alcanza cerca de 90%
- Kimi K3 es un modelo solo de thinking que conserva el rastro de razonamiento, no admite modo Instant, permite elegir
"low", "high", "max" con reasoning_effort y procesa hasta 1,048,576 tokens
- Unsloth Studio automatiza el offloading a RAM y la detección de múltiples GPU, y para ejecutar
llama.cpp con funciones de visión se necesita el fork de Unsloth para Kimi K3
- La ejecución recomendada de
UD-IQ1_S requiere al menos 610GB de RAM y, en general, conviene tener RAM+VRAM equivalentes al tamaño del archivo cuantizado; si no alcanza, el offloading a disco lo vuelve mucho más lento
Características del modelo y requisitos para ejecución local
- Kimi K3 de Moonshot AI es un modelo de pesos abiertos de 2.8T de parámetros orientado a coding, agentes, contexto largo y chat, y activa 104B parámetros durante la inferencia
- Soporta visión nativa y una ventana de contexto de 1 millón de tokens, y usa MXFP4 en los pesos MoE
- La inferencia en precisión completa requiere 1.56TB de almacenamiento
- Kimi-K3-GGUF puede ejecutarse en Unsloth Studio o en
llama.cpp
- También puede ejecutarse en una NVIDIA DGX Station o en una Mac Studio conectada a un dispositivo con 128GB de RAM
- Los requisitos de hardware se calculan como la suma de RAM y VRAM o memoria unificada, con configuraciones entre 610GB y 1.6TB
Método de implementación GGUF
- Se implementó sobre llama.cpp PR, y el fork de Unsloth agrega soporte de visión y correcciones de errores
- La torre de visión es similar a la de Kimi K2.5, pero con estas diferencias
- Usa RMSNorm y no tiene bias
- El QKV fusionado no es cuadrado y
qkv width != n_embd
- Aplica normalización después del projector
- En lotes grandes, el presupuesto
n_tokens * 40 fallaba, así que se aumentó a n_tokens * 160
- La plantilla de chat de Kimi se convirtió a formato Jinja
- Como la configuración de entrenamiento predeterminada activa
preserved thinking, el rastro de razonamiento se mantiene sin eliminarse
Método de cuantización y calidad
UD-Q8_K_XL conserva la configuración original de MXFP4 para los pesos MoE y BF16 para el resto, por lo que corresponde a una cuantización sin pérdida
UD-Q4_K_XL guarda algunos tensores residuales como los de normalización en Q8_0, salvo ciertas excepciones, y queda cerca de la precisión completa con un tamaño de 1.51TB
- La versión sin pérdida
UD-Q8_K_XL ocupa 1.56TB, 50GB más que UD-Q4_K_XL
- Los principales resultados de cuantización son los siguientes
UD-IQ1_S: 594.0GB, perplexity 2.5789, precisión Top-1 de 78.875±0.107%
UD-IQ1_M: 648.9GB, perplexity 2.3639, precisión Top-1 de 81.219±0.103%
UD-IQ2_XXS: 711.1GB, perplexity 2.1266, precisión Top-1 de 84.127±0.096%
UD-Q2_K_XL: 861.3GB, perplexity 1.7359, precisión Top-1 de 90.390±0.077%
UD-Q4_K_XL: 1,510GB, perplexity 1.4579
UD-Q8_K_XL: 1,560GB, perplexity 1.4581
- Para generar imatrix y calibrar la cuantización se usa la versión sin pérdida
UD-Q8_K_XL de 1.56TB
- Dynamic 1-bit es 62% más pequeño que la versión sin pérdida y aun así logra cerca de 79% de precisión Top-1
- El
UD-Q2_K_XL de 2 bits es 45% más pequeño y registra cerca de 90% de precisión
- El tamaño de 1 bit es 553.2GiB, y se sigue investigando si puede bajarse de 512GiB sin dañar el modelo
-
Comparación con cuantizaciones de la comunidad
- El
IQ1_M de la comunidad, de 618.9GB, es más grande que UD-IQ1_S de 594GB, pero su perplexity sube a 54.56, lo que implica un deterioro 21 veces mayor
- El
IQ2_XXS de la comunidad registró perplexity 96 con 725GB, mientras que la versión de Unsloth logró 2.12 con 711GB, una diferencia de aproximadamente 45 veces
- La cuantización dinámica y una calibración adecuada influyen tanto en el tamaño del archivo como en la calidad
Configuración de inferencia y rendimiento
- Kimi K3 es un modelo solo de thinking,
preserve_thinking siempre está activado y el nivel de razonamiento predeterminado es max
- No admite modo Instant, y en el campo de solicitud
reasoning_effort se puede indicar "low", "high", "max"
- La longitud de contexto llega hasta 1,048,576 tokens, y en Unsloth se puede alternar entre los tres niveles de razonamiento
- La configuración de inferencia incluye
temperature=1.0, top_p=0.95 o top_p=1.0
- Una vez que el modelo cabe en memoria, puede generar cerca de 20 tokens/s en B200, con un throughput superior a 120 tokens/s
- Por el equilibrio entre tamaño y calidad, se recomienda el
UD-IQ1_S de 594GB
- La suma de RAM y VRAM debería acercarse al tamaño del archivo cuantizado; si no alcanza, todavía puede ejecutarse, pero el offloading a disco lo vuelve mucho más lento
Ejecución en Unsloth Studio
- Unsloth Studio es una web UI open source para IA local compatible con macOS, Windows y Linux
- Permite buscar, descargar y ejecutar modelos GGUF y safetensors, y ofrece inferencia CPU+GPU basada en
llama.cpp
- Detecta automáticamente el offloading a RAM y configuraciones con múltiples GPU
- Los comandos de instalación y ejecución son los siguientes
# macOS, Linux, WSL
curl -fsSL https://unsloth.ai/install.sh | sh
# Windows PowerShell
irm https://unsloth.ai/install.ps1 | iex
unsloth studio
- Después de iniciarlo, se abre
http://127.0.0.1:8888 o la dirección mostrada en el navegador, y en la primera ejecución se crea una contraseña para proteger la cuenta
- También soporta ejecución por HTTPS mediante un túnel gratuito de Cloudflare
unsloth studio --secure
- En el Model hub, busca Kimi K3, descarga la cuantización deseada y ejecútala
- Los parámetros de inferencia se configuran automáticamente, pero el nivel de razonamiento, la longitud de contexto y la plantilla de chat pueden ajustarse manualmente
- Los detalles se pueden consultar en la guía de inferencia de Unsloth Studio
Ejecución en llama.cpp
- Para inferencia local rápida, incluyendo CPU, se usa llama.cpp
- Para activar la visión de Kimi K3, hay que compilar el fork específico de Unsloth en lugar de la versión general
git clone https://github.com/unslothai/llama.cpp
cd llama.cpp
git fetch origin pull/48/head:kimi-k3-fullsize-vision
git checkout kimi-k3-fullsize-vision
cd ..
cmake llama.cpp -B llama.cpp/build \
-DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON
cmake --build llama.cpp/build --config Release -j --clean-first \
--target llama-cli llama-mtmd-cli llama-server llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
- Si no hay GPU o solo se usará inferencia por CPU, cambia a
-DGGML_CUDA=OFF
- En equipos Apple Mac y dispositivos Metal también se usa
-DGGML_CUDA=OFF, y el soporte para Metal viene activado por defecto
- Se puede hacer que
llama.cpp descargue y ejecute el modelo directamente, aunque la descarga puede ser muy lenta
export LLAMA_CACHE="unsloth/Kimi-K3-GGUF"
./llama.cpp/llama-cli \
-hf unsloth/Kimi-K3-GGUF:UD-IQ1_S \
--temp 1.0 \
--top-p 0.95
hf download unsloth/Kimi-K3-GGUF \
--local-dir unsloth/Kimi-K3-GGUF \
--include "*mmproj-BF16*" \
--include "*UD-IQ1_S*"
- Si necesitas la versión sin pérdida, cambia el patrón de descarga a
*UD-Q8_K_XL*
- Se puede ejecutar en modo conversación especificando el archivo local y el projector de visión
./llama.cpp/llama-cli \
--model unsloth/Kimi-K3-GGUF/UD-IQ1_S/Kimi-K3-UD-IQ1_S-00001-of-00014.gguf \
--mmproj unsloth/Kimi-K3-GGUF/mmproj-BF16.gguf \
--temp 1.0 \
--top-p 0.95
- Además de consultas de texto, también admite entrada de imágenes usando
mmproj-BF16.gguf
Alcance de los benchmarks
- La evaluación cubre inferencia y conocimiento, coding, agentes y visión
- Los benchmarks usados son GPQA Diamond, HLE-Full, DeepSWE, Terminal-Bench 2.1, BrowseComp, GDPval-AA v2, OSWorld 2.0, MMMU-Pro, MathVision
- En los resultados de DeepSWE, Kimi K3 mostró un rendimiento eficiente
1 comentarios
Lo probé y está buenííísimo~ Ahora solo faltan tangjjamyeon y takang~