Ottimizzazione dei costi per l'utilizzo di LLM

From Systems analysis Wiki
Jump to navigation Jump to search

Ottimizzazione dei costi per l'utilizzo di grandi modelli linguistici (LLM) — è un insieme di strategie e metodi tecnici volti a ridurre le risorse computazionali e finanziarie necessarie per l'addestramento, il fine-tuning e, in particolare, l'esecuzione (inferenza) dei grandi modelli linguistici. La rilevanza di questo campo è determinata dall'enorme costo sia dello sviluppo che dell'esercizio degli LLM.

Ad esempio, l'addestramento del modello GPT-3 con 175 miliardi di parametri è costato, secondo le stime, circa $4,6 milioni su un'infrastruttura GPU cloud[1] e ha richiesto 1,3 milioni di kWh di energia elettrica[2]. Tuttavia, i costi principali ricadono spesso nella fase di inferenza. Secondo le stime, i costi operativi giornalieri per il mantenimento del servizio ChatGPT all'inizio del 2023 ammontavano a circa $700 mila (circa $0,0036 per richiesta), superando di gran lunga i costi una tantum per l'addestramento[3].

Ottimizzazione nella fase di addestramento e nella scelta del modello

Una gestione efficace dei costi inizia con le decisioni fondamentali prese prima della fase di inferenza.

Leggi di scaling: dimensione del modello vs. volume dei dati

Uno dei progressi chiave nella comprensione dell'economia dell'addestramento degli LLM sono state le leggi di scaling di Chinchilla, presentate dai ricercatori di DeepMind nel 2022. Hanno dimostrato che, per un utilizzo ottimale del budget computazionale, un modello dovrebbe essere addestrato su un volume di dati significativamente maggiore rispetto a quanto fatto in precedenza[4].

Storicamente si assumeva che le prestazioni crescessero principalmente grazie all'aumento del numero di parametri. Tuttavia, la ricerca su Chinchilla ha dimostrato che il modello Chinchilla (70 miliardi di parametri), addestrato su 1,4 trilioni di token, supera in qualità il modello molto più grande GPT-3 (175 miliardi di parametri), addestrato su soli ~300 miliardi di token[5]. Il rapporto raccomandato è di circa 20 token di dati di addestramento per ogni parametro del modello. Questo approccio consente di creare modelli più compatti ed efficienti, riducendo sia i costi di addestramento che quelli del successivo inferenza.

Fine-tuning e sua efficienza

Invece del costoso addestramento di un modello da zero, diventa sempre più diffusa la pratica del fine-tuning di modelli aperti già esistenti (ad esempio, la famiglia LLaMA, Falcon). Per ridurre ulteriormente i costi vengono applicati metodi di fine-tuning ad efficienza parametrica (Parameter-Efficient Fine-Tuning, PEFT).

Il metodo più popolare, LoRA (Low-Rank Adaptation), consente di adattare un modello aggiornando solo un numero ridotto di parametri aggiuntivi. Le ricerche dimostrano che LoRA può ridurre i costi di fine-tuning di decine di punti percentuali (fino a ~68% in alcuni scenari) con un impatto trascurabile sulla qualità[6].

Riduzione delle dimensioni del modello (Model Compression)

Una direzione fondamentale dell'ottimizzazione è la riduzione della dimensione fisica del modello mantenendone le prestazioni.

Distillazione della conoscenza (Knowledge Distillation)

La distillazione della conoscenza è un processo in cui un modello «insegnante» grande e potente viene utilizzato per addestrare un modello «studente» più compatto. Lo studente impara a imitare le risposte dell'insegnante su un ampio insieme di dati, assimilandone le «conoscenze». Questo metodo consente di ottenere una qualità comparabile su compiti specifici con costi significativamente inferiori. Ad esempio, il modello DeepSeek-R1 è stato distillato con successo da 671 miliardi a 70 miliardi e persino a 1,5 miliardi di parametri con una perdita di qualità accettabile per molte applicazioni[7].

Quantizzazione (Quantization)

La quantizzazione è il processo di riduzione della precisione numerica utilizzata per rappresentare i pesi del modello. Invece dei numeri in virgola mobile standard a 32 o 16 bit vengono utilizzati interi a 8 bit o anche a 4 bit.

  • La quantizzazione a 8 bit riduce la dimensione del modello di circa il 50% con una perdita di precisione di circa l'1%.
  • La quantizzazione a 4 bit riduce la dimensione del modello del 75%, mantenendo al contempo una qualità di output competitiva[7].

