Salta al contenuto principale

05 - Negoziazione e auction: Contract Net Protocol

Sistemi multi-agente competitivi: Contract Net Protocol (Smith 1980), auction theory, sealed-bid vs English vs Dutch. Iterated Contract Net per refinement.

Cosa ne pensi di questo articolo?

05 - Negoziazione e auction: Contract Net Protocol
Sistemi Multi-Agentefedericocalo.dev

In Breve

Sistemi multi-agente competitivi: Contract Net Protocol (Smith 1980), auction theory, sealed-bid vs English vs Dutch. Iterated Contract Net per refinement.

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

  1. CFP, propose, accept-proposal
  2. Vickrey auction (second-price sealed)
  3. Contract Net implementation JADE
  4. Multi-item combinatorial auction
  5. Multi-agent reinforcement learning
  6. 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

  1. Implementa CNP base in JADE: 1 manager + 5 contractor; task delivery.
  2. Vickrey auction sealed-bid simulation; verifica truthful dominant.
  3. Combinatorial WDP con PuLP su 10 item, 20 bidder.
  4. MARL su PettingZoo simple_spread: 3 agent cooperation; reward share.
  5. AWS Spot Instance bid optimization simulation con price history.
  6. 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

Articolo aggiornato 2026-05-16, livello research engineer.

Prova Questi Strumenti

Strumenti gratuiti correlati a questo argomento.

Commenti

Caricamento commenti...

Accedi per commentare

Discuti questo articolo nella community

Unisciti al gruppo Telegram per discutere con altri sviluppatori, fare domande e condividere le tue esperienze.

Ti è piaciuto questo articolo?

Esplora altri contenuti sul blog o scopri i miei progetti