Di Charles Foster
In Finetune, stiamo sviluppando soluzioni di intelligenza artificiale per affrontare alcuni dei problemi più difficili nella tecnologia educativa, tra cui la generazione automatizzata di contenuti e la classificazione e le raccomandazioni delle risorse di apprendimento basate sull'intelligenza artificiale. Poiché l'argomento che i nostri strumenti devono gestire spazia dalla scuola materna alle superiori fino allo sviluppo della forza lavoro, stiamo investendo molto in metodi che ci consentono di ampliare l'ampiezza 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 generici sono insufficienti. In questo post del blog, vorrei condividere un po' del nostro viaggio esplorando questi metodi.
Ritocchi
La tipica messa a punto dei modelli di linguaggio neurale comporta l'ottimizzazione simultanea di tutti i loro parametri addestrabili, che possono arrivare a miliardi per reti come GPT-J. A scale come queste, sia la messa a punto che i processi di inferenza non sono banali, rendendo difficile la loro distribuzione su larga scala. Nelle nostre indagini, alcuni problemi chiave sembravano incombere più di tutti:
- La semplice esecuzione di questi modelli di trasformatori mette già a dura prova i limiti della memoria GPU (VRAM) e durante la messa a punto esiste una relazione diretta tra il numero di parametri ottimizzati e la quantità di memoria aggiuntiva consumata.
- Modificando tutti i parametri della rete, il flusso di informazioni appreso durante la fase di pre-addestramento potrebbe essere interrotto, con conseguente dimenticanza e perdita di capacità di effettuare pochi scatti.
- Fornire un modello multi-gigabyte personalizzato per ogni caso d'uso creerebbe latenza e costi inaccettabili.
Queste preoccupazioni combinate ci hanno motivato a esplorare altri metodi dalla letteratura recente per sintonizzare i nostri modelli di linguaggio neurale. Fortunatamente, nell'ultimo anno la sfera di 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.
Sintonizzazione rapida
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-training vengono mantenuti congelati. Invece, anteponiamo un piccolo numero di vettori di incorporamento apprendibili (in genere da 10 a 20) davanti ai token di prompt di input e ottimizziamo questi incorporamenti con il solito obiettivo di modellazione del linguaggio su un set di dati di messa a punto fine. Questi incorporamenti non rappresentano token del linguaggio; possiamo invece considerarli come un denso archivio di contesto su cui la rete può condizionare, tramite il meccanismo di attenzione , mentre fa previsioni sui token nella sequenza.
La messa a punto dei prompt aggiunge solo un piccolo costo di runtime al modello, poiché i soft prompt sono nell'intervallo dei kilobyte e possono essere eseguiti in parallelo sulla rete. Queste caratteristiche li rendono interessanti per servire molti utenti simultanei, come hanno indicato recenti implementazioni della tecnica nella narrazione AI . Tuttavia, l'integrazione dei soft prompt in framework popolari come i trasformatori di HuggingFace è complessa, poiché le interfacce sono ampiamente progettate per funzionare su sequenze di indici 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 sul contesto token. Mantenere la capacità di aggiungere in modo flessibile centinaia di token di contesto in fase di runtime era importante per noi, poiché fornisce ulteriori leve di controllabilità a grana fine nel processo di creazione degli elementi. Se vogliamo guidare il modello a concentrarsi sul contenuto di una particolare pagina di un libro di testo, o per creare un elemento di comprensione della lettura, o per fornire esempi di pochi scatti, la contestualizzazione di lunga durata è importante.
Adattatori di basso rango (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 lavoravano su modelli di dimensioni GPT-3 e si basa su precedenti approcci di adattatore. Se pensiamo a un trasformatore che affina progressivamente i suoi stati latenti token con ogni strato residuo, il concetto di un adattatore è quello di aggiungere un piccolo delta dipendente dall'input (inizializzato a un no-op) a quei latenti in un dato strato. Questa delicata spinta è quindi in grado di modulare il suo comportamento a valle, ad esempio, enfatizzando le parti dell'input che sono rilevanti per l'attività.
Gli adattatori di basso rango sono un tipo di adattatore che mira a un sottospazio di basso rango, il che riduce il numero di nuovi parametri che dobbiamo addestrare (da D 2 a 2 × D × r, dove D è nell'ordine delle migliaia). Come con il soft prompting, manteniamo congelati i parametri originali della rete 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 mettere a punto modelli di grandi dimensioni con budget hardware ridotti, i modelli con livelli di adattatore intervallati mantengono anche gran parte della loro capacità originale di pochi scatti, pur adattandosi al dominio di destinazione. In particolare, l'integrazione di adattatori di basso rango in altri framework è semplice, poiché possiamo semplicemente sostituire i livelli lineari esistenti con livelli lineari + adattatore, se necessario.
Andando avanti
Per dare un'idea del tipo di miglioramenti che abbiamo visto nelle nostre esplorazioni, di seguito condividiamo una piccola selezione di generazioni di modelli addestrati con diversi approcci di messa a punto. Questi elementi sono stati tutti generati utilizzando gli stessi tre prompt di input relativi all'erogazione dell'assistenza infermieristica: il primo si è concentrato sulla definizione delle priorità per le esigenze di più clienti e il secondo sull'intraprendere azioni in un contesto di team.
Item #1: A nurse is assessing a client who is scheduled for outpatient surgery. Which of the following patients would the nurse evaluate next? (A) A patient with type 1 diabetes (B) A patient with acute pancreatitis (C) A patient who requires intravenous antibiotic therapy (D) A patient with Crohn's disease Item #2: A client is admitted to the hospital with the diagnosis of congestive heart failure. The client's mother is refusing treatment. Which of the following actions should the nurse take? (A) Notify the provider of the situation. (B) Check the patient's medication list. (C) Check the client's medical chart. (D) Notify the client's doctor of the client's condition.
Item #3: A nurse is evaluating a patient on the pediatric unit. The client is scheduled for a diagnostic workup, including a chest radiograph. Which of the following patients should the nurse be planning to evaluate next? (A) A child who has pneumonia and is experiencing fever (B) A child who has a rash and is not responding to a medication (C) A child who has a fever and has a temperature >100.4 (D) A child who has a fever and a rash Item #4: A client with renal failure is in the hospital and is scheduled to undergo a renal transplant. The client has a strong belief that the transplant surgeon is incompetent. The client refuses to allow a doctor from another hospital to perform the transplant. Which of the following actions should the charge nurse take? (A) Take a statement from the client that the transplant surgeon is competent and give it to the transplant surgeon. (B) Ask the client for a signed statement to back up her assertion. (C) Contact the transplant surgeon and find out why the client refuses to allow the surgeon from another hospital to perform the transplant. (D) Inform the transplant surgeon that the client is refusing the transplant.
Item #5: A nurse is planning to assign clients to various bedside stations. Which of the following clients should the nurse assign to the bedside station closest to the nurses' station? (A) A client who has a suspected diagnosis of a pulmonary embolism and requires a computed tomography (CT) scan (B) A client who needs assistance with a bowel movement (C) A client who has an emergency indication for a chest X-ray (D) A client who requires a chest X-ray because she has a cough Item #6: An LPN is caring for a client with an indwelling urinary catheter and is asking the nurse to help her clean the catheter. Which of the following actions should the nurse take? (A) Explain to the client that she will need to provide the cleaning solution and will need to obtain the client's consent for the procedure. (B) Ask the LPN for assistance. (C) Offer to help the client clean the catheter. (D) Assure the LPN that the nurse will assist her.
Possiamo osservare che, mentre i migliori item del modello di base sono in gran parte fluenti e logicamente coerenti, tendono a essere poco vincolati (come nel n. 1) o richiedono una conoscenza molto limitata del dominio infermieristico (come nel n. 3). Rispetto agli item di base, gli item dei modelli di messa a punto rapida e adattatore di basso rango contengono maggiori dettagli nei loro stimoli, radici e opzioni. L'argomento è pertinente al dominio, richiedendo una conoscenza specifica nella gestione dell'assistenza infermieristica piuttosto che basarsi solo sulla conoscenza di base. Inoltre, gli item del modello adattatore di basso rango hanno una forma più coerente. Ad esempio, gli item si riferiscono costantemente al "cliente" anziché al "paziente", in conformità con il linguaggio che probabilmente apparirebbe nelle valutazioni (confronta il n. 5 con il n. 1 e il n. 3). Inoltre, traccia con successo i riferimenti a più individui all'interno di uno scenario (confronta il n. 6 con il n. 4).
I miglioramenti alla copertura di dominio, alla coerenza stilistica e alla 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 tali metodi vengono scoperti, continueremo a incorporare il meglio del mondo accademico, dell'industria e della ricerca indipendente nei prodotti Finetune.
Un sincero ringraziamento a Nick Koprowicz, Jesse Hamer, Saad Khan e Ogden Morse per i loro gentili e utili commenti durante lo sviluppo di questo post del blog.
Riferimenti
Hu, EJ, Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., … e Chen, W. (2021). Lora: Adattamento di basso rango di grandi modelli linguistici. Preprint arXiv arXiv:2106.09685.
Lester, B., Al-Rfou, R., & Constant, N. (2021). Il potere della scala per la messa a punto rapida efficiente in termini di parametri. Preprint arXiv arXiv:2104.08691.