Verso l’IA generativa per l’architettura dei modelli

Alla ricerca dell'IA generativa per l'architettura dei modelli

Come la “MAD” AI ci aiuterà a scoprire il prossimo transformer

Credit: https://unsplash.com/photos/person-wearing-gas-mask-in-grayscale-photography-2PV6wdWVAMM

La rivoluzione del transformer “Attention is All You Need” ha avuto un profondo effetto sulla progettazione delle architetture dei modelli di deep learning. Poco dopo BERT, sono arrivati RoBERTa, ALBERT, DistilBERT, SpanBERT, DeBERTa e molti altri. Poi c’è ERNIE (che si mantiene forte con “Ernie 4.0”), la serie GPT, BART, T5 e così via. Un museo di architetture del transformer si è formato sul pannello laterale di HuggingFace, e il ritmo dei nuovi modelli si è solo accelerato. Pythia, Zephyr, Llama, Mistral, MPT e molti altri, ognuno dei quali lascia il segno in termini di precisione, velocità, efficienza di addestramento e altre metriche.

Con architettura del modello, mi riferisco al grafo computazionale alla base dell’esecuzione del modello. Ad esempio, di seguito è riportato un frammento da Netron che mostra parte del grafo computazionale di T5. Ogni nodo è un’operazione o una variabile (input o output di un’operazione), formando una architettura a grafo dei nodi.

Immagine dell'autore

Anche se esistono molte architetture, siamo abbastanza certi che il futuro porti ancora più modifiche e nuove scoperte. Ma ogni volta, sono i ricercatori umani che devono capire i modelli, fare ipotesi, risolvere i problemi e testarli. Nonostante l’ingegnosità umana sia infinita, il compito di comprendere le architetture diventa sempre più difficile mano a mano che i modelli diventano più grandi e complessi. Con l’AI, forse gli esseri umani possono scoprire architetture di modelli che richiederebbero agli esseri umani molti più anni o decenni per scoprire senza l’assistenza dell’IA.

La progettazione intelligente di modelli (MAD) è l’idea che l’IA generativa possa guidare scienziati e ricercatori di IA verso architetture di modelli migliori e più efficaci più velocemente e più facilmente. Già vediamo grandi modelli di linguaggio (LLM) che forniscono un immenso valore e creatività per tutto, dalla sintesi, all’analisi, alla generazione di immagini, all’assistenza nella scrittura, alla generazione di codice e molto altro. La domanda è: possiamo sfruttare lo stesso ausilio intelligente e creatività per la progettazione dell’architettura del modello? I ricercatori potrebbero essere guidati dall’intuizione e stimolare il sistema di IA con le loro idee, come “auto attenzione che scala in modo gerarchico”, o addirittura per azioni più specifiche come “aggiungi LoRA al mio modello all’ultimo strato”. Associando descrizioni basate su testo delle architetture dei modelli, ad esempio utilizzando Papers with Code, potremmo imparare quali tecniche e nomi sono associati a specifiche architetture di modelli.

Prima di tutto, inizierò spiegando perché l’architettura del modello è importante. Successivamente, parlerò di alcune delle traiettorie verso l’intelligenza MAD nella ricerca di architettura neurale, nell’assistenza al codice e nell’apprendimento dei grafi. Infine, metterò insieme alcuni passaggi del progetto e discuterò alcune implicazioni per la progettazione e l’auto-miglioramento dell’IA tramite la MAD autonoma.

Ritorno all’IA centrata sul modello

La spinta e la coniazione di “data-centric” AI da parte di Andrew Ng sono state molto importanti per il campo dell’IA. Con il deep learning, il ROI per avere dati puliti e di alta qualità è immenso, e questo si realizza in ogni fase dell’addestramento. Per contestualizzare, l’era antecedente a BERT nel mondo della classificazione del testo era un’era in cui si desiderava un’abbondanza di dati, anche a scapito della qualità. Era più importante avere una rappresentazione attraverso esempi che avere esempi perfetti. Questo perché molti sistemi di intelligenza artificiale non utilizzavano embedding pre-addestrati (o non erano buoni, comunque) che potessero essere sfruttati da un modello per applicare una generalizzabilità pratica. Nel 2018, BERT è stato una svolta per le attività di testo, ma ci è voluto ancora più tempo affinché leader e professionisti raggiungessero un consenso e l’idea di “data-centric” AI ha contribuito a cambiare il modo in cui alimentiamo i dati nei modelli di AI.

