LoRA

Arquitectura 
LoRA é un método que se pode aplicar a calquera matriz dunha rede neural, aínda que deseñouse para incluírse nas capas de atención dos transformadores. Dada unha matriz da rede, de dimensión , cos seus correspondentes pesos, , descomponse esta matriz en dúas de rango  menor,  e , , tales que . Tense a igualdade se  é igual ao rango da matriz ; se é menor, obtense unha aproximación de baixo rango. Polo tanto, se o modelo orixinal era  , o modelo aplicando LoRA será .

En canto á inicialización destas novas matrices, a matriz  inicialízase seguindo unha distribución normal de media cero, mentres que na matriz  tódolos seus elementos comezan inicializados a cero.

 Vantaxes 
Este método posúe moitas vantaxes con respecto a facer un axuste fino sobre o modelo orixinal.

 O adestramento reduce o considerablemente uso do hardware, pois ao usar optimizadores específicos para o adaptador LoRA (matrices  e ), e seren estes poucos parámetros a adestrar, non hai que gardar en memoria tantos datos, alén de non ter que facer tantas operacións.
 O tempo de adestramento é moito menor que adestrar só o modelo base, pois o número de parámetros, e por tanto, o número de operacións, para o axuste fino é considerablemente menor ao do modelo inicial.
 O desempeño dos modelos que se adestran con LoRA é semellante a facer axuste fino completo do modelo, sen usar este adaptador.
 O deseño permite fusionar as matrices que se adestran co modelo sen introducir latencia na inferencia. Pola contra, se se carga o modelo e os pesos de LoRA por separado, esta latencia si que se pode atopar.
 Pódese fusionar con outros métodos de axuste fino, como o axuste por prefixo.
 Pódese utilizar un mesmo modelo preadestrado e utilizar distintos adaptadores LoRA para adestralo para diferentes tarefas, sen máis que cambiar as matrices  e  no proceso de axuste fino.

 Diferentes adaptadores 
Unha das vantaxes comentadas é que se se queren crear varios modelos que resolvan diferentes problemas, pero que todos teñen algo en común, pódese partir dun modelo preadestrado, e utilizar distintos adaptadores LoRA. É dicir, o modelo preadestrado aprendeu unhas cousas e LoRA amplifica as características importantes para as tarefas específicas. Por tanto, con isto gáñase tempo de execución ao non ter que adestrar moitos modelos diferentes e poder partir sempre do mesmo modelo base só adestrando uns poucos parámetros.

O cambio de adaptador LoRA conséguese sen máis que cambiando as matrices  e  no proceso de axuste fino. Estes adaptadores pódense gardar e cargar para utilizalos no momento que fagan falta, incluso poden mesturarse entre eles para sacar o maior proveito en determinados problemas, chegando a un compromiso entre tempo de adestramento e eficiencia na resolución do problema.

Un exemplo de cando resulta útil utilizar varios adaptadores pode ser cando temos un modelo base que está adestrado para recoñecer a lingua inglesa. Ese sería o modelo preadestrado. A continuación, queremos adestralo para que saiba recoñecer francés e alemán. En vez de facer o procedemento normal de facerlle axuste fino ao modelo completo, creamos un adaptador LoRA para o francés e outro para o alemán. Deste xeito, no proceso de axuste fino, adéstranse os pesos dos diferentes adaptadores LoRA, e o modelo recoñecerá francés e alemán, sen que isto inflúa negativamente en como recoñecía o inglés (quitando os adaptadores tense o modelo inicial que recoñece só inglés, sen influencias do francés ou alemán).

 Rango óptimo 
Un hiperparámetro a seleccionar cando se fai un axuste fino con LoRA é o rango das matrices. Para tarefas de procesamento de texto, un rango de 8 é adecuado, aínda que dependendo do problema a resolver, pódese probar con diferentes valores que se poidan axustar mellor, tales como 2, 4 ou 64.

Nos problemas de visión por computador, estes rangos tamén poden ser axeitados, aínda que cumpre estudalo especificamente para o problema a resolver, xa que os experimentos que fixeron os seus creadores foron sobre o procesamento da linguaxe natural.

Normalmente, é beneficioso aumentar o rango canto máis difire o que hai que aprender do que xa sabe o modelo preadestrado, pois o número de parámetros aumenta, dándolle máis flexibilidade ao modelo.

 Parámetro alfa 
O modelo LoRA explicado ata agora é o modelo máis utilizado e simple. No modelo ampliado, a saída da multiplicación das matrices  e  reescálase polo termo , sendo alfa un número real que funciona como taxa de aprendizaxe. É dicir, o modelo resulta en .

No modelo visto ata agora, utilizábase , polo que os pesos adestrados no axuste fino non se escalaban. Un valor de alfa maior que o rango indica que se lle quere dar máis importancia aos pesos adestrados de LoRA, pois o valor que obteñamos do axuste fino agrándase, ao estar multiplicado por un número maior que 1. Un valor de alfa menor que o rango daríalle máis importancia aos pesos do modelo base. En xeral, aconséllase tomar , aínda que dependendo do problema a resolver, cómpre probar diferentes valores deste hiperparámetro para ver cal é o máis axeitado á nosa casuística.

 Notas 

 Véxase tamén 
 Outros artigos 
 Axuste fino
 Transformador (modelo de aprendizaxe automática)
 Modelo de linguaxe de grande escala
 Rede neural artificial
 Intelixencia artificial

Categoría:Intelixencia artificial
Categoría:Aprendizaxe profunda