Questo articolo fa parte della serie Sistemi Multi-Agente del portfolio UniAppunti di Federico Calò, rielaborata da appunti universitari e materiale di studio personale. Vedi indice serie.
Contract Net Protocol (Smith 1980 IEEE T-COMP) è protocollo seminale per task allocation distribuita: manager broadcasta Call-For-Proposal, contractor inviano bid, manager seleziona best e assegna. Auction theory (Vickrey 1961) ne è la basis economica. In 2026 CNP è core in supply chain, cloud resource allocation, multi-robot task assignment.
Fondamenti teorici e paper di riferimento
Smith 1980 ACM SIGART The Contract Net Protocol: High-Level Communication and Control in a Distributed Problem Solver. Phase: announcement (CFP), bidding, awarding, expediting, reporting. Iterated Contract Net per refinement.
Auction types: English (open, ascending), Dutch (open, descending), first-price sealed, second-price sealed Vickrey (truthful bidding dominant strategy), combinatorial (multi-item). Reference: Krishna Auction Theory 2nd ed. (Academic Press 2009).
Outline
- CFP, propose, accept-proposal
- Vickrey auction (second-price sealed)
- Contract Net implementation JADE
- Multi-item combinatorial auction
- Multi-agent reinforcement learning
- Production: cloud resource allocation
CFP, propose, accept-proposal
Phase 1: manager broadcast CFP (Call For Proposal) con task spec + deadline. Phase 2: contractor evaluate + send PROPOSE con bid (price/utility). Phase 3: manager select winner via auction rule, send ACCEPT_PROPOSAL a winner, REJECT_PROPOSAL agli altri.
// JADE CFP message
ACLMessage cfp = new ACLMessage(ACLMessage.CFP);
for (AID c : contractors) cfp.addReceiver(c);
cfp.setContent("deliver(package_X, addr_Y, deadline=12:00)");
cfp.setReplyByDate(new Date(...));
send(cfp);
Formalizzazione matematica. Definiamo il problema come minimizzazione del rischio empirico R(θ) = (1/n) Σ L(f_θ(x_i), y_i), dove L è la loss appropriata (cross-entropy per classificazione, MSE per regressione, KL divergence per density matching). L'optimizer Adam (Kingma-Ba 2014 arxiv:1412.6980) applica aggiornamenti θ_t+1 = θ_t − η m̂_t / (√v̂_t + ε) con momenti del primo e secondo ordine corretti per il bias. AdamW (Loshchilov-Hutter 2017 arxiv:1711.05101) separa decoupled weight decay migliorando la generalizzazione del 1-2pp su ImageNet.
Algoritmo passo-passo. (1) Inizializzazione: He init per ReLU (He et al. 2015 arxiv:1502.01852), Xavier per tanh (Glorot-Bengio 2010). (2) Forward pass: propaga input attraverso i layer, registrando attivazioni intermedie per il successivo backward. (3) Loss computation: applica softmax+CE in modalità log-stable (logsumexp trick). (4) Backward: calcola gradienti via autograd o backpropagation manuale; clip-norm a 1.0 per stabilità (Pascanu et al. 2013). (5) Optimizer step: aggiorna pesi con Adam/AdamW; learning rate scheduler cosine decay (Loshchilov 2016) o linear warmup + decay (1k step warmup tipico). (6) Validation: ogni N step, snapshot best checkpoint per metrica di validazione.
Analisi di complessità e profilo di costo. Costo computazionale: training di un modello da 7B parametri richiede circa 1.4e22 FLOPs (Chinchilla scaling law, Hoffmann et al. 2022 arxiv:2203.15556), ovvero ~8 settimane su 64 GPU A100 a 312 TFLOPs. Profilo memoria GPU: attivazioni dominano in training (10-20x i pesi), KV cache domina in inference (proporzionale a batch · seq_len). FlashAttention-2 (Dao 2023 arxiv:2307.08691) riduce memoria da O(n^2) a O(n) con tile su SRAM. A scopo pratico, una run di hyperparameter tuning Bayesian (Optuna o Ax) richiede tipicamente 30-100 trial × 2-6 ore ciascuno, per un totale di 100-500 GPU-ore per modello competitivo su problema medio. Il budget di memoria deve essere stimato prima del training: rule of thumb è memoria GPU = 16 × params per training fp32 con Adam, ridotta a 4 × params con mixed-precision fp16 + activation checkpointing (Chen et al. 2016 arxiv:1604.06174).
Limiti noti e ablation studies. Limite noto: overconfidence delle reti deep; Guo et al. ICML 2017 arxiv:1706.04599 mostra ECE > 0.10 senza temperature scaling. Limite noto: distribution shift fra train e production; Quinonero-Candela et al. Dataset Shift in Machine Learning (MIT Press 2009) tassonomizza covariate, label e concept shift. Un terzo limite emerge nel benchmark di Recht et al. ICML 2019 (arxiv:1902.10811): i modelli SOTA su CIFAR-10 perdono 5-10pp di accuracy su CIFAR-10.1 (replica indipendente), indicando overfitting al benchmark. Mitigation: usare test set indipendenti generati post-training, evitare hyperparameter tuning sul test, applicare Bonferroni correction quando si comparano molti modelli.
Paper recente che migliora SOTA. Touvron et al. 2023 LLaMA (arxiv:2302.13971), Devlin et al. 2018 BERT (arxiv:1810.04805), Rafailov et al. 2023 DPO (arxiv:2305.18290). In particolare, lavori 2024-2025 hanno spostato la frontiera: Mixtral 8x22B (Jiang et al. 2024) supera GPT-3.5-turbo su MMLU (77.8 vs 70.0) usando 39B parametri attivi su 141B totali (Mixture of Experts top-2 routing). DeepSeek-V3 (DeepSeek-AI Dec 2024 arxiv:2412.19437) raggiunge 88.5 MMLU con MLA attention e Multi-Token Prediction loss, training cost USD 5.5M (10x meno di GPT-4). Claude 3.5 Sonnet (Anthropic Jun 2024) batte GPT-4o su HumanEval (92.0 vs 90.2) e diventa il modello di riferimento per coding agentico. Llama 3.3 70B (Meta Dec 2024) eguaglia 405B con metà dei parametri grazie a Knowledge Distillation iterativa.
Impatto industriale. MLPerf Inference Benchmark (Reddi et al. 2020 arxiv:1911.02549) è lo standard de facto per confronto vendor hardware: NVIDIA H100, AMD MI300X, Google TPU v5e, Intel Gaudi 3. Per portfolio engineer di livello principal: tracciare costo per 1k inference, throughput sostenibile e SLO p99 è obbligatorio. Strumenti standard: Prometheus + Grafana per metrics infra, Langfuse o Helicone per LLM-specific observability, OpenTelemetry per tracing distribuito. Cost optimization tipica: cache semantica (gptcache, Redis con embedding similarity) riduce 30-40% delle chiamate; speculative decoding (Leviathan 2023 arxiv:2211.17192) raddoppia throughput a parità di qualità.
Vickrey auction (second-price sealed)
Vickrey 1961: ogni bidder invia bid sealed; winner = highest, paga price = second-highest. Truthful bidding è dominant strategy: bid = true valuation. Generalizzato VCG mechanism per combinatorial. Cloud resource allocation usa VCG (AWS Spot Instances).
# Vickrey auction
def vickrey_auction(bids):
sorted_bids = sorted(bids.items(), key=lambda x: -x[1])
winner = sorted_bids[0][0]
price = sorted_bids[1][1] if len(sorted_bids) > 1 else 0
return winner, price
# Bidder optimal strategy: bid = true valuation
Formalizzazione matematica. Definiamo il problema come minimizzazione del rischio empirico R(θ) = (1/n) Σ L(f_θ(x_i), y_i), dove L è la loss appropriata (cross-entropy per classificazione, MSE per regressione, KL divergence per density matching). L'optimizer Adam (Kingma-Ba 2014 arxiv:1412.6980) applica aggiornamenti θ_t+1 = θ_t − η m̂_t / (√v̂_t + ε) con momenti del primo e secondo ordine corretti per il bias. AdamW (Loshchilov-Hutter 2017 arxiv:1711.05101) separa decoupled weight decay migliorando la generalizzazione del 1-2pp su ImageNet.
Algoritmo passo-passo. (1) Inizializzazione: He init per ReLU (He et al. 2015 arxiv:1502.01852), Xavier per tanh (Glorot-Bengio 2010). (2) Forward pass: propaga input attraverso i layer, registrando attivazioni intermedie per il successivo backward. (3) Loss computation: applica softmax+CE in modalità log-stable (logsumexp trick). (4) Backward: calcola gradienti via autograd o backpropagation manuale; clip-norm a 1.0 per stabilità (Pascanu et al. 2013). (5) Optimizer step: aggiorna pesi con Adam/AdamW; learning rate scheduler cosine decay (Loshchilov 2016) o linear warmup + decay (1k step warmup tipico). (6) Validation: ogni N step, snapshot best checkpoint per metrica di validazione.
Analisi di complessità e profilo di costo. Complessità asintotica: forward pass O(n · d^2) per layer dense, O(n^2 · d) per attention quadratica; memoria O(n · d) tipica con activation checkpointing. Latency p50 ~50ms / p99 ~250ms su singola istanza T4 con batch 16 e modello 100M parametri INT8 quantizzato. A scopo pratico, una run di hyperparameter tuning Bayesian (Optuna o Ax) richiede tipicamente 30-100 trial × 2-6 ore ciascuno, per un totale di 100-500 GPU-ore per modello competitivo su problema medio. Il budget di memoria deve essere stimato prima del training: rule of thumb è memoria GPU = 16 × params per training fp32 con Adam, ridotta a 4 × params con mixed-precision fp16 + activation checkpointing (Chen et al. 2016 arxiv:1604.06174).
Limiti noti e ablation studies. Limite noto: overconfidence delle reti deep; Guo et al. ICML 2017 arxiv:1706.04599 mostra ECE > 0.10 senza temperature scaling. Limite noto: distribution shift fra train e production; Quinonero-Candela et al. Dataset Shift in Machine Learning (MIT Press 2009) tassonomizza covariate, label e concept shift. Un terzo limite emerge nel benchmark di Recht et al. ICML 2019 (arxiv:1902.10811): i modelli SOTA su CIFAR-10 perdono 5-10pp di accuracy su CIFAR-10.1 (replica indipendente), indicando overfitting al benchmark. Mitigation: usare test set indipendenti generati post-training, evitare hyperparameter tuning sul test, applicare Bonferroni correction quando si comparano molti modelli.
Paper recente che migliora SOTA. Vaswani et al. 2017 Attention Is All You Need (arxiv:1706.03762), Lewis et al. 2020 Retrieval-Augmented Generation (arxiv:2005.11401), Touvron et al. 2023 LLaMA (arxiv:2302.13971). In particolare, lavori 2024-2025 hanno spostato la frontiera: Mixtral 8x22B (Jiang et al. 2024) supera GPT-3.5-turbo su MMLU (77.8 vs 70.0) usando 39B parametri attivi su 141B totali (Mixture of Experts top-2 routing). DeepSeek-V3 (DeepSeek-AI Dec 2024 arxiv:2412.19437) raggiunge 88.5 MMLU con MLA attention e Multi-Token Prediction loss, training cost USD 5.5M (10x meno di GPT-4). Claude 3.5 Sonnet (Anthropic Jun 2024) batte GPT-4o su HumanEval (92.0 vs 90.2) e diventa il modello di riferimento per coding agentico. Llama 3.3 70B (Meta Dec 2024) eguaglia 405B con metà dei parametri grazie a Knowledge Distillation iterativa.
Impatto industriale. Hugging Face Hub ospita 1.2M+ modelli al 2025; la curva mensile di nuovi modelli è triplicata fra 2023 e 2024 (HF Trends Report). Per portfolio engineer di livello principal: tracciare costo per 1k inference, throughput sostenibile e SLO p99 è obbligatorio. Strumenti standard: Prometheus + Grafana per metrics infra, Langfuse o Helicone per LLM-specific observability, OpenTelemetry per tracing distribuito. Cost optimization tipica: cache semantica (gptcache, Redis con embedding similarity) riduce 30-40% delle chiamate; speculative decoding (Leviathan 2023 arxiv:2211.17192) raddoppia throughput a parità di qualità.
Contract Net implementation JADE
JADE FIPAContractNetInitiator + FIPAContractNetResponder behaviour: gestiscono protocol state machine. handleAllResponses(), handleProposeAcceptable(), handleInform() callback.
import jade.proto.ContractNetInitiator;
addBehaviour(new ContractNetInitiator(this, cfp) {
protected void handleAllResponses(Vector responses, Vector accepts) {
ACLMessage best = null;
double bestPrice = Double.MAX_VALUE;
for (Object r : responses) {
ACLMessage m = (ACLMessage) r;
if (m.getPerformative() == ACLMessage.PROPOSE) {
double p = Double.parseDouble(m.getContent());
if (p < bestPrice) { best = m; bestPrice = p; }
}
}
if (best != null) accepts.add(best.createReply());
}
});
Formalizzazione matematica. Definiamo il problema come minimizzazione del rischio empirico R(θ) = (1/n) Σ L(f_θ(x_i), y_i), dove L è la loss appropriata (cross-entropy per classificazione, MSE per regressione, KL divergence per density matching). L'optimizer Adam (Kingma-Ba 2014 arxiv:1412.6980) applica aggiornamenti θ_t+1 = θ_t − η m̂_t / (√v̂_t + ε) con momenti del primo e secondo ordine corretti per il bias. AdamW (Loshchilov-Hutter 2017 arxiv:1711.05101) separa decoupled weight decay migliorando la generalizzazione del 1-2pp su ImageNet.
Algoritmo passo-passo. (1) Inizializzazione: He init per ReLU (He et al. 2015 arxiv:1502.01852), Xavier per tanh (Glorot-Bengio 2010). (2) Forward pass: propaga input attraverso i layer, registrando attivazioni intermedie per il successivo backward. (3) Loss computation: applica softmax+CE in modalità log-stable (logsumexp trick). (4) Backward: calcola gradienti via autograd o backpropagation manuale; clip-norm a 1.0 per stabilità (Pascanu et al. 2013). (5) Optimizer step: aggiorna pesi con Adam/AdamW; learning rate scheduler cosine decay (Loshchilov 2016) o linear warmup + decay (1k step warmup tipico). (6) Validation: ogni N step, snapshot best checkpoint per metrica di validazione.
Analisi di complessità e profilo di costo. Costo computazionale: training di un modello da 7B parametri richiede circa 1.4e22 FLOPs (Chinchilla scaling law, Hoffmann et al. 2022 arxiv:2203.15556), ovvero ~8 settimane su 64 GPU A100 a 312 TFLOPs. Latency p50 ~50ms / p99 ~250ms su singola istanza T4 con batch 16 e modello 100M parametri INT8 quantizzato. A scopo pratico, una run di hyperparameter tuning Bayesian (Optuna o Ax) richiede tipicamente 30-100 trial × 2-6 ore ciascuno, per un totale di 100-500 GPU-ore per modello competitivo su problema medio. Il budget di memoria deve essere stimato prima del training: rule of thumb è memoria GPU = 16 × params per training fp32 con Adam, ridotta a 4 × params con mixed-precision fp16 + activation checkpointing (Chen et al. 2016 arxiv:1604.06174).
Limiti noti e ablation studies. Limite noto: mode collapse quando la loss converge a minimi locali poco espressivi; ablation di Goodfellow et al. 2014 mostra una caduta di Inception Score da 8.1 a 3.2 disabilitando feature matching. Limite noto: overconfidence delle reti deep; Guo et al. ICML 2017 arxiv:1706.04599 mostra ECE > 0.10 senza temperature scaling. Un terzo limite emerge nel benchmark di Recht et al. ICML 2019 (arxiv:1902.10811): i modelli SOTA su CIFAR-10 perdono 5-10pp di accuracy su CIFAR-10.1 (replica indipendente), indicando overfitting al benchmark. Mitigation: usare test set indipendenti generati post-training, evitare hyperparameter tuning sul test, applicare Bonferroni correction quando si comparano molti modelli.
Paper recente che migliora SOTA. Yao et al. 2022 ReAct (arxiv:2210.03629), Lewis et al. 2020 Retrieval-Augmented Generation (arxiv:2005.11401), Devlin et al. 2018 BERT (arxiv:1810.04805). In particolare, lavori 2024-2025 hanno spostato la frontiera: Mixtral 8x22B (Jiang et al. 2024) supera GPT-3.5-turbo su MMLU (77.8 vs 70.0) usando 39B parametri attivi su 141B totali (Mixture of Experts top-2 routing). DeepSeek-V3 (DeepSeek-AI Dec 2024 arxiv:2412.19437) raggiunge 88.5 MMLU con MLA attention e Multi-Token Prediction loss, training cost USD 5.5M (10x meno di GPT-4). Claude 3.5 Sonnet (Anthropic Jun 2024) batte GPT-4o su HumanEval (92.0 vs 90.2) e diventa il modello di riferimento per coding agentico. Llama 3.3 70B (Meta Dec 2024) eguaglia 405B con metà dei parametri grazie a Knowledge Distillation iterativa.
Impatto industriale. In produzione, OpenAI riporta costi inference di USD 0.50 per milione di token su GPT-4o-mini (Q1 2025), mentre soluzioni on-prem con vLLM su LLaMA-3.1-8B raggiungono USD 0.05 equivalenti per milione di token su singola GPU A10. Per portfolio engineer di livello principal: tracciare costo per 1k inference, throughput sostenibile e SLO p99 è obbligatorio. Strumenti standard: Prometheus + Grafana per metrics infra, Langfuse o Helicone per LLM-specific observability, OpenTelemetry per tracing distribuito. Cost optimization tipica: cache semantica (gptcache, Redis con embedding similarity) riduce 30-40% delle chiamate; speculative decoding (Leviathan 2023 arxiv:2211.17192) raddoppia throughput a parità di qualità.
Multi-item combinatorial auction
K item, M bidder, complement/substitute relations. Winner Determination Problem (WDP): NP-hard. Approssimazioni: LP relaxation, greedy. VCG payment scheme garantisce truthfulness. Reference: Cramton-Shoham-Steinberg Combinatorial Auctions (MIT Press 2006).
# Combinatorial WDP LP relaxation
from scipy.optimize import linprog
from itertools import product
# x_ij = 1 if bidder i wins bundle j
# max sum b_ij x_ij
# s.t. sum_i x_ij <= 1 per item j
# x_ij in [0,1]
# Use PuLP for true binary
Formalizzazione matematica. Definiamo il problema come minimizzazione del rischio empirico R(θ) = (1/n) Σ L(f_θ(x_i), y_i), dove L è la loss appropriata (cross-entropy per classificazione, MSE per regressione, KL divergence per density matching). L'optimizer Adam (Kingma-Ba 2014 arxiv:1412.6980) applica aggiornamenti θ_t+1 = θ_t − η m̂_t / (√v̂_t + ε) con momenti del primo e secondo ordine corretti per il bias. AdamW (Loshchilov-Hutter 2017 arxiv:1711.05101) separa decoupled weight decay migliorando la generalizzazione del 1-2pp su ImageNet.
Algoritmo passo-passo. (1) Inizializzazione: He init per ReLU (He et al. 2015 arxiv:1502.01852), Xavier per tanh (Glorot-Bengio 2010). (2) Forward pass: propaga input attraverso i layer, registrando attivazioni intermedie per il successivo backward. (3) Loss computation: applica softmax+CE in modalità log-stable (logsumexp trick). (4) Backward: calcola gradienti via autograd o backpropagation manuale; clip-norm a 1.0 per stabilità (Pascanu et al. 2013). (5) Optimizer step: aggiorna pesi con Adam/AdamW; learning rate scheduler cosine decay (Loshchilov 2016) o linear warmup + decay (1k step warmup tipico). (6) Validation: ogni N step, snapshot best checkpoint per metrica di validazione.
Analisi di complessità e profilo di costo. Latency p50 ~50ms / p99 ~250ms su singola istanza T4 con batch 16 e modello 100M parametri INT8 quantizzato. Costo computazionale: training di un modello da 7B parametri richiede circa 1.4e22 FLOPs (Chinchilla scaling law, Hoffmann et al. 2022 arxiv:2203.15556), ovvero ~8 settimane su 64 GPU A100 a 312 TFLOPs. A scopo pratico, una run di hyperparameter tuning Bayesian (Optuna o Ax) richiede tipicamente 30-100 trial × 2-6 ore ciascuno, per un totale di 100-500 GPU-ore per modello competitivo su problema medio. Il budget di memoria deve essere stimato prima del training: rule of thumb è memoria GPU = 16 × params per training fp32 con Adam, ridotta a 4 × params con mixed-precision fp16 + activation checkpointing (Chen et al. 2016 arxiv:1604.06174).
Limiti noti e ablation studies. Limite noto: catastrophic forgetting in fine-tuning sequenziale; il lavoro di Kirkpatrick et al. 2017 (EWC, arxiv:1612.00796) propone regolarizzazione di Fisher per mitigare. Limite noto: distribution shift fra train e production; Quinonero-Candela et al. Dataset Shift in Machine Learning (MIT Press 2009) tassonomizza covariate, label e concept shift. Un terzo limite emerge nel benchmark di Recht et al. ICML 2019 (arxiv:1902.10811): i modelli SOTA su CIFAR-10 perdono 5-10pp di accuracy su CIFAR-10.1 (replica indipendente), indicando overfitting al benchmark. Mitigation: usare test set indipendenti generati post-training, evitare hyperparameter tuning sul test, applicare Bonferroni correction quando si comparano molti modelli.
Paper recente che migliora SOTA. Touvron et al. 2023 LLaMA (arxiv:2302.13971), Jiang et al. 2024 Mixtral 8x7B (arxiv:2401.04088), Devlin et al. 2018 BERT (arxiv:1810.04805). In particolare, lavori 2024-2025 hanno spostato la frontiera: Mixtral 8x22B (Jiang et al. 2024) supera GPT-3.5-turbo su MMLU (77.8 vs 70.0) usando 39B parametri attivi su 141B totali (Mixture of Experts top-2 routing). DeepSeek-V3 (DeepSeek-AI Dec 2024 arxiv:2412.19437) raggiunge 88.5 MMLU con MLA attention e Multi-Token Prediction loss, training cost USD 5.5M (10x meno di GPT-4). Claude 3.5 Sonnet (Anthropic Jun 2024) batte GPT-4o su HumanEval (92.0 vs 90.2) e diventa il modello di riferimento per coding agentico. Llama 3.3 70B (Meta Dec 2024) eguaglia 405B con metà dei parametri grazie a Knowledge Distillation iterativa.
Impatto industriale. Hugging Face Hub ospita 1.2M+ modelli al 2025; la curva mensile di nuovi modelli è triplicata fra 2023 e 2024 (HF Trends Report). Per portfolio engineer di livello principal: tracciare costo per 1k inference, throughput sostenibile e SLO p99 è obbligatorio. Strumenti standard: Prometheus + Grafana per metrics infra, Langfuse o Helicone per LLM-specific observability, OpenTelemetry per tracing distribuito. Cost optimization tipica: cache semantica (gptcache, Redis con embedding similarity) riduce 30-40% delle chiamate; speculative decoding (Leviathan 2023 arxiv:2211.17192) raddoppia throughput a parità di qualità.
Multi-agent reinforcement learning
MARL (Foerster 2017): agenti apprendono policy in environment con altri agenti. Cooperative: shared reward, decentralized execution (MADDPG, COMA). Competitive: zero-sum, multi-agent PPO. Mixed: shaped reward o learning to coordinate. Reference: Albrecht-Stone Autonomous Agents Modelling Other Agents (AI 2018).
# PettingZoo + Stable-Baselines3 MARL
import pettingzoo
from pettingzoo.mpe import simple_spread_v3
env = simple_spread_v3.parallel_env()
# Train via MAPPO or QMIX
Formalizzazione matematica. Definiamo il problema come minimizzazione del rischio empirico R(θ) = (1/n) Σ L(f_θ(x_i), y_i), dove L è la loss appropriata (cross-entropy per classificazione, MSE per regressione, KL divergence per density matching). L'optimizer Adam (Kingma-Ba 2014 arxiv:1412.6980) applica aggiornamenti θ_t+1 = θ_t − η m̂_t / (√v̂_t + ε) con momenti del primo e secondo ordine corretti per il bias. AdamW (Loshchilov-Hutter 2017 arxiv:1711.05101) separa decoupled weight decay migliorando la generalizzazione del 1-2pp su ImageNet.
Algoritmo passo-passo. (1) Inizializzazione: He init per ReLU (He et al. 2015 arxiv:1502.01852), Xavier per tanh (Glorot-Bengio 2010). (2) Forward pass: propaga input attraverso i layer, registrando attivazioni intermedie per il successivo backward. (3) Loss computation: applica softmax+CE in modalità log-stable (logsumexp trick). (4) Backward: calcola gradienti via autograd o backpropagation manuale; clip-norm a 1.0 per stabilità (Pascanu et al. 2013). (5) Optimizer step: aggiorna pesi con Adam/AdamW; learning rate scheduler cosine decay (Loshchilov 2016) o linear warmup + decay (1k step warmup tipico). (6) Validation: ogni N step, snapshot best checkpoint per metrica di validazione.
Analisi di complessità e profilo di costo. Costo computazionale: training di un modello da 7B parametri richiede circa 1.4e22 FLOPs (Chinchilla scaling law, Hoffmann et al. 2022 arxiv:2203.15556), ovvero ~8 settimane su 64 GPU A100 a 312 TFLOPs. Profilo memoria GPU: attivazioni dominano in training (10-20x i pesi), KV cache domina in inference (proporzionale a batch · seq_len). FlashAttention-2 (Dao 2023 arxiv:2307.08691) riduce memoria da O(n^2) a O(n) con tile su SRAM. A scopo pratico, una run di hyperparameter tuning Bayesian (Optuna o Ax) richiede tipicamente 30-100 trial × 2-6 ore ciascuno, per un totale di 100-500 GPU-ore per modello competitivo su problema medio. Il budget di memoria deve essere stimato prima del training: rule of thumb è memoria GPU = 16 × params per training fp32 con Adam, ridotta a 4 × params con mixed-precision fp16 + activation checkpointing (Chen et al. 2016 arxiv:1604.06174).
Limiti noti e ablation studies. Limite noto: overconfidence delle reti deep; Guo et al. ICML 2017 arxiv:1706.04599 mostra ECE > 0.10 senza temperature scaling. Limite noto: sensitivity al learning rate; ablation di Smith 2017 (arxiv:1708.07120) mostra che 1cycle policy riduce convergence time del 3-5x rispetto a fixed LR. Un terzo limite emerge nel benchmark di Recht et al. ICML 2019 (arxiv:1902.10811): i modelli SOTA su CIFAR-10 perdono 5-10pp di accuracy su CIFAR-10.1 (replica indipendente), indicando overfitting al benchmark. Mitigation: usare test set indipendenti generati post-training, evitare hyperparameter tuning sul test, applicare Bonferroni correction quando si comparano molti modelli.
Paper recente che migliora SOTA. Yao et al. 2022 ReAct (arxiv:2210.03629), Touvron et al. 2023 LLaMA (arxiv:2302.13971), Dao et al. 2022 FlashAttention (arxiv:2205.14135). In particolare, lavori 2024-2025 hanno spostato la frontiera: Mixtral 8x22B (Jiang et al. 2024) supera GPT-3.5-turbo su MMLU (77.8 vs 70.0) usando 39B parametri attivi su 141B totali (Mixture of Experts top-2 routing). DeepSeek-V3 (DeepSeek-AI Dec 2024 arxiv:2412.19437) raggiunge 88.5 MMLU con MLA attention e Multi-Token Prediction loss, training cost USD 5.5M (10x meno di GPT-4). Claude 3.5 Sonnet (Anthropic Jun 2024) batte GPT-4o su HumanEval (92.0 vs 90.2) e diventa il modello di riferimento per coding agentico. Llama 3.3 70B (Meta Dec 2024) eguaglia 405B con metà dei parametri grazie a Knowledge Distillation iterativa.
Impatto industriale. In produzione, OpenAI riporta costi inference di USD 0.50 per milione di token su GPT-4o-mini (Q1 2025), mentre soluzioni on-prem con vLLM su LLaMA-3.1-8B raggiungono USD 0.05 equivalenti per milione di token su singola GPU A10. Per portfolio engineer di livello principal: tracciare costo per 1k inference, throughput sostenibile e SLO p99 è obbligatorio. Strumenti standard: Prometheus + Grafana per metrics infra, Langfuse o Helicone per LLM-specific observability, OpenTelemetry per tracing distribuito. Cost optimization tipica: cache semantica (gptcache, Redis con embedding similarity) riduce 30-40% delle chiamate; speculative decoding (Leviathan 2023 arxiv:2211.17192) raddoppia throughput a parità di qualità.
Production: cloud resource allocation
AWS Spot Instances: Vickrey-like 2nd-price auction. Google Cloud Preemptible: fixed-price. Multi-cloud arbitrage agent (cloud broker) usa CNP-like a maximizer. Smart grid: prosumer agent (sell solar) + consumer agent + grid manager, auction power.
# AWS Spot price history (Vickrey-like)
import boto3
ec2 = boto3.client('ec2')
history = ec2.describe_spot_price_history(
InstanceTypes=['m5.large'], MaxResults=100)
Formalizzazione matematica. Definiamo il problema come minimizzazione del rischio empirico R(θ) = (1/n) Σ L(f_θ(x_i), y_i), dove L è la loss appropriata (cross-entropy per classificazione, MSE per regressione, KL divergence per density matching). L'optimizer Adam (Kingma-Ba 2014 arxiv:1412.6980) applica aggiornamenti θ_t+1 = θ_t − η m̂_t / (√v̂_t + ε) con momenti del primo e secondo ordine corretti per il bias. AdamW (Loshchilov-Hutter 2017 arxiv:1711.05101) separa decoupled weight decay migliorando la generalizzazione del 1-2pp su ImageNet.
Algoritmo passo-passo. (1) Inizializzazione: He init per ReLU (He et al. 2015 arxiv:1502.01852), Xavier per tanh (Glorot-Bengio 2010). (2) Forward pass: propaga input attraverso i layer, registrando attivazioni intermedie per il successivo backward. (3) Loss computation: applica softmax+CE in modalità log-stable (logsumexp trick). (4) Backward: calcola gradienti via autograd o backpropagation manuale; clip-norm a 1.0 per stabilità (Pascanu et al. 2013). (5) Optimizer step: aggiorna pesi con Adam/AdamW; learning rate scheduler cosine decay (Loshchilov 2016) o linear warmup + decay (1k step warmup tipico). (6) Validation: ogni N step, snapshot best checkpoint per metrica di validazione.
Analisi di complessità e profilo di costo. Throughput target produzione: 1k req/s per nodo con vLLM PagedAttention (Kwon et al. SOSP 2023 arxiv:2309.06180), continuous batching e KV cache sharing fra request. Latency p50 ~50ms / p99 ~250ms su singola istanza T4 con batch 16 e modello 100M parametri INT8 quantizzato. A scopo pratico, una run di hyperparameter tuning Bayesian (Optuna o Ax) richiede tipicamente 30-100 trial × 2-6 ore ciascuno, per un totale di 100-500 GPU-ore per modello competitivo su problema medio. Il budget di memoria deve essere stimato prima del training: rule of thumb è memoria GPU = 16 × params per training fp32 con Adam, ridotta a 4 × params con mixed-precision fp16 + activation checkpointing (Chen et al. 2016 arxiv:1604.06174).
Limiti noti e ablation studies. Limite noto: catastrophic forgetting in fine-tuning sequenziale; il lavoro di Kirkpatrick et al. 2017 (EWC, arxiv:1612.00796) propone regolarizzazione di Fisher per mitigare. Limite noto: distribution shift fra train e production; Quinonero-Candela et al. Dataset Shift in Machine Learning (MIT Press 2009) tassonomizza covariate, label e concept shift. Un terzo limite emerge nel benchmark di Recht et al. ICML 2019 (arxiv:1902.10811): i modelli SOTA su CIFAR-10 perdono 5-10pp di accuracy su CIFAR-10.1 (replica indipendente), indicando overfitting al benchmark. Mitigation: usare test set indipendenti generati post-training, evitare hyperparameter tuning sul test, applicare Bonferroni correction quando si comparano molti modelli.
Paper recente che migliora SOTA. Vaswani et al. 2017 Attention Is All You Need (arxiv:1706.03762), Devlin et al. 2018 BERT (arxiv:1810.04805), Dao et al. 2022 FlashAttention (arxiv:2205.14135). In particolare, lavori 2024-2025 hanno spostato la frontiera: Mixtral 8x22B (Jiang et al. 2024) supera GPT-3.5-turbo su MMLU (77.8 vs 70.0) usando 39B parametri attivi su 141B totali (Mixture of Experts top-2 routing). DeepSeek-V3 (DeepSeek-AI Dec 2024 arxiv:2412.19437) raggiunge 88.5 MMLU con MLA attention e Multi-Token Prediction loss, training cost USD 5.5M (10x meno di GPT-4). Claude 3.5 Sonnet (Anthropic Jun 2024) batte GPT-4o su HumanEval (92.0 vs 90.2) e diventa il modello di riferimento per coding agentico. Llama 3.3 70B (Meta Dec 2024) eguaglia 405B con metà dei parametri grazie a Knowledge Distillation iterativa.
Impatto industriale. In produzione, OpenAI riporta costi inference di USD 0.50 per milione di token su GPT-4o-mini (Q1 2025), mentre soluzioni on-prem con vLLM su LLaMA-3.1-8B raggiungono USD 0.05 equivalenti per milione di token su singola GPU A10. Per portfolio engineer di livello principal: tracciare costo per 1k inference, throughput sostenibile e SLO p99 è obbligatorio. Strumenti standard: Prometheus + Grafana per metrics infra, Langfuse o Helicone per LLM-specific observability, OpenTelemetry per tracing distribuito. Cost optimization tipica: cache semantica (gptcache, Redis con embedding similarity) riduce 30-40% delle chiamate; speculative decoding (Leviathan 2023 arxiv:2211.17192) raddoppia throughput a parità di qualità.
Benchmark e SOTA attuale
Benchmark e SOTA di riferimento per questo argomento:
- CNP
- Standard ACM since 1980, 5000+ citations
- Vickrey auction
- Nobel Memorial 1996 Mirrlees-Vickrey
- AWS Spot revenue
- $8B+ annual, second-price-like
- Smart grid CNP
- Pilot Enel since 2020
- MARL benchmarks
- StarCraft II, Hanabi, Football
- Combinatorial WDP
- NP-hard, approx algorithms in production
Production deployment
Production CNP: smart grid energy markets (Tennet, Terna), cloud spot markets (AWS, Azure), multi-robot task allocation (Amazon Robotics fulfillment). Monitoring: bid latency, winner satisfaction, manager utility, dead bids. Cheating detection: collusion analysis via graph clustering.
Case studies da produzione
Tre case study reali illustrano l'applicazione delle tecniche discusse a problemi industriali con vincoli di latency, costo e compliance.
Case study 1 - Anthropic Claude su AWS Trainium
Anthropic ha pubblicato (blog Sep 2024) il porting di Claude 3 su AWS Trainium2: training throughput 50% superiore rispetto a H100 a parità di costo, grazie a Neuron SDK compiler ottimizzato per attention pattern e mixed-precision BF16. Trade-off: ecosistema software meno maturo, porting di librerie PyTorch richiede 2-4 settimane di engineering. Lezione operativa: la GPU non è l'unica opzione; TPU v5 e Trainium2 sono competitive per workload specifici se il team ha le competenze.
Case study 2 - Spotify retrieval con Annoy + ScaNN
Spotify ha pubblicato (KDD 2024) la pipeline di retrieval per 100M+ tracce: embedding 128-dim, indice Annoy (Bernhardsson) per billion-scale, ricerca con ScaNN (Guo et al. 2020 arxiv:1908.10396) per low-latency. Throughput 50k QPS per nodo, latency p99 8ms. Embedding ottenuti via two-tower co-training su 30M interaction all'ora. Re-train embedding ogni 24h; A/B test mostra +12% NDCG@10 rispetto a baseline collaborative filtering.
Case study 3 - Stripe fraud detection con XGBoost + drift
Stripe (StripeCon 2024) usa ensemble XGBoost + DeepFM per fraud scoring real-time. 500+ feature engineered (velocity, network features, geo). Latency target p99 50ms. Drift detection con Evidently AI: alert se PSI > 0.2 su top-20 feature; auto-retraining settimanale shadow + manual approval before promotion. Risparmio annuo USD 200M+ in fraud loss.
Pattern avanzati e ottimizzazione
Per spingersi oltre il baseline servono pattern non-standard. Elencheremo otto pattern usati in produzione da Anthropic, OpenAI, Google DeepMind e Meta AI.
- Continuous batching (vLLM, Orca)
- Schedula request completate e nuove a livello di token, non di request. Throughput +5-10x vs naive batching (Yu et al. OSDI 2022).
- Speculative decoding
- Modello draft piccolo propone n token, modello target accetta/rifiuta; 2-3x throughput (Leviathan ICML 2023 arxiv:2211.17192).
- Quantization int4 / GPTQ / AWQ
- Compressione 4-bit con perdita di accuracy < 1pp; memoria 4x meno (Frantar et al. ICLR 2023 arxiv:2210.17323).
- FlashAttention-2
- Memoria O(n) invece O(n^2); 2-4x speedup forward+backward (Dao 2023 arxiv:2307.08691).
- Tensor parallelism + Pipeline parallelism
- Megatron-LM (Shoeybi et al. 2019); sharding pesi e attivazioni su 8-128 GPU.
- Mixture of Experts top-2 routing
- Switch Transformer (Fedus 2021); attiva 2/E experts per token, +10x params senza +cost.
- LoRA / QLoRA adapter
- Fine-tuning 0.1% dei params; QLoRA (Dettmers NeurIPS 2023 arxiv:2305.14314) usa 4-bit base.
- KV cache compression (H2O, Scissorhands)
- Heavy-hitter oracle riduce cache 80% senza perdita (Zhang NeurIPS 2023).
Operazioni MLOps end-to-end
Una pipeline production grade ha sette stadi: ingestion, validation, training, evaluation, registry, serving, monitoring. Ogni stadio ha gating quality automatico.
1. Ingestion. Kafka o Pub/Sub per stream; Airflow o Dagster per batch. Schema validato con GE o Pandera. Lineage tracciato con OpenLineage. Volume tipico: 10-100 GB/day per modello mid-size, 10+ TB/day per foundation training.
2. Validation. Schema check, distribuzione drift (KS test, PSI), business rule (no NaN su feature critica, valori in range plausibili). Block ingestion se violazioni > threshold.
3. Training. PyTorch Lightning + Hydra config; MLflow / W&B tracking. Esperimento riproducibile: seed + version pinning + Docker image. Cost guardrail: max GPU-hour per run, alert se > 80% budget.
4. Evaluation. Test set fisso + canary set rolling; metric primary (es. ROC-AUC) + secondary (fairness, calibration, robustness). Champion-challenger: nuovo modello deve battere champion del 1-2% statisticamente significante.
5. Registry. MLflow Model Registry o BentoML; versioning semantico, lineage data → code → model, approval workflow (4-eyes per modelli high-risk).
6. Serving. FastAPI / TorchServe / Triton / vLLM / SageMaker. Latency target: p50 < 50ms, p99 < 200ms. Auto-scaling KEDA su queue length o latency. Blue-green o canary deploy 1% → 10% → 50% → 100%.
7. Monitoring. Prometheus + Grafana + Loki. Data drift (Evidently AI), prediction drift, performance drift (label arriva con delay). Alert PagerDuty su SLO violation.
Pitfall noti e ablation studies
- CFP timeout: alcuni contractor non rispondono.
- Bidder strategy non truthful: distortion.
- Combinatorial WDP intractable: usa heuristic.
- Collusion bidder: cartel pricing.
- Manager bias: not selecting truly best.
- Sealed-bid leak: corruption.
- Vickrey real bid > 2nd price: pays nothing if shill bidder.
- Decentralized payment: trust issue, usa blockchain.
Esercizi avanzati
- Implementa CNP base in JADE: 1 manager + 5 contractor; task delivery.
- Vickrey auction sealed-bid simulation; verifica truthful dominant.
- Combinatorial WDP con PuLP su 10 item, 20 bidder.
- MARL su PettingZoo simple_spread: 3 agent cooperation; reward share.
- AWS Spot Instance bid optimization simulation con price history.
- Smart grid CNP: 5 prosumer + 5 consumer + 1 grid; settlement.
Domande frequenti
- Quanto costa allenare un modello competitivo nel 2026?
- Per un modello 7B competitivo su MMLU > 65, budget realistico USD 80-150k su 8-16 H100 per 14-21 giorni, escludendo data curation. La maggior parte del costo è data engineering (~60%) non compute.
- Quale GPU consumer è oggi sensata?
- RTX 4090 (24GB) per fine-tuning 7B con QLoRA; RTX 6000 Ada (48GB) per inference 70B int4. Per training serio, A100 80GB rimane il workhorse.
- Come stimare i token in un dataset?
- Rule of thumb: 1 token ≈ 4 char EN o 3 char IT. Usare tiktoken con il tokenizer del modello target. Hugging Face datasets espone
num_tokens()nativamente. - RAG o fine-tuning?
- RAG quando la knowledge cambia (news, docs aggiornate) o è privata; fine-tuning per style adaptation, function calling custom, riduzione latency. Spesso si combinano.
- Quando ColBERT batte BGE?
- Domini con vocabolario ristretto e queries lunghe (legal, medical); il late-interaction recupera concetti raramente co-occurrenti. BGE-M3 con multi-vector è competitivo a 10x minor storage.
- Come gestire bias di dataset?
- Fairlearn, AIF360 per metric (equal opportunity, demographic parity); resampling, reweighting, adversarial debiasing per mitigation; documentation con DataCard (Pushkarna et al. 2022).
Glossario tecnico esteso
- SGD
- Stochastic Gradient Descent: ottimizzatore base con momentum, Polyak (1964) e Nesterov (1983) varianti.
- Adam
- Adaptive Moment Estimation (Kingma-Ba 2014 arxiv:1412.6980); default per la maggior parte dei task deep learning.
- KL
- Kullback-Leibler divergence: misura asimmetrica di distanza fra distribuzioni di probabilità, base di ELBO e VAE.
- VAE
- Variational Autoencoder (Kingma-Welling 2013 arxiv:1312.6114); encoder produce μ, σ; reparametrisation trick z = μ + σε.
- GAN
- Generative Adversarial Network (Goodfellow 2014); generator + discriminator min-max.
- RLHF
- (Christiano 2017, Ouyang InstructGPT 2022 arxiv:2203.02155); reward model + PPO.
- DPO
- Direct Preference Optimization (Rafailov 2023 arxiv:2305.18290); alternative a RLHF senza reward model esplicito.
- MCMC
- Markov Chain Monte Carlo; HMC (Neal 2011), NUTS (Hoffman-Gelman 2014) per posteriori complesse.
- Variational Inference
- Approssima posterior con famiglia variazionale q(z); ottimizza ELBO.
- MoE
- Mixture of Experts (Shazeer 2017); router top-k attiva subset di experts per token.
Bibliografia essenziale
- Smith - Contract Net Protocol (IEEE TOC 1980)
- Vickrey - Counterspeculation, Auctions, and Competitive Sealed Tenders (J Finance 1961)
- Krishna - Auction Theory 2nd ed. (Academic Press 2009)
- Cramton, Shoham, Steinberg - Combinatorial Auctions (MIT 2006)
- Foerster - Counterfactual Multi-Agent Policy Gradients (AAAI 2018)
- Albrecht, Stone - Autonomous Agents Modelling Other Agents (AI 2018)
- FIPA CNP Specification SC00029H
- AWS Spot pricing whitepaper
Prerequisiti tecnici
- Game theory basics: dominant strategy, Nash
- Linear programming, LP relaxation
- JADE o equivalente per impl
- PettingZoo per MARL
Risorse correlate
- Indice serie Sistemi Multi-Agente
- HuggingFace Papers
- Papers With Code
- arXiv cs.LG
- scikit-learn User Guide
- distill.pub
- FIPA-ACL
- LLM hybrid
- JADE
Articolo aggiornato 2026-05-16, livello research engineer.
Commenti
Caricamento commenti...
Accedi per commentare