Phi-3 e l'inizio di LLM per iPhone ad alte prestazioni |  di Matthew Gunton |  Maggio 2024

 | Intelligenza-Artificiale

Ci sono alcuni concetti chiave da conoscere prima di immergerci nell'architettura. Se li conosci già, sentiti libero di passare alla sezione successiva.

Quella di una modella parametri fare riferimento al numero di pesi e pregiudizi che il modello apprende durante l'addestramento. Se disponi di 1 miliardo di parametri, avrai 1 miliardo di pesi e pregiudizi che determinano le prestazioni del modello. Più parametri hai, più complessa può essere la tua rete neurale. UN Testa si riferisce al numero di vettori chiave, valore e query di cui dispone il meccanismo di auto-attenzione in un Transformer. Strati si riferisce al numero di segmenti neurali che esistono all'interno della rete neurale del Transformer, dove le dimensioni nascoste sono il numero di neuroni all'interno di un tipico strato nascosto.

Tokenizzatore è il componente software che convertirà il testo immesso in un incorporamento con cui funzionerà il trasformatore. Dimensione del vocabolario si riferisce al numero di token univoci su cui viene addestrato il modello. IL struttura a blocchi di un trasformatore è il modo in cui ci riferiamo alla combinazione di strati, teste, funzioni di attivazione, tokenizzatore e normalizzazioni dei livelli che verrebbero scelti per un modello specifico.

Figura 2 da “GQA: formazione di modelli di trasformatore multi-query generalizzati da
Checkpoint multitesta”

Attenzione alle query raggruppate (GQA) è un modo per ottimizzare l'attenzione di più teste per ridurre il sovraccarico computazionale durante l'addestramento e l'inferenza. Come puoi vedere dall'immagine qui sotto, GQA adotta un approccio intermedio: anziché accoppiare 1 valore e 1 chiave a 1 query, adottiamo un approccio 1:1:M, con molti più piccoli dell'intero corpo delle query . Questo viene fatto per ottenere comunque i vantaggi in termini di costi di formazione derivanti dall'attenzione multi-query (MQA), riducendo al minimo il degrado delle prestazioni che vediamo a seguito di ciò.

Cominciamo con l'architettura dietro questo modello. I ricercatori hanno rilasciato 3 diversi modelli di soli decoder, phi-3-mini, phi-3-piccolo, E phi-3-medio, con diversi iperparametri per ciascuno.

  • phi-3-mini
    – 3,8 miliardi di parametri
    – 32 teste
    – 32 strati
    – 3072 dimensioni nascoste
    – Lunghezza del contesto predefinita del token 4k
    – Dimensione del vocabolario 32064
    – pesi memorizzati come bfloat16
    – addestrato su 3,3 trilioni di token
  • phi-3-piccolo
    – 7 miliardi di parametri
    – 32 teste
    – 32 strati
    – 4096 dimensioni nascoste
    – Lunghezza del contesto predefinita del token 8k
    – 100352 dimensioni del vocabolario
    – pesi memorizzati come bfloat16
    – addestrato su 4,8 trilioni di token
  • phi-3-medio
    – 14 miliardi di parametri
    – 40 teste
    – 40 strati
    – 3072 dimensioni nascoste
    – addestrato su 4,8 trilioni di token

Entrando in alcune delle differenze qui, il phi-3-mini il modello è stato addestrato utilizzando la tipica attenzione di più teste. Anche se non menzionato nel documento, il mio sospetto è che, poiché il modello è grande circa la metà degli altri due, i costi di formazione associati al multi-testa non fossero discutibili. Naturalmente quando hanno ingrandito phi-3-piccolohanno optato per l'attenzione alle query raggruppate, con 4 query collegate a 1 chiave.

Inoltre, hanno mantenuto phi-3-mini struttura a blocchi il più vicino possibile alla struttura LLaMa-2. L'obiettivo qui era consentire alla comunità open source di continuare la propria ricerca su LLaMa-2 con Phi-3. Questo ha senso come modo per comprendere ulteriormente il potere di quella struttura a blocchi.

Tuttavia, phi-3-piccolo NON ha utilizzato la struttura a blocchi di LLaMa, scegliendo di utilizzare il file tiktoken tokenizzatore, con strati alternati di attenzione densa e un nuovo blocco di attenzione sparsa. Inoltre, hanno aggiunto il 10% di dati multilingue al set di dati di addestramento per questi modelli.

Analogamente a Phi-2, i ricercatori hanno investito principalmente in dati di qualità. Hanno utilizzato il paradigma simile del “valore educativo” utilizzato in precedenza durante la generazione dei dati per addestrare il modello, scegliendo di utilizzare una quantità di dati significativamente maggiore rispetto all’ultima volta. Hanno creato i loro dati in 2 fasi.

La fase 1 prevedeva la ricerca di dati web che ritenevano di alto “valore educativo” per l’utente. L’obiettivo qui è fornire conoscenze generali al modello. La Fase 2 prende quindi un sottoinsieme dei dati della Fase 1 e genera dati che insegnerebbero al modello come ragionare logicamente o acquisire competenze specifiche.

La sfida qui era garantire che il mix di dati di ciascun corpus fosse appropriato per la scala del modello da addestrare (ad es phi-3-piccolo contro phi-3-mini). Questa è l'idea alla base di un regime di “dati ottimali”, in cui i dati forniti al LLM per l'addestramento gli conferiscono la migliore capacità per la sua struttura a blocchi. In altre parole, se ritieni che i dati siano un elemento distintivo chiave per la formazione di un buon LLM, trovare la giusta combinazione di competenze per mostrare il modello tramite i tuoi dati può essere altrettanto fondamentale quanto trovare buoni dati. I ricercatori hanno sottolineato che volevano che il modello avesse un ragionamento più forte delle capacità di conoscenza, con il risultato di scegliere più dati dal corpus della Fase 2 che dalla Fase 1.

