Invocation du modèle importé - Amazon Bedrock

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Invocation du modèle importé

La tâche d'importation du modèle peut prendre plusieurs minutes après l'envoi de la CreateModelImportJobdemande. Vous pouvez vérifier l'état de votre tâche d'importation dans la console ou en appelant l'GetModelImportJobopération et en vérifiant le Status champ dans la réponse. La tâche d’importation est terminée si l’état du modèle est Terminé.

Une fois que votre modèle importé est disponible dans Amazon Bedrock, vous pouvez utiliser le modèle avec un débit à la demande en envoyant InvokeModelou InvokeModelWithResponseStreamen demandant des appels d'inférence au modèle. Pour de plus amples informations, veuillez consulter Soumettez une seule invite avec InvokeModel.

Pour interagir avec votre modèle importé en utilisant le format des messages, vous pouvez appeler les ConverseStreamopérations Converse ou. Pour de plus amples informations, veuillez consulter Utilisation de l’API Converse.

Note

L'API Converse n'est pas prise en charge pour Qwen2.5, Qwen2-VL, Qwen2.5-VL et les modèles. GPT-OSS

Support d'API amélioré : plusieurs formats d'API

À compter du 17 novembre 2025, Amazon Bedrock Custom Model Import prend en charge des formats d'API complets compatibles avec OpenAI, ce qui vous permet d'intégrer et de déployer vos modèles personnalisés en toute flexibilité. Tous les modèles importés après le 11 novembre 2025 bénéficieront automatiquement de ces fonctionnalités améliorées sans qu'aucune configuration supplémentaire ne soit requise.

L'importation de modèles personnalisés prend désormais en charge trois formats d'API :

  • BedrockCompletion (Texte) - Compatible avec les flux de travail actuels de Bedrock

  • Open AICompletion (Text) - Compatibilité avec le schéma OpenAI Completions

  • Open AIChat Completion (texte et images) - Compatibilité totale avec les schémas conversationnels

Ces fonctionnalités améliorées incluent des sorties structurées pour appliquer les schémas et modèles JSON, une prise en charge de la vision améliorée grâce au traitement de plusieurs images, des probabilités de journalisation pour obtenir des informations sur la fiabilité des modèles et des fonctionnalités d'appel d'outils pour les modèles. GPT-OSS

Pour une documentation de référence détaillée sur les API, consultez la documentation officielle d'OpenAI :

Exemples de formats d'API

Les exemples suivants montrent comment utiliser chacun des quatre formats d'API pris en charge avec vos modèles importés.

BedrockCompletion

BedrockCompletionle format est compatible avec les flux de travail Bedrock actuels et prend en charge les demandes d'inférence basées sur du texte.

Exemple de demande :

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())

Exemple de réponse :

{ "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 prend en charge les sorties structurées à l'aide de response_format paramètres avec json_object et json_schema de types.

OpenAICompletion

Le AICompletion format ouvert assure la compatibilité avec le schéma OpenAI Completions. Pour utiliser ce format, incluez le max_tokens paramètre au lieu demax_gen_len.

Exemple de demande :

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())

Exemple de réponse :

{ "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 } }

Open AICompletion prend en charge les fonctionnalités de sortie structurées complètes jsonregex, y comprischoice,, et grammar les contraintes utilisant le structured_outputs paramètre.

OpenAIChatCompletion

Le format Open AIChat Completion assure une compatibilité totale avec les schémas conversationnels et prend en charge les entrées de texte et d'image.

Exemple de demande :

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())

Exemple de réponse :

