Come vengono eseguiti gli LLM nell'UE?
Un modello gira dove gira un endpoint, e la sua riga ne registra la regione e la classe. La residenza è un filtro applicato prima della valutazione: se nulla la soddisfa, la richiesta restituisce 409 no_endpoint_for_policy.
L'hosting è una proprietà di un endpoint, non di un modello
«Un LLM gira nell'UE» non è una proprietà di un modello. È una proprietà di una riga di endpoint: un record che dice quale versione di quale modello viene servita, da quale regione, da quale operatore, con quale runtime e con quale tariffa registrata. Gli stessi pesi possono essere serviti da Francoforte, dalla regione UE di un hyperscaler o da fuori dell'UE, e queste sono tre risposte diverse alla stessa domanda.
Ogni modello qui ha una riga di endpoint anche quando nulla lo serve. Un modello che la piattaforma non può servire porta una riga di tipo catalogue_only, e il motore di instradamento rifiuta quel tipo prima di ogni altra regola. Un modello così è etichettato come solo catalogo, e chiederlo per nome restituisce 404 hosted_unavailable invece di un modello servito.
Quattro classi per proprietà, gestione e ubicazione
La residenza è descritta con quattro classi, deliberatamente non intercambiabili. Un'azienda UE che possiede e gestisce infrastruttura nell'UE è la prima. L'elaborazione in una regione UE la cui capogruppo ha sede fuori dall'UE è la seconda: l'ubicazione è europea, la giurisdizione non lo è in via esclusiva. Un modello che gira dentro infrastruttura controllata dal cliente è la terza. Una voce di catalogo senza inferenza è la quarta, e la sua ubicazione di elaborazione è non verificata.
Nessuna di esse è immunità dagli obblighi giuridici di divulgazione, e la documentazione lo dice con queste parole. Una classe è una classificazione che potete controllare su una riga, non uno status giuridico, e ordina proprietà, gestione e ubicazione invece di promettere un risultato.
Le regioni tracciate sono Francoforte e Berlino gestite da LLM EU, Parigi da un operatore UE, più due voci collettive, una per qualsiasi sito di proprietà e gestione UE e una per una regione UE di un cloud con capogruppo non UE. Un'ulteriore voce copre la superficie broker fuori dall'UE, il cui paese è registrato come XX perché un broker che instrada verso molte giurisdizioni non sta in una sola, e che la residenza predefinita rifiuta. Quelle righe sono dati di configurazione, non prova di macchine in funzione.
Che cosa succede a una richiesta
Una chiamata arriva a un endpoint compatibile con OpenAI con una chiave bearer. Il router costruisce l'insieme dei candidati dalle righe di endpoint e filtra: una riga di solo catalogo è fuori; un endpoint che non è né attivo né degradato; uno la cui classe di sovranità non è né nella vostra policy né nella residenza che avete chiesto; uno in una regione fuori da quell'ambito; un modello che non sa generare testo; le liste di esclusione e di ammissione di fornitori e modelli; gli endpoint partner se non sono ammessi; i modelli senza la modalità vision su una richiesta con immagini; un modello la cui finestra documentata è inferiore a input più budget di output; e un prezzo sopra il vostro tetto. Ciò che sopravvive viene valutato e vince il punteggio più alto, con i pareggi risolti dal prezzo più basso, poi dalla latenza registrata più bassa, poi da un id stabile.
Quando il filtro non lascia nulla, la richiesta fallisce con 409 no_endpoint_for_policy. È la regola che funziona, non un errore transitorio: il failover costruisce la sua lista dalla decisione già filtrata, e vengono fatti al massimo tre tentativi, su un 5xx o su un backend irraggiungibile, con ogni tentativo registrato nella trace.
Che cosa potete verificare dopo
Ogni risposta nomina il modello che ha girato, la sua versione, l'id dell'endpoint, la regione, la classe di sovranità, il motivo di instradamento e la conservazione applicata. Il motivo è una frase, non un codice: per una richiesta di codice suona come «auto routing for task coding + residency eu-hosted + a model at a region (EU-owned, EU-operated); four endpoint(s) excluded; partner endpoints not allowed». La riga completa della trace è recuperabile tramite id.
La conservazione è ciò su cui si chiede per prima cosa, e la risposta implementata è stretta: zero è il valore predefinito e l'unica modalità implementata. I corpi dei prompt e delle risposte non vengono mai scritti nel database e quelle colonne restano nulle. Una policy può memorizzare una scelta di 24h, 7d o 30d, il che non abilita la conservazione; una richiesta sopra il limite restituisce 403 retention_exceeds_policy, e qualsiasi conservazione effettiva consentita diversa da zero restituisce 501 retention_not_implemented. Una trace è il registro operativo della piattaforma su una chiamata, non una geolocalizzazione e non una valutazione di alcunché.
Eseguire i pesi da soli
Lo stack è Node 22 senza dipendenze a runtime e SQLite, avviato come processo web, come processo di sola API o come worker. È un pool di inferenza configurato a trasformare le righe di catalogo in righe servite: l'operatore dichiara quali modelli il pool serve davvero, e solo allora una parte del catalogo porta un'affermazione di hosting con una riga di endpoint vllm in una regione nominata. Non impostato significa nessun backend reale, il valore predefinito di sviluppo; il mock risponde allora in una regione chiamata dev-mock e ogni pagina lo dice.
Il filtro delle licenze conta. Un modello entra in un piano di hosting solo quando i suoi pesi sono aperti e la sua licenza consente la messa a disposizione commerciale; una scheda il cui identificatore di licenza dice non commerciale, o i cui limiti registrati vietano la messa a disposizione commerciale, non viene selezionata, e un operatore che nomina un tale modello riceve un errore netto invece di un salto silenzioso.
L'indipendenza da un solo fornitore è anche una questione di hardware. Un checkpoint da 7B o 9B come Teuken 7B Instruct v0.6 o EuroLLM 9B sta su un singolo acceleratore di fascia media, il punto di ingresso realistico per i pesi sulle vostre macchine. Un mixture of experts da 123B con circa 12B parametri attivi, o un checkpoint da 675B, richiede nodi multi-GPU anche quantizzato. I fornitori pubblicano checkpoint quantizzati per la via di mezzo, e ciascuno è un artefatto separato con i propri compromessi.
Che cosa significa e che cosa non significa «LLM europeo»
Un modello linguistico europeo è costruito, finanziato o addestrato con le lingue europee come obiettivo. EuroLLM 9B copre tutte le 24 lingue ufficiali dell'UE e altre ancora, sviluppato da un consorzio guidato da Lisbona con Edimburgo e Unbabel come partner. Teuken 7B nasce da un progetto tedesco finanziato con fondi pubblici ed è stato addestrato su tutte le 24 lingue ufficiali dell'UE. Mistral è un'azienda francese che pubblica modelli a pesi aperti e modelli su licenza. Essere europeo dice chi lo ha costruito e quali lingue ha come obiettivo; non dice dove viene elaborata una richiesta di inferenza, che è compito della riga di endpoint, e non rende un modello migliore.
Decidete prima il confine, poi verificate che ogni strato della vostra pipeline stia dentro di esso. Recupero, embedding, reranking e generazione raggiungono ciascuno un modello diverso, e ognuna di quelle chiamate è un punto in cui il confine può rompersi mentre la chiamata chat sembra ancora corretta. Scrivetelo dove il codice può applicarlo, perché una residenza che vive solo in un documento di policy è una preferenza, e una preferenza è ciò che un router allenta in silenzio nella giornata storta.
Domande frequenti
Instradare verso una regione UE significa che i miei dati restano nell'UE?
La residenza filtra quali endpoint possono rispondere, e il failover non può uscire dall'insieme filtrato, quindi la richiesta viene elaborata dove l'avete chiesta. Una classe descrive proprietà, gestione e ubicazione; è una classificazione che potete controllare su una riga, non una garanzia giuridica contro la divulgazione, e la documentazione lo dice.
Che cosa succede se nessun endpoint UE corrisponde al mio modello?
Un modello nominato senza endpoint idoneo restituisce 409 no_endpoint_for_policy, oppure 404 hosted_unavailable quando il modello è solo in catalogo. Il router non sostituisce un modello simile e non allarga la residenza per far riuscire la chiamata.
Posso eseguire lo stack sui miei server?
Sì. Lo stack è Node 22 senza dipendenze a runtime e SQLite, con voci per web, sola API e worker; un pool di inferenza configurato più un elenco dichiarato di modelli serviti è ciò che rende un modello davvero ospitato, e fino ad allora le pagine dicono che non lo è.