In presenza di supporto hardware (ad esempio, nelle moderne GPU Nvidia) e di librerie software (ad esempio, TensorRT), la quantizzazione può accelerare l'inferenza di 2–4 volte[8].

Ottimizzazione nella fase di inferenza

Quando il modello è addestrato e distribuito, la quota principale delle spese è legata al suo utilizzo quotidiano.

Raggruppamento delle richieste (Batching)

Il batching consiste nel raggruppare più richieste degli utenti in un unico «batch» per l'elaborazione simultanea sulla GPU. Ciò aumenta significativamente l'utilizzo dell'hardware e la throughput complessiva. Per gli LLM, dove la generazione delle risposte avviene token per token, il metodo più efficace è il batching continuo (continuous/in-flight batching). Questo metodo consente di aggiungere dinamicamente nuove richieste al batch man mano che altre richieste al suo interno vengono completate, eliminando i tempi morti e massimizzando il carico della GPU[9].

Caching di chiavi e valori (KV Cache)

Nei modelli transformer, per generare ogni nuovo token è necessaria l'informazione su tutti i token precedenti. Per evitare una crescita esponenziale dei calcoli viene applicato il caching di chiavi e valori (KV Cache). Il sistema salva i risultati intermedi dei calcoli del meccanismo di attenzione per il contesto già elaborato e li riutilizza, rendendo la generazione di sequenze lunghe e dialoghi multi-turno significativamente più efficiente[7].

Ottimizzazione del meccanismo di attenzione

L'archiviazione del KV Cache richiede una quantità significativa di memoria. Per ridurla sono state sviluppate varianti ottimizzate del meccanismo di attenzione:

  • Multi-Query Attention (MQA): Tutte le teste di attenzione utilizzano un unico insieme condiviso di chiavi e valori.
  • Grouped-Query Attention (GQA): Un compromesso intermedio in cui le teste di attenzione sono suddivise in gruppi e ogni gruppo utilizza un insieme condiviso di chiavi e valori.

L'azienda Meta ha applicato con successo GQA nei modelli LLaMA 2, il che ha consentito di aumentare significativamente l'efficienza dell'inferenza con contesti lunghi senza una perdita sostanziale di qualità[10].

Ottimizzazione dell'infrastruttura e dell'architettura di sistema

Sistemi ibridi e Retrieval-Augmented Generation (RAG)

Non sempre un compito richiede il modello più grande e potente. L'approccio ibrido o a cascata prevede l'utilizzo di un modello piccolo ed economico per le richieste semplici, e solo in caso di insuccesso o per compiti complessi la richiesta viene reindirizzata a un modello grande e costoso.

Un caso particolare e molto efficace di tale approccio è il Retrieval-Augmented Generation (RAG). In questa architettura, l'LLM può essere relativamente compatto, poiché per rispondere utilizza informazioni aggiornate ottenute da una base di conoscenza esterna (ad esempio, dalla documentazione aziendale o da un motore di ricerca). Ciò non solo riduce i requisiti sulla dimensione del modello, ma risolve anche il problema delle allucinazioni. Il deployment di un modello specializzato da 70 miliardi di parametri con RAG su un'infrastruttura locale può essere 2–4 volte meno costoso rispetto all'utilizzo delle API di GPT-4 nel cloud[11].

Note

  1. «OpenAI's GPT-3 Language Model: A Technical Overview». Lambda Labs. [1]
  2. «The Energy Footprint of Humans and Large Language Models». Communications of the ACM. [2]
  3. «The Inference Cost Of Search Disruption - Large Language Model Cost Analysis». SemiAnalysis. [3]
  4. Hoffmann, J., et al. (2022). «Training Compute-Optimal Large Language Models». arXiv:2203.15556.
  5. Chow, T. (2024). «Three Kuhnian Revolutions in ML Training». Substack. [4]
  6. «A Study to Evaluate the Impact of LoRA Fine-tuning on the Performance of Non-functional Requirements Classification». arXiv:2503.07927. (2025).
  7. 7.0 7.1 7.2 «LLM Inference Optimization: How to Speed Up, Cut Costs, and Scale AI Models». deepsense.ai. [5]
  8. Jin, H., et al. (2024). «GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers».
  9. «Continuous vs dynamic batching for AI inference». Baseten Blog. [6]
  10. «What is grouped query attention?». IBM. [7]
  11. «Inferencing on-premises with Dell Technologies». Dell Technologies Analyst Paper. [8]