ColIA
← BlogModelo

Presentamos Sibundoy-Translate-1.7B

Nuestro primer modelo traduce de inglés a español. Tiene 1.700 millones de parámetros y está pensado para funcionar en tus equipos de hoy. Hacerlo nos enseñó mucho, y esperamos que te sea útil.

Rubén Salas14 min de lectura
Ilustración del valle de Sibundoy, en el Putumayo, con campos verdes y montañas con neblina
El valle de Sibundoy, en el Putumayo, Colombia. Ilustración.

¿Buscas las cifras, la receta para usarlo o cómo lo entrenamos? Está todo en la sección técnica, más abajo.

En pocas palabras

  • Qué hace: Sibundoy-Translate-1.7B es un modelo listo para traducir del inglés al español en tu propio equipo, párrafo a párrafo.
  • Dónde funciona: ocupa unos 1,3 GB de memoria y funciona con GPU (tarjeta gráfica) o sin ella.
  • Qué tan rápido: traduce un artículo de 900 palabras en unos 15 segundos con una GPU de 6 GB, o en un minuto sin GPU.
  • Cuánto mejoró: traduce mejor que el modelo del que partimos en todos los exámenes. En medicina gana 5,8 puntos de COMET (una medida automática de calidad de traducción).
  • Frente a otros: todavía no supera a modelos algo más grandes, de 2.000 a 4.000 millones de parámetros. Se queda cerca, pero por detrás.
  • En qué destaca: respeta el formato de páginas web y documentos, y escribe un español neutro que lo hace útil para cualquier país hispanohablante.
  • Áreas a mejorar: aún le cuestan la literatura, las redes sociales y los textos de varios párrafos enviados de una vez. Por eso recomendamos enviarle un párrafo por petición.

Por qué un traductor

Soy Rubén y hago ColIA. Sibundoy-Translate-1.7B nace de una necesidad personal. Cada día busco aprender algo nuevo sobre inteligencia artificial y tecnología. Mucho de ese contenido se publica en inglés y no siempre está disponible en español. Además, en Colombia y en buena parte de América Latina el nivel de inglés es bajo, incluido el mío.

Quería leer ese contenido sin depender del traductor del navegador ni de servicios de pago, que en nuestras regiones no están al alcance de todos. Entonces me di cuenta de que los modelos de hoy permiten construir software personal para resolver nuestras propias necesidades. Así nació mi lector RSS, una app que reúne lo que publican las webs que sigues. Traduce al español artículos, noticias y estudios de arXiv (un archivo abierto de investigación científica). Lo hace con un modelo propio, sin conexión a internet.

Pero surgió otro problema: encontrar un modelo lo bastante pequeño para cualquier equipo, sin hardware de última generación. Y a la vez, lo bastante capaz para traducir bien textos con enlaces, menciones o fórmulas en LaTeX (el formato en que se escriben las fórmulas científicas).

Así nace Sibundoy-Translate-1.7B: un traductor de inglés a español que cabe en casi cualquier equipo, sin necesidad de GPU. Ya casi1 resuelve el problema principal de mi lector RSS, y me deja aprender de lo que se publica en otra lengua. Además, me permitió experimentar y aprender, uno de los fines de ColIA.

Por qué Sibundoy

El nombre viene del valle de Sibundoy, mi lugar de origen. Es una región formada por cuatro hermosos municipios (Sibundoy, Colón, San Francisco y Santiago), en el Putumayo, al sur de Colombia. Con él quiero rendir homenaje a mi hogar, a mi pueblo, a mi gente y a las regiones de Colombia y Latinoamérica que a veces olvidamos.

También quiero mostrar que el valle de Sibundoy, el Putumayo, Colombia y Latinoamérica están llenos de gente talentosa, capaz de construir y crear.

Qué aprendimos

