qwen1.5b-int4-Octuma
Built with Qwen.
Qwen/Qwen2.5-1.5B-Instruct cuantizado a INT4 con
Octuma: 3.09 GB → 1.32 GB
(2.34x mas chico) perdiendo 2.11% de calidad.
Incluye las dos formas de usarlo: qwen1.5b-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) | 8.3111 | — | 3.09 GB |
| Octuma INT4 (este modelo) | 8.4864 | +2.11% | 1.32 GB |
| llama.cpp Q4_K_M | 8.7047 | +4.74% | 0.99 GB |
| llama.cpp Q4_0 | 9.0051 | +8.35% | 0.93 GB |
Este modelo pierde 2.2 veces menos calidad que llama.cpp Q4_K_M, el formato mas usado para correr modelos en local, a cambio de 0.34 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/qwen1.5b-int4-Octuma --local-dir qwen1.5b
llama-cli -m qwen1.5b/qwen1.5b-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/qwen1.5b-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-1.5B-Instruct
octuma export <carpeta> --out qwen1.5b-int4.gguf
python scripts/verify_gguf.py <carpeta> qwen1.5b-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-1.5B-Instruct, bajo Apache 2.0; la copia del original va en LICENSE. El codigo de Octuma es MIT.
Los archivos de pesos estan modificados respecto al original: cuantizados a INT4 con Octuma.