Affinamento efficiente del modello con adattatore bottleneck

Perfezionamento efficace del modello con adattatore bottleneck

Come migliorare i modelli basati su Transformer con gli adattatori bottleneck

Foto di Karolina Grabowska: https://www.pexels.com/photo/set-of-modern-port-adapters-on-black-surface-4219861/

Il retraining è una delle cose più comuni che possiamo fare per ottenere migliori prestazioni da un modello di deep learning sul nostro specifico compito. Il tempo necessario per eseguire il retraining di un modello corrisponde generalmente alla sua dimensione: maggiore è la dimensione del modello, maggiore è il tempo necessario per eseguire il retraining.

Credo che possiamo essere d’accordo sul fatto che, al giorno d’oggi, i modelli di deep learning come quelli basati su Transformer stanno diventando sempre più sofisticati. In generale, questa è una cosa positiva ma comporta un’inconveniente: tendono ad avere un elevato numero di parametri. Di conseguenza, il retraining di modelli di grandi dimensioni sta diventando sempre più difficile da gestire e abbiamo bisogno di un modo più efficiente per farlo.

In questo articolo, discuteremo uno dei diversi metodi efficienti di retraining chiamato adattatore bottleneck. Sebbene possiate applicare questo metodo a qualsiasi modello di deep learning, ci concentreremo solo sulla sua applicazione ai modelli basati su Transformer.

La struttura di questo articolo è la seguente: innanzitutto, effettueremo un retraining normale di un modello BERT su un dataset specifico. Successivamente, inseriremo alcuni adattatori bottleneck nel nostro modello BERT con l’aiuto della libreria adapter-transformers per vedere come possono aiutarci a rendere il processo di retraining più efficiente.

Prima di eseguire il retraining del modello, iniziamo con il dataset che useremo.

Informazioni sul Dataset

Il dataset che stiamo per utilizzare contiene diversi tipi di testi relativi alla salute mentale raccolti da Reddit (con licenza CC-BY-4.0). Il dataset stesso è adatto per compiti di classificazione del testo, in cui possiamo predire se un dato testo ha un tono depressivo o meno. Diamo un’occhiata a un esempio.

!pip install datasetsfrom datasets import load_datasetdataset = load_dataset("mrjunos/depression-reddit-cleaned")print(dataset['train'][2])'''{'text': 'anyone else instead of sleeping more when depressed stay up all night to avoid the next day from coming sooner may be the social anxiety in me but life is so much more peaceful when everyone else is asleep and not expecting thing of you', 'label': 1}'''