| # 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. | |