Traducir una novela con IA local

Después de experimentar con la corrección automática de novelas, el siguiente paso lógico era la traducción.

Si un modelo de inteligencia artificial puede recibir un fragmento en castellano y devolverlo en inglés, parece razonable pensar que traducir una novela consiste simplemente en repetir esa operación hasta llegar a la última página.

Una vez más, la realidad es bastante más interesante.

Mi flujo de traducción funciona completamente en local, utiliza n8n para automatizar el proceso y TranslateGemma 4B como motor de traducción.

Pero hay una particularidad importante:

no traduzco cada idioma directamente desde el castellano.

Primero genero una versión inglesa. Después utilizo esa versión inglesa como punto de partida para otras traducciones, como la francesa. Esto se hace así porque el modelo que utilice tiene muchos mas datos utilizando el inglés como referente que otros idiomas.

Y hay otro detalle todavía más importante: el texto que llega al traductor ya ha pasado anteriormente por mi sistema de corrección automática. Por tanto, sus errores también pueden viajar.

El punto de partida no es el manuscrito original

Mi flujo editorial tiene varias etapas.

De forma simplificada:

Manuscrito original

→ corrección ortográfica
→ corrección de estilo conservadora
→ traducción al inglés
→ traducción a otros idiomas

Esto tiene una consecuencia importante.

TranslateGemma no recibe necesariamente la misma frase que escribí originalmente.

Recibe la frase que ha sobrevivido a las fases anteriores.

Si la corrección ha mejorado correctamente una coma o una concordancia, perfecto.

Pero si durante la fase anterior la IA ha interpretado incorrectamente algo, esa interpretación pasa a convertirse en el texto de origen de la traducción.

guión largo usos

Los errores también forman una cadena

Este comportamiento puede entenderse como una tubería.

Tenemos:

A → B → C → D

Cada etapa trabaja con el resultado de la anterior. Esto es fantástico para automatizar. También significa que un error en A puede propagarse hasta D.

Por ejemplo, imaginemos que durante la corrección automática un personaje femenino pasa accidentalmente a masculino.

El traductor no tiene ninguna forma de saber que eso es un error. Para él, el texto corregido es la fuente. Por tanto, realizará correctamente una traducción incorrecta.

Esto diferencia mucho un flujo automatizado de una traducción realizada por una persona que dispone del manuscrito original, documentación sobre los personajes y contexto global de la obra.

El modelo: TranslateGemma 4B

Para la traducción utilizo TranslateGemma 4B mediante Ollama.

TranslateGemma es una familia de modelos de Google especializada específicamente en traducción y basada en Gemma.

En mi caso utilizo la variante de aproximadamente 4.000 millones de parámetros.

Esta elección tiene bastante que ver con mi hardware. Trabajo con una RTX 5060 de 8 GB de VRAM, así que necesito encontrar un equilibrio entre calidad, velocidad y memoria.

Un modelo de este tamaño puede ejecutarse localmente de forma razonablemente cómoda y permite automatizar cientos de operaciones sin depender de una API externa.

Esto tiene además una ventaja especialmente importante cuando hablamos de manuscritos inéditos:

el contenido permanece en mi propio ordenador.

Otra vez aparece el problema del tamaño

Al igual que durante la corrección, no envío una novela completa al modelo.

Ni siquiera envío capítulos completos independientemente de su tamaño.

Mi flujo divide los capítulos que van a traducirse en bloques de hasta aproximadamente 1.000 palabras, intentando respetar los párrafos.

Cada chunk se traduce independientemente.

Después n8n:

  1. recoge todos los fragmentos
  2. los ordena
  3. reconstruye el capítulo
  4. guarda el capítulo traducido
  5. finalmente reúne todos los capítulos

La mecánica funciona sorprendentemente bien, pero volvemos a pagar el precio del contexto.

Traducir no consiste únicamente en sustituir palabras

Un traductor humano que lleva 200 páginas de una novela conoce cosas que probablemente no aparezcan en el párrafo que tiene delante.

