Traducciones WordPress rápidas y precisas con IA


Es crucial que tu WordPress hable tu idioma para establecer una conexión real

Sentir que alguien se ha tomado el tiempo de traducirlo a otras lenguas, respetando otras costumbres y formas de ver el mundo, es gratificante.

Al traducir WordPress a múltiples idiomas eliminamos barreras y creamos vínculos, fortaleciendo la comunidad global y haciéndola accesible a millones de personas.

Aunque el inglés sigue siendo el idioma principal de WordPress, especialmente en su núcleo y la mayoría de temas y complementos, gracias al esfuerzo y la contribución de miles de usuarios, WordPress llega a estar disponible en nada menos que 198 idiomas.

Traducir es un arduo trabajo

El esfuerzo de la comunidad por hacer que WordPress sea accesible es realmente impresionante. 

Por ejemplo, actualmente, se han traducido al castellano más de 130 plugins y más de 200 temas, además de mantener constantemente actualizadas todas las secciones de meta y el núcleo de WordPress.

Sin embargo, todavía hay muchas tareas pendientes, sobre todo en idiomas más minoritarios. 

Si hablamos, por ejemplo, del catalán, donde hay menos contribuyentes, el ritmo de traducción es mucho más lento y avanza a un ritmo preocupante por la falta de contribuidores.

Y es que contribuir en la traducción requiere muchos recursos personales, sobre todo tiempo, pero también atención, consistencia y disciplina. 

Aportando opciones a la traducción

Ante esta situación, Joan Vega comprendió la necesidad de mejorar y facilitar la traducción de los archivos PO. Creía firmemente que con la ayuda de la IA podríamos facilitar las traducciones y así mejorar la accesibilidad de WordPress para toda su comunidad.

Empezó una fase de investigación sobre si la API de, en este caso, OpenAI podía ayudar a traducir los archivos PO.

Secuencia de pruebas realizadas para la Traducción de archivos PO del Inglés al Català

Tomando como inicio la traducción al idioma catalán (pero aplicable a cualquier otro), a grandes rasgos, el proceso que se siguió fue el siguiente:

  1. Experimentos iniciales con la API: aunque inicialmente se pensaba que la “Chat Completions” de la API de OpenAI para acceder a ChatGPT sería una herramienta revolucionaria, resultó en traducciones imprecisas, inconsistentes y con errores graves.

Hubo problemas con la  interpretación incorrecta de las instrucciones, la falta de respeto a la puntuación y los espacios en blanco, la dificultad para obtener resultados consistentes en el tiempo y la incapacidad para interpretar reglas específicas, como las del Glosario de la comunidad WordPress. 

También, la longitud del «prompt» afectaba el rendimiento y los costos de traducción.

Tras intentarlo con varios modelos y enfrentar dificultades,  se abandonó la idea.

  1. Exploración de los GPT Assistants: la introducción de los Assistants durante el evento OpenAI Devday en noviembre de 2023 ofreció un rayo de esperanza.

Estos Assistants ofrecían una nueva forma de contextualizar el trabajo, permitiendo ajustar un prompt y reciclarlo a lo largo del chat, así como adjuntar archivos para enriquecer el proceso.

Se creó un Assistant para realizar traducciones precisas y sometidas a la supervisión de un glosario específico.

Aunque inicialmente los resultados fueron prometedores, se encontraron imprecisiones, lentitud y aumento en los costos al utilizar un contexto mucho mayor y necesitar utilizar el último modelo gpt-4

A pesar de ello, se consideró que los Assistants podrían ser útiles con una implementación más cuidadosa, así que se dispuso a revisar los manuales de la API para mejorar el proceso.

  1. Fine-tuning del modelo: la introducción del concepto de Fine-Tuning de ChatGPT fue una opción clave para intentar acotar las imprecisiones y, sobre todo, para darle indicaciones concretas al modelo.

El Fine-Tuning o afinado, permite ajustar y personalizar los modelos de la IA para acotar el comportamiento aleatorio, lo que ayuda a reducir imprecisiones y proporcionar indicaciones precisas. 

El proceso de “afinado” requiere de una cuidadosa inversión de tiempo y esfuerzo. Consiste en enviar un conjunto de diálogos corrigiendo precisamente aquellos resultados donde el modelo no responde al texto que deseamos.

Resultados reales

Finalmente, el esfuerzo invertido había valido la pena y el camino apostando por el “fine-tuning” dió muy buenos resultados. 

Se logró el objetivo establecido y la herramienta demostró su capacidad para traducir volúmenes de cadenas en un tiempo récord y con un grado de calidad superior a las herramientas hasta el momento disponibles.

