qwen3b-int4-Octuma
Built with Qwen.
Qwen/Qwen2.5-3B-Instruct cuantizado a INT4 con
Octuma: 6.18 GB → 2.40 GB
(2.57x mas chico) perdiendo 2.43% de calidad.
⚠️ Solo uso no comercial
Qwen/Qwen2.5-3B-Instructno es Apache 2.0 como otros modelos de la familia: esta bajo la Qwen Research License, que permite unicamente investigacion y evaluacion. Esa condicion la hereda este modelo cuantizado. Para uso comercial hay que pedirle licencia a Alibaba Cloud.
Incluye las dos formas de usarlo: qwen3b-int4.gguf para llama.cpp y Android, y
la carpeta .tq para PyTorch.
Calidad medida
Perplejidad en wikitext-2 test, 20 ventanas de 2048 tokens,
todo medido dentro de llama.cpp con llama-perplexity para que la
comparacion sea de tu a tu.
| Formato | Perplejidad | Calidad perdida | Tamaño |
|---|---|---|---|
| F16 (original) | 7.3338 | — | 6.18 GB |
| Octuma INT4 (este modelo) | 7.5118 | +2.43% | 2.40 GB |
| llama.cpp Q4_K_M | 7.7892 | +6.21% | 1.93 GB |
| llama.cpp Q4_0 | 8.1418 | +11.02% | 1.82 GB |
Este modelo pierde 2.6 veces menos calidad que llama.cpp Q4_K_M, el formato mas usado para correr modelos en local, a cambio de 0.47 GB mas de archivo.
Las perplejidades solo se comparan entre si cuando salen del mismo motor y el mismo corpus. Cada motor trocea y promedia distinto, asi que no contrastes estos numeros con los de otra ficha sin revisar como se midieron.
La comparativa de los tres tamaños esta en
runs/COMPARATIVA_GGUF.md.
Como usarlo
llama.cpp (tambien en Android)
hf download Imanol11/qwen3b-int4-Octuma --local-dir qwen3b
llama-cli -m qwen3b/qwen3b-int4.gguf -p "Hola"
PyTorch
pip install "octuma[hf]"
from huggingface_hub import snapshot_download
from transformers import AutoConfig, AutoModelForCausalLM, AutoTokenizer
from octuma.export.tq import load_quantized
ruta = snapshot_download("Imanol11/qwen3b-int4-Octuma")
cfg = AutoConfig.from_pretrained(ruta)
modelo = load_quantized(AutoModelForCausalLM.from_config(cfg), ruta)
tok = AutoTokenizer.from_pretrained(ruta)
En PyTorch el modelo cuantizado genera mas lento que el original: Octuma
desempaqueta los 4 bits en cada multiplicacion sin un kernel dedicado. Para
velocidad, usa el .gguf con llama.cpp.
Como se hizo
octuma quantize Qwen/Qwen2.5-3B-Instruct
octuma export <carpeta> --out qwen3b-int4.gguf
python scripts/verify_gguf.py <carpeta> qwen3b-int4.gguf
GPTQ + AWQ con grupos de 32 pesos, calibrado con wikitext-2/train. Octuma cuantiza por grupos con punto cero, reparte el error de redondeo entre las columnas pendientes (GPTQ) y escala los canales segun su importancia en las activaciones (AWQ).
Historial
El .gguf publicado aqui antes del 2026-09-20 estaba degradado: tenia tres
metadatos mal escritos (rope.freq_base, el pre-tokenizador y el
eos_token_id). Los pesos siempre estuvieron bien; el archivo actual los
reescribe correctamente. Si lo descargaste antes de esa fecha, vuelve a
bajarlo.
El 2026-10-07 se re-exporto con Octuma 0.1.5, sin recuantizar: los pesos y
la perplejidad son los mismos. Cambian tres metadatos: el archivo ya trae la
plantilla de chat (tokenizer.chat_template), se anuncia como Q4_1 en vez
de F16, y los metadatos de la carpeta .tq pasan de tinyq.json a
octuma.json. El .gguf pesa 2 560 bytes mas y su SHA-256 es otro.
Licencia
Los pesos derivan de Qwen/Qwen2.5-3B-Instruct, bajo la Qwen RESEARCH LICENSE AGREEMENT, no comercial. La copia integra del acuerdo va en LICENSE y el aviso de atribucion en NOTICE, como pide su §3.
Los archivos de pesos estan modificados respecto al original: cuantizados a INT4 con Octuma (§3b).
Qwen is licensed under the Qwen RESEARCH LICENSE AGREEMENT, Copyright (c) Alibaba Cloud. All Rights Reserved.
El codigo de Octuma es MIT, pero eso no afloja las condiciones de los pesos: son dos licencias distintas sobre dos cosas distintas.