Mentre la "L" nei modelli linguistici di grandi dimensioni (LLM) suggerisce l'uso su vasta scala, la realtà è più complessa. Alcuni LLM contengono miliardi di parametri, altri funzionano in modo efficace con molto meno.
Dai un'occhiata ad alcuni esempi reali e alle implicazioni pratiche delle diverse dimensioni dei modelli.
Dimensioni e classi di dimensioni degli LLM
In qualità di sviluppatori web, tendiamo a pensare alle dimensioni di una risorsa come alle dimensioni di download. Le dimensioni documentate di un modello si riferiscono invece al numero di parametri. Ad esempio, Gemma 2B indica Gemma con 2 miliardi di parametri.
gli LLM possono avere centinaia di migliaia, milioni, miliardi o persino trilioni di parametri.
Gli LLM più grandi hanno più parametri rispetto ai modelli più piccoli, il che consente loro di acquisire relazioni linguistiche più complesse e gestire i prompt più specifici. Vengono spesso addestrati su set di dati più grandi.
Avrai notato che alcune dimensioni di modelli, ad esempio 2 o 7 miliardi, sono comuni. ad esempio Gemma 2B, Gemma 7B o Mistral 7B. Le classi di dimensioni dei modelli sono raggruppamenti approssimativi. Ad esempio, Gemma 2B ha circa 2 miliardi di parametri, ma non esattamente.
Le classi di dimensioni dei modelli offrono un modo pratico per valutare le prestazioni dei modelli LLM. Sono come le classi di peso nel pugilato: i modelli appartenenti alla stessa classe di dimensioni sono più paragonabili. Due modelli 2 miliardi dovrebbero offrire prestazioni simili.
Detto questo, un modello più piccolo può fornire le stesse prestazioni di un modello più grande per attività specifiche.
![Screenshot delle caselle di controllo delle dimensioni del modello HuggingFace.](https://web.developers.google.cn/static/articles/llm-sizes/image/model-sizes-hugging-face.png?authuser=5&hl=it)
Anche se non sempre vengono comunicate le dimensioni dei modelli per i modelli LLM più recenti e all'avanguardia, come GPT-4 e Gemini Pro o Ultra, si ritiene che siano nell'ordine di centinaia di miliardi o trilioni di parametri.
Non tutti i modelli indicano il numero di parametri nel nome. Alcuni modelli sono suffissi con il numero di versione. Ad esempio, Gemini 1.5 Pro si riferisce alla versione 1.5 del modello (successiva alla versione 1).
LLM o no?
Quando un modello è troppo piccolo per essere un LLM? La definizione di LLM può essere un po' fluida all'interno della community di IA e ML.
Alcuni considerano solo i modelli più grandi con miliardi di parametri come veri LLM, mentre i modelli più piccoli, come DistilBERT, sono considerati semplici modelli NLP. Altri includono modelli più piccoli, ma comunque potenti, nella definizione di LLM, sempre come DistilBERT.
LLM più piccoli per casi d'uso on-device
Gli LLM più grandi richiedono molto spazio di archiviazione e molta potenza di calcolo per l'inferenza. Devono essere eseguite su potenti server dedicati con hardware specifico (come le TPU).
Una cosa che ci interessa, in qualità di sviluppatori web, è sapere se un modello è abbastanza piccolo da essere scaricato ed eseguito sul dispositivo di un utente.
Ma è una domanda difficile a cui rispondere. A oggi, non è facile capire "questo modello può essere eseguito sulla maggior parte dei dispositivi di fascia media", per diversi motivi:
- Le funzionalità del dispositivo variano notevolmente a seconda delle specifiche di memoria, GPU/CPU e altro ancora. Uno smartphone Android di fascia bassa e un laptop NVIDIA® RTX sono molto diversi. Potresti avere alcuni punti dati relativi ai dispositivi utilizzati dagli utenti. Non abbiamo ancora una definizione di un dispositivo di base utilizzato per accedere al web.
- Un modello o il framework in cui viene eseguito potrebbe essere ottimizzato per l'esecuzione su determinati hardware.
- Non esiste un modo programmatico per determinare se un LLM specifico può essere scaricato ed eseguito su un dispositivo specifico. La capacità di download di un dispositivo dipende, tra gli altri fattori, dalla quantità di VRAM disponibile sulla GPU.
Tuttavia, abbiamo alcune conoscenze empiriche: oggi, alcuni modelli con pochi milioni o pochi miliardi di parametri possono essere eseguiti nel browser su dispositivi di livello consumer.
Ad esempio:
- Gemma 2B con l'API MediaPipe LLM Inference (adatta anche a dispositivi che utilizzano solo CPU). Prova.
- DistilBERT con Transformers.js.
Questo è un campo in fase iniziale. Puoi aspettarti che il panorama si evolva:
- Grazie alle innovazioni di WebAssembly e WebGPU, il supporto di WebGPU, che arriva in un maggior numero di librerie, nuove librerie e ottimizzazioni, si aspetta che i dispositivi degli utenti siano sempre più in grado di eseguire in modo efficiente LLM di varie dimensioni.
- È probabile che gli LLM più piccoli e ad alte prestazioni diventino sempre più comuni, tramite le tecniche di riduzione emergenti.
Considerazioni sugli LLM più piccoli
Quando lavori con LLM più piccoli, dovresti sempre tenere conto delle prestazioni e delle dimensioni di download.
Rendimento
La capacità di ogni modello dipende in gran parte dal tuo caso d'uso. Un LLM più piccolo perfezionato per il tuo caso d'uso potrebbe avere prestazioni migliori di un LLM generico più grande.
Tuttavia, all'interno della stessa famiglia di modelli, gli LLM più piccoli sono meno capaci dei loro controparti più grandi. Per lo stesso caso d'uso, in genere sono necessari più lavoro di progettazione dei prompt quando si utilizzano un LLM più piccolo.
![Screenshot del riquadro Rete di Chrome DevTools.](https://web.developers.google.cn/static/articles/llm-sizes/image/performance.png?authuser=5&hl=it)
Fonte: HuggingFace Open LLM Leaderboard, aprile 2024
Dimensione download
Maggiore è il numero di parametri, maggiori saranno le dimensioni di download, il che incide sulla possibilità che un modello, anche se considerato piccolo, possa essere ragionevolmente scaricato per i casi d'uso sul dispositivo.
Sebbene esistano tecniche per calcolare le dimensioni di download di un modello in base al numero di parametri, questo può essere complesso.
A partire dall'inizio del 2024, le dimensioni di download dei modelli sono raramente documentate. Pertanto, per i casi d'uso sul dispositivo e nel browser, ti consigliamo di esaminare empiricamente le dimensioni di download nel riquadro Rete di Chrome DevTools o con altri strumenti per sviluppatori del browser.
![Screenshot del riquadro Rete di Chrome DevTools.](https://web.developers.google.cn/static/articles/llm-sizes/image/download-size.png?authuser=5&hl=it)
Gemma viene utilizzata con l'API MediaPipe LLM Inference. DistilBERT viene utilizzato con Transformers.js.
Tecniche di riduzione dei modelli
Esistono diverse tecniche per ridurre in modo significativo i requisiti di memoria di un modello:
- LoRA (Low-Rank Adjustation): tecnica di ottimizzazione in cui le ponderazioni pre-addestrati vengono bloccati. Scopri di più sulla LoRA.
- Ponderazione: rimuovi dal modello le ponderazioni meno importanti per ridurne le dimensioni.
- Quantizzazione: riduce la precisione delle ponderazioni da numeri in virgola mobile (ad es. a 32 bit) a rappresentazioni a bit più bassi (ad esempio a 8 bit).
- Distillazione delle conoscenze: addestrare un modello più piccolo per simulare il comportamento di un modello preaddestrato più grande.
- Condivisione dei parametri: utilizzare le stesse ponderazioni per più parti del modello, riducendo il numero totale di parametri univoci.