A newer version of the Gradio SDK is available: 6.14.0
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.