A modo de ejemplo, se tradujeron, revisaron y entregaron 2000 cadenas en una sola entrega. Revisar las traducciones lleva también su tiempo pero un buen ritmo estaría sobre las 100 en 30′. En la prueba realizada, fueron todas aprobadas.

Josep Morán, quien nos animó a contribuir traduciendo al catalán y que lleva más de 14.000 cadenas traducidas, probó la herramienta y vio en ella un camino para sacar adelante la traducción en idiomas con bajo nivel de contribución de manera efectiva.

¿Qué aporta a la Comunidad WordPress?

Lo esencial es cómo se beneficia la comunidad WordPress con todo esto. La respuesta es clara:

  1. A la altura de las exigencias:  se incorpora por primera vez una herramienta para automatizar la traducción masiva.
  2. Aumento de la eficiencia: Con modelos afinados, se puede reducir el tamaño del prompt e incluso usar modelos más rápidos como gpt-3-turbo sin reducir la calidad del resultado.
  3. Cumplimiento de reglas y estándares específicos: La capacidad de afinar y guiar al modelo durante el proceso de traducción permite asegurar el cumplimiento de las reglas y estándares específicos de la comunidad de WordPress. Esto garantiza que las traducciones sean coherentes y se adhieran a las convenciones lingüísticas y técnicas requeridas.
  4. Reducción de costos: Con modelos afinados, se puede reducir el tamaño del prompt e incluso usar modelos más económicos como gpt-3-turbo sin reducir la calidad del resultado.
  5. Rapidez en la disposición de textos en otros idiomas: podemos tener un plugin traducido en pocos minutos. Esto representa poder poner a disposición de los GTEs material de forma más regular.
  6. Facilita la entrada de contribuidores a las traducciones: Con esta herramienta se facilita la contribución a las traducciones, automatizando la ardua etapa inicial de traducción y convirtiendo la tarea en una trabajo de supervisión.

¿Y las desventajas? haberlas, haylas…

Toda moneda tiene dos caras, y se presentan algunos aspectos a tener en cuenta:

  1. Imperfecciones en las traducciones: A pesar de los avances en tecnología de lenguaje natural, los modelos como ChatGPT aún pueden producir traducciones imprecisas o incorrectas en ciertos contextos, especialmente en idiomas específicos o con terminología técnica. Es necesario revisar las traducciones y continuar afinando el modelo.
  2. Costo y acceso limitado: a día de hoy el acceso a la API de openAI no es libre ni gratuito. El costo por traducción no es elevado pero podría ser un factor limitante en algún contexto.
  3. Dependencia de la calidad del modelo: La calidad de las traducciones dependerá en gran medida de la calidad del refinado del modelo. El sistema necesita de una continua retroalimentación.
  4. Alta carga de trabajo para los GTE: este sistema puede traducir miles de cadenas en poco tiempo, lo que puede generar una carga inasumible para los GTE locales, que pueden convertirse entonces en cuello de botella. Sería necesario mejorar este paso, incluyendo más GTEs o cualquier otra manera que liberara las cadenas traducidas en el menor tiempo posible.

Encuéntrala en GitHub

¿Quieres echarle un ojo a todo detalle? Tienes toda la documentación en GitHub.

Te agradeceríamos que dejaras tu feedback o que te unieras al proyecto. ¡Queremos seguir mejorando!

Conclusión

En nuestra opinión, a pesar de las desventajas, el sistema representa un avance significativo en la accesibilidad y globalización de la plataforma WordPress.

No está todo hecho. El siguiente paso ya está en marcha, pensando en cómo mejorarla y hacerla aún más accesible a todos los usuarios/as de WordPress.

¡Nos vemos en GitHub!