Nos deja estas enseñanzas para las próximas versiones del modelo:

  • Elegir el profesor con datos: probamos cuatro modelos grandes antes de usar uno para traducir datos. Eso nos ayudó a elegir el mejor: Gemma 4 31B.
  • El modelo base aprendió mejor que el de chat para una tarea tan concreta como traducir. Aún no sabemos por qué. Nuestra hipótesis es que el modelo base no trae los hábitos de chat del modelo instruct, así que aprende la tarea sin tener que desaprender nada.
  • Guardar copias por el camino: en una primera prueba, que no publicamos, tuvimos un corte y perdimos el 80 % del trabajo, alrededor de una hora. Esta vez, Colab apagaba las máquinas a los 20 minutos porque nadie les mandaba órdenes. Como ya habíamos aprendido la lección, pudimos seguir cada vez desde la última copia guardada.
  • Medir muestra dónde está el fallo de verdad: creíamos que el límite sería la longitud del texto. Al medirlo, vimos que era otro: los saltos de párrafo. El modelo falla con textos que tienen varios párrafos separados por líneas en blanco.
  • Probar la receta tal como la usará otra persona: en nuestro servidor de siempre todo funcionaba. Con el comando limpio, las respuestas llegaban vacías porque faltaba una opción: sin ella, el modelo enviaba la traducción como razonamiento y no como respuesta.

Qué sigue

Queremos seguir aprendiendo y mejorando. La siguiente versión traducirá en los dos sentidos, de inglés a español y de español a inglés. Y buscaremos cerrar la diferencia con los modelos más grandes con estos pasos:

  • Limpieza profunda de los datos: descartar las traducciones humanas demasiado libres, incompletas o de baja calidad que puedan contaminar.
  • Añadir ejemplos de varios párrafos: así intentaremos resolver los cortes en los saltos de párrafo y la necesidad de enviar un párrafo por petición.
  • Probar un traductor puro, sin chat: que reciba solo el par de idiomas (de entrada y de salida) y el texto, y devuelva la traducción. Así no hay razonamiento que apagar ni instrucción que recordar, y el modelo es más fácil de usar.
  • Entrenar con preferencias: enseñarle a preferir la mejor de dos traducciones de la misma frase, para que elija traducciones más naturales y fieles.
  • Adicionales: más adelante queremos probar una versión más pequeña, para que en un portátil sin GPU vaya el doble de rápido y quizá llegar a teléfonos móviles.

Sección técnica

Desde aquí, los detalles:

  • Qué es exactamente
  • Cómo lo entrenamos
  • Cómo lo medimos
  • La receta para usarlo
  • Sus licencias

Qué es

Modelo de partida LFM3-1.7B-Base, de Liquid AI
Método LoRA de rango 64 (un ajuste que entrena solo una pequeña parte del modelo), una vuelta a los datos
Tarea Traducción de inglés a español, conservando HTML y Markdown
Datos de entrenamiento 70.605 pares de textos de fuentes abiertas, y otros 500 pares para validar
Parámetros 1.700 millones
Tamaño del archivo 1,1 GB en GGUF Q4_K_M, el formato de llama.cpp, comprimido a unos 4 bits por parámetro
Licencia LFM Open License v1.0, heredada de LFM3 (ver Licencias)
Modelo Hugging Face (también en GGUF)
Código GitHub

Cómo lo hicimos

Los datos

Reunimos unos 71.000 pares de textos en tres partes casi iguales: noticias, textos generales y ciencia. Queríamos un traductor que sirviera para más que noticias.

  • Noticias: Wikinews y Global Voices.
  • Textos generales: FineTranslations y frases de Tatoeba.
  • Ciencia y técnica: resúmenes de PLOS y SciELO (medicina, biología, psicología, educación…), artículos de arXiv y la documentación de Python en español.

Los pares tienen tres orígenes:

