File size: 1,674 Bytes
e1624f5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | # ADR 006: Inferencia Nativa BF16 para Triaje Local
## Estado
Aprobado
## Contexto
La implementaci贸n inicial del especialista local (Tier 1) utilizaba Unsloth con cuantizaci贸n de 4 bits (bitsandbytes) para minimizar el uso de memoria. Sin embargo, durante la validaci贸n en el hardware AMD MI300X, observamos "colapso sem谩ntico" y generaci贸n repetitiva de tokens (ej. repetici贸n indefinida de signos de puntuaci贸n o frases).
Las investigaciones iniciales sugirieron que los artefactos de la cuantizaci贸n de 4 bits, combinados con el manejo de ciertos kernels de menos de 8 bits por parte de la arquitectura CDNA3, estaban degradando la calidad de la inferencia para tareas cl铆nicas que requieren alta precisi贸n.
## Decisi贸n
Migraremos el \`LocalModelManager\` de Unsloth/4-bit a precisi贸n nativa **BFloat16 (BF16)** utilizando las librer铆as est谩ndar \`transformers\` y \`peft\`.
Dada la masiva VRAM de 192GB de la AMD MI300X, el aumento en el requerimiento de memoria de BF16 (~14GB para un modelo 7B) est谩 muy por debajo de las capacidades del hardware, incluso con m煤ltiples agentes concurrentes.
## Consecuencias
- **Positivo:** Mejora de la estabilidad sem谩ntica y eliminaci贸n de los artefactos de salida repetitiva.
- **Positivo:** Compatibilidad total con los kernels bfloat16 nativos de ROCm.
- **Positivo:** Razonamiento cl铆nico de mayor fidelidad en comparaci贸n con las versiones cuantizadas de 4 bits.
- **Neutral:** Mayor consumo de VRAM (aprox. 2.5x en comparaci贸n con 4 bits), lo cual es insignificante en la MI300X.
- **Neutral:** Tiempo de inicializaci贸n ligeramente superior ya que se cargan pesos m谩s grandes en la memoria HBM3.
|