View a markdown version of this page

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 Converse API.

Note

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

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' OpenAI-compatible API complets, 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

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

  • OpenAIChatCompletion (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 format OpenAICompletion 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 } }

OpenAICompletion prend en charge les fonctionnalités de sortie structurées complètesjson, y comprisregex,choice, et les grammar contraintes utilisant le structured_outputs paramètre.

OpenAIChatCompletion

OpenAIChatCompletionle format fournit 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 } }

OpenAIChatCompletion prend en charge les sorties structurées en utilisant à la fois structured_outputs les paramètres response_format et. 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 SDK, nous vous recommandons d'utiliser OpenAICompletion ou des OpenAIChatCompletion formats, car ils fournissent des OpenAI-compatible schémas 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 OpenAI-compatible schémas lorsque vous travaillez avec des modèles personnalisés GPT-OSS 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 generation_config.json pour les OpenAI-based modèles ?

R : Il est essentiel d'inclure le bon generation_config.json fichier lors de l'importation de OpenAI-based modèles tels queGPT-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 identifiants de jetons de fin de séquence ([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 fonctionnement du modèle et doit être inclus dans vos importations de OpenAI-based modèles.

Manipulation ModelNotReadyException

Amazon Bedrock Custom Model Import 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.