Transformador (modelo de aprendizaxe automática)

Un **transformador** (ou ***transformer***, do inglés) é un modelo de aprendizaxe profunda, que adopta un mecanismo de autoponderación, ponderando de forma diferencial a importancia de cada parte dos datos de entrada. A isto coñéceselle como mecanismo de atención, concepto revolucionario que mellorou considerablemente o potencial das redes neurais. Os transformadores úsanse en certos campos como o procesamento da linguaxe natural e a visión por ordenador.
miniatura|488x488px|Arquitectura dun transformador.
Do mesmo xeito que as redes neurais recorrentes, os transformadores están deseñados para procesar datos de entrada secuenciais, como a linguaxe natural, con aplicacións para tarefas como a tradución e o resumo de textos. Con todo, a diferenza das redes neurais recorrentes, os transformadores procesan toda a entrada simultaneamente. O mecanismo de altura proporciona un contexto para calquera posición na secuencia de entrada. Por exemplo, se os datos de entrada son unha frase en linguaxe natural, o transformador non necesita procesar unha palabra sobre outra. Isto permite un maior paralelismo que as redes neurais recorrentes e, polo tanto, reduce os tempos de adestramento.

Unha das vantaxes dos transformadores é que non teñen unidades recorrentes, polo que requiren menos tempo de adestramento que as redes neurais recorrentes.

## Arquitectura 
Un transformador é un modelo de aprendizaxe profunda que utiliza un mecanismo chamado *atención autodirixida* para procesar datos. Este mecanismo permítelle ao modelo ponderar diferentes partes dos datos de entrada, permitindo que se centre en diferentes aspectos dos datos en función da tarefa que se lle pida realizar.

Está composto por un codificador e un descodificador, cada un deles formado por múltiples capas. O codificador procesa a entrada de datos e crea unha representación intermedia, centrándose nos aspectos máis relevantes para a tarefa en cuestión. Esta representación é logo usada polo descodificador para xerar a saída desexada. Ambas partes, o codificador e o descodificador, utilizan atención autodirixida e redes neurais de avance rápido para transformar os datos. Esta arquitectura permite aos transformadores procesar grandes cantidades de información simultaneamente, o que é crucial para tarefas como o procesamento da linguaxe natural.

A continuación explícanse os diferentes módulos ou fases que constitúen a arquitectura dun transformador. Para comprender mellor o funcionamento de cada módulo, estes explicaranse sobre o problema de procesamento da linguaxe natural, en concreto, sobre a tradución.

### Matriz de incrustación 
Para que un transformador poida traballar, precisa ter os datos codificados nunha linguaxe que entenda. Esta linguaxe trátase de vectores e matrices nun espazo vectorial multidimensional (o número de dimensións escóllese segundo o transformador e o problema co que esteamos tratando, aínda que hai valores comunmente utilizados), onde vectores con dirección e sentido similares, terán un significado similar.

Primeiramente, na etapa de incrustación de entrada, divídese a entrada en diferentes porcións (*tokens*, en inglés) distinguibles. A cada unha destas porcións asígnaselle un valor numérico, obtendo un vector de dimensión n \times 1, sendo n o número de porcións na entrada. Este vector multiplícase pola matriz de incrustación, unha matriz que se aprende no adestramento, de dimensión  1 \times d_{modelo}, sendo  d_{modelo} a dimensión escollida para o modelo. Unha vez feita esa multiplicación, obtense unha matriz n \times d_{modelo}, que pertence ao espazo vectorial citado anteriormente.

En relación coa visión por computadora, utilízase o transformador de visión (ViT, das súas siglas en inglés, *Vision Transformer*), que non ten descodificador; os autocodificadores de máscaras (MAE, das súas siglas en inglés, *Masked Autoencoders*), similar a BERT pero na visión por computadora; e o Axuste de Indicacións Visuais (*Visual Prompt Tuning*, en inglés), que non só adestra os pesos do transformador, senón tamén adestra algúns valores da entrada.

Para mellorar o axuste fino, utilízase un modelo chamado LoRA, onde se conxelan algúns pesos do transformador e se adestran outros diferentes. Así, conséguese adestrar menos parámetros do transformador, pero coa mesma eficacia e en menos tempo que se se adestrase o transformador completo. 

## Transformadores en galego 
Investigadores do CiTIUS crearon en 2022 a aplicación SemantiGal, unha ferramenta en liña para visualizar os vectores das representacións en lingua galega. Tal e como se explicaba no apartado da *Matriz de incrustación*, cada porción ou palabra represéntase como un vector, e palabras con significados similares estarán próximos no espazo. En SemantiGal permiten ver como funciona a predición en contexto, un medidor da semellanza entre palabras, a proporción dunha palabra semellante a outra dada e as operacións vectoriais no espazo de palabras.

## Notas 
## Véxase tamén 
### Outros artigos 
* Algoritmo
* Aprendizaxe automática
* Procesamento da linguaxe natural 
* Rede neural artificial 
* Rede neural recorrente 
* Modelo de texto a imaxe
### Ligazóns externas 
* *Se necesita un cuerpo para entender el mundo: por qué ChatGPT y las IA de otros idiomas no saben lo que dicen* [Publicado orixinalmente en *The Conversation* en abril de 2023]; SciELO en Perspectiva (*en castelán*)
* SemantiGal: un visor en liña de representacións vectoriais para o galego.