Origen Pares Fuentes
Traducción humana 36 % Global Voices, SciELO (los propios autores), documentación de Python y Tatoeba
Español escrito por una persona; inglés traducido por una máquina 28 % FineTranslations: webs en español que Hugging Face tradujo al inglés con Gemma 3 27B. Lo usamos al revés, así que el modelo aprende a escribir un español humano
Traducido por un modelo «profesor» 36 % Wikinews, PLOS y arXiv, traducidos por Gemma 4 31B y, en menor medida, por GLM 5.3 Flash

Antes de elegir el profesor medimos cuatro candidatos con los mismos exámenes, y ganó Gemma 4 31B.

Después limpiamos: quitamos los pares repetidos, los que estaban sin traducir y los que se parecían a los exámenes. Revisamos las traducciones del profesor con comprobaciones automáticas: cifras, enlaces, etiquetas HTML y longitud. Hubo 760 fallos graves, un 0,5 % del total: en su mayoría se corrigieron y el resto se descartaron.

El entrenamiento

Entrenamos dos candidatos a la vez: una sobre el modelo base de LFM3 y otra sobre su versión de chat (instruct). Cada una corrió en una GPU L4 de Google Colab durante unas 6 horas.

Ganó el candidato base en todas las medidas. Por eso Sibundoy-Translate-1.7B parte de LFM3-1.7B-Base.

No salió a la primera. Colab apagaba las máquinas a los 20 minutos de entrenar, y tardamos tres intentos en entender por qué. La causa: si nadie le manda órdenes a la máquina, Colab la da por abandonada, aunque esté trabajando. Lo resolvimos mandándole una orden mínima cada dos minutos y guardando una copia del entrenamiento cada 250 pasos. Gracias a esas copias, cada corte solo nos costó unos minutos.

Qué tan bien traduce

Usamos dos medidas:

  • COMET: puntúa de 0 a 100 si la traducción conserva el sentido del original. Es la que más pesa.
  • chrF: mide cuánto se parece, letra a letra, a una traducción humana.

Frente a su modelo de partida

Examen LFM3-1.7B Sibundoy-Translate-1.7B Mejora
WMT24++ (en → es) 74,9 80,4 +5,5
Nuestro examen (noticias, web y frases con HTML y Markdown) 84,8 87,6 +2,8
Biomédico (resúmenes de Medline) 81,1 86,9 +5,8
Noticias (NTREX) 81,4 86,1 +4,6
FLORES+ (Wikipedia) 82,9 86,0 +3,2
Salud (TICO-19) 85,2 88,1 +2,9

Cifras de COMET. WMT24++ es un examen público de Google con redes sociales, literatura, discursos y noticias. Sus referencias están en español de México. Los otros cuatro son exámenes públicos de un tema concreto.

Donde más mejoró fue en medicina: +5,8 puntos. Es justo lo que más abunda en los datos, entre resúmenes de PLOS y SciELO.

Frente a otros modelos pequeños

Aquí no ganamos, y preferimos contarlo porque en ColIA cada derrota también es una victoria, ya que nos permite aprender y mejorar.

Modelo WMT24++ Biomédico FLORES+ Noticias (NTREX) Salud (TICO-19)
Sibundoy-Translate-1.7B 80,4 86,9 86,0 86,1 88,1
Tower+ 2B 81,7 87,2 86,8 86,8 88,9
Gemma 4 E2B 82,4 87,2 86,6 86,2 88,4
TranslateGemma 4B 82,8 87,5 87,3 86,6 88,2
Gemma 4 E4B 82,9 87,4 87,1 87,0 88,7

Cifras de COMET. Sibundoy-Translate-1.7B queda entre 0,1 y 2,5 puntos por debajo de modelos de 2.000 a 4.000 millones de parámetros. Pensábamos que ganaría en ciencia y medicina, porque abundan en sus datos, pero no fue así: también pierde ahí, por poco. Lo que le falta es calidad general de traducción, no un tipo de texto concreto.

Comprobamos que los exámenes no estuvieran en nuestros datos: prácticamente ninguno se repite, salvo el 0,3 % de TICO-19 y el 2,1 % de FLORES+.

