Introduzione a llm-d 1.0
Il 20 ottobre 2026, durante la PyTorch Conference, Google ha annunciato il rilascio di llm-d 1.0, una stack open‑source progettata per l’inferenza distribuita di Large Language Models (LLM) su Google Cloud TPUs e GPU. Il progetto è stato co‑fondato da Google insieme a Red Hat, IBM e altri partner, ed è stato sviluppato in collaborazione con più di 500 contributori provenienti da oltre 25 organizzazioni, all’interno del CNCF Sandbox.
llm-d 1.0 unisce due ecosistemi chiave: PyTorch, dove vLLM e SGLang gestiscono i modelli, e Kubernetes, che fornisce l’infrastruttura per sistemi distribuiti in produzione. L’obiettivo è rispondere alle nuove esigenze introdotte dagli agent, che trasformano il tradizionale modello “una richiesta‑una risposta” in flussi multi‑step, RL rollouts e carichi bursty.
Perché gli agent cambiano l’inferenza
Fino a un anno fa, la maggior parte del traffico di inferenza era costituita da chat singole: un prompt, una risposta. Oggi, i workload si spostano verso agenti a più turni e reinforcement learning, che richiedono:
- condivisione di prefissi lunghi tra richieste;
- esecuzione simultanea di più step su diversi strumenti;
- gestione di picchi di traffico improvvisi.
Un approccio tradizionale basato su round‑robin o su una singola macchina genera duplicazione di calcolo, saturazione della memoria degli acceleratori e blocchi di agenti bursty che penalizzano gli utenti interattivi.
Come llm-d risolve il problema
llm-d converte un cluster di server di modello in un pool di serving coordinato. Durante la keynote della PyTorch Conference è stato mostrato un test con 1.000 agenti sandbox su Agent Substrate in GKE, tutti indirizzati a un unico endpoint llm-d che sfrutta vLLM, SGLang e una flotta mista di TPU e GPU. Il traffico, scalato in tre fasi, ha beneficiato di:
- routing consapevole della cache;
- KV cache a più livelli;
- controllo di flusso che mette in coda i loop bursty, mantenendo rapide le richieste interattive.
Funzionalità principali di llm-d 1.0
llm-d 1.0 fornisce già:
- Routing basato su prefisso e carico;
- Offloading della KV cache;
- Disaggregazione prefill/decode;
- Parallelismo esperto esteso;
- Batch inference su TPU e GPU.
Queste capacità consentono:
Qualità di servizio multi‑tenant
Il flow control di llm-d implementa routing con priorità e fairness, garantendo che richieste sensibili alla latenza e workload bursty condividano la flotta senza violare gli SLO.
Fondamenta stabili
API v1, percorso di richiesta indurito e validazione su più cloud e tipi di acceleratore.
Aggiornamenti sicuri
Alta disponibilità del router e aggiornamenti zero‑downtime, grazie a DisaggregatedSet, che gestisce rolling update prefill/decode senza perdere contesto.
Serving agent‑aware
Routing basato su sessione, scheduling per priorità dei turni e API Responses nativa per riutilizzare il contesto tra i turni dell’agente.
Integrazione TPU ampliata
Supporto nativo a modelli PyTorch su TPU tramite TorchTPU con time‑slicing cooperativo, aumentandone throughput e utilizzo.
Architettura e componenti
llm-d è costruito su tre pilastri fondamentali, tutti basati su primitive Kubernetes:
- Gateway API Inference: routing ottimizzato per inferenza, gestito come servizio su GKE Inference Gateway.
- LeaderWorkerSet: API Kubernetes per inference multi‑host, alla base di
DisaggregatedSet. - Dynamic Resource Allocation, Prometheus e OpenTelemetry per monitoraggio e scalabilità.
Un endpoint, molteplici acceleratori
Gli agenti interagiscono con un unico API endpoint. Il router seleziona la replica che possiede già il contesto della richiesta, mantenendo la cache KV locale. L’aggiunta di capacità, la mescolanza di generazioni di acceleratori o il trasferimento di un modello a un nuovo pool avvengono a livello di piattaforma, senza modificare il codice dell’agente.
TorchTPU
TorchTPU porta le TPU di Google Cloud all’interno della flotta, eseguendo modelli PyTorch nativamente in vLLM e SGLang, senza riscrivere i modelli. Per approfondimenti, consultare la guida “llm-d on Google Kubernetes Engine (GKE) TPU”.
Routing che ricorda il contesto
Il router llm-d, basato su Gateway API Inference, traccia le repliche che contengono ciascun prefisso cache e valuta carico e latenza prevista prima di assegnare una replica. Quando la memoria dell’acceleratore si riempie, la cache KV viene spostata in host memory e successivamente su SSD o Google Cloud Managed Lustre tramite OffloadingConnector, Mooncake o HiCache. Questo evita “storm di eviction” di prefissi sotto carichi lunghi e multi‑turn.
In un benchmark su workload di coding agentico con TPU Ironwood (TPU 7x), il routing consapevole del prefisso più l’offload in host memory ha ridotto il tempo medio al primo token (TTFT) di oltre 85 % e aumentato il throughput totale di 2,4× rispetto a un semplice Kubernetes Service (ottobre 2026).
Disaggregazione per aggiornamenti sicuri
Prefill (computazionale) e decode (memoria‑bound) vengono eseguiti in pool separati, con parallelismo esperto che distribuisce modelli Mixture‑of‑Experts su più nodi. DisaggregatedSet, costruito su LeaderWorkerSet, gestisce questi pool come un’unica entità, consentendo rolling update coordinati che mantengono versioni allineate senza interrompere le sessioni attive.
Inference asincrona accanto a quella in tempo reale
llm-d‑async‑processor, introdotto nella versione 1.0, consuma richieste da code come Google Cloud Pub/Sub o Redis e le instrada insieme al traffico in tempo reale. Gate di coda e pool verificano la capacità disponibile, applicando lane di priorità e quote per garantire che i job in background utilizzino solo capacità “slack”, senza penalizzare gli utenti interattivi.
Time‑slicing per capacità RL inattiva
Durante l’addestramento RL, le acceleratori possono restare inattive dal 40 % al 60 % del tempo. llm-d supporta il time‑slicing su TPU e GPU, intercalando inference asincrona nei cicli inattivi, aumentando il duty cycle medio da circa 40 % a oltre 70 %.
Strumenti di benchmark e monitoraggio
Per valutare le performance, llm-d mette a disposizione Prism, una dashboard open‑source che visualizza benchmark pubblicati, basati su ricette standardizzate llm-d-benchmark e workload inference-perf. Gli utenti possono ispezionare configurazioni dettagliate o caricare i propri risultati per confrontare throughput, latenza e costi.
Distribuzione su Google Cloud
Eseguire llm-d 1.0 su Google Cloud significa combinare componenti Kubernetes già noti (Gateway API, LeaderWorkerSet, Dynamic Resource Allocation, Prometheus, OpenTelemetry) con infrastruttura gestita:
- GKE Inference Gateway: servizio gestito che semplifica installazione e gestione del router, estendendo il routing tra regioni.
- Google Cloud TPU e GPU fleet: scalabilità orizzontale con supporto nativo a TorchTPU.
- Managed Lustre e Cloud Storage per l’offload della KV cache.
Questa combinazione consente di creare ambienti di produzione personalizzati mantenendo il proprio motore, modello e cluster, adottando solo i componenti di serving necessari.
Conclusioni
llm-d 1.0 rappresenta un passo decisivo verso l’inferenza distribuita di LLM in scenari agent‑centric. Con routing consapevole del contesto, cache KV a più livelli, disaggregazione sicura e supporto nativo a TPU e GPU, la piattaforma offre un equilibrio tra latenza interattiva e throughput per carichi di lavoro complessi. La disponibilità di strumenti di benchmark come Prism e l’integrazione con i servizi gestiti di Google Cloud rendono llm-d una scelta solida per le organizzazioni che vogliono scalare agenti intelligenti senza sacrificare affidabilità o costi.