Sabe quién es cada personaje. Conoce su forma de hablar. Recuerda términos utilizados anteriormente. Sabe si una palabra ambigua tiene un significado específico dentro de la historia. Conoce relaciones personales, lugares, tecnologías inventadas y acontecimientos anteriores.

Un chunk independiente de 1.000 palabras no dispone automáticamente de toda esa información.

Por eso una traducción puede ser lingüísticamente correcta y, al mismo tiempo, presentar problemas de continuidad dentro de una novela.

Es la misma dificultad que aparece durante la corrección, pero traduciendo el problema se multiplica: el modelo tiene que interpretar primero el original y después expresarlo correctamente en otro idioma.

¿Por qué pasar primero por el inglés?

Mi flujo realiza primero la traducción:

español → inglés

Y después, para generar la versión francesa:

inglés → francés

Podría parecer más lógico hacer directamente:

español → francés

Sin embargo, he optado por utilizar el inglés como idioma pivote.

El inglés ocupa una posición especialmente fuerte en los modelos lingüísticos actuales y en la disponibilidad de material multilingüe y pares de traducción. Por eso, en un sistema automatizado como el mío, me resulta un punto intermedio práctico desde el que generar posteriormente otros idiomas.

No significa que traducir mediante un idioma intermedio vaya a ser universalmente mejor en todos los textos y todos los modelos.

De hecho, añadir un paso adicional introduce también un riesgo nuevo. Pero mi objetivo no es encontrar una regla universal sobre traducción automática. Es construir un flujo que pueda controlar, repetir y evaluar con mi propio hardware.

Español → inglés → francés

El procedimiento real resulta especialmente sencillo de entender observando la segunda traducción.

n8n busca los capítulos ingleses que ya han sido generados.

Los lee uno por uno.

A cada capítulo le asigna explícitamente:

Idioma de origen: inglés.

Idioma de destino: francés.

Después vuelve a dividir ese texto inglés en chunks y TranslateGemma realiza la traducción inglés-francés.

Finalmente los chunks franceses se reagrupan y se genera el nuevo capítulo.

Por tanto, la traducción francesa no conoce directamente el manuscrito castellano. Conoce la versión inglesa. Eso tiene ventajas y riesgos.

El problema de traducir una traducción

Supongamos esta cadena:

Original castellano

Texto corregido

Traducción inglesa

Traducción francesa

En cada flecha existe una transformación.

Si todas son buenas, el resultado puede ser excelente. Pero un pequeño cambio de significado puede propagarse.

Imaginemos que una expresión castellana tiene dos interpretaciones. La traducción inglesa escoge una. Cuando TranslateGemma genera posteriormente el francés, ya no existe la ambigüedad española. Solo existe la interpretación escogida en inglés.

La segunda traducción no puede recuperar una posibilidad que desapareció en el primer paso.

Este fenómeno hace imprescindible tener claro qué estamos automatizando.

Hay dos tipos de error acumulativo

En mi flujo pueden aparecer al menos dos niveles de propagación.

El primero procede de la corrección.

Si la corrección automática cambia incorrectamente:

  • el género de un personaje;
  • un tiempo verbal;
  • el significado de una frase;
  • una referencia;

la versión inglesa puede heredar ese cambio.

El segundo aparece en la propia traducción.

Si español→inglés interpreta mal un término, inglés→francés puede consolidar esa interpretación.

Por tanto:

cada etapa puede mejorar el texto, pero también puede alejarlo un poco más del original.

Esta es probablemente la principal razón por la que no considero las traducciones automáticas como documentos finales listos para publicación.

El prompt también importa

El flujo no se limita a enviar texto a TranslateGemma.

Para español→inglés le indico expresamente que actúe como traductor profesional y conserve el significado y los matices del original.

Hay además una regla especialmente importante para mis novelas.

Si dentro del texto español aparece un diálogo escrito deliberadamente en un tercer idioma —por ejemplo francés, ruso o árabe—, el modelo debe conservarlo exactamente como aparece.