7 respuestas a «Traducciones WordPress rápidas y precisas con IA»

  1. Totalmente de acuerdo con todo, menos con un detalle. Cualquier sistema de traducción automática (MT por sus siglas en inglés) siempre debe considerarse que pretraduce, no que traduce.

    Mientras no tenga acceso al contexto específico, una MT, va a seguir cometiendo errores, lo mismo que un traductor humano al que pongas a trabajar sin saber lo que está traduciendo.

    En los últimos años hay motores de traducción como DeepL, que han mejorado muchísimo, pero siempre hay que estar encima.

    Un ejemplo muy claro y muy sencillo. Sin tener acceso al contexto, «left» puede ser tanto «izquierda» como «quedan». Y eso sin entrar en los casos anecdóticos como el clásico «pretty slug» > «babosa bonita»

  2. Hola Nilo,
    gracias por comentar!
    Como dices, toda traducción se ha de revisar, por supuesto. Aunque se puede y se debe continuar afinando los fallos, la IA sí que puede llegar a entender muy bien el contexto y ahorrarnos algunos errores hasta ahora habituales.

    Eso no quita que el cuello de botella del trabajo sea la revisión de lo traducido, línea a línea. A través de esa revisión, se ha de seguir afinando el modelo, corrigiendo «pretty slug» por su correcta traducción si fuera el caso.

    En mi experiencia, cuando se detecta un fallo en la traducción, es fácil corregir ese fallo en el resto de cadenas antes de la entrega, siendo así la traducción muy eficiente y rápida.

    El nivel de exactitud del modelo entrenado en concreto es muy satisfactorio.

    Como siempre, la disciplina de quien traduce y/o entrena el modelo es muy importante.

  3. No quisiera ser aguafiestas, pero como revisor de las traducciones aportadas por esta herramienta en la comunidad catalana, discrepo bastante. Me pregunto quién la ha calificado como un éxito, y basándose en qué? Yo he revisado las traducciones y no me parecen un éxito.

    Recuerdo que el nivel de aprobación de las cadenas aportadas por esta herramienta era de entre el 30% y el 50%. De cada 10 cadenas, solo 3-5 podían ser aprobadas. Esto desanima a cualquier GTE a revisar las cadenas, porque se tarda más en revisarlas, y notificar una y otra vez los mismos errores, que en traducirlas desde cero.

    Traducir plugins en cuestión de minutos ya podía hacerse antes de la IA con cualquier traductor. Las traducciones automáticas deben ser siempre supervisadas porque comenten errores. Especialmente en idiomas minoritarios, como es el caso.

  4. Como GTE de español estoy totalmente de acuerdo con @marc4

    Con lo que nos costó que quitasen hace años lo de «Traduce con Google» y ahora meten traducir con IA.

    Pierdo horas (voluntarias) a diario revisando y – casi siempre – rechazando traducciones. hechas con IAs varias y diversas.

    Que sí, que hay gente muy crack que personaliza la IA pero son los menos, la mayoría son los mismos desarrolladores que traducen con IA porque le sale más barato pagar tokens de IA que a traductores especializados.

  5. Hola Marc,
    no nos constan los datos que mencionas. Es muy recientemente que la hemos utilizado y las cadenas han sido aprobadas, tampoco hemos entregado tantas.

    «Recuerdo que el nivel de aprobación de las cadenas aportadas por esta herramienta era de entre el 30% y el 50%.»

    ¿puede que haya alguna confusión con otra herramienta?

  6. Hola Fernando,
    esta herramienta ha sido desarrollada con muchas ganas de hacerlo bien o no hacerlo.
    El fine- tuning es esencial para hacerlo bien. No todo vale.

    En nuestro caso, somos muy meticulosos y revisamos todo antes de entregar. Eso es lo que se espera de alguien que traduce en cualquier caso.

    Ahí está para que quien lo quiera hacer bien, lo pueda hacer bien y se pueda adelantar mucha faena.

    Cualquier duda, estamos disponibles para aclararla.

  7. ¿Cuáles son esas 2000 cadenas y quién las aprobó? ¿Se aprobaron a la primera que se presentaron o se pidieron correcciones y se fueron aprobando en un proceso de revisión/corrección? Porque según la publicación, parece que con un GPT personalizado y un conjunto de datos de tamaño «x» ya no hace falta revisión, ya que se aprueban las traducciones con un 100% de acierto.

    Digo esto porque al otro lado hay alguien intentando revisar cadenas traducidas con errores en el uso de la guía de estilo y el glosario, habituales en la traducción automática no revisada, que se pueden repetir en centenares de cadenas y que es más tedioso y molesto de gestionar que traducirlas uno mismo.

    Antes de lanzar miles de cadenas a revisión de una tirada, cuando alguien empieza a traducir, habría que pensar en que si hay errores, estos se habrán repetido muchas veces, porque quien hace el envío no es consciente de esos errores o no lo ha revisado, y los revisores son los que tendrán que corregirlo manualmente. Lo que puede parecer rápido para uno, puede ser más trabajo para otro.

    Si, por el contrario, se envían traducciones en un rango de decenas, el revisor puede notificar los errores y se espera que el traductor los vaya puliendo en futuras traducciones.

    Recibiendo centenares o miles de cadenas de golpe, con errores, solo puedes solicitar cambios por cadena. El traductor hace el cambio solicitado y el revisor lo aprueba. Pero existen montones de cadenas con el mismo error dentro de ese mismo envío, que el traductor no suele ir a corregir voluntariamente una vez que sabe qué error ha cometido.

    Espero que suene constructivo para mejorar colaboración voluntaria de todos.

Deja una respuesta