Ottimizzazione dei modelli AI per la generazione di articoli

Published on novembre 19,2021

Tuning AI Models for Assessment Content Generation

Di Charles Foster

In Finetune, stiamo costruendo soluzioni AI per affrontare alcuni dei problemi più impegnativi nella tecnologia educativa, inclusa la generazione automatizzata di contenuti e la classificazione e raccomandazioni di risorse di apprendimento alimentate da AI. Poiché l'argomento che i nostri strumenti devono trattare spazia dall'istruzione K-12 allo sviluppo della forza lavoro, stiamo investendo pesantemente in metodi che ci consentano di ampliare la portata e la profondità di ciò che i nostri modelli coprono. I componenti chiave di questo approccio sono metodi flessibili per addestrare reti neurali specializzate in domini in cui i modelli di uso generale sono insufficienti. In questo post del blog, vorrei condividere un po' del nostro viaggio nell'esplorare questi metodi.

Fine-tuning

Il fine-tuning tipico dei modelli di linguaggio neurale comporta l'ottimizzazione simultanea di tutti i loro parametri addestrabili, che possono arrivare a molte miliardi per reti come GPT-J. A scale come queste, sia il fine-tuning che i processi di inferenza non sono banali, rendendo difficile il deployment su larga scala di questi. Nelle nostre indagini, alcuni problemi chiave sembravano essere i più importanti:

  • Il semplice eseguire questi modelli transformer già preme contro i limiti della memoria GPU (VRAM), e durante il fine-tuning c'è una relazione diretta tra il numero di parametri ottimizzati e la quantità di memoria aggiuntiva consumata.
  • Modificando tutti i parametri nella rete, il flusso di informazioni appreso durante il pre-addestramento può essere interrotto, risultando in dimenticanza e perdita di capacità di few-shot.
  • Servire un modello multi-gigabyte personalizzato per ogni caso d'uso creerebbe un'inaccettabile latenza e oneri di costo.

Queste preoccupazioni combinate ci hanno motivato a esplorare altri metodi dalla recente letteratura per adattare i nostri modelli di linguaggio neurale. Fortunatamente, nell'ultimo anno, il campo della ricerca sull'elaborazione del linguaggio naturale ha sviluppato una serie di metodi per ridurre il costo della personalizzazione del comportamento dei modelli di linguaggio pre-addestrati.

Prompt Tuning

L'approccio originale che abbiamo perseguito è chiamato Prompt Tuning o Soft Prompting (Lester et al. 2021). In questo metodo, i parametri della rete dal pre-addestramento sono mantenuti fermi. Invece, aggiungiamo un piccolo numero di vettori di embedding apprendibili (tipicamente da 10 a 20) davanti ai token del prompt di input, e adattiamo questi embedding con il consueto obiettivo di modellazione del linguaggio su un dataset di fine-tuning. Questi embedding non rappresentano token di linguaggio; possiamo invece considerarli come un deposito denso di contesto su cui la rete può condizionarsi—tramite il meccanismo di attenzione—mentre fa previsioni sui token nella sequenza.


Il prompt tuning aggiunge solo un piccolo costo di runtime al modello, poiché i soft prompt sono nell'ordine dei kilobyte e possono essere eseguiti attraverso la rete in parallelo. Queste caratteristiche li rendono attraenti per servire molti utenti concorrenti, come hanno indicato i recenti deployment della tecnica in AI storytelling. Tuttavia, integrare i soft prompt in framework popolari come transformers di HuggingFace è complesso, poiché le interfacce sono principalmente progettate per operare su sequenze di indici di token piuttosto che su vettori densi. Inoltre, man mano che viene aggiunto più contesto tra il soft prompt e la generazione, iniziamo a vedere squilibri tra la forza del condizionamento sul soft prompt e quello sul contesto dei token. Mantenere la capacità di aggiungere in modo flessibile centinaia di token di contesto a runtime era importante per noi, poiché fornisce ulteriori leve di controllo nel processo di creazione degli elementi. Se vogliamo guidare il modello a concentrarsi su contenuti di una particolare pagina di un libro di testo, o a creare un elemento di comprensione della lettura, o a fornire esempi di few-shot, la contestualizzazione a lungo termine è importante.

