Accesso ai modelli OpenAI GPT su Amazon Bedrock con inferenza cross‑Region in Sud‑Est asiatico
Panoramica dell’inferenza cross‑Region su Amazon Bedrock
Le richieste di inferenza limitate a una singola regione AWS possono subire rallentamenti quando la domanda supera la capacità locale. Team in Thailandia, Malesia, Singapore, Indonesia e Taiwan hanno quindi bisogno di accedere ai più recenti modelli di OpenAI senza essere vincolati ai limiti di una singola regione.
Amazon Bedrock mette a disposizione i modelli GPT‑6 Sol e GPT‑6 Luna con inferenza globale cross‑Region da tutte le cinque regioni AWS citate, e GPT‑6 Astra dalla regione Asia Pacific (Singapore). Questo documento illustra come configurare la chiamata, impostare i permessi e monitorare le inferenze dalla regione di origine.
Modelli disponibili e loro caratteristiche
La famiglia GPT‑6 comprende tre modelli, ognuno accessibile tramite inferenza cross‑Region:
- GPT‑6 Sol: capacità avanzate di ragionamento e programmazione per compiti complessi durante l’intera settimana.
- GPT‑6 Luna: ottimizzato per attività ripetitive e ad alto volume.
- GPT‑6 Astra: supporta ragionamento complesso, programmazione e lavori su documenti lunghi.
Tutti accettano input testuali e immagini, utilizzo di tool lato client e caching dei prompt. Le modalità di ragionamento differiscono: Sol e Luna supportano i livelli none, low, medium, high, xhigh, max, mentre Astra supporta tutti tranne none. Per approfondimenti consultare le guide “Bring more intelligence to everyday work with GPT‑6 Sol and GPT‑6 Luna on Amazon Bedrock” e “Take on your most ambitious work with GPT‑6 Astra on Amazon Bedrock”.
Come funziona l’inferenza cross‑Region
L’inferenza cross‑Region instrada le richieste attraverso le regioni commerciali AWS in cui il modello è già distribuito, offrendo così un’ampia capacità di Bedrock. Si invoca passando un profile ID di inferenza cross‑Region al posto di un normale model ID. La regione di origine è quella da cui si effettua la chiamata API; Amazon Bedrock sceglie automaticamente la regione di destinazione** per l’elaborazione. Fatturazione, quota, CloudTrail e CloudWatch rimangono nella regione di origine.
Profili di inferenza cross‑Region e regioni supportate
| Profilo | Regioni di origine incluse in questo articolo | Regioni di destinazione (dove il modello è distribuito) |
|---|---|---|
| global.openai.gpt-6-sol | Asia Pacific (Singapore) ap‑southeast‑1 Asia Pacific (Jakarta) ap‑southeast‑3 Asia Pacific (Malaysia) ap‑southeast‑5 Asia Pacific (Thailand) ap‑southeast‑7 Asia Pacific (Taipei) ap‑east‑2 | Regioni commerciali AWS dove Sol è distribuito |
| global.openai.gpt-6-luna | Stesse cinque regioni di origine | Regioni commerciali AWS dove Luna è distribuito |
| global.openai.gpt-6-astra | Asia Pacific (Singapore) ap‑southeast‑1 | Regioni commerciali AWS dove Astra è distribuito (solo Singapore al momento) |
La disponibilità dei profili e il supporto regionale possono cambiare man mano che AWS aggiunge nuove regioni; verificare sempre le informazioni sulla model card prima di implementare. Per i costi per token, consultare la pagina “Amazon Bedrock pricing”.
Prerequisiti per iniziare
- Identità IAM con permesso di invocare il profilo. La policy di sicurezza mostrata più avanti concede solo le autorizzazioni strettamente necessarie.
- Regione di origine attivata. Solo la regione da cui si effettua la chiamata deve essere attiva; le regioni di destinazione sono gestite da Bedrock. Singapore (ap‑southeast‑1) è abilitata di default, mentre Jakarta, Malaysia, Thailand e Taipei devono essere attivate esplicitamente (vedi “Enable or disable AWS Regions in your account”).
- SDK AWS o CLI aggiornati. Per gli esempi compatibili con OpenAI è necessario anche l’SDK OpenAI e il token generator di Bedrock. Installazione:
pip install boto3 openai aws-bedrock-token-generator. - Accesso alla console Amazon Bedrock, dove i tre profili compaiono sotto “System‑defined inference profiles”.
Invocare i modelli GPT‑6 mediante Amazon Bedrock Runtime
Ogni modello supporta tre percorsi di accesso sullo stesso endpoint:
- Amazon Bedrock Converse API
- OpenAI Responses API
- OpenAI Chat Completions API
Le API compatibili OpenAI si chiamano su percorsi /openai/v1 e accettano sia Signature Version 4 (SigV4) sia una chiave API Bedrock. In tutti i casi è necessario passare il profile ID come valore del campo model.
Esempio con Converse API (Python)
import logging
import os
import boto3
Regione di origine, default a Singapore.
REGION = os.environ.get("AWS_REGION", "ap-southeast-1")
PROFILEID = os.environ.get("BEDROCKPROFILE_ID", "global.openai.gpt-6-sol")
PROMPT = (
"In three bullet points, explain when a workload should use "
"cross-Region inference instead of calling a model in a single Region."
)
logging.basicConfig(format="%(levelname)s %(message)s")
log = logging.getLogger("bedrock-cris")
log.setLevel(logging.INFO)
client = boto3.client("bedrock-runtime", region_name=REGION)
response = client.converse(
modelId=PROFILE_ID,
messages=[{"role": "user", "content": [{"text": PROMPT}]}],
inferenceConfig={"maxTokens": 1024},
additionalModelRequestFields={"reasoning": {"effort": "low"}},
)
text = "".join(
b["text"] for b in response["output"]["message"]["content"] if "text" in b
)
log.info("Called %s from %s", PROFILE_ID, REGION)
log.info("Stop reason: %s", response["stopReason"])
log.info("Response:\n%s", text)
Modificando la variabile d’ambiente BEDROCKPROFILEID è possibile passare a Luna o Astra; per lo streaming si può usare converse_stream.
Esempio con OpenAI Chat Completions API (Python)
import logging
import os
from awsbedrocktokengenerator import providetoken
from openai import OpenAI
REGION = os.environ.get("AWS_REGION", "ap-southeast-1")
PROFILEID = os.environ.get("BEDROCKPROFILE_ID", "global.openai.gpt-6-sol")
PROMPT = "List three uses for a message queue."
logging.basicConfig(format="%(levelname)s %(message)s")
log = logging.getLogger("bedrock-cris")
log.setLevel(logging.INFO)
client = OpenAI(
base_url=f"https://bedrock-runtime.{REGION}.amazonaws.com/openai/v1",
apikey=providetoken(region=REGION),
)
response = client.chat.completions.create(
model=PROFILE_ID,
messages=[{"role": "user", "content": PROMPT}],
maxcompletiontokens=256,
)
log.info("Called %s from %s", PROFILE_ID, REGION)
log.info("Response:\n%s", response.choices[0].message.content)
Migrazione da un client OpenAI esistente
- Impostare il parametro
modelcon l’ID del profilo (ad esempioglobal.openai.gpt-6-sol) in ogni chiamata, anche quando si fa riferimento a risposte precedenti. - Utilizzare solo i tipi di tool supportati dal modello scelto (ad esempio
functionper GPT‑6 Sol e Luna, ma non per Astra quando il livello di ragionamento è none). - Assicurarsi che il token di autenticazione provenga da
aws-bedrock-token-generatoro da credenziali SigV4 configurate correttamente.
Configurazione IAM e Service Control Policy (SCP)
Per consentire l’invocazione dei profili è necessario una policy IAM minimale. Un esempio tipico è:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock-runtime:InvokeModel"
],
"Resource": [
"arn:aws:bedrock:::model/global.openai.gpt-6-sol",
"arn:aws:bedrock:::model/global.openai.gpt-6-luna",
"arn:aws:bedrock:::model/global.openai.gpt-6-astra"
]
}
]
}
Le SCP a livello di organizzazione devono consentire bedrock-runtime:InvokeModel per le regioni di origine utilizzate; altrimenti la chiamata verrà bloccata con AccessDeniedException.
Gestione delle quote e monitoraggio
Le quote di inferenza sono tracciate nella regione di origine. È possibile aumentare le quote tramite la console AWS Service Quotas, specificando il profilo e la regione.
Per il monitoraggio si raccomandano:
- Amazon CloudWatch Metrics: verifica del numero di chiamate, latenza e throttling.
- AWS CloudTrail: audit delle chiamate API, inclusi i dettagli di modello e regione.
- Amazon CloudWatch Logs: registrazione dei messaggi di risposta e di eventuali errori (es. ValidationException se l’ID del modello non è un profilo valido).
Best practice per l’uso in ambienti multi‑region
- Preferire il profilo globale quando la latenza è accettabile e la capacità locale è insufficiente.
- Monitorare costantemente i limiti di quota nella regione di origine; aumenti di traffico improvvisi possono portare a throttling.
- Utilizzare il livello di ragionamento più basso accettabile per ridurre il consumo di token e il costo.
- Implementare circuit breaker nell’applicazione per gestire eventuali fallimenti temporanei di Bedrock.
- Documentare chiaramente nella model card i profili utilizzati e le regioni di destinazione per garantire la conformità.
Conclusioni
L’inferenza cross‑Region di Amazon Bedrock consente alle organizzazioni con sede in Thailandia, Malesia, Singapore, Indonesia e Taiwan di sfruttare la potenza dei modelli GPT‑6 senza doversi preoccupare dei limiti di capacità di una singola regione. Configurando correttamente i profili, le policy IAM e i meccanismi di monitoraggio, è possibile garantire un’operatività fluida, scalabile e conforme al modello di pricing di Bedrock.