Donde sí ganamos

Conserva el formato. Nuestro examen tiene 213 textos, y 47 traen HTML o Markdown. Sibundoy-Translate-1.7B conservó el formato en 210 de los 213; los demás modelos pequeños, entre 189 y 208. Si traduces páginas web o documentación, esto importa tanto como la calidad y es justo nuestro punto fuerte.

Escribe un español neutro. En WMT24++ usó formas de España en el 0,4 % de las frases; los demás modelos pequeños, entre el 1,4 % y el 1,9 %. Tampoco usó regionalismos de un solo país, como el voseo o «ahorita». Nuestro detector solo busca palabras concretas, así que un estilo regional más sutil no lo vería.

Receta recomendada

La medimos en las dos máquinas de nuestras recetas: un computador de escritorio con una RTX 3050 de 6 GB y un portátil sin GPU (i7-13620H). Usamos llama.cpp b11940 en el portátil y b11946 en el de escritorio.

tok/s son tokens por segundo; un token es un trozo de palabra.

Escritorio · RTX 3050 6 GB Portátil · solo CPU
Generación 121 tok/s 36 tok/s
Lectura del texto de entrada ~4.600 tok/s ~215 tok/s
Memoria con -c 4096 ~1,3 GB de VRAM (la memoria de la GPU) ~1,2 GB de RAM
Artículo de 923 palabras, párrafo a párrafo 15,5 s 57 s

Va exactamente igual de rápido que LFM3-1.7B: el ajuste no cambia la arquitectura.

Escritorio (GPU):

llama-server -m Sibundoy-Translate-1.7B-Q4_K_M.gguf \
  -ngl 99 -c 4096 --reasoning off \
  --temp 0.1 --top-k 50 --repeat-penalty 1.1

Portátil (solo CPU):

llama-server -m Sibundoy-Translate-1.7B-Q4_K_M.gguf \
  -lm none -t 6 -tb 16 -fa off -c 4096 --reasoning off \
  --temp 0.1 --top-k 50 --repeat-penalty 1.1
Opción Por qué
Un párrafo por petición Lo más importante. Si el texto trae varios bloques separados por líneas en blanco, a menudo traduce el primero y se para, o repite un bloque una y otra vez. Con textos de ~4.000 tokens, ninguno de 6 salió entero. Con un solo bloque, siempre sale entero.
--reasoning off Obligatoria. Sin ella, llama-server guarda la traducción como «razonamiento» y la respuesta llega vacía.
-c 4096 Basta para un párrafo largo y su traducción. Caben 32.768 tokens en 1,6 GB, pero no aportan nada: darle más texto de una vez no mejora la traducción.
--repeat-penalty 1.1 Sin ella sube un poco el parecido con la referencia, pero en una prueba entró en bucle y repitió «¡» cientos de veces.
-lm none -t 6 -tb 16 -fa off (CPU) Lo mismo que medimos para LFM3-1.7B en este portátil. Carga el modelo en RAM, usa un hilo por núcleo de rendimiento para generar y todos para leer, y sin FlashAttention va más rápido en esta CPU.
Q4_K_M La versión Q8_0 no tradujo mejor (diferencias de COMET dentro del ruido) y pesa un 70 % más.

Pruébalo

El modelo está en Hugging Face, en colia-labs/Sibundoy-Translate-1.7B, y en GGUF para llama.cpp en colia-labs/Sibundoy-Translate-1.7B-GGUF. El código con el que lo hicimos está en GitHub, en colia-labs/sibundoy-translate.

Arráncalo con la receta de arriba que corresponda a tu equipo. Después, manda cada párrafo como mensaje de usuario a /v1/chat/completions, con su instrucción exacta, una línea en blanco y el texto:

Translate the following text from English into Spanish. Keep any HTML tags and Markdown formatting exactly as they are. Reply with the translation only.

