View a markdown version of this page

Invocare un modello importato - Amazon Bedrock

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Invocare un modello importato

Il processo di importazione del modello può richiedere diversi minuti per importare il modello dopo l'invio della CreateModelImportJobrichiesta. Puoi controllare lo stato del tuo processo di importazione nella console o chiamando l'GetModelImportJoboperazione e controllando il Status campo nella risposta. Il processo di importazione è completo se lo stato del modello è Completo.

Dopo che il modello importato è disponibile in Amazon Bedrock, puoi utilizzare il modello con throughput on demand inviando InvokeModelo InvokeModelWithResponseStreamrichiedendo di effettuare chiamate di inferenza al modello. Per ulteriori informazioni, consulta Invia una sola richiesta con InvokeModel.

Per interfacciarti con il modello importato utilizzando il formato dei messaggi, puoi chiamare Converse o Operations. ConverseStream Per ulteriori informazioni, consulta Utilizzo di Converse "Hello, World!".

Nota

L'API Converse non è supportata per Qwen2.5, Qwen2-VL Qwen2.5-VL, e GPT-OSS modelli.

Supporto API avanzato: più formati API

A partire dal 17 novembre 2025, Amazon Bedrock Custom Model Import supporta formati OpenAI-compatible API completi, offrendo flessibilità nel modo in cui integri e distribuisci i tuoi modelli personalizzati. Tutti i modelli importati dopo l'11 novembre 2025 trarranno automaticamente vantaggio da queste funzionalità avanzate senza bisogno di configurazioni aggiuntive.

Custom Model Import ora supporta tre formati API:

  • BedrockCompletion (Testo) - Compatibile con gli attuali flussi di lavoro Bedrock

  • OpenAICompletion (Testo) - Compatibilità dello schema OpenAI Completions

  • OpenAIChatCompletion (Testo e immagini) - Piena compatibilità dello schema conversazionale

Queste funzionalità avanzate includono output strutturati per l'applicazione di schemi e pattern JSON, supporto visivo avanzato con elaborazione di più immagini, probabilità di log per informazioni sulla fiducia dei modelli e funzionalità di richiamo degli strumenti per i modelli. GPT-OSS

Per una documentazione di riferimento dettagliata sulle API, consulta la documentazione ufficiale di OpenAI:

Esempi di formati API

Gli esempi seguenti mostrano come utilizzare ciascuno dei quattro formati API supportati con i modelli importati.

BedrockCompletion

BedrockCompletionil formato è compatibile con gli attuali flussi di lavoro Bedrock e supporta richieste di inferenza basate su testo.

Richiesta di esempio:

import json import boto3 client = boto3.client('bedrock-runtime', region_name='us-east-1') payload = { "prompt": "How is the rainbow formed?", "max_gen_len": 100, "temperature": 0.5 } response = client.invoke_model( modelId='your-model-arn', body=json.dumps(payload), accept='application/json', contentType='application/json' ) response_body = json.loads(response['body'].read())

Risposta di esempio:

{ "generation": " – A scientific explanation\nA rainbow is a beautiful natural phenomenon that occurs when sunlight passes through water droplets in the air. It is formed through a process called refraction, which is the bending of light as it passes from one medium to another.\nHere's a step-by-step explanation of how a rainbow is formed:\n1. Sunlight enters the Earth's atmosphere: The first step in forming a rainbow is for sunlight to enter the Earth's atmosphere. This sunlight is made up of a spectrum of", "prompt_token_count": 7, "generation_token_count": 100, "stop_reason": "length", "logprobs": null }

BedrockCompletion supporta output strutturati utilizzando parametri con e tipi. response_format json_object json_schema

OpenAICompletion

Il formato OpenAICompletion fornisce la compatibilità con lo schema OpenAI Completions. Per utilizzare questo formato, includi il parametro anziché. max_tokens max_gen_len

Richiesta di esempio:

