Trasformatori gerarchici — parte 2 |  di Mina Ghashami |  Ottobre 2023

 | Intelligenza-Artificiale

L’attenzione gerarchica è più veloce

Questo articolo richiede la conoscenza dei trasformatori standard e del loro funzionamento. Se sei un principiante e desideri conoscere i trasformatori, dai un’occhiata a Trasformatore per principianti articolo.

In Trasformatore gerarchico – parte 1 abbiamo definito cosa intendiamo per “trasformatori gerarchici” e abbiamo esaminato uno dei lavori più importanti in questo ambito chiamato Clessidra.

In questo articolo, continueremo la linea di lavoro esaminando un’altra opera ben nota chiamata Trasformatori Gerarchici di Attenzione (HAT).

Iniziamo.

Questo metodo è stato inizialmente proposto per classificare documenti lunghi, tipicamente lunghi migliaia di parole. Un caso d’uso è la classificazione di documenti legali o biomedici che in genere sono molto lunghi.

Tokenizzazione e segmentazione

IL CAPPELLO Il metodo funziona prendendo un documento di input e tokenizzandolo utilizzando il tokenizzatore Byte-Pair Encoding (BPE) che suddivide il testo in sottoparole/token. Questo tokenizzatore viene utilizzato in molti modelli linguistici di grandi dimensioni ben noti come BERT, RoBERTA e la famiglia GPT.

Quindi divide il documento tokenizzato in N pezzi di uguali dimensioni; cioè se S denotare quindi il documento di input S = (C1, …., CN) Sono N pezzi di uguali dimensioni. (In questo articolo, a volte ci riferiamo ai blocchi come segmenti, ma sono lo stesso concetto.) Ogni blocco è una sequenza di K gettoni Ci = (Noi(cls), Noi1…, Settimana-1) che il primo gettone, Wi(cls)è il CLS token che rappresenta il pezzo.

Come vediamo nell’immagine sopra, ogni pezzo è una sequenza di k token, dove il primo token è il CLS gettone.

Architettura del modello

Dopo aver tokenizzato e segmentato la sequenza di input, la invia al file CAPPELLO modello di trasformatore. Il modello HAT è un encoder-trasformatore ed è costituito da due componenti principali:

  1. codificatore a segmenti (SWE): si tratta di un blocco codificatore condiviso che prende in sequenza un segmento (detto anche pezzo) ed elabora il pezzo.
  2. codificatore a segmenti incrociati (CSE): questo è un altro blocco codificatore che accetta i token CLS di tutti i segmenti (ovvero i blocchi) ed elabora le relazioni tra segmenti.

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *