From f783c822788d36939ca3679583fbce0be2a3137c Mon Sep 17 00:00:00 2001 From: Aaron Jimenez Date: Fri, 15 Mar 2024 10:55:35 -0800 Subject: [PATCH] [docs] Spanish translation of attention.md (#29681) * add attention to es/ and edit es/_toctree.yml * translate attention.md * fix transformers * fix transformers --- docs/source/es/_toctree.yml | 2 ++ docs/source/es/attention.md | 41 +++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 docs/source/es/attention.md diff --git a/docs/source/es/_toctree.yml b/docs/source/es/_toctree.yml index 9f447d22d747b7..4506dbd06f96b9 100644 --- a/docs/source/es/_toctree.yml +++ b/docs/source/es/_toctree.yml @@ -92,6 +92,8 @@ title: Lo que 馃 Transformers puede hacer - local: tasks_explained title: Como los 馃 Transformers resuelven tareas + - local: attention + title: Mecanismos de atenci贸n - local: pad_truncation title: Relleno y truncamiento - local: bertology diff --git a/docs/source/es/attention.md b/docs/source/es/attention.md new file mode 100644 index 00000000000000..12b774ed88622d --- /dev/null +++ b/docs/source/es/attention.md @@ -0,0 +1,41 @@ + + +# Mecanismos de atenci贸n + +La mayor铆a de los modelos transformers utilizan atenci贸n completa, en el sentido de que la matriz de atenci贸n es cuadrada. Esto puede ser un gran cuello de botella computacional cuando tienes textos largos. `Longformer` y `reformer` son modelos que intentan ser m谩s eficientes y utilizan una versi贸n dispersa de la matriz de atenci贸n para acelerar el entrenamiento. + +## Atenci贸n LSH + +[Reformer](https://huggingface.co/docs/transformers/model_doc/reformer) utiliza atenci贸n LSH. En el softmax(QK^t), solo los elementos m谩s grandes (en la dimensi贸n softmax) de la matriz QK^t van a dar contribuciones 煤tiles. Entonces, para cada consulta q en Q, podemos considerar solo las claves k en K que est茅n cerca de q. Se utiliza una funci贸n hash para determinar si q y k est谩n cerca. La m谩scara de atenci贸n se modifica para enmascarar el token actual (excepto en la primera posici贸n), porque dar谩 una consulta y una clave iguales (entonces muy similares entre s铆). Dado que el hash puede ser un poco aleatorio, en la pr谩ctica se utilizan varias funciones hash (determinadas por un par谩metro n_rounds) y luego se promedian juntas. + +## Atenci贸n local + +[Longformer](https://huggingface.co/docs/transformers/model_doc/longformer) utiliza atenci贸n local: a menudo, el contexto local (por ejemplo, 驴cu谩les son los dos tokens a la izquierda y a la derecha?) es suficiente para tomar acci贸n para un token dado. Adem谩s, apilando capas de atenci贸n que tienen una ventana peque帽a, la 煤ltima capa tendr谩 un campo receptivo mayor que solamente los tokens en la ventana, lo que les permite construir una representaci贸n de toda la oraci贸n. + +Algunos tokens de entrada preseleccionados tambi茅n reciben atenci贸n global: para esos pocos tokens, la matriz de atenci贸n puede acceder a todos los tokens y este proceso es sim茅trico: todos los dem谩s tokens tienen acceso a esos tokens espec铆ficos (adem谩s de los que est谩n en su ventana local). Esto se muestra en la Figura 2d del art铆culo, el cual se puede apreciar un ejemplo de una m谩scara de atenci贸n: + +
+ +
+ +El uso de dichas matrices de atenci贸n con menos par谩metros permite que el modelo tenga entradas con una longitud de secuencia mayor. + +## Otros trucos + +### Codificaci贸n posicional axial + +[Reformer](https://huggingface.co/docs/transformers/model_doc/reformer) utiliza codificaci贸n posicional axial: en los modelos transformers tradicionales, la codificaci贸n posicional E es una matriz de tama帽o \\(l\\) por \\(d\\), donde \\(l\\) es la longitud de la secuencia y \\(d\\) es la dimensi贸n del estado oculto. Si tienes textos muy extensos, esta matriz puede ser enorme y ocupar demasiado espacio en la GPU. Para aliviar eso, las codificaciones posicionales axiales consisten en factorizar esa gran matriz E en dos matrices m谩s peque帽as E1 y E2, con dimensiones \\(l_{1} \times d_{1}\\) y \\(l_{2} \times d_{2}\\), tal que \\(l_{1} \times l_{2} = l\\) y \\(d_{1} + d_{2} = d\\) (con el producto de las longitudes, esto termina siendo mucho m谩s peque帽o). La incrustaci贸n (embedding) para el paso de tiempo \\(j\\) en E se obtiene concatenando las incrustaciones para el paso de tiempo \\(j \% l1\\) en E1 y \\(j // l1\\) en E2.