No debe traducirlo.

En la traducción inglés→francés utilizo la misma filosofía.

Si dentro del original inglés aparece contenido intencionadamente escrito en otro idioma, debe permanecer intacto.

Estas reglas existen porque una novela contiene decisiones que un traductor automático no puede distinguir siempre de un accidente.

Una frase en ruso puede no ser algo que haya que traducir. Puede ser precisamente importante que el lector no la entienda.

La temperatura no resuelve todos los problemas

En tareas creativas queremos variedad.

En traducción queremos consistencia.

Por eso el proceso se configura para intentar obtener resultados predecibles y utiliza una ventana de contexto controlada.

Pero, igual que ocurría con la corrección, ninguna combinación de parámetros convierte al modelo en una función matemática.

Traducir implica interpretar.

Y dos formulaciones aparentemente equivalentes pueden tener consecuencias diferentes sobre:

  • tono
  • intención
  • dobles sentidos
  • ironía
  • registro
  • género
  • relaciones entre personajes

Esto es especialmente delicado en literatura.

¿Entonces para qué sirve?

Sería fácil llegar a la conclusión equivocada y pensar que, si después hay que revisar la traducción, la automatización no sirve.

Mi experiencia me lleva a la conclusión contraria.

Lo valioso no es obtener un PDF traducido y publicarlo inmediatamente.

Lo valioso es poder obtener una primera traducción completa de decenas de miles de palabras en local.

Eso cambia enormemente el punto de partida.

Una novela puede pasar de existir exclusivamente en castellano a disponer de un borrador completo en inglés y, a partir de este, de versiones en otros idiomas.

Esos borradores pueden:

  • revisarse
  • compararse
  • entregarse a alguien que domine el idioma
  • utilizarse como base para una corrección profesional
  • servir para detectar problemas antes de una traducción definitiva

La IA no elimina necesariamente al traductor.

Puede eliminar buena parte del trabajo más mecánico que precede a su revisión.

La revisión humana vuelve a aparecer

Al final termino exactamente en el mismo lugar que con la corrección.

Necesito una persona.

En castellano puedo realizar personalmente la lectura final porque es mi idioma.

Con una traducción, la situación es todavía más delicada.

No basta con comprobar que el documento parece correcto.

Alguien con conocimiento suficiente del idioma de destino debe poder detectar:

  • traducciones literales
  • expresiones antinaturales
  • falsos amigos
  • inconsistencias entre capítulos
  • pérdida del tono original
  • cambios de significado
  • errores heredados de la corrección
  • errores heredados de una traducción anterior

Esto es todavía más importante cuando utilizamos un idioma pivote.

IA local como infraestructura editorial

Después de construir estos flujos he llegado a pensar en los modelos de una forma diferente.

Gemma no es mi corrector.

TranslateGemma no es mi traductor.

n8n tampoco convierte automáticamente un manuscrito en una edición internacional perfecta.

Son componentes de una infraestructura editorial.

n8n mueve los documentos.

Los scripts dividen capítulos.

Los chunks mantienen controlable el contexto.

Gemma realiza una primera corrección.

TranslateGemma genera las traducciones.

Después los programas reconstruyen los documentos.

Y finalmente vuelve el humano.

Automatizar no significa dejar de revisar

La gran ventaja de este sistema no es poder decir:

«Una IA ha traducido mi novela».

Eso, por sí solo, tiene poco interés.

Lo interesante es poder construir en un ordenador doméstico una cadena capaz de procesar una novela completa, mantener los archivos localmente y generar diferentes versiones de forma reproducible.

También resulta interesante descubrir sus límites.

Porque cuantos más pasos automatizamos, más importante es comprender qué información pierde cada uno.

La IA puede ahorrar una cantidad extraordinaria de trabajo.

Pero si el objetivo final es publicar una novela, sigo considerando imprescindible que el último lector sea una persona.

Especialmente porque, en una cadena de traducciones, un error minúsculo al principio puede infectar varios idiomas antes de que alguien se dé cuenta.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

×