Immagine Di Autore

Oggi, molti considerano le attuali architetture come “abbastanza buone” e ritengono che sia molto più importante concentrarsi sul miglioramento della qualità dei dati piuttosto che sulla modifica del modello. Esiste ora un grande sforzo nella comunità per ottenere set di dati ad alta qualità per l’addestramento, come ad esempio Red Pajama Data. Infatti, vediamo che molti dei grandi miglioramenti tra i LLM non risiedono nell’architettura del modello, ma nella qualità dei dati e nella metodologia di preparazione degli stessi.

Allo stesso tempo, ogni settimana viene presentato un nuovo metodo che coinvolge una sorta di chirurgia del modello che sta dimostrando di avere un grande impatto sull’efficienza dell’addestramento, sulla velocità di inferenza o sull’accuratezza complessiva. Quando un articolo afferma di essere “il nuovo transformer” come ha fatto RETNET, tutti ne parlano. Perché per quanto siano buone le architetture esistenti, una nuova svolta come l’autoattenzione avrà un profondo impatto sul campo e su cosa l’IA può realizzare in produzione. E anche per piccole svolte, l’addestramento è costoso quindi si desidera ridurre al minimo il numero di volte in cui si addestra. Pertanto, se si ha un obiettivo specifico in mente, MAD (Massima Amministrazione dei Dati) è anche importante per ottenere il massimo rendimento dal proprio investimento.

Le architetture del transformer sono immense e complesse, il che rende più difficile concentrarsi sull’IA centrata sul modello. Siamo in un momento in cui i metodi di IA generativa stanno diventando sempre più avanzati e l’IA intelligente è alla portata.

https://arxiv.org/pdf/1808.05377.pdf

La premessa e l’obiettivo della Ricerca di Architettura Neurale (NAS) sono allineati con l’IA intelligente per alleviare il carico dei ricercatori nel progettare e scoprire le migliori architetture. In generale, ciò è stato realizzato come una sorta di AutoML in cui gli iperparametri includono le configurazioni dell’architettura, e ho visto che è stato incorporato in molte configurazioni di iperparametri.

Un dataset NAS (ad esempio, NAS Benchmark) è un dataset di machine learning, <X, Y>, in cui X è un’architettura di machine learning espressa come un grafico e Y è una metrica di valutazione quando quella architettura viene addestrata e testata su un dataset specifico. I benchmark NAS sono ancora in evoluzione. Inizialmente, la rappresentazione di apprendimento nei benchmark NAS era solo un elenco in ordine, quindi ogni elenco rappresentava un’architettura neurale come una sequenza di operazioni ad esempio [3x3Conv, 10x10Conv, …], ecc. Questo non è abbastanza dettagliato per catturare l’ordinamento parziale che troviamo nelle architetture moderne, come ad esempio le “connessioni a salto” in cui i livelli si alimentano in avanti oltre che ai livelli successivi nel modello. Successivamente, la rappresentazione DARTS ha utilizzato nodi per rappresentare variabili e archi per rappresentare operazioni. Molto recentemente, sono state create nuove tecniche per NAS per evitare la necessità di uno spazio di ricerca predefinito, come ad esempio AGNN che applica NAS per apprendere GNN (Grafo Neural Network) per migliorare le prestazioni sui dataset basati su grafo.

Alla fine della giornata, ci sono solo circa 250 operazioni tensoriali di livello primitivo in una libreria tensoriale di deep learning come TensorFlow o PyTorch. Se lo spazio di ricerca è basato sui principi fondamentali e include tutti i modelli possibili, dovrebbe includere la prossima variazione dell’architettura SOTA nel suo spazio di ricerca. Ma nella pratica, NAS non è configurato in questo modo. Le tecniche possono richiedere l’equivalente di 10 anni di calcolo GPU, ed è in questi casi che lo spazio di ricerca è rilassato e limitato in vari modi. Pertanto, NAS si è concentrato principalmente sulla ricombinazione dei componenti esistenti delle architetture dei modelli. Ad esempio, NAS-BERT ha utilizzato un obiettivo di modellazione mascherata per addestrare variazioni più piccole delle architetture BERT che hanno prestazioni elevate nelle attività derivate di GLUE, funzionando quindi per ridursi o comprimersi in meno parametri. L’Autoformer ha fatto qualcosa di simile con uno spazio di ricerca diverso.

