Scaling Laws
Le leggi di scaling sono modelli di potenza che prevedono come diminuisce la loss all'aumentare di parametri del modello, dati e capacità di calcolo. Include Kaplan, Chinchilla e scaling al test.
Le leggi di scaling neurale sono relazioni empiriche di tipo legge di potenza che prevedono come diminuisce la loss di un modello al crescere di tre risorse: il numero di parametri (N), la quantità di dati di addestramento in token (D) e il calcolo di addestramento in operazioni in virgola mobile (C). Le curve restano regolari su molti ordini di grandezza, quindi i laboratori le stimano con esecuzioni piccole ed economiche ed estrapolano i risultati per scegliere dimensioni e budget di dati di un'esecuzione su larga scala prima di sostenerne i costi. Per esempio, il rapporto di OpenAI su GPT-4 ha previsto aspetti delle prestazioni del modello finale usando modelli addestrati con non più di 1/1.000 del suo calcolo. Le leggi più note descrivono la modellazione del linguaggio, ma lo stesso metodo si applica ai modelli di visione, parlato e ragionamento.
Leggi di scaling di Kaplan#
Nel 2020, ricercatori di OpenAI guidati da Jared Kaplan hanno pubblicato Scaling Laws for Neural Language Models. Hanno scoperto che la loss di entropia incrociata di un modello linguistico Transformer segue una legge di potenza in funzione di N, D e C, con alcune tendenze che si estendono per oltre sette ordini di grandezza, mentre larghezza, profondità e altri dettagli architetturali hanno effetti minimi entro un ampio intervallo. I modelli più grandi erano anche più efficienti in termini di campioni, quindi lo studio ha concluso che l'addestramento efficiente dal punto di vista del calcolo utilizza modelli molto grandi con dati relativamente limitati e si interrompe ben prima della convergenza. GPT-3 ha seguito questa ricetta con 175 miliardi di parametri addestrati su 300 miliardi di token.
Chinchilla e addestramento ottimale rispetto al calcolo#
Lo studio Chinchilla di DeepMind ha addestrato oltre 400 modelli, da 70 milioni a oltre 16 miliardi di parametri, su un intervallo da 5 a 500 miliardi di token, arrivando a una conclusione diversa: a parità di budget di calcolo, dimensioni del modello e token di addestramento dovrebbero crescere nella stessa proporzione, quindi a ogni raddoppio dei parametri dovrebbe corrispondere un raddoppio dei dati. Chinchilla ha usato lo stesso calcolo di Gopher, che ha 280 miliardi di parametri, ma ne aveva 70 miliardi e circa quattro volte più dati; ha inoltre superato Gopher, GPT-3 e Megatron-Turing NLG, che ha 530 miliardi di parametri. Lo studio ha adattato la loss con la formula L(N, D) = E + A / N^α + B / D^β, dove E è la loss irriducibile del testo naturale e gli altri due termini diminuiscono al crescere delle dimensioni del modello e dei dati. L'addestramento costa circa 6 FLOPs per parametro per token, quindi C ≈ 6ND; minimizzando la loss stimata per un dato C si ottiene il modello ottimale rispetto al calcolo:
import numpy as np
# Chinchilla loss fit L(N, D) = E + A / N^alpha + B / D^beta, as re-estimated by Besiroglu et al. (2024)
E, A, B, alpha, beta = 1.8172, 482.01, 2085.43, 0.3478, 0.3658
# Training costs about 6 FLOPs per parameter per token, so a budget C fixes D = C / (6N)
N = np.logspace(8, 13, 10_000)
for C in [1e21, 1e23, 5.76e23, 1e25]:
D = C / (6 * N)
loss = E + A / N**alpha + B / D**beta
best = loss.argmin()
print(
f"C={C:.2e} FLOPs: {N[best] / 1e9:6.1f}B params, {D[best] / 1e12:5.2f}T tokens, "
f"{D[best] / N[best]:.0f} tokens/param, loss {loss[best]:.3f}"
)I coefficienti provengono dalla replica dell'adattamento di Chinchilla di Epoch AI, che ha corretto la terza stima del documento originale. Con il budget di Chinchilla, pari a 5.76 × 10^23 FLOPs, l'adattamento sceglie 72,2 miliardi di parametri e 1,33 mila miliardi di token, valori vicini agli effettivi 70 miliardi e 1,4 mila miliardi di Chinchilla; inoltre, ogni budget compreso tra 10^21 e 10^25 FLOPs porta a 17-22 token per parametro, in linea con la regola comune di circa 20.
Oltre l'ottimizzazione del calcolo#
La regola di Chinchilla minimizza solo il calcolo di addestramento, mentre il costo di un modello distribuito si paga a ogni query. I modelli più piccoli addestrati ben oltre il punto ottimale rispetto al calcolo sono più economici da servire: Meta ha osservato che i dati ottimali secondo Chinchilla per un modello da 8 miliardi di parametri ammontano a circa 200 miliardi di token; eppure Llama 3 8B continuava a migliorare linearmente su scala logaritmica fino a 15 mila miliardi di token, motivo per cui i modelli linguistici di piccole dimensioni (SLM) vengono regolarmente sovra-addestrati. L'altro limite è la disponibilità di dati. Uno studio del 2023 sullo scaling con dati limitati ha rilevato che addestrare per un massimo di quattro epoche su dati ripetuti modificava la loss in modo trascurabile rispetto ai dati univoci; i dati sintetici ampliano ulteriormente la disponibilità di dati di addestramento.
Scaling del calcolo al momento del test#
Un secondo asse consiste nell'investire calcolo durante l'inferenza. I modelli di ragionamento, come o1 di OpenAI, generano lunghe catene di pensiero prima di rispondere; nel 2024 OpenAI ha riferito che la precisione di o1 aumentava sia con più calcolo per l'apprendimento per rinforzo sia con più tempo dedicato al ragionamento. Uno studio di Google DeepMind e UC Berkeley sullo scaling del calcolo al momento del test ha rilevato che le strategie ottimali rispetto al calcolo, come la ricerca con un modello di ricompensa del processo (PRM), erano oltre quattro volte più efficienti del campionamento best-of-N; inoltre, nei problemi in cui un modello piccolo ha una probabilità non trascurabile di successo, il calcolo aggiuntivo al momento del test gli consentiva di superare un modello 14 volte più grande a parità di FLOPs.
Scaling nella visione artificiale#
I modelli di visione seguono lo stesso schema. Lo studio di Google Scaling Vision Transformers ha addestrato un Transformer per la visione (ViT) da 2 miliardi di parametri che ha raggiunto un'accuratezza top-1 del 90,45% su ImageNet. Ultralytics YOLO26 realizza le sue cinque dimensioni a partire da un unico file YAML del modello, le cui voci scales impostano i moltiplicatori di profondità e larghezza e un limite ai canali, da n: [0.50, 0.25, 1024] a x: [1.00, 1.50, 512]. Su COCO, la precisione media media (mAP) aumenta da 40,9 per YOLO26n, con 2,4 milioni di parametri, a 57,5 per YOLO26x, con 55,7 milioni: un aumento di 23 volte dei parametri per 16,6 punti in più di mAP50-95.










