{"id":6598,"date":"2021-06-28T13:42:18","date_gmt":"2021-06-28T11:42:18","guid":{"rendered":"https:\/\/www.ibidemgroup.com\/edu\/?p=6598"},"modified":"2024-03-04T12:37:56","modified_gmt":"2024-03-04T11:37:56","slug":"traduccion-automatica-neuronal-seq2seq-transformers","status":"publish","type":"post","link":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/","title":{"rendered":"Traducci\u00f3n Autom\u00e1tica Neuronal: funcionamiento, Seq2Seq y transformers."},"content":{"rendered":"\n<p class=\"has-text-align-center wp-block-paragraph\"><span style=\"color:#0693e3\" class=\"color\">Traducci\u00f3n realizada por Jose, traductor experto en tecnolog\u00edas de Traducci\u00f3n Autom\u00e1tica Neuronal.<\/span><\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><strong><span style=\"color:#0693e3\" class=\"color\">Original text written by Azad Ya\u015far and published in TowardsDataScience<\/span><\/strong><\/p>\n\n\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">***<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_89 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\">INDICE<\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#Introduccion\" >Introducci\u00f3n<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#%C2%BFQue_es_la_Traduccion_Automatica_%C2%BFComo_funciona_la_NMT\" >\u00bfQu\u00e9 es la Traducci\u00f3n Autom\u00e1tica? \u00bfC\u00f3mo funciona la NMT?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#Traduccion_Automatica_Neuronal_y_Secuencia_a_Secuencia\" >Traducci\u00f3n Autom\u00e1tica Neuronal y Secuencia a Secuencia<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#Mecanismo_de_Atencion\" >Mecanismo de Atenci\u00f3n<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#El_Transformer\" >El Transformer<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#Codificacion_de_pares_de_bytes\" >Codificaci\u00f3n de pares de bytes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#Traduccion_con_un_modelo_autorregresivo\" >Traducci\u00f3n con un modelo autorregresivo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#Mapa_de_atencion\" >Mapa de atenci\u00f3n<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#Resultados\" >Resultados<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#Experimentos\" >Experimentos<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#Entrenar_un_modelo_NMT_Transformer_personalizado\" >Entrenar un modelo NMT Transformer personalizado<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#Conjunto_de_datos\" >Conjunto de datos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#Codificacion_de_pares_de_bytes_tokenizadores\" >Codificaci\u00f3n de pares de bytes tokenizadores<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#Entrenamiento\" >Entrenamiento<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#Evaluacion_y_traduccion\" >Evaluaci\u00f3n y traducci\u00f3n<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#Conclusion\" >Conclusi\u00f3n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#Referencias\" >Referencias<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Introduccion\"><\/span>Introducci\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Recientemente, tuve la oportunidad de trabajar con sistemas de Traducci\u00f3n Autom\u00e1tica Neuronal (NMT) para un proyecto trimestral. Fue divertido jugar con los modelos m\u00e1s avanzados. As\u00ed que decid\u00ed escribir mi primer art\u00edculo en Medium sobre ello, para ayudar a la gente interesada en NMT, o m\u00e1s en general en Aprendizaje Autom\u00e1tico + Procesamiento del Lenguaje Natural, y que puedan entrenar sus propios modelos personalizados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Intentar\u00e9 cubrir los siguientes temas:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\u00bfQu\u00e9 es la <strong>Traducci\u00f3n Autom\u00e1tica (MT)<\/strong>? \u00bfC\u00f3mo funciona la NMT?<\/li><li>\u00bfC\u00f3mo funciona <strong>la arquitectura Seq2Seq (secuencia a secuencia)<\/strong>? \u00bfQu\u00e9 problemas puede resolver?<\/li><li>Modelos NMT (Seq2Seq) de \u00faltima generaci\u00f3n, principalmente <strong>RNNs con mecanismo de atenci\u00f3n <\/strong>y <strong>Transformer <\/strong>(<strong>mecanismo de atenci\u00f3n <\/strong>y <strong>la auto-atenci\u00f3n<\/strong>).<\/li><li>\u00bfQu\u00e9 es la <strong>codificaci\u00f3n por pares de bytes <\/strong>(BPE)? \u00bfC\u00f3mo nos ayuda en la tarea de traducci\u00f3n?<\/li><li>\u00bfC\u00f3mo evaluar los sistemas NMT? Interpretabilidad con el mapa de atenci\u00f3n.<\/li><li>Por \u00faltimo, mostrar\u00e9 c\u00f3mo puedes aprovechar el repositorio adjunto para entrenar tus propios modelos de MT.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%C2%BFQue_es_la_Traduccion_Automatica_%C2%BFComo_funciona_la_NMT\"><\/span>\u00bfQu\u00e9 es la Traducci\u00f3n Autom\u00e1tica? \u00bfC\u00f3mo funciona la NMT?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Definamos primero el problema que intentamos resolver con la NMT. Podemos considerar la tarea de Traducci\u00f3n Autom\u00e1tica como una modelizaci\u00f3n de la probabilidad condicional <strong>P(y|x)<\/strong>, donde <em>x <\/em>e <em>y se refieren a la frase de <\/em>entrada y de salida, respectivamente.  Lo que intentamos es, para una frase <em>x <\/em> en el idioma <em>X<\/em>, encontrar la mejor frase <em>y <\/em>en otra lengua <em>Y<\/em>. Podemos escribir formalmente este objetivo como en la Ecuaci\u00f3n 1, es decir, queremos encontrar la frase de salida <em>y <\/em>que maximice la probabilidad condicional P(<em>y|x<\/em>). Podemos reescribir este objetivo utilizando la regla de Bayes como P(<em>x|y<\/em>)P(<em>y<\/em>).<\/p>\n\n\n\n<div class=\"wp-block-image noborder\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"564\" height=\"74\" src=\"https:\/\/www.ibidemgroup.com\/edu\/wp-content\/uploads\/2021\/06\/ecuacion-traduccion-automatica.png\" alt=\"\" class=\"wp-image-6620 noborder\" srcset=\"https:\/\/www.ibidemgroup.com\/edu\/wp-content\/uploads\/2021\/06\/ecuacion-traduccion-automatica.png 564w, https:\/\/www.ibidemgroup.com\/edu\/wp-content\/uploads\/2021\/06\/ecuacion-traduccion-automatica-300x39.png 300w\" sizes=\"auto, (max-width: 564px) 100vw, 564px\" \/><figcaption>Ecuaci\u00f3n 1<\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">En este caso, P(<em>x|y) <\/em>modela el modelo de traducci\u00f3n, es decir, c\u00f3mo se traducen las palabras y las frases, y P(<em>y<\/em>) modela el modelo de la lengua de destino, que es <em>Y<\/em>. Podemos considerar que esta \u00faltima probabilidad da una puntuaci\u00f3n de <em>fluidez <\/em>a la frase de salida, por ejemplo, P(\u00abestoy estudiando\u00bb) &gt; P(\u00abestoy estudiando\u00bb). Existen m\u00e9todos que podemos emplear para crear un modelo ling\u00fc\u00edstico P(<em>y<\/em>). La cuesti\u00f3n m\u00e1s dif\u00edcil es c\u00f3mo construir el modelo de traducci\u00f3n P(<em>x|y<\/em>). Podemos utilizar un corpus de traducci\u00f3n con muchos pares de frases. Existen m\u00e9todos estad\u00edsticos de traducci\u00f3n autom\u00e1tica que intentan encontrar el modelo de traducci\u00f3n. Pero es un problema sutil. Una lengua en s\u00ed misma es compleja y ambigua, pero intentamos expresar el significado de una frase en otra lengua, lo que puede ser complicado incluso para frases sencillas. Consideremos el siguiente ejemplo en turco: \u00ab<em>Yar\u0131n \u00e7al\u0131\u015faca\u011f\u0131m\u00bb<\/em>, que se traduce como \u00abEstudiar\u00e9 ma\u00f1ana\u00bb. La figura 1 ilustra la alineaci\u00f3n entre estas dos frases.<\/p>\n\n\n\n<div class=\"wp-block-image noborder\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/503\/1*L6kQV-5kdnz-HC_myrVjJw.png\" alt=\"\"\/><figcaption>Figura 1: Alineaci\u00f3n de muchos a uno <\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">El turco es una lengua aglutinante. As\u00ed, una palabra puede estar compuesta por varios sufijos que afectan significativamente al significado sem\u00e1ntico de la frase. En este ejemplo, la palabra <em>\u00ab\u00e7al\u0131\u015faca\u011f\u0131m\u00bb <\/em>puede dividirse en los siguientes tokens: \u00ab\u00e7al\u0131\u015f+acak+\u0131m\u00bb que, por simple correspondencia entre palabras, hacen referencia a <em>estudio, voluntad y yo<\/em>, respectivamente. Como puede verse, es bastante dif\u00edcil deducir la relaci\u00f3n entre estas dos frases simples. Ahora imagine qu\u00e9 pasar\u00eda si entraran en juego lenguas m\u00e1s complejas como el chino.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Existen m\u00e9todos de traducci\u00f3n autom\u00e1tica estad\u00edstica que intentan trazar la relaci\u00f3n entre las lenguas. Pero este post pretende explicar c\u00f3mo la Traducci\u00f3n Autom\u00e1tica Neuronal aborda este problema. Spoiler: la NMT modela directamente la P(<em>y|x<\/em>).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Traduccion_Automatica_Neuronal_y_Secuencia_a_Secuencia\"><\/span>Traducci\u00f3n Autom\u00e1tica Neuronal y Secuencia a Secuencia<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">En 2014, Sutskever et al.\npropusieron la arquitectura secuencia-a-secuencia para aplicaciones de\nProcesamiento del Lenguaje Natural [1]. La arquitectura original consiste en un\npar de Redes Neuronales Recurrentes: (1) la primera RNN se encarga de codificar\nla secuencia de entrada llamada <strong>codificador<\/strong>, (2) la segunda RNN toma el\nvector codificado y genera la secuencia objetivo. N\u00f3tese que nos referimos a la\nentrada y a la salida como secuencias en lugar de frases. Es para evitar que\nnos limitemos s\u00f3lo a los problemas relacionados con el lenguaje natural. La\nfigura 2 muestra la arquitectura correspondiente, en la que la secuencia de\nentrada \u00ab<em>A B C<\/em>\u00bb se convierte en \u00abW <em>X Y Z<\/em>\u00ab.<\/p>\n\n\n\n<div class=\"wp-block-image noborder\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/700\/1*xPOMN3dZII02EFwIyQXpIA.png\" alt=\"\"\/><figcaption>Figura 2: Arquitectura secuencia a secuencia [1] <\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos utilizar la arquitectura secuencia a secuencia en muchos escenarios, por ejemplo:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Resumir:<\/strong> Dado un pasaje largo (por ejemplo, una noticia, un cap\u00edtulo de un libro, un art\u00edculo), generar su resumen.<\/li><li><strong>Traducci\u00f3n Autom\u00e1tica<\/strong>: Dada una frase de una lengua de origen, generar la frase correspondiente en otra lengua de destino.<\/li><li><strong>Responder a una pregunta: <\/strong>Dado un texto y una pregunta sobre dicho texto , generar una respuesta correcta.<\/li><li><strong>Correcci\u00f3n de errores gramaticales: <\/strong>Dada una frase posiblemente con errores gramaticales u ortogr\u00e1ficos, generar la frase correcta corrigiendo dichos errores.<\/li><li>La lista puede seguir y seguir. Se pueden proponer f\u00e1cilmente otras \u00e1reas de aplicaci\u00f3n interesantes, por ejemplo, dado un zumbido \u2192 generar m\u00fasica, generar c\u00f3digo (los programadores no tenemos por qu\u00e9 preocuparnos; el modelo genera m\u00e1s errores que nosotros mismos :P). Cualquier cosa que se pueda plantear como un problema de secuencia a secuencia, se puede modelar con esta arquitectura.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">No voy a profundizar mucho al hablar de Redes Neuronales Recurrentes porque hay un mont\u00f3n de recursos que explican bien c\u00f3mo funcionan. Pero, en resumen, procesan la secuencia de entrada token a token. \u00ab\u00bfPor qu\u00e9 no procesan todos los tokens a la vez? Continuemos la discusi\u00f3n con los lenguajes naturales. Es evidente que el orden es importante en una frase. Las Redes Neuronales <strong>Recurrentes <\/strong>nos permiten modelar entradas ordenadas, por ejemplo, series temporales. Consideremos la siguiente funci\u00f3n: <em>h\u00b9=f<\/em>(<em>x\u00b9, h<\/em>\u2070) donde x\u00b9 es la primera palabra y h\u2070 es el estado oculto inicial. Al procesar la siguiente palabra x\u00b2, tenemos <em>h\u00b2=f<\/em>(<em>x\u00b2, h\u00b9<\/em>). Tener en cuenta el estado oculto anterior <em>h\u00b9 <\/em>nos permite utilizar la informaci\u00f3n pasada mientras modelamos la palabra actual. \u00bfSe ha dado cuenta de lo que estamos pasando al descodificador? Si la frase de entrada consta de <em>6 <\/em>palabras, entonces estamos pasando el sexto estado oculto <em>h<\/em>\u2076. Hay otros enfoques para mejorar esta representaci\u00f3n, como las RNN Bidireccionales, la Memoria a Largo Plazo y las Unidades Recurrentes con Puerta. Pero qued\u00e9monos con el caso m\u00e1s sencillo. El decodificador tiene ahora el vector codificado que puede utilizar como su vector oculto inicial <em>h\u2070 <\/em>y empezar a decodificar la frase de salida. Puede que no est\u00e9 claro al principio, pero hay un cuello de botella en la arquitectura. Supongamos que utilizamos un vector de 128 dimensiones para representar las unidades ocultas. Eso significa que el vector codificado que se pasa al descodificador es tambi\u00e9n <em>de 128 dimensiones<\/em>, v\u00e9ase la figura 3. Consideremos ahora dos frases de entrada, una con unas pocas palabras sencillas y otra con palabras complejas y subcl\u00e1usulas. \u00bfEs justo codificar estas dos frases con el mismo n\u00famero de dimensiones? Los resultados de la evaluaci\u00f3n dicen que no. Entonces, \u00bfc\u00f3mo podemos superar este problema?<\/p>\n\n\n\n<div class=\"wp-block-image noborder\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/700\/1*ET89XyqmrjquLnBJPtEktA.png\" alt=\"\"\/><figcaption> <br>Figura 3: Encoder y Decoder RNN<\/figcaption><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Mecanismo_de_Atencion\"><\/span>Mecanismo de Atenci\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Como ya se ha dicho, utilizar un vector de longitud fija supone un cuello de botella en el modelo. No hay mucho espacio para que el modelo pase informaci\u00f3n del codificador al decodificador y, al mismo tiempo, la retropropagaci\u00f3n no puede pasar completamente los gradientes hacia atr\u00e1s. Para aliviar esto, Bahdanau et al. emplean el <strong>Mecanismo de Atenci\u00f3n <\/strong>para que el decodificador pueda centrarse en los tokens de origen que son relevantes, mientras genera el siguiente token [2]. Expliquemos el Mecanismo de Atenci\u00f3n con una ilustraci\u00f3n (figura 4). Del ejemplo anterior, tenemos la siguiente frase de entrada <em>\u00abYar\u0131n \u00e7al\u0131\u015faca\u011f\u0131m\u00bb<\/em>. El modelo ya ha generado los tres primeros tokens: \u00abVoy <em>a estudiar\u00bb<\/em>, ahora esperamos que genere <em>\u00abma\u00f1ana\u00bb<\/em>. Utilizamos la \u00faltima representaci\u00f3n oculta <em>u\u00b3 <\/em>del descodificador junto con la representaci\u00f3n oculta de los tokens de entrada [<em>h\u00b9, h\u00b2] <\/em>y calculamos los productos de puntos entre ellos. \u00bfQu\u00e9 es un producto puntual, despu\u00e9s de todo? Nos dice hasta qu\u00e9 punto dos vectores apuntan en la misma direcci\u00f3n \u2192 hasta qu\u00e9 punto est\u00e1n correlacionados \u2192 hasta qu\u00e9 punto los tokens correspondientes son relevantes entre s\u00ed. En este ejemplo muy concreto, la palabra <em>ma\u00f1ana <\/em>coincide exactamente con el token de entrada <em>Yar\u0131n<\/em>, por lo que obtenemos una puntuaci\u00f3n de producto de puntos m\u00e1s alta. Estas puntuaciones no est\u00e1n normalizadas, as\u00ed que las pasamos por una funci\u00f3n <strong>softmax <\/strong>para obtener una distribuci\u00f3n de probabilidad final sobre los tokens de entrada. Usamos la distribuci\u00f3n de probabilidad para obtener una <strong>suma ponderada de los tokens de entrada<\/strong>. En este caso, el token m\u00e1s relevante era <em>Yar\u0131n<\/em>; porque tiene una puntuaci\u00f3n relativamente m\u00e1s alta en comparaci\u00f3n con el segundo token de entrada. Entonces, en lugar de usar directamente la representaci\u00f3n oculta del decodificador, usamos esta suma ponderada para predecir el siguiente token.<\/p>\n\n\n\n<div class=\"wp-block-image noborder\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/700\/1*1-dj7NIbfu7mi8eHzc5csA.png\" alt=\"\"\/><figcaption>Figura 4: Codificador y decodificador RNN con Mecanismo de Atenci\u00f3n <\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">El Mecanismo de Atenci\u00f3n mejora significativamente el rendimiento del modelo en muchas aplicaciones de secuencia a secuencia. Pero la gente no se ha quedado ah\u00ed y se han propuesto enfoques m\u00e1s potentes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"El_Transformer\"><\/span>El Transformer<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Vaswani et al., habiendo visto el efecto del Mecanismo de Atenci\u00f3n, propusieron este modelo para la Traducci\u00f3n Autom\u00e1tica Neuronal [3] (aunque puede aplicarse a otras tareas seq2seq). El Transformer, a alto nivel, es el mismo que el modelo anterior de secuencia a secuencia con un par codificador-decodificador. El codificador codifica la secuencia de entrada y el decodificador genera la secuencia de salida. Sin embargo, encontraron una forma de utilizar el Mecanismo de Atenci\u00f3n dentro del codificador, llamado Mecanismo de <strong>Autoatenci\u00f3n.<\/strong> Hemos visto que el Mecanismo de Atenci\u00f3n nos ayuda a pasar la informaci\u00f3n eficazmente entre el par codificador-decodificador en ambas direcciones. <strong>La Autoatenci\u00f3n<\/strong>, adem\u00e1s, ayuda al codificador a codificar la secuencia de forma mucho m\u00e1s eficiente.<\/p>\n\n\n\n<div class=\"wp-block-image noborder\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/700\/1*sNU5BoknA6ynj1W_CAEO5w.jpeg\" alt=\"Imagen en blanco y negro\n\nDescripci\u00f3n generada autom\u00e1ticamente con confianza media\"\/><figcaption>Figura 5: Autoatenci\u00f3n <\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">La figura 5 ilustra los pasos\nnecesarios para el mecanismo de autoatenci\u00f3n. Expliquemos lo que ocurre en\nrealidad:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Tenemos la secuencia de entrada <em>Demir Yolu<\/em>, obtenemos las incrustaciones para los tokens <em>Demir <\/em>y <em>Yolu<\/em>. Proyectamos estas incrustaciones en 3 espacios distintos: <strong>consulta, clave <\/strong>y <strong>valor<\/strong>. (<em>Proyectar <\/em>es la forma elegante de decir multiplicar con una matriz)<\/li><li>Tomamos el vector de consulta de un token espec\u00edfico y calculamos el producto punto entre este vector de consulta y todos los vectores clave. Esto se hace para los vectores de consulta de todos los tokens de la secuencia de entrada. La gente se refiere a este procedimiento como <em>\u00ab<strong>El vector de consulta de un token atiende a otros tokens\u00bb<\/strong><\/em>. \u00bfHa notado algo raro? No necesitamos el estado oculto del token anterior para calcular el estado oculto del token actual. Eso significa que podemos ejecutar la Autoatenci\u00f3n <strong>en paralelo <\/strong>para todos los tokens de la secuencia de entrada. Esto acelera significativamente el tiempo de entrenamiento y de inferencia.<\/li><li>Ahora tenemos las puntuaciones brutas entre cada par de tokens en la secuencia de entrada. Los pasamos por la capa <strong>softmax para <\/strong>normalizar las puntuaciones.<\/li><li>La salida de la capa softmax es una distribuci\u00f3n de probabilidad sobre los tokens de entrada. Utilizamos estas puntuaciones normalizadas para obtener una suma ponderada de los vectores de <strong>valores <\/strong>(calculados individualmente para cada token).<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Para hacerlo m\u00e1s concreto,\nsupongamos que el token en la posici\u00f3n <em>i <\/em>est\u00e1 estrechamente relacionado\ncon otro token en la posici\u00f3n <em>j<\/em>. Esperamos que el producto punto entre\nel vector de consulta del token <em>i <\/em>y el vector clave del token <em>j <\/em>sea\nmayor en comparaci\u00f3n con otros tokens irrelevantes. Esto significa que, m\u00e1s\nadelante, en los pasos siguientes, el token <em>j <\/em>tendr\u00e1 m\u00e1s impacto al\nconstruir la representaci\u00f3n de salida del token <em>i. <\/em>Podemos llamar a las\nrepresentaciones de salida <strong>incrustaciones de palabras contextuales<\/strong>. Porque\nlas representaciones se crean con respecto al contexto. Lo ideal ser\u00eda que la\nincrustaci\u00f3n contextual de la palabra <strong><em>clave <\/em><\/strong>en las dos frases\nsiguientes fuera diferente: (1) Romp\u00ed la <em>llave <\/em>al abrir la puerta. (2)\nEl punto clave del discurso no estaba claro.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Codificacion_de_pares_de_bytes\"><\/span>Codificaci\u00f3n de pares de bytes<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de entrar de lleno en la\nparte de la traducci\u00f3n, creo que ser\u00eda beneficioso hablar del enfoque BPE. Uno\nde los mayores problemas a los que se enfrentan los sistemas NMT es la falta de\nvocabulario (OOV). Sabemos que utilizamos una incrustaci\u00f3n para cada palabra\ndel vocabulario. Supongamos que utilizamos vectores <em>de 512 dimensiones <\/em>para\nincrustar las palabras turcas. En realidad, los vectores de 512 dimensiones no\nson tan grandes en comparaci\u00f3n con los modelos m\u00e1s avanzados. Como hemos dicho\nantes, el turco es aglutinante y morfol\u00f3gicamente bastante complejo. Es\nbastante f\u00e1cil derivar nuevas palabras introduciendo sufijos. Consideremos la\nsiguiente palabra \u00ab<em>gel\u00bb<\/em>, que significa \u00ab<em>venir\u00bb<\/em>.\nPodemos generar f\u00e1cilmente las siguientes palabras \u00ab<em>gel+ece\u011f+im\u00bb <\/em>que\nsignifica \u00abvendr\u00e9\u00bb. Si introduj\u00e9ramos una palabra nueva cada vez que\nse a\u00f1ade un sufijo a una palabra existente, el tama\u00f1o del vocabulario superar\u00eda\nf\u00e1cilmente <em>los 300K<\/em>. Supongamos que utilizamos el formato de coma\nflotante de precisi\u00f3n simple para almacenar los vectores. Esto significa que la\nmatriz de incrustaci\u00f3n de palabras requiere por s\u00ed sola <em>300.000 * 512 * 4 <\/em>bytes,\nes decir, <em>unos 600 MB de <\/em>espacio de almacenamiento, por no hablar del\nresto del modelo. El m\u00e9todo BPE aprende estos sufijos y morfemas de forma no\nsupervisada con la ayuda de un gran corpus de texto. El m\u00e9todo BPE se propuso\noriginalmente como un algoritmo de compresi\u00f3n. Pero Sennrich et al. tuvieron la\nbrillante idea de aplicarlo para superar el problema del OOV [4]. Con BPE, la\npalabra <em>\u00abgelece\u011fim\u00bb ser\u00eda <\/em>idealmente tokenizada en <em>\u00abgel\nece\u011f im\u00bb.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Traduccion_con_un_modelo_autorregresivo\"><\/span>Traducci\u00f3n con un modelo autorregresivo<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Hasta ahora, hemos visto los entresijos de los modelos secuencia a secuencia. Pero, \u00bfC\u00f3mo se realiza una traducci\u00f3n real? Utilicemos el ejemplo de traducci\u00f3n representado en la figura 6. Tenemos la secuencia de entrada <em>\u00abd\u0131\u015far\u0131 \u00e7\u0131kmak i\u00e7in hava so\u011fuk de\u011fil mi?\u00bb.<\/em> He fusionado los tokens BPE correspondientes para simplificar las diapositivas. Volviendo al ejemplo, codificamos la secuencia de entrada con el codificador Transformer. Una vez que hemos terminado, alimentamos el decodificador Transformer con un token artificial <em>&lt;start&gt; para que <\/em>genere los siguientes tokens. El decodificador utiliza el token inicial junto con los tokens de la secuencia de entrada para empezar a generar los tokens de destino. El primer token que genera es \u00ab<em>eso\u00bb. <\/em>Esta vez utilizamos la salida del decodificador, que es \u00abeso<em>\u00ab, <\/em>y lo alimentamos con los tokens anteriores y esperamos que genere el siguiente token. Este procedimiento contin\u00faa hasta que el modelo genera otro token artificial llamado <em>&lt;eos&gt; (<\/em>que significa fin de frase) para indicar que la traducci\u00f3n ha terminado.<\/p>\n\n\n\n<div class=\"wp-block-image noborder\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/700\/1*bynMlGszpC3uoBBm2pjZvw.gif\" alt=\"\"\/><figcaption> Figura 6: Traducci\u00f3n <em>autorregresiva<\/em> <\/figcaption><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Mapa_de_atencion\"><\/span>Mapa de atenci\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora bien, \u00bfpor qu\u00e9 el grosor de las flechas cambia en cada paso durante la traducci\u00f3n? Es una de las ventajas que tenemos con el mecanismo de atenci\u00f3n. El aprendizaje profundo tiene muchos mecanismos internos que a\u00fan no se han explicado con claridad. La mayor\u00eda de los sistemas siguen consider\u00e1ndose cajas negras. Sabemos que son excelentes para extraer representaciones m\u00e1s complejas de alto nivel. Pero no estamos seguros de por qu\u00e9 se han decidido por algo en determinados casos. El mecanismo de atenci\u00f3n alivia un poco este problema y aporta cierta interpretabilidad al modelo. En cada paso de la traducci\u00f3n, <strong>sabemos cu\u00e1les son los tokens de entrada que m\u00e1s han influido a la hora de generar el token en un paso concreto<\/strong>. Podemos utilizar esta informaci\u00f3n para extraer datos sobre la relaci\u00f3n entre las palabras.<\/p>\n\n\n\n<div class=\"wp-block-image noborder\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/500\/1*kD8RcuPQH9IhPs1ulYtPIA.png\" alt=\"Imagen que contiene Aplicaci\u00f3n\n\nDescripci\u00f3n generada autom\u00e1ticamente\"\/><figcaption>Figura 7: Mapa de atenci\u00f3n <\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">La figura 7 muestra el mapa de\natenci\u00f3n del ejemplo de traducci\u00f3n mostrado en la figura 6. Las columnas\ncorresponden a la secuencia de entrada y las filas a la secuencia generada.\nCada fila pertenece a un paso de tiempo espec\u00edfico. Por ejemplo, la cuarta fila\nque corresponde a <em>\u00abfr\u00edo\u00bb <\/em>se vio afectada principalmente por\nlos tokens de entrada <em>\u00abhava so\u011fuk\u00bb<\/em>. Como veremos en la secci\u00f3n\nde resultados, la arquitectura Transformer emplea m\u00faltiples cabezas de\natenci\u00f3n. Por lo tanto, acabamos teniendo m\u00faltiples mapas de atenci\u00f3n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Resultados\"><\/span>Resultados<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfC\u00f3mo debemos evaluar un sistema de Traducci\u00f3n Autom\u00e1tica Neuronal? Considere el famoso ejemplo <em>\u00abI made her duck\u00bb. <\/em>\u00bfC\u00f3mo se traducir\u00eda esta frase? He aqu\u00ed algunas traducciones:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Le cocin\u00e9 un pato.<\/li><li>Cocin\u00e9 un pato que\nle pertenec\u00eda.<\/li><li>He creado un pato\n(de juguete) para regalarle.<\/li><li>La transform\u00e9 en\nun pato. (magia)<\/li><li>La hice agacharse\n(como verbo). (Hab\u00eda algo que se acercaba)<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Lo que intento decir es que el lenguaje natural es ambiguo. Ser\u00eda injusto esperar que las m\u00e1quinas lo entendieran a la perfecci\u00f3n, cuando  incluso los humanos tienen dificultades para entenderse. Volviendo al problema, \u00bfC\u00f3mo se evaluar\u00eda esta traducci\u00f3n? El propio anotador es parcial y supone que en el momento de crear el conjunto de datos ten\u00eda hambre. As\u00ed que utiliz\u00f3 la primera frase para traducir la oraci\u00f3n. Nuestro modelo, posteriormente, genera una de las otras opciones que son todas correctas porque aqu\u00ed no conocemos el contexto. Aparentemente, la coincidencia exacta ser\u00eda bastante ingenua, ya que incluso castigar\u00eda toda la traducci\u00f3n por una elecci\u00f3n de palabra diferente. Como alternativa, la gente suele utilizar la puntuaci\u00f3n BLEU (Bilingual Evaluation Understudy). Genera una puntuaci\u00f3n entre <em>[0,1]<\/em>, en algunos casos, la multiplicamos por <em>100 <\/em>por comodidad. Utiliza n-gramas (1, 2, 3 y 4 principalmente) para evaluar la traducci\u00f3n con algunos trucos internos adicionales. Pero este mecanismo de evaluaci\u00f3n puede fallar ligeramente tambi\u00e9n en este ejemplo. En general, la evaluaci\u00f3n de un sistema NMT es un problema sutil y cabe esperar que un aumento de la puntuaci\u00f3n BLEU no signifique necesariamente que la calidad de la traducci\u00f3n haya aumentado tambi\u00e9n. Los resultados de los experimentos realizados durante este proyecto se encuentran en la Tabla 1, en la que se compara un modelo seq2seq con GRU con el modelo Transformer. El conjunto de datos no contiene frases muy largas, por lo que la tarea es bastante f\u00e1cil. Pero a\u00fan as\u00ed, el modelo Transformer fue capaz de conseguir mejores resultados que el modelo de referencia incluso con la mitad del tama\u00f1o de los par\u00e1metros.<\/p>\n\n\n\n<div class=\"wp-block-image noborder\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/700\/1*NTMrY1myI-bgAwbVUjVASQ.png\" alt=\"\"\/><figcaption> Tabla 1: Comparaci\u00f3n de seq2seq con RNNs y el Transformador <\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Experimentos\"><\/span>Experimentos<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed est\u00e1n algunos de los mapas de atenci\u00f3n que he visualizado. Puedes mirar diferentes matrices para ver c\u00f3mo el modelo gestiona la secuencia de entrada de diferentes maneras.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Entrada: <\/strong><em>gelemeyecekmi\u015fiz.<br> <\/em><strong>Salida:<\/strong><em><strong> <\/strong>no podremos venir.<\/em><\/li><li><strong>Entrada: <\/strong><em>otob\u00fcs\u00fc ka\u00e7\u0131r\u0131rsak trenle gidebiliriz.<br> <\/em><strong>Salida<\/strong><em><strong>: <\/strong>podemos ir en tren si perdemos el autob\u00fas.<\/em><\/li><li><strong>Entrada: <\/strong>tom <em>d\u00fcn gece arabay\u0131 \u00e7ok h\u0131zl\u0131 kulland\u0131. ecel terleri d\u00f6kt\u00fcm<br> <\/em><strong>Output<\/strong><em><strong>: <\/strong>tom us\u00f3 el coche muy r\u00e1pido anoche. derram\u00e9 mucha mantequilla. \ud83d\ude42<\/em><\/li><li><strong>Entrada: <\/strong>tom <em>d\u00fcn gece arabay\u0131 \u00e7ok h\u0131zl\u0131 kulland\u0131. bu y\u00fczden ona \u00e7ok k\u0131zd\u0131m.<br> <\/em><strong>Output<\/strong><em><strong>: <\/strong>tom<strong> <\/strong>us\u00f3 el coche muy r\u00e1pido anoche, por lo que me enfad\u00e9 mucho con \u00e9l.<\/em><\/li><li><strong>Entrada: <\/strong><em>ge\u00e7en g\u00fcn parkta k\u00f6pek g\u00f6rd\u00fcm. bir an bana sald\u0131racak sand\u0131m.<br> <\/em><strong>Output<\/strong><em><strong>: <\/strong>el d\u00eda pasado vi un perro en el parque, pens\u00e9 que me atacar\u00eda.<\/em><\/li><\/ul>\n\n\n\n<div class=\"wp-block-image noborder\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/674\/1*ArOwx8P8ugPguiOpvGd9QQ.gif\" alt=\"\"\/><figcaption> Figura 8: Mapas de Atenci\u00f3n de los transformaders <\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">No es f\u00e1cil anotar todos los\ndetalles de un art\u00edculo. Pero si este art\u00edculo te ha parecido interesante y\nquieres profundizar en el tema, la siguiente lista ser\u00eda un buen punto de\npartida para empezar a leer:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Documento Seq2seq de Sutskever et al. \u00abSequence-to-sequence learning with neural networks\u00bb [1].<\/li><li>Mecanismo de atenci\u00f3n de Bahdanau et al. \u00abNeural machine translation by jointly learning to align and translate\u00bb [2].<\/li><li>BPE y unidades de subpalabras por Sennrich et al. \u00abNeural machine translation of rare words with subword units. \u00ab. [4].<\/li><li>El transformador de Vaswani et al. \u00abAttention is all you need \u00bb [3].<\/li><li>Stanford CS224n: Natural Language Processing with Deep Learning <\/li><\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Entrenar_un_modelo_NMT_Transformer_personalizado\"><\/span>Entrenar un modelo NMT Transformer personalizado<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Proporciono aqu\u00ed el c\u00f3digo fuente, el conjunto de datos utilizado, los tokenizadores y un modelo entrenado para que las personas interesadas en este tema puedan jugar con \u00e9l. Puedes leer m\u00e1s detalles sobre c\u00f3mo entrenar, evaluar y traducir en el repositorio <a href=\"https:\/\/github.com\/azadyasar\/NeuralMachineTranslation\">https:\/\/github.com\/azadyasar\/NeuralMachineTranslation<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Conjunto_de_datos\"><\/span>Conjunto de datos<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Se ha utilizado un corpus\nparalelo ingl\u00e9s-turco como conjunto de datos. El conjunto de datos fue extra\u00eddo\ndel sitio web Tatoeba por [5]. El conjunto de datos consta de aproximadamente\n500.000 pares de frases. Ten\u00edamos la idea de ampliar el tama\u00f1o del conjunto de\ndatos utilizando los subt\u00edtulos de las pel\u00edculas. Pero no tuvimos suficiente\ntiempo para hacerlo. Para todos los experimentos, dividimos el conjunto de\ndatos en conjuntos de entrenamiento, validaci\u00f3n y prueba de un tama\u00f1o de\n416.038, 46.227 y 51.363, respectivamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Como el conjunto de datos no es\nmuy grande, se incluye dentro del repositorio en la carpeta <em>data\/<\/em>. Al\ndescomprimir el archivo, se obtienen tres archivos tsv correspondientes a los\nconjuntos de datos de entrenamiento, validaci\u00f3n y prueba.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Codificacion_de_pares_de_bytes_tokenizadores\"><\/span>Codificaci\u00f3n de pares de bytes tokenizadores<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Estos tokenizadores son\nnecesarios para tokenizar la secuencia de entrada y salida. Tambi\u00e9n los\nproporcionamos dentro de la carpeta <em>data\/<\/em>. Los archivos que terminan en <em>.model\n<\/em>son modelos de tokenizadores y los que terminan en <em>.vocab <\/em>contienen\nel vocabulario de un tokenizador espec\u00edfico. Si tienes un corpus m\u00e1s grande y\nrelevante y quieres entrenar tus tokenizadores personalizados. Utilice el\nscript <em>train_bpe.py<\/em>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Entrenamiento\"><\/span>Entrenamiento<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed est\u00e1 el c\u00f3digo para entrenar tu modelo personalizado. Detectar\u00e1 autom\u00e1ticamente si hay alguna GPU disponible y utilizar\u00e1 una disponible. De lo contrario, utilizar\u00e1 una CPU, lo cual no es recomendable.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">python -m nmt train  --train_dataset ..\/data\/eng-tur-train.csv \\<br>                     --eval_dataset ..\/data\/eng-tur-val.csv \\<br>                     --test_dataset ..\/data\/eng-tur-test.csv \\<br>                     --src_vocab ..\/data\/tr_sp.model \\<br>                     --trg_vocab ..\/data\/en_sp.model \\<br>                     --n_epochs 15 \\<br>                     --hid_dims 256 \\<br>                     --enc_layers 4 \\<br>                     --dec_layers 4 \\<br>                     --enc_heads 8 \\<br>                     --dec_heads 8 \\<br>                     --enc_pf_dim 1024 \\<br>                     --dec_pf_dim 1024 \\<br>                     --max_len 172 \\<br>                     --lr 0.0005 \\<br>                     --enc_dropout 0.35 \\<br>                     --dec_dropout 0.35 \\<br>                     --wd_rate 0.0001 \\<br>                     --clip 1 \\<br>                     --batch_sz 128 \\<br>                     --save_model_path transformer_tr_en.pt <\/pre>\n\n\n\n<p class=\"has-text-align-center has-small-font-size wp-block-paragraph\">C\u00f3digo de entrenamiento<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deber\u00eda ver los siguientes logs una vez que el modelo comience a entrenar sin problemas.<\/p>\n\n\n\n<div class=\"wp-block-image noborder\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/700\/1*AyrGbdLRjgAq9xL2fI82FQ.png\" alt=\"\"\/><figcaption>Logs de entrenamiento <\/figcaption><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Evaluacion_y_traduccion\"><\/span>Evaluaci\u00f3n y traducci\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Puede evaluar el modelo entrenado con el siguiente c\u00f3digo. Necesitamos los hiperpar\u00e1metros del modelo para construirlo antes de cargarlo. As\u00ed que aseg\u00farese de que coinciden con los reales.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> python -m nmt evaluate --test_dataset ..\/data\/eng-tur-test.csv \\<br>                       --src_vocab ..\/data\/tr_sp.model \\<br>                       --trg_vocab ..\/data\/en_sp.model \\<br>                       --hid_dims 256 \\<br>                       --enc_layers 4 \\<br>                       --dec_layers 4 \\<br>                       --enc_heads 8 \\<br>                       --dec_heads 8 \\<br>                       --enc_pf_dim 1024 \\<br>                       --dec_pf_dim 1024 \\<br>                       --max_len 172 \\<br>                       --enc_dropout 0.35 \\<br>                       --dec_dropout 0.35 \\<br>                       --batch_sz 128 \\<br>                       --model_path transformer_tr_en.pt <\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Use el siguiente c\u00f3digo para traducir interactivamente las frases.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> python -m nmt translate --src_vocab ..\/data\/tr_sp.model \\<br>                       --trg_vocab ..\/data\/en_sp.model \\<br>                       --hid_dims 256 \\<br>                       --enc_layers 4 \\<br>                       --dec_layers 4 \\<br>                       --enc_heads 8 \\<br>                       --dec_heads 8 \\<br>                       --enc_pf_dim 1024 \\<br>                       --dec_pf_dim 1024 \\<br>                       --max_len 172 \\<br>                       --enc_dropout 0.35 \\<br>                       --dec_dropout 0.35 \\<br>                       --model_path transformer_tr_en.pt <\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando ejecute el script de\ntraducci\u00f3n, se le pedir\u00e1 que escriba una frase como se muestra a continuaci\u00f3n:<\/p>\n\n\n\n<div class=\"wp-block-image noborder\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/700\/1*9HGLoLlR_K3_DrzSTjn65g.png\" alt=\"\"\/><figcaption> Traducci\u00f3n interactiva <\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusi\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Espero que este art\u00edculo haya sido \u00fatil e informativo. Pronto proporcionar\u00e9 una nueva implementaci\u00f3n del modelo RNN + Atenci\u00f3n en el repositorio. Si encuentra alg\u00fan error o en caso de que algo no cuadre, h\u00e1gamelo saber para intentar corregirlo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Referencias\"><\/span>Referencias<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\"><li>Ilya Sutskever, Oriol Vinyals y Quoc V Le. Sequence to sequence learning with neural networks. En Z. Ghahramani, M. Welling, C. Cortes, N. Lawrence, y K. Q. Weinberger, editores, Advances in Neural Information Processing Systems, volumen 27, p\u00e1ginas 3104-3112. Curran Associates, Inc., 2014.<\/li><li>Dzmitry Bahdanau, Kyunghyun Cho y Yoshua Bengio.  Neural machine translation by jointly learning to align and translate . CoRR, abs\/1409.0473, 2015.<\/li><li>Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Lukasz Kaiser e Illia Polosukhin.  <br>Attention is all you need . En I. Guyon, U. V. Luxburg, S. Bengio, H. Wallach, R. Fergus, S. Vishwanathan, y R. Garnett, editores, Advances in Neural Information Processing Systems, volumen 30, p\u00e1ginas 5998-6008. Curran Associates, Inc., 2017.<\/li><li>Rico Sennrich, Barry Haddow y Alexandra Birch.  <br>Neural machine translation of rare words with subword units. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics  (Volume 1: Long Papers), p\u00e1ginas 1715-1725, Berl\u00edn, Alemania, agosto de 2016. Asociaci\u00f3n de Ling\u00fc\u00edstica Computacional.<\/li><li>Jakob Uszkoreit. <br>Tab-delimited bilingual sentence pairs  <a href=\"http:\/\/www.manythings.org\/anki\/,\">http:\/\/www.manythings.org\/anki\/, <\/a> 30 de enero de 2021.<\/li><li> NMT Transformer Implementation : <a href=\"https:\/\/github.com\/azadyasar\/NeuralMachineTranslation\">https:\/\/github.com\/azadyasar\/NeuralMachineTranslation<\/a><\/li><\/ol>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-right kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;right&quot;,&quot;id&quot;:&quot;6598&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;5&quot;,&quot;greet&quot;:&quot;Rate this post&quot;,&quot;legend&quot;:&quot;0\\\/5 - (0 votos)&quot;,&quot;size&quot;:&quot;24&quot;,&quot;title&quot;:&quot;Traducci\u00f3n Autom\u00e1tica Neuronal: funcionamiento, Seq2Seq y transformers.&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} - ({count} {votes})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 19.2px;\">\n            <span class=\"kksr-muted\">Rate this post<\/span>\n    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"Traducci\u00f3n a Espa\u00f1ol de un art\u00edculo de Azad Ya\u015far, explicando los nuevos modelos Seq2Seq de Traducci\u00f3n Autom\u00e1tica Neuronal, capaces de mapear y trazar relaciones entre 2 idiomas en base a un corpus paralelo.","protected":false},"author":3,"featured_media":6600,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[619],"tags":[293,292,286],"class_list":["post-6598","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-traduccion-automatica","tag-seq2seq","tag-traduccion-automatica-neuronal","tag-transformer"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"Descubre los nuevos modelos Seq2Seq de Traducci\u00f3n Autom\u00e1tica Neuronal, capaces de mapear y trazar relaciones entre 2 idiomas en base a un corpus paralelo.\" \/>\n\t<meta name=\"robots\" content=\"max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n\t<meta name=\"author\" content=\"Chema Bescos\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"IBIDEM EDU |\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Traducci\u00f3n Autom\u00e1tica Neuronal, Seq2Seq y Transformers\" \/>\n\t\t<meta property=\"og:description\" content=\"Descubre los nuevos modelos Seq2Seq de Traducci\u00f3n Autom\u00e1tica Neuronal, capaces de mapear y trazar relaciones entre 2 idiomas en base a un corpus paralelo.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2021-06-28T11:42:18+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-03-04T11:37:56+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Traducci\u00f3n Autom\u00e1tica Neuronal, Seq2Seq y Transformers\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Descubre los nuevos modelos Seq2Seq de Traducci\u00f3n Autom\u00e1tica Neuronal, capaces de mapear y trazar relaciones entre 2 idiomas en base a un corpus paralelo.\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/traduccion-automatica-neuronal-seq2seq-transformers\\\/#article\",\"name\":\"Traducci\\u00f3n Autom\\u00e1tica Neuronal, Seq2Seq y Transformers\",\"headline\":\"Traducci\\u00f3n Autom\\u00e1tica Neuronal: funcionamiento, Seq2Seq y transformers.\",\"author\":{\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/author\\\/chema\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/mapa-atencion-traduccion-automatica.jpg\",\"width\":1140,\"height\":380,\"caption\":\"Mapa de atencion de una Traducci\\u00f3n Autom\\u00e1tica Neuronal\"},\"datePublished\":\"2021-06-28T13:42:18+02:00\",\"dateModified\":\"2024-03-04T12:37:56+01:00\",\"inLanguage\":\"es-ES\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/traduccion-automatica-neuronal-seq2seq-transformers\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/traduccion-automatica-neuronal-seq2seq-transformers\\\/#webpage\"},\"articleSection\":\"Traduccion Automatica, Seq2Seq, Traduccion Automatica neuronal, transformer\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/traduccion-automatica-neuronal-seq2seq-transformers\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/#listItem\",\"position\":1,\"name\":\"Inicio\",\"item\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/traduccion-automatica\\\/#listItem\",\"name\":\"Traduccion Automatica\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/traduccion-automatica\\\/#listItem\",\"position\":2,\"name\":\"Traduccion Automatica\",\"item\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/traduccion-automatica\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/traduccion-automatica-neuronal-seq2seq-transformers\\\/#listItem\",\"name\":\"Traducci\\u00f3n Autom\\u00e1tica Neuronal: funcionamiento, Seq2Seq y transformers.\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/#listItem\",\"name\":\"Inicio\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/traduccion-automatica-neuronal-seq2seq-transformers\\\/#listItem\",\"position\":3,\"name\":\"Traducci\\u00f3n Autom\\u00e1tica Neuronal: funcionamiento, Seq2Seq y transformers.\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/traduccion-automatica\\\/#listItem\",\"name\":\"Traduccion Automatica\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/#organization\",\"name\":\"IBIDEM EDU\",\"url\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/author\\\/chema\\\/#author\",\"url\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/author\\\/chema\\\/\",\"name\":\"Chema Bescos\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/traduccion-automatica-neuronal-seq2seq-transformers\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/953506883190e283b6bb05284141f6c30cdf4df316a9d7113feb85e55ea1d31e?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Chema Bescos\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/traduccion-automatica-neuronal-seq2seq-transformers\\\/#webpage\",\"url\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/traduccion-automatica-neuronal-seq2seq-transformers\\\/\",\"name\":\"Traducci\\u00f3n Autom\\u00e1tica Neuronal, Seq2Seq y Transformers\",\"description\":\"Descubre los nuevos modelos Seq2Seq de Traducci\\u00f3n Autom\\u00e1tica Neuronal, capaces de mapear y trazar relaciones entre 2 idiomas en base a un corpus paralelo.\",\"inLanguage\":\"es-ES\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/traduccion-automatica-neuronal-seq2seq-transformers\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/author\\\/chema\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/author\\\/chema\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/mapa-atencion-traduccion-automatica.jpg\",\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/traduccion-automatica-neuronal-seq2seq-transformers\\\/#mainImage\",\"width\":1140,\"height\":380,\"caption\":\"Mapa de atencion de una Traducci\\u00f3n Autom\\u00e1tica Neuronal\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/traduccion-automatica-neuronal-seq2seq-transformers\\\/#mainImage\"},\"datePublished\":\"2021-06-28T13:42:18+02:00\",\"dateModified\":\"2024-03-04T12:37:56+01:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/#website\",\"url\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/\",\"name\":\"IBIDEM EDU\",\"inLanguage\":\"es-ES\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.ibidemgroup.com\\\/edu\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Traducci\u00f3n Autom\u00e1tica Neuronal, Seq2Seq y Transformers","description":"Descubre los nuevos modelos Seq2Seq de Traducci\u00f3n Autom\u00e1tica Neuronal, capaces de mapear y trazar relaciones entre 2 idiomas en base a un corpus paralelo.","canonical_url":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/","robots":"max-snippet:-1, max-image-preview:large, max-video-preview:-1","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#article","name":"Traducci\u00f3n Autom\u00e1tica Neuronal, Seq2Seq y Transformers","headline":"Traducci\u00f3n Autom\u00e1tica Neuronal: funcionamiento, Seq2Seq y transformers.","author":{"@id":"https:\/\/www.ibidemgroup.com\/edu\/author\/chema\/#author"},"publisher":{"@id":"https:\/\/www.ibidemgroup.com\/edu\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/www.ibidemgroup.com\/edu\/wp-content\/uploads\/2021\/06\/mapa-atencion-traduccion-automatica.jpg","width":1140,"height":380,"caption":"Mapa de atencion de una Traducci\u00f3n Autom\u00e1tica Neuronal"},"datePublished":"2021-06-28T13:42:18+02:00","dateModified":"2024-03-04T12:37:56+01:00","inLanguage":"es-ES","mainEntityOfPage":{"@id":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#webpage"},"isPartOf":{"@id":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#webpage"},"articleSection":"Traduccion Automatica, Seq2Seq, Traduccion Automatica neuronal, transformer"},{"@type":"BreadcrumbList","@id":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.ibidemgroup.com\/edu\/#listItem","position":1,"name":"Inicio","item":"https:\/\/www.ibidemgroup.com\/edu\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica\/#listItem","name":"Traduccion Automatica"}},{"@type":"ListItem","@id":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica\/#listItem","position":2,"name":"Traduccion Automatica","item":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#listItem","name":"Traducci\u00f3n Autom\u00e1tica Neuronal: funcionamiento, Seq2Seq y transformers."},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.ibidemgroup.com\/edu\/#listItem","name":"Inicio"}},{"@type":"ListItem","@id":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#listItem","position":3,"name":"Traducci\u00f3n Autom\u00e1tica Neuronal: funcionamiento, Seq2Seq y transformers.","previousItem":{"@type":"ListItem","@id":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica\/#listItem","name":"Traduccion Automatica"}}]},{"@type":"Organization","@id":"https:\/\/www.ibidemgroup.com\/edu\/#organization","name":"IBIDEM EDU","url":"https:\/\/www.ibidemgroup.com\/edu\/"},{"@type":"Person","@id":"https:\/\/www.ibidemgroup.com\/edu\/author\/chema\/#author","url":"https:\/\/www.ibidemgroup.com\/edu\/author\/chema\/","name":"Chema Bescos","image":{"@type":"ImageObject","@id":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/953506883190e283b6bb05284141f6c30cdf4df316a9d7113feb85e55ea1d31e?s=96&d=mm&r=g","width":96,"height":96,"caption":"Chema Bescos"}},{"@type":"WebPage","@id":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#webpage","url":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/","name":"Traducci\u00f3n Autom\u00e1tica Neuronal, Seq2Seq y Transformers","description":"Descubre los nuevos modelos Seq2Seq de Traducci\u00f3n Autom\u00e1tica Neuronal, capaces de mapear y trazar relaciones entre 2 idiomas en base a un corpus paralelo.","inLanguage":"es-ES","isPartOf":{"@id":"https:\/\/www.ibidemgroup.com\/edu\/#website"},"breadcrumb":{"@id":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#breadcrumblist"},"author":{"@id":"https:\/\/www.ibidemgroup.com\/edu\/author\/chema\/#author"},"creator":{"@id":"https:\/\/www.ibidemgroup.com\/edu\/author\/chema\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/www.ibidemgroup.com\/edu\/wp-content\/uploads\/2021\/06\/mapa-atencion-traduccion-automatica.jpg","@id":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#mainImage","width":1140,"height":380,"caption":"Mapa de atencion de una Traducci\u00f3n Autom\u00e1tica Neuronal"},"primaryImageOfPage":{"@id":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/#mainImage"},"datePublished":"2021-06-28T13:42:18+02:00","dateModified":"2024-03-04T12:37:56+01:00"},{"@type":"WebSite","@id":"https:\/\/www.ibidemgroup.com\/edu\/#website","url":"https:\/\/www.ibidemgroup.com\/edu\/","name":"IBIDEM EDU","inLanguage":"es-ES","publisher":{"@id":"https:\/\/www.ibidemgroup.com\/edu\/#organization"}}]},"og:locale":"es_ES","og:site_name":"IBIDEM EDU |","og:type":"article","og:title":"Traducci\u00f3n Autom\u00e1tica Neuronal, Seq2Seq y Transformers","og:description":"Descubre los nuevos modelos Seq2Seq de Traducci\u00f3n Autom\u00e1tica Neuronal, capaces de mapear y trazar relaciones entre 2 idiomas en base a un corpus paralelo.","og:url":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/","article:published_time":"2021-06-28T11:42:18+00:00","article:modified_time":"2024-03-04T11:37:56+00:00","twitter:card":"summary_large_image","twitter:title":"Traducci\u00f3n Autom\u00e1tica Neuronal, Seq2Seq y Transformers","twitter:description":"Descubre los nuevos modelos Seq2Seq de Traducci\u00f3n Autom\u00e1tica Neuronal, capaces de mapear y trazar relaciones entre 2 idiomas en base a un corpus paralelo."},"aioseo_meta_data":{"post_id":"6598","title":"Traducci\u00f3n Autom\u00e1tica Neuronal, Seq2Seq y Transformers","description":"Descubre los nuevos modelos Seq2Seq de Traducci\u00f3n Autom\u00e1tica Neuronal, capaces de mapear y trazar relaciones entre 2 idiomas en base a un corpus paralelo.","keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2023-09-12 16:28:38","updated":"2024-03-04 11:50:06","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.ibidemgroup.com\/edu\/\" title=\"Inicio\">Inicio<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica\/\" title=\"Traduccion Automatica\">Traduccion Automatica<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tTraducci\u00f3n Autom\u00e1tica Neuronal: funcionamiento, Seq2Seq y transformers.\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Inicio","link":"https:\/\/www.ibidemgroup.com\/edu\/"},{"label":"Traduccion Automatica","link":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica\/"},{"label":"Traducci\u00f3n Autom\u00e1tica Neuronal: funcionamiento, Seq2Seq y transformers.","link":"https:\/\/www.ibidemgroup.com\/edu\/traduccion-automatica-neuronal-seq2seq-transformers\/"}],"_links":{"self":[{"href":"https:\/\/www.ibidemgroup.com\/edu\/wp-json\/wp\/v2\/posts\/6598","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ibidemgroup.com\/edu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ibidemgroup.com\/edu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ibidemgroup.com\/edu\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ibidemgroup.com\/edu\/wp-json\/wp\/v2\/comments?post=6598"}],"version-history":[{"count":39,"href":"https:\/\/www.ibidemgroup.com\/edu\/wp-json\/wp\/v2\/posts\/6598\/revisions"}],"predecessor-version":[{"id":10913,"href":"https:\/\/www.ibidemgroup.com\/edu\/wp-json\/wp\/v2\/posts\/6598\/revisions\/10913"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ibidemgroup.com\/edu\/wp-json\/wp\/v2\/media\/6600"}],"wp:attachment":[{"href":"https:\/\/www.ibidemgroup.com\/edu\/wp-json\/wp\/v2\/media?parent=6598"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ibidemgroup.com\/edu\/wp-json\/wp\/v2\/categories?post=6598"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ibidemgroup.com\/edu\/wp-json\/wp\/v2\/tags?post=6598"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}