Transfomers: Come si usano?

Icone color1 09

[av_textblock size=” font_color=” color=” av-medium-font-size=” av-small-font-size=” av-mini-font-size=” custom_class=” admin_preview_bg=”]

Transfomers: Come si usano?

Autore: Calogero Zarbo

C’era una volta il Seq2Seq

Il paper “Attention is all you need” è stato l’inizio di tutto quello che attualmente si utilizza per modellare linguaggio e timeseries. Questo passo innovativo non sarebbe stato possibile senza lo sviluppo dell’architettura principale che viene chiama Sequence-to-Sequence (o Seq2Seq). Quest’ultima è una rete neurale che trasforma una data sequenza di elementi, come la sequenza di parole in una frase, in un’altra sequenza.

I modelli Seq2Seq sono particolarmente adatti alla traduzione, in cui la sequenza di parole di una lingua viene trasformata in una sequenza di parole diverse in un’altra lingua. Una scelta popolare per questo tipo di modello sono i modelli basati Long Short Term Memory (LSTM). Quest’ultime sono in grado di generare una sequenza cercando di dare significato all’input ricordando (o dimenticando) le parti che trova importanti (o non importanti). Le frasi, ad esempio, sono dipendenti dalla sequenza poiché l’ordine delle parole è cruciale per la comprensione della frase. 

I modelli Seq2Seq sono costituiti da due componenti principali: l’Encoder ed il Decoder. L’Encoder prende la sequenza di input e la mappa in uno spazio n-dimensionale, detto embedding, per poi essere inserito nel Decoder che lo trasforma in una sequenza di output.

L’Attention

Il meccanismo di attenzione esamina una sequenza di input e decide ad ogni passaggio quali altre parti della sequenza sono importanti. Questo processo è molto simile a quello che facciamo noi ogni giorno quando leggiamo del testo: ci concentriamo sempre sulla parola che si legge ma allo stesso tempo la nostra mente tiene ancora in memoria le parole chiave importanti del testo per fornire un contesto.

Il meccanismo di attention lo si trova nell’encoder in modo da usare l’informazione sulle parole chiavi più importanti per poter generare in modo appropriato la sequenza target. 

Essendo un processo stocastico, avere un solo layer di attention si è scoperto essere limitante, ed così si è arrivati ad avere le multi attention heads, che fanno del transformer la macchina potente che noi impareremo ad utilizzare.

Le applicazioni

L’avvento dei transformer hanno migliorato una serie di applicazioni già esistenti e ne hanno create delle nuove. Dapprima si pensava funzionassero solo sul testo, poi si è dimostrato essere capaci anche di performare bene in Computer Vision, Time Series e quant’altro.

Una volta dimostrata la loro bontà nelle toy application, è arrivato il momento di deployare questi modelli in sistemi di produzione per risolvere problemi reali.

Da qui sono nate delle nuove sfide:

  • La lunghezza della serie
  • La complessità computazionale
  • Le risorse hardware necessarie per il loro utilizzo

Per questo motivo nel nostro corso NLP Hands On 3 ci focalizzeremo nell’investigazione di alcuni sistemi di ottimizzazione sia per l’architettura del transformer stesso, sia per quanto riguarda l’appetito di memoria che questi modelli hanno.

Dopo aver compreso le diverse strategie messe in atto per poter superare il problema della lunghezza massima dell’input e delle risorse di computazione necessarie passeremo a focalizzarci su che cosa effettivamente imparano e vedremo come questi modelli in modo del tutto non supervisionato, riescano ad imparare i concetti all’interno del loro training set come se fossero dei veri e proprio Knowledge Graphs. Infatti un capitolo che affronteremo sarà quello di confrontare KG creati in modo standard versus KG derivati dalla conoscenza imparata in training dal nostro language model basato sui transformers.

Come ultimo esempio di applicazione ci focalizzeremo sulla creazione di sintetizzatori automatici, ossia modelli in grado di generare una versione di senso compiuto del testo in input ma utilizzando molte meno parole. Questo riassunto dovrà contenere tutte le informazioni più salienti dell’input, ed essere allo stesso tempo gradevole nella lettura.

E’ chiaro qui come tutti i concetti descritti precedentemente si fondono sinergicamente in un unico stream di lavoro, nel quale il modello Seq2Seq deve analizzare una sequenza in input per generare in output una sua versione più sintetica, e per farlo deve a livello di Encoder ricordarsi quali erano le parti importanti, e a questo scopo viene in aiuto il sistema di multi attention che aiuta l’intero modello a fissare le parti chiave da utilizzare come cardine per la generazione dell’output.

Solo testo?

I transformer non sono solo in grado di performare nel testo, ma anche in molti altri domini, infatti un capitolo che affronteremo sarà quello relativo alla natura di questi transformers, ed alla loro capacità di essere Universal Computing Engines, ed in questo modo riuscire a praticamente essere presenti in qualsiasi branca di ricerca.

Possiamo trovare transformer per health care, stock option pricing, baking systems e chi più ne ha più ne metta.

Il segreto si nasconde nel numero di parametri e nel modo in cui questi mostri vengono allenati. Per imparare una task più o meno complessa sarà necessario un numero molto grande di parametri del modello, supportato da un numero molto grande di samples in input. 

Se sei interessato a saperne di più visita il nostro e-learning:

https://elearning.academy-dli.com/p/nlp-hands-on-3

[/av_textblock]

Submit your response

Il tuo indirizzo email non sarà pubblicato.