Efficiente NAS (ENAS) supera il problema di dover allenare ed valutare ogni modello nello spazio di ricerca in modo esaustivo. Ciò avviene allenando prima una super rete contenente molti modelli candidati come sottografi che condividono gli stessi pesi. In generale, la condivisione dei parametri tra i modelli candidati rende NAS più pratico e permette alla ricerca di concentrarsi sulla variazione dell’architettura per utilizzare al meglio i pesi esistenti.

MAD basato su testo versus MAD basato su grafo

Dal punto di vista dell’IA generativa, c’è l’opportunità di pre-allenarsi su architetture di modelli e utilizzare questo modello di base per generare architetture come un linguaggio. Ciò potrebbe essere usato anche per NAS, nonché come un sistema di orientamento generale per i ricercatori, ad esempio per l’utilizzo di suggerimenti e suggerimenti basati sul contesto.

La domanda principale da questo punto di vista è se rappresentare le architetture come testo o direttamente come grafi. Abbiamo assistito all’ultima crescita dell’IA per la generazione di codice, e parte di quel codice riguarda le architetture dei modelli di apprendimento approfondito correlato a PyTorch, TensorFlow, Flax, ecc. Tuttavia, la generazione di codice ha numerose limitazioni per questo caso d’uso, principalmente perché gran parte della generazione di codice riguarda la forma superficiale, ossia la rappresentazione testuale.

D’altra parte, i Grafi Neurali (GNN), come i graph transformers, sono molto efficaci perché la struttura del grafo è ovunque, compreso MAD. Il vantaggio di lavorare direttamente sui grafi è che il modello apprende su una rappresentazione sottostante dei dati, più vicina alla verità rispetto alla rappresentazione testuale di livello superficiale. Anche con alcuni lavori recenti per rendere i LLM incredibili nella generazione di grafi, come InstructGLM, ci sono promesse per i trasformatori di grafi nel limite e soprattutto in combinazione con i LLM.

https://arxiv.org/pdf/2308.07134.pdf

Sia che si utilizzino i GNN o i LLM, i grafi sono rappresentazioni migliori rispetto al testo per l’architettura del modello perché ciò che è importante è il calcolo sottostante. L’API di TensorFlow e PyTorch cambia costantemente, e le righe di codice si occupano di più che solo dell’architettura del modello, come i principi di ingegneria del software generale e l’infrastruttura delle risorse.

Ci sono diversi modi per rappresentare le architetture dei modelli come grafi, ed ecco che ne esamino solo alcune categorie. Innanzitutto, ci sono i compilatori di apprendimento automatico come GLOW, MLIR, e Apache TVM. Questi possono compilare codice come il codice PyTorch in rappresentazioni intermedie che possono assumere la forma di un grafo. TensorFlow ha già una rappresentazione di grafo intermedio che si può visualizzare con TensorBoard. C’è anche un formato ONNX che può essere compilato da un modello salvato esistente, ad esempio utilizzando HuggingFace, semplice come:

optimum-cli export onnx --model google/flan-t5-small flan-t5-small-onnx/

Questo grafo ONNX serializzato appare come qualcosa di simile (piccolo estratto):

Image by the author

Un problema di queste rappresentazioni intermedie compilat

Esempio di visualizzazione del grafico Graphbook, immagine dell'autore

Mentre i modelli Graphbook sono semplicemente JSON, sono gerarchici e quindi consentono una migliore gerarchia di astrazione per i livelli del modello. Di seguito, una vista laterale della struttura gerarchica dell’architettura di GPT2.

Immagine che mostra la struttura gerarchica dei grafici Graphbook, con GPT come esempio qui. Immagine completa: https://photos.app.goo.gl/rgJch8y94VN8jjZ5A, immagine dell'autore

Passaggi di MAD

