Kimchi Reader, una herramienta de aprendizaje de coreano por inmersión, necesitaba desambiguar lemas en libros completos de forma rápida y precisa. El desarrollador encaró el reto con un modelo KoELECTRA-small de 14 millones de parámetros, cuantizado a int8 y ejecutado íntegramente en CPU mediante un crate de inferencia propio escrito en Rust puro, sin dependencias nuevas. El resultado: alrededor de 7.300 desambiguaciones por segundo en un único procesador de 16 núcleos, rendimiento que evitó la compra de un servidor con GPU.
El artículo recorre los cuatro intentos previos que precedieron a la solución final. El primero planteó el problema como una tarea seq2seq con Gemma 3 1B afinada mediante destilación desde un profesor de 27B; logró cerca de 1.500 oraciones por segundo en una RTX 4090, pero implicaba un coste mensual de unos 500 dólares y la precisión era insuficiente. El segundo abordó la tarea con embeddings y similitud entre definiciones del diccionario, con peores resultados en velocidad y exactitud. El tercero entrenó desde cero un nano modelo de 15 millones de parámetros con arquitectura Gemma 3 en Rust usando burn-rs, superando al Gemma 3 1B en un conjunto de prueba de 200 muestras.
La clave del diseño definitivo fue mantener el motor determinista de lematización en Rust como base y añadir el modelo como capa de sugerencia: recibe un conjunto cerrado de candidatos válidos y elige uno, sin posibilidad de inventar lemas. Esa restricción, sumada a la cuantización int8 y a un kernel de inferencia optimizado a mano, hizo viable procesar textos enteros en CPU, sin sacrificar la arquitectura original ni añadir dependencias externas al proyecto.