import json import boto3 client = boto3.client('bedrock-runtime', region_name='us-east-1') payload = { "prompt": "How is the rainbow formed?", "max_tokens": 100, "temperature": 0.5 } response = client.invoke_model( modelId='your-model-arn', body=json.dumps(payload), accept='application/json', contentType='application/json' ) response_body = json.loads(response['body'].read())

Risposta di esempio:

{ "id": "cmpl-b09d5810bd64428f8a853be71c31f912", "object": "text_completion", "created": 1763166682, "choices": [ { "index": 0, "text": " The formation of a rainbow is a complex process that involves the interaction of sunlight with water droplets in the air. Here's a simplified explanation: 1. Sunlight enters the Earth's atmosphere and is refracted, or bent, as it passes through the air. 2. When sunlight encounters a water droplet, such as a cloud, mist, or fog, it is refracted again and split into its individual colors, a process known as dispersion. 3. The refracted and", "finish_reason": "length" } ], "usage": { "prompt_tokens": 7, "total_tokens": 107, "completion_tokens": 100 } }

OpenAICompletion supporta funzionalità di output completamente strutturatejson, tra cui,regex, choice e vincoli che utilizzano il parametro. grammar structured_outputs

OpenAIChatCompletion

OpenAIChatCompletionil formato offre la piena compatibilità dello schema conversazionale e supporta input di testo e immagini.

Richiesta di esempio:

import json import boto3 client = boto3.client('bedrock-runtime', region_name='us-east-1') payload = { "messages": [ { "role": "user", "content": "How is the rainbow formed?" } ], "max_tokens": 100, "temperature": 0.5 } response = client.invoke_model( modelId='your-model-arn', body=json.dumps(payload), accept='application/json', contentType='application/json' ) response_body = json.loads(response['body'].read())

Risposta di esempio:

{ "id": "chatcmpl-1d84ce1d3d61418e8c6d1973f87173db", "object": "chat.completion", "created": 1763166683, "choices": [ { "index": 0, "message": { "role": "assistant", "content": "A rainbow is a beautiful natural phenomenon that occurs when sunlight passes through water droplets in the air. The process of forming a rainbow involves several steps:\n\n1. **Sunlight**: The first requirement for a rainbow is sunlight. The sun should be shining brightly, but not directly overhead.\n2. **Water droplets**: The second requirement is water droplets in the air..." }, "finish_reason": "length" } ], "usage": { "prompt_tokens": 41, "completion_tokens": 100, "total_tokens": 141 } }

OpenAIChatCompletion supporta output strutturati utilizzando entrambi i parametri. response_format structured_outputs Per quanto riguarda le funzionalità di visione, includete immagini nell'array di contenuti con dati di immagine codificati in base 64.

Nota

Per utilizzare il ChatCompletion formato, il modello di chat deve far parte di. tokenizer_config.json Custom Model Import non applicherà alcun modello di chat predefinito alla richiesta.

Hai bisogno dell’ARN del modello per effettuare chiamate di inferenza al nuovo modello importato. Dopo il completamento con successo del processo di importazione e dopo che il modello importato è attivo, è possibile ottenere l'ARN del modello importato nella console o inviando una ListImportedModelsrichiesta.

Quando invochi il modello importato utilizzando InvokeModel o InvokeModelWithStream, la tua richiesta viene soddisfatta entro 5 minuti o potresti ricevere ModelNotReadyException. Per comprenderlo ModelNotReadyException, seguite i passaggi di questa sezione successiva per la gestione ModelNotreadyException.

Domande frequenti

D: Quale formato API devo usare?

R: Per la massima compatibilità con vari SDK, consigliamo di utilizzare OpenAICompletion o i OpenAIChatCompletion formati in quanto forniscono OpenAI-compatible schemi ampiamente supportati da diversi strumenti e librerie.

D: GPT-OSS Su Amazon Bedrock Custom Model Import supporta l'API Converse?

R: No. GPT-OSSi modelli di importazione di modelli personalizzati basati su modelli non supportano l'API o ConverseStream l'API di Converse. È necessario utilizzare l'InvokeModelAPI con OpenAI-compatible gli schemi quando si lavora con modelli personalizzati GPT-OSS basati.