Questo è un progetto per una proposta di MAD generativo. Ho voluto includere questi sottopassi per essere più concreto su come si affronti il compito.

  1. Code-to-Graph. Crea un set di dati MAD dal codice, ad esempio la scheda del modello di HuggingFace, convertendo il modello in un formato grafico come ONNX o Graphbook.
  2. Crea set di dati. Questi sarebbero set di dati come la classificazione del tipo di operazione in un grafo, la classificazione del grafo stesso, la mascheratura/recuperazione di operazioni e collegamenti, la rilevazione quando un grafo è incompleto, la conversione di un grafo incompleto in uno completo, ecc. Questi possono essere auto-supervisionati.
  3. Graph-Tokenizer. Tokenizza il grafo. Ad esempio, fai in modo che ogni variabile nel grafo sia un ID di vocabolario univoco e genera la matrice di adiacenza che può alimentare i livelli GNN.
  4. Progettazione GNN. Sviluppa una GNN che utilizza l’output del tokenizzatore del grafo per passare attraverso i livelli del trasformatore.
  5. Allena e testa. Testa la GNN sui set di dati, e itera.

Una volta sviluppati questi passaggi in maniera più dettagliata, potrebbero essere utilizzati come parte di un approccio NAS per aiutare a guidare la progettazione della GNN (passo 4).

Nota finale: Implicazioni dell’auto-miglioramento

Immagine dell'autore

Voglio fornire alcune note sulle implicazioni dell’MAD autonomo. Le implicazioni dell’IA che può progettare architetture di modelli sono che può migliorare la struttura del proprio cervello. Con una sorta di catena/grafico di processo di pensiero, il modello potrebbe generare iterativamente stati successivi per la propria architettura e testarli.

  1. Inizialmente, l’IA dispone di una architettura di modello, viene addestrata su dati specifici per la generazione di architetture di modelli e può essere sollecitata a generare architetture. Ha accesso alla fonte di addestramento che include la propria progettazione dell’architettura e le fonti di addestramento includono una varietà di test legati alle attività di architettura come la classificazione dei grafi, la classificazione di operazioni/nodi, il completamento di collegamenti, ecc. Questi seguono le attività generali che si trovano nel Open Graph Benchmark.
  2. Inizialmente, a livello di applicazione c’è una sorta di agente che può addestrare e testare le architetture dei modelli e aggiungerle alla fonte di addestramento dell’IA, e forse può sollecitare l’IA con qualche tipo di istruzioni su cosa funziona e cosa non funziona.
  3. Iterativamente, l’IA genera un insieme di nuove architetture di modelli, e l’agente (chiamiamolo MAD-agent) le addestra e le testa, dandogli un punteggio, le aggiunge alla fonte di addestramento, indica al modello di riaddestrarsi, e così via.

In sostanza, invece di utilizzare solo AutoML/NAS per esplorare lo spazio delle architetture dei modelli, apprendere le architetture dei modelli come grafi e poi utilizzare i trasformatori di grafi per apprendere e generare. L’insieme di dati basato su grafi stesso diventa un’architettura di modello rappresentata come grafi. Le architetture dei modelli che rappresentano i set di dati dei grafi e lo spazio delle possibili architetture dei modelli per l’apprendimento dei set di dati dei grafi diventano la stessa cosa.

Cosa implica ciò? Ogni volta che un sistema ha la capacità di migliorarsi, c’è un potenziale rischio di effetto incontrollato. Se si progetta quanto sopra E lo si progetta nel contesto di un agente più complesso, in cui l’agente potrebbe selezionare indefinitamente fonti di dati e compiti e coordinarsi per diventare un sistema di deep learning end-to-end a multi-trilioni di parametri, forse c’è un certo rischio. Ma la parte difficile, non detta, è la progettazione di un agente più complesso, l’allocazione di risorse e le molte difficoltà nel supportare un set più ampio di capacità.

Conclusione

Le tecniche di intelligenza artificiale nell’architettura dei modelli di intelligenza artificiale autonomi (MAD) potrebbero aiutare i ricercatori di intelligenza artificiale a scoprire nuove tecniche innovative in futuro. Storicamente, la MAD è stata affrontata attraverso la ricerca di architettura neurale (NAS). In combinazione con l’IA generativa e i transformer, potrebbero esserci nuove opportunità per aiutare i ricercatori e fare scoperte.