{ "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 } }

Open AIChat Completion prend en charge les sorties structurées utilisant à la fois response_format des structured_outputs paramètres et des paramètres. Pour les fonctionnalités de vision, incluez des images dans le tableau de contenu avec des données d'image codées en base64.

Note

Pour utiliser le ChatCompletion format, le modèle de chat doit faire partie dutokenizer_config.json. L'importation de modèles personnalisés n'appliquera aucun modèle de chat par défaut à la demande.

Vous aurez besoin de l’ARN du modèle pour effectuer des appels d’inférence vers le modèle que vous venez d’importer. Une fois la tâche d'importation terminée avec succès et une fois que votre modèle importé est actif, vous pouvez obtenir l'ARN du modèle importé dans la console ou en envoyant une ListImportedModelsdemande.

Lorsque vous invoquez votre modèle importé à l’aide de InvokeModel ou InvokeModelWithStream, votre demande est traitée dans les 5 minutes ou vous pouvez obtenir ModelNotReadyException. Pour comprendre ModelNotReadyException, suivez les étapes de manipulation décrites dans la section suivante ModelNotreadyException.

Questions fréquentes (FAQ)

Q : Quel format d'API dois-je utiliser ?

R : Pour une compatibilité maximale avec les différents formats SDKs, nous vous recommandons d'utiliser les formats Open AICompletion ou Open AIChat Completion, car ils fournissent des schémas compatibles avec OpenAI largement pris en charge par différents outils et bibliothèques.

Q : Est-ce que GPT-OSS Bedrock Custom Model Import est compatible avec l'API Converse sur Amazon ?

R : Non. GPT-OSSles modèles d'importation de modèles personnalisés basés sur des modèles ne sont pas compatibles avec l'API ou ConverseStream l'API Converse. Vous devez utiliser l'InvokeModelAPI avec des schémas compatibles avec OpenAI lorsque vous travaillez avec GPT-OSS des modèles personnalisés basés sur des modèles personnalisés.

Q : Quels modèles sont compatibles avec les appels d'outils ?

R : les modèles personnalisés GPT-OSS basés sur la prise en charge des capacités d'appel des outils. L'appel d'outils permet d'appeler des fonctions pour des flux de travail complexes.

Q : Qu'en est-il des modèles importés avant le 11 novembre 2025 ?

R : Les modèles importés avant le 11 novembre 2025 continuent de fonctionner tels quels avec leurs formats et fonctionnalités d'API existants.

Q : Qu'en est-il des generation_config.json modèles basés sur OpenAI ?

R : Il est essentiel d'inclure le bon generation_config.json fichier lors de l'importation de modèles basés sur OpenAI tels que. GPT-OSS Vous devez utiliser le fichier de configuration mis à jour (mis à jour le 13 août 2024) disponible sur https://huggingface. co/openai/gpt-oss-20b/blob/main/generation_config.json. La configuration mise à jour inclut trois end-of-sequence jetons IDs ([200002, 199999, 200012]), alors que les anciennes versions n'en incluaient que deux ([200002, 199999]). L'utilisation d'un generation_config.json fichier obsolète provoquera des erreurs d'exécution lors de l'invocation du modèle. Ce fichier est essentiel au bon comportement du modèle et doit être inclus dans vos importations de modèles basées sur OpenAI.

Manipulation ModelNotReadyException

L’importation de modèles personnalisés Amazon Bedrock optimise l’utilisation du matériel en supprimant les modèles qui ne sont pas actifs. Si vous essayez d’invoquer un modèle qui a été supprimé, vous obtiendrez un ModelNotReadyException. Une fois le modèle supprimé et que vous l’avez invoqué pour la première fois, l’importation de modèle personnalisé commence à restaurer le modèle. Le temps de restauration dépend de la taille de la flotte à la demande et de la taille du modèle.

Si votre demande InvokeModel ou InvokeModelWithStream renvoie ModelNotReadyException, suivez les étapes pour gérer l’exception.

  1. Configuration de nouvelles tentatives

    Par défaut, la demande est automatiquement retentée avec un backoff exponentiel. Vous pouvez configurer le nombre maximal de nouvelles tentatives.

    L’exemple de code suivant montre comment configurer la nouvelle tentative. Remplacez ${region-name}${model-arn}, et 10 par votre région, l'ARN du modèle et le nombre maximal de tentatives.

    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. Surveillance des codes de réponse lors des nouvelles tentatives

    Chaque nouvelle tentative lance le processus de restauration du modèle. Le délai de restauration dépend de la disponibilité de la flotte à la demande et de la taille du modèle. Surveillez les codes de réponse pendant le processus de restauration.

    Si les nouvelles tentatives échouent régulièrement, passez aux étapes suivantes.

  3. Vérifier que le modèle a été importé avec succès

    Vous pouvez vérifier si le modèle a été importé avec succès en vérifiant le statut de votre tâche d'importation dans la console ou en appelant l'GetModelImportJobopération. Vérifiez le champ Status dans la réponse. La tâche d’importation est réussie si le statut du modèle est Terminé.

  4. Contact Support pour une enquête plus approfondie

    Ouvrez un ticket avec Support Pour plus d'informations, voir Création de dossiers d'assistance.

    Incluez les détails pertinents tels que l’ID du modèle et les horodatages dans le ticket de support.