The **new vaccine** reduced hospital admissions by 40% in [the trial](https://example.org).

Respuesta:

La **nueva vacuna** redujo las admisiones hospitalarias en un 40% en el [ensayo](https://example.org).

Ahí se ve también uno de sus errores: «admisiones hospitalarias» es un calco del inglés. Lo natural sería «ingresos hospitalarios».

Qué no hace bien

  • Traduce peor que modelos algo más grandes, como Tower+ 2B, Gemma 4 E2B o TranslateGemma 4B. La diferencia va de 0,1 a 2,5 puntos de COMET.
  • Literatura y redes sociales son sus puntos más flojos: frases coloquiales, juegos de palabras, ironía.
  • Calcos del inglés, como «admisiones hospitalarias» por «ingresos hospitalarios».
  • Varios párrafos de una vez. Con bloques separados por líneas en blanco, a menudo traduce solo el primero o entra en bucle. Hay que darle un párrafo por petición (ver la receta). Se entrenó casi siempre con un párrafo por ejemplo, y aprendió a terminar al acabar uno.
  • Solo de inglés a español. El sentido contrario no lo aprendió.
  • Necesita su instrucción y --reasoning off. Sin la instrucción se comporta como un chat; sin la opción, la respuesta llega vacía.
  • A veces pierde la etiqueta HTML que envuelve todo el texto, como un <p> inicial, aunque conserva las de dentro.

Licencias

El modelo. Sibundoy-Translate-1.7B hereda la LFM Open License v1.0 de LFM3, porque contiene ese modelo. Es libre para investigación y para uso comercial de personas y empresas con menos de 10 millones de dólares de ingresos al año. Por encima de esa cifra, el uso comercial no está cubierto y hay que pedir permiso a Liquid AI. No es una licencia de código abierto en sentido estricto: son pesos abiertos con un límite comercial. Con el modelo publicamos el texto de la licencia y avisamos de que es una versión modificada de LFM3-1.7B-Base.

El código. Tiene licencia MIT: puedes usarlo, cambiarlo y compartirlo. Está en colia-labs/sibundoy-translate.

Los datos. No publicamos los datos de entrenamiento, solo el modelo. Estas son sus fuentes y licencias:

Fuente Qué aporta Licencia
Global Voices (también vía OPUS) Noticias, traducción humana CC BY 3.0
SciELO Resúmenes científicos traducidos por sus autores, solo de revistas con licencia CC BY CC BY
Wikinews Noticias CC BY 2.5 y 4.0
PLOS Resúmenes científicos CC BY 4.0
FineTranslations Textos web en español ODC-By 1.0, y las condiciones de uso de Common Crawl
Tatoeba Frases cortas CC BY 2.0 FR
arXiv Títulos y resúmenes CC0 (metadatos de arXiv)
Documentación de Python en español Documentación técnica CC0 (traducción) y licencia de la PSF

Los modelos que tradujeron parte de los datos: Gemma 4 31B (Apache 2.0), GLM 5.3 Flash (MIT) y, en unos 1.300 pares de arXiv, DeepSeek V4.1 Flash (MIT) o MiniMax M3 (MiniMax Community License).

Aviso

Sibundoy-Translate-1.7B es nuestro primer modelo, y es nuevo: puedes encontrar errores y fallos que aún no conocemos. Nos encantaría recibir todos los comentarios posibles para saber dónde mejorar. Escríbenos en Discord, en Issues, en Discussions o a [email protected]. No es un modelo perfecto, pero seguimos trabajando para mejorarlo. ¡Nos encantaría tu ayuda!


Notas

  1. Casi, porque aún le falta un reentrenamiento centrado en el formato de los textos que recibe mi lector RSS. Sibundoy-Translate-1.7B es un punto de partida: cualquiera puede ajustarlo para lo que necesite, como haré yo. ↩

¿Lo probaste en tu equipo?

Comparte tus resultados, tus traducciones o tus preguntas. Tus cifras ayudan a otras personas a elegir.

Charla con nosotros en Discord o en GitHub Discussions