Como uso fine-tuning, cuantizacion y speculative decoding para acelerar un bot de voz
Por que un modelo 12B sin cuantizar no corre en una GPU de gaming, como QLoRA y cuantizacion de 4 bits lo hacen posible, y como un draft model ajustado lo hace 1.7x mas rapido, suficiente para una llamada en vivo.

Mi bot de voz no puede pausar. Un segundo de silencio en una llamada y el interlocutor habla encima, o simplemente cuelga. En un chat un modelo lento se esconde tras un punto de “escribiendo…”. En una llamada de voz no puede.
El cliente queria todo en su propio hardware modesto: sin nube, sin tarjetas de datacenter, sin factura por token que salga del edificio. Entonces el modelo mas potente disponible tenia que correr en una sola GPU de gaming de consumo y responder en tiempo real. Esa restriccion dio forma a cada decision que describo abajo.
Un 12B personalizado en una GPU de gaming
Escogi Gemma 4 12B, el preciso, y lo ajuste con QLoRA para la tarea, luego lo cuantize para correr en llama.cpp.
- QLoRA entrena una pequena capa adicional en vez de los 12 mil millones de pesos completos. El adaptador quedo en 131 MB, no un modelo nuevo de 24 GB, asi que todo el fine-tune cabe en una tarjeta de gaming de 16 GB.
- La cuantizacion almacena cada peso en 4 bits en vez de 16, por lo que el modelo se vuelve mucho mas pequeno y rapido con apenas perdida de calidad. El 12B sin cuantizar ocupa 24 GB y ni siquiera carga en una tarjeta de 16 GB; la version de 4 bits cabe con margen.
Aun asi, el 12B responde a unos 34 tokens por segundo en esa GPU. Inteligente, pero demasiado lento para una llamada en vivo.
Haciendolo suficientemente rapido para voz
Un modelo grande es inteligente pero lento: escribe una palabra a la vez. La solucion es emparejarlo con un modelo mucho mas pequeno y rapido que se adelanta y redacta las siguientes palabras. El grande solo lee ese borrador y lo aprueba o rechaza, mucho mas rapido que escribir cada palabra el mismo. El nombre tecnico es speculative decoding, y el pequeno es el modelo “draft”.
El primer intento apenas movo la aguja: un modelo pequeno de fabrica como redactor dio un 3% mas rapido, porque seguia proponiendo palabras que el modelo grande descartaba. Un asistente al que corriges en cada linea no ahorra nada.
La solucion fue el punto clave: ajuste el draft con los mismos datos que el modelo grande. Ahora adivina como piensa el grande, asi que el grande acepta la mayoria de sus borradores. La velocidad subio de un error de redondeo a 1.7x de media (de 34 a 59 tokens por segundo), y 2.2x en el mejor prompt. Las respuestas son identicas al 12B solo, por lo que el coste de calidad es cero.
En terminos de producto, ese salto es la diferencia entre un bot que se para y uno que responde como una persona, todo en el hardware barato del cliente.
La leccion
Un modelo auxiliar solo te acelera si piensa como el experto al que ayuda. Entrenalo con los mismos datos y un modelo pequeno supera a uno generico del mismo tamano, con diferencia.