Resolver la ambigüedad del coreano en CPU: 7.300 palabras por segundo sin GPU

Fuentes: Building a Korean ambiguity solver fast enough to skip the GPU: 7,300 words/sec
Imagen generada por IA con el prompt: Editorial illustration of a single CPU chip glowing on a dark desk, surrounded by floating Korean Hangul characters being sorted into neat stacks, warm amber and teal lighting, minimalist tech style
Imagen generada con IA

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.