D: Quali modelli supportano la chiamata agli strumenti?

R: i modelli personalizzati GPT-OSS basati su di essi supportano le funzionalità di chiamata degli strumenti. La chiamata agli strumenti consente la chiamata di funzioni per flussi di lavoro complessi.

D: Che dire dei modelli importati prima dell'11 novembre 2025?

R: I modelli importati prima dell'11 novembre 2025 continuano a funzionare così come sono con i formati e le funzionalità API esistenti.

D: E generation_config.json per quanto riguarda i OpenAI-based modelli?

R: È fondamentale includere il generation_config.json file corretto quando si importano OpenAI-based modelli comeGPT-OSS. È necessario utilizzare il file di configurazione aggiornato (aggiornato il 13 agosto 2024) disponibile all'indirizzo. https://huggingface.co/openai/gpt-oss-20b/blob/main/generation_config.json La configurazione aggiornata include tre ID token di fine sequenza ([200002, 199999, 200012]), mentre le versioni precedenti includevano solo due token (). [200002, 199999] L'utilizzo di un generation_config.json file obsoleto causerà errori di runtime durante la chiamata del modello. Questo file è essenziale per il corretto comportamento del modello e deve essere incluso nelle importazioni del OpenAI-based modello.

Gestione ModelNotReadyException

Amazon Bedrock Custom Model Import ottimizza l'uso dell'hardware rimuovendo i modelli non attivi. Se provi a invocare un modello rimosso, ricevi ModelNotReadyException. Dopo aver rimosso il modello e invocato il modello per la prima volta, Custom Model Import inizia a ripristinarlo. Il tempo di ripristino dipende dalle dimensioni del parco on demand e dalle dimensioni del modello.

Se la tua richiesta InvokeModel o InvokeModelWithStream restituisce ModelNotReadyException, segui la procedura per gestire l’eccezione.

  1. Configurare nuovi tentativi

    Per impostazione predefinita, la richiesta viene ritentata automaticamente con un backoff esponenziale. È possibile configurare il numero massimo di tentativi.

    Il codice di esempio seguente mostra come configurare i nuovi tentativi. Sostituisci ${region-name}${model-arn}, e 10 con la tua regione, l'ARN del modello e il numero massimo di tentativi.

    import json import boto3 from botocore.config import Config REGION_NAME = ${region-name} MODEL_ID= '${model-arn}' config = Config( retries={ 'total_max_attempts': 10, //customizable 'mode': 'standard' } ) message = "Hello" session = boto3.session.Session() br_runtime = session.client(service_name = 'bedrock-runtime', region_name=REGION_NAME, config=config) try: invoke_response = br_runtime.invoke_model(modelId=MODEL_ID, body=json.dumps({'prompt': message}), accept="application/json", contentType="application/json") invoke_response["body"] = json.loads(invoke_response["body"].read().decode("utf-8")) print(json.dumps(invoke_response, indent=4)) except Exception as e: print(e) print(e.__repr__())
  2. Monitorare i codici di risposta durante i nuovi tentativi

    Ogni nuovo tentativo avvia il processo di ripristino del modello. Il tempo di ripristino dipende dalla disponibilità del parco on demand e dalle dimensioni del modello. Monitora i codici di risposta durante il processo di ripristino.

    Se i nuovi tentativi hanno costantemente esito negativo, continua con le fasi successive.

  3. Verificare che il modello sia stato importato

    È possibile verificare se il modello è stato importato correttamente controllando lo stato del processo di importazione nella console o chiamando l'GetModelImportJoboperazione. Controlla il campo Status nella risposta. Il processo di importazione è riuscito se lo stato del modello è Completo.

  4. Contatti Supporto per ulteriori indagini

    Apri un ticket con Supporto Per ulteriori informazioni, consulta Creazione di casi di supporto.

    Includi dettagli pertinenti come l’ID modello e i timestamp nel ticket di supporto.