figura 2 dalla carta evidenziando una potenziale relazione per l’ottimalità dei dati

È interessante notare che quando si stavano allenando phi-3-medio con più o meno la stessa combinazione di dati che hanno addestrato phi-3-piccolohanno notato che i miglioramenti dai parametri 7B a 14B erano molto più limitati che da 3.8B a 7B. Gli autori sospettano che questa non sia una limitazione della struttura a blocchi, ma piuttosto della combinazione di dati utilizzata per l'addestramento phi-3-medio.

Il team ha utilizzato sia il Supervised Fine Tuning (SFT) che l'ottimizzazione diretta delle preferenze (DPO) per migliorare il modello dopo l'addestramento. Chi è interessato ad a per un'analisi approfondita del DPO, puoi consultare il post del mio blog qui. Il fine tuning supervisionato è un tipo di apprendimento di trasferimento in cui utilizziamo un set di dati personalizzato per migliorare le capacità di LLM su quel set di dati. Gli autori hanno utilizzato SFT per migliorare la capacità del modello in diversi ambiti come matematica, codifica, ragionamento e sicurezza. Hanno quindi utilizzato DPO per l'ottimizzazione della chat per allontanarla dalle risposte che volevano evitare e indirizzarla verso risposte ideali.

È in questa fase che gli autori hanno ampliato la finestra di contesto di phi-3-mini da 4k token a 128k token. La metodologia utilizzata per farlo si chiama Long Rope. Gli autori affermano che le prestazioni sono coerenti tra i 2 tipi di contesto, il che è un grosso problema dato l'enorme aumento della lunghezza del contesto. Se c'è sufficiente interesse, scriverò un post separato sul blog sui risultati contenuti in quell'articolo.

Anche se questi modelli sono piccoli, per farli funzionare sul tuo telefono è comunque necessaria un'ulteriore minimizzazione. In genere i pesi per un LLM vengono archiviati come float; per esempio, i pesi originali di Phi-3 erano bfloat16ciò significa che ciascun peso occupa 16 bit in memoria. Anche se 16 bit possono sembrare banali, se si tiene conto che nel modello sono presenti nell'ordine di 10⁹ parametri, ci si rende conto di quanto velocemente si somma ogni bit aggiuntivo.

Per aggirare questo problema, gli autori hanno condensato i pesi da 16 bit a 4 bit. L'idea di base è ridurre il numero di bit necessari per memorizzare ciascun numero. Per un esempio concettuale, il numero 2.71828 potrebbe essere condensato in 2.72. Anche se si tratta di un'operazione con perdite, cattura comunque una buona parte delle informazioni occupando molto meno spazio di archiviazione.

Figura 1 dalla carta

Gli autori hanno eseguito il pezzo quantizzato su un iPhone con il chip A16 e hanno scoperto che poteva generare fino a 12 token al secondo. Per fare un confronto, un MacBook M1 con LLaMa-2 Quantized a 4 bit funziona a circa 107 token al secondo. La generazione di token più veloce che ho visto (Groq) ha generato token a una velocità di 853,35 token al secondo. Dato che questo è solo l'inizio, è notevole la velocità con cui riusciamo a vedere i token generati su un iPhone con questo modello. Sembra probabile che la velocità di inferenza non potrà che aumentare.

Una limitazione di un modello piccolo è che ha meno posti in cui archiviare le informazioni all'interno della sua rete. Di conseguenza, vediamo che Phi-3 non funziona così bene come modelli come LLaMa-2 su compiti che richiedono ampi ambiti di conoscenza.

Gli autori suggeriscono che abbinando Phi-3 a un motore di ricerca le capacità del modello miglioreranno in modo significativo. Se questo è il caso, ciò mi fa pensare che la Retrieval Augmented Generation (RAG) probabilmente resterà, diventando una parte fondamentale per aiutare i modelli piccoli a essere altrettanto performanti di quelli più grandi.

Figura 4 dalla carta evidenziando come la ricerca può migliorare le prestazioni di Phi-3

In chiusura, stiamo assistendo all'inizio di modelli più piccoli altamente performanti. Sebbene l’addestramento di questi modelli si basi ancora in larga misura su hardware performante, la loro inferenza sta diventando sempre più democratizzata. Questo introduce alcuni fenomeni interessanti.

Innanzitutto, i modelli che possono essere eseguiti localmente possono essere quasi completamente privati, consentendo agli utenti di fornire a questi LLM dati che altrimenti potrebbero non sentirsi a proprio agio nell'inviare su Internet. Ciò apre la porta a più casi d’uso.

In secondo luogo, questi modelli renderanno l’hardware mobile ancora più performante. Di conseguenza, mi aspetterei di vedere più Systems on Chips (SoC) sugli smartphone di fascia alta, in particolare SoC con memoria condivisa tra CPU e GPU per massimizzare la velocità di inferenza. Inoltre, l’importanza di avere interfacce di qualità con questo hardware sarà fondamentale. Librerie come MLX per Apple Silicon saranno probabilmente necessarie per tutti i nuovi concorrenti hardware nello spazio dell'hardware consumer.

In terzo luogo, poiché questo documento mostra che i dati di alta qualità possono in molti modi superare la maggiore complessità della rete in un LLM, la corsa non solo per trovare ma generare dati di alta qualità non potrà che aumentare.

È un momento emozionante per costruire.

Fonte: towardsdatascience.com

Lascia un commento

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