Impronta di carbonio della messa a punto LLM: un caso di studio |  di Kasper Groes Albin Ludvigsen |  Febbraio 2024

 | Intelligenza-Artificiale

Ho ottenuto risultati sorprendenti quando ho misurato le emissioni di carbonio derivanti dalla messa a punto delle istruzioni di un LLM

Foto di Ingmar H su Unsplash

Recentemente LoRA ha messo a punto un LLM danese chiamato Munin-7b-alpha su un set di dati di ottimizzazione delle istruzioni chiamato SkoleGPT-instruct. Durante la procedura di messa a punto ho misurato il consumo energetico e calcolato l’impronta di carbonio. In questo articolo presento i risultati sorprendenti. Puoi trovare il modello Qui.

Munin-7b-alpha è un modello pre-addestrato (o un cosiddetto modello di base), addestrato esclusivamente per generare testo. Per renderli adatti alla configurazione di una chat, i modelli pre-addestrati devono essere bravi a seguire le istruzioni, il che richiede una fase di addestramento successiva chiamata messa a punto delle istruzioni.

A differenza del pre-addestramento, che richiede enormi quantità di dati di testo senza etichetta su cui il modello si addestra in modo auto-supervisionato, la messa a punto delle istruzioni richiede una quantità relativamente modesta di dati, che a loro volta devono essere attentamente curati e annotati.

Si tratta di una procedura di fune-tuning di cui riporto in questo articolo.

Il Munin-7b-alpha ha 7 miliardi di parametri e il set di dati di istruzioni che ho utilizzato è composto da 21.300 campioni. Cioè 21.300 esempi di pronta e buona risposta.

Utilizzando una versione leggermente adattata di questo fantastico modello di quaderno di messa a puntoHo addestrato un LoRA per 1 epoca, ovvero ho mostrato il modello per ciascun campione una volta.

LoRA – adattamento di basso rango – è un’efficiente tecnica di messa a punto per adattare gli LLM a compiti specifici. Volto che abbraccia fornisce una breve descrizione della tecnica:

“L’adattamento di basso rango (LoRA) è un metodo PEFT (regolazione fine efficiente dei parametri) che decompone una matrice di grandi dimensioni in due matrici più piccole di basso rango negli strati di attenzione. Ciò riduce drasticamente il numero di parametri che devono essere messi a punto”.

Il modello è stato addestrato su una singola GPU Nvidia RTX A4000, che è una GPU di livello consumer con 16 GB di memoria: memoria appena sufficiente per la messa a punto LoRA di questo modello.

Ho misurato il consumo energetico con il pacchetto Python CodeCarbon. CodeCarbon è un pacchetto estremamente leggero e facile da usare che ti consente di misurare il consumo energetico di uno script, una funzione o un metodo Python con solo due righe di codice. Leggi di più su come usarlo qui:

A parte il consumo energetico, CodeCarbon stima anche l’impronta di carbonio dell’energia consumata dalla tua procedura informatica, ma ho trovato i numeri imprecisi. Ciò è probabile perché CodeCarbon utilizza un’intensità di carbonio media codificata (CO2e per KWh prodotto) della tua regione geografica e non un’intensità di carbonio quasi in tempo reale. Così sono andato su un sito web chiamato Energi Data Service, che consente di scaricare dati dettagliati sulle emissioni di elettricità dalla rete danese. Moltiplicando le misurazioni del consumo energetico ottenute con CodeCarbon per l’intensità di carbonio dell’elettricità nella rete durante le ore in cui il modello si è allenato, ho ottenuto l’impronta di carbonio della formazione.

Il processo di messa a punto ha richiesto poco meno di 4 ore e ha consumato un totale di 0,694 KWh: il consumo combinato di GPU, CPU e RAM secondo le stime prodotte con il pacchetto Python CodeCarbon.

Durante le ore in cui il modello si è addestrato, le emissioni medie di C02e per KWh prodotto sono state di 82,5 g come da Energi Data Service (licenza: “Il concessore della licenza ti concede una licenza mondiale, gratuita, non esclusiva e altrimenti illimitata per l’utilizzo dei dati” (1) ).

Pertanto, la messa a punto ha emesso minuscoli 57 grammi di CO2e (0,694 KWh * 82,5 g).

Per fare un confronto, il danese medio emette 11 TONNELLATE di CO2e all’anno.

In uno studio di ricerca è stato riscontrato che la generazione di una singola immagine con l’intelligenza artificiale generativa consuma in media 2,9 Wh (2). Quindi, per la quantità di energia necessaria per mettere a punto l’LLM, è possibile generare solo 239 immagini.

Se ti stai chiedendo se una procedura di messa a punto così breve ed efficiente abbia prodotto un modello migliore, la risposta è un chiaro “sì”:

Secondo il Classifica ScandEval sulla generazione del linguaggio naturale, il modello pre-addestrato ottiene una media di 43,44 sui compiti danesi e il modello ottimizzato ottiene una media di 47,55. Un guadagno del 9,45%. Al momento della stesura di questo articolo, questa è la differenza tra un 5° e un 7° posto in classifica.

Per me è sorprendente che non siano stati necessari più calcoli, energia ed emissioni per eseguire la messa a punto.

Mi aspetto che i miei risultati si ridimensionino linearmente con la quantità di campioni se si mantengono costanti altre variabili (ad esempio utilizzando una GPU simile, un metodo di allenamento ecc.). Cioè, se si ottimizza il doppio della quantità di campioni o il doppio del numero di epoche, mi aspetto che il consumo di energia raddoppi.

Il consumo di energia sarà probabilmente significativamente più elevato per un modello da 70 miliardi di parametri, portando così a emissioni più elevate, ma le emissioni sarebbero probabilmente ancora molto modeste nel quadro generale delle cose.

Inoltre, il consumo energetico sarebbe probabilmente maggiore se non avessi utilizzato LoRA.

Utilizzando la tecnica di regolazione fine delle istruzioni, LoRA è davvero efficiente, sia in termini di tempo impiegato, di quanto calcolo (ad esempio RAM GPU) è necessario, sia di quantità di carbonio emesso.

Le istruzioni per la messa a punto di un LLM 7B con LoRA su 21.300 campioni per un’epoca hanno richiesto quattro ore ed hanno emesso 57 grammi di CO2e, una quantità minuscola.

Fonte: towardsdatascience.com

Lascia un commento

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