Low Rank Adapters (LoRA)

Successivamente siamo passati a un metodo chiamato LoRA o Low Rank Adapters (Hu et al. 2021). Questa tecnica è stata sviluppata da ricercatori di Microsoft che lavorano su modelli delle dimensioni di GPT-3 e si basa su approcci di adattatori precedenti. Se pensiamo a un transformer come a un raffinamento progressivo dei suoi stati latenti di token con ogni layer residuo, il concetto di un adattatore è aggiungere un piccolo delta dipendente dall'input (inizializzato a un no-op) a quei latenti in un dato layer. Questa leggera spinta è quindi in grado di modulare il suo comportamento a valle enfatizzando, ad esempio, le parti dell'input che sono rilevanti per il compito.


Gli adattatori a bassa rank sono un tipo di adattatore che mira a uno spazio sottostante di bassa rank, il che riduce il numero di nuovi parametri che dobbiamo addestrare (da D2 a 2 × D × r, dove D è nell'ordine dei millenni). Come con il soft prompting, manteniamo i parametri originali della rete fermi per preservare qualsiasi conoscenza contengano dal pre-addestramento, e regoliamo solo questi nuovi parametri dell’adattatore. Nei nostri test interni, abbiamo visto buoni indicatori da LoRA. Oltre a consentirci di adattare grandi modelli con budget hardware ridotti, i modelli con layer di adattatori intercalati mantengono anche gran parte della loro originale capacità di few-shot mentre si adattano ancora al dominio target. È degno di nota che integrare adattatori di bassa rank in altri framework è semplice, poiché possiamo semplicemente scambiare i layer lineari esistenti con layer lineari + layer di adattatore secondo necessità.

Proseguire

Per dare un'idea del tipo di miglioramenti che abbiamo visto nelle nostre esplorazioni, di seguito condividiamo una piccola selezione di generazioni da modelli addestrati con diversi approcci di tuning. Questi elementi sono stati tutti generati utilizzando gli stessi tre prompt di input relativi alla somministrazione di assistenza infermieristica: il primo si è concentrato sulla priorità delle esigenze di più clienti e il secondo sull'azione in un contesto di squadra.

Elemento #1: Un'infermiera sta valutando un cliente programmato per un intervento chirurgico ambulatoriale. Quale dei seguenti pazienti dovrebbe valutare successivamente? (A) Un paziente con diabete di tipo 1 (B) Un paziente con pancreatite acuta (C) Un paziente che richiede terapia antibiotica endovenosa (D) Un paziente con malattia di Crohn Elemento #2: Un cliente è stato ricoverato in ospedale con la diagnosi di insufficienza cardiaca congestizia. La madre del cliente rifiuta il trattamento. Quale delle seguenti azioni dovrebbe intraprendere l'infermiera? (A) Notificare il fornitore della situazione. (B) Controllare l'elenco dei farmaci del paziente. (C) Controllare la cartella clinica del cliente. (D) Notificare il medico del cliente della condizione del cliente.

Elemento #3: Un'infermiera sta valutando un paziente nell'unità pediatrica. Il cliente è programmato per un'analisi diagnostica, inclusa una radiografia del torace. Quale dei seguenti pazienti dovrebbe pianificare di valutare successivamente l'infermiera? (A) Un bambino che ha polmonite e sta vivendo febbre (B) Un bambino che ha un'eruzione cutanea e non sta rispondendo a un farmaco (C) Un bambino che ha febbre e ha una temperatura >100.4 (D) Un bambino che ha febbre e un'eruzione cutanea Elemento #4: Un cliente con insufficienza renale è in ospedale ed è programmato per un trapianto renale. Il cliente ha una forte convinzione che il chirurgo per il trapianto sia incompetente. Il cliente rifiuta di consentire a un medico di un altro ospedale di eseguire il trapianto. Quale delle seguenti azioni dovrebbe intraprendere l'infermiera responsabile? (A) Prendere una dichiarazione dal cliente che il chirurgo per il trapianto è competente e darla al chirurgo per il trapianto. (B) Chiedere al cliente una dichiarazione firmata a sostegno della sua affermazione. (C) Contattare il chirurgo per il trapianto e scoprire perché il cliente rifiuta di consentire al chirurgo di un altro ospedale di eseguire il trapianto. (D) Informare il chirurgo per il trapianto che il cliente sta rifiutando il trapianto.

Elemento #5: Un'infermiera sta pianificando di assegnare clienti a varie stazioni a letto. Quale dei seguenti clienti dovrebbe l'infermiera assegnare alla stazione a letto più vicina alla stazione degli infermieri? (A) Un cliente che ha una diagnosi sospetta di embolia polmonare e richiede una tomografia computerizzata (CT) (B) Un cliente che ha bisogno di assistenza per un movimento intestinale (C) Un cliente che ha un'indicazione di emergenza per una radiografia del torace (D) Un cliente che richiede una radiografia del torace perché ha una tosse Elemento #6: Un LPN sta assistendo un cliente con un catetere urinario permanente e chiede all'infermiera di aiutarla a pulire il catetere. Quale delle seguenti azioni dovrebbe intraprendere l'infermiera? (A) Spiegare al cliente che dovrà fornire la soluzione di pulizia e dovrà ottenere il consenso del cliente per la procedura. (B) Chiedere aiuto all'LPN. (C) Offrire di aiutare il cliente a pulire il catetere. (D) Assicurare all'LPN che l'infermiera la assisterà.

Possiamo osservare che, mentre i migliori elementi del modello di base sono per lo più fluenti e logicamente coerenti, tendono a essere poco vincolati (come nel caso #1) o richiedere molto poca conoscenza del dominio infermieristico (come nel caso #3). Rispetto agli elementi di base, gli elementi provenienti dai modelli di prompt tuning e low-rank adapter contengono maggiori dettagli nei loro stimoli, radici e opzioni. L'argomento è rilevante per il dominio, richiedendo conoscenze specifiche nella gestione dell'assistenza infermieristica piuttosto che fare affidamento solo sulla conoscenza di base. Inoltre, gli elementi del modello low-rank adapter presentano una forma più coerente. Ad esempio, gli elementi si riferiscono costantemente al “cliente” piuttosto che al “paziente”, in conformità con il linguaggio che probabilmente apparirebbe nelle valutazioni (confronta #5 con #1 e #3). Traccia anche con successo i riferimenti a più individui all'interno di uno scenario (confronta #6 con #4).

I miglioramenti nella copertura del dominio, nella coerenza stilistica e nella coerenza logica possono tradursi in miglioramenti significativi nell'utilità dei modelli di linguaggio neurale. Questo è solo l'inizio: man mano che la tecnologia matura, verranno scoperti ancora più metodi per creare modelli di linguaggio naturale personalizzati e controllabili su larga scala. E man mano che questi metodi vengono scoperti, continueremo a incorporare il meglio dall'accademia, dall'industria e dalla ricerca indipendente nei prodotti di Finetune.

 

Un sincero ringraziamento a Nick Koprowicz, Jesse Hamer, Saad Khan e Ogden Morse per aver fornito un feedback gentile e utile nello sviluppo di questo post del blog.

 

Riferimenti

Hu, E. J., Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., … & Chen, W. (2021). Lora: Low-rank adaptation of large language models. arXiv preprint arXiv:2106.09685.

Lester, B., Al-Rfou, R., & Constant, N. (2021). The power of scale for parameter-efficient prompt tuning. arXiv preprint arXiv:2104.08691.