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é

L'importation de votre modèle peut prendre plusieurs minutes après l'envoi de la CreateModelImportJob demande. 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 de 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 InvokeModel ou en InvokeModelWithResponseStream demandant des appels d'inférence vers le modèle. Pour de plus amples informations, veuillez consulter Soumettez une seule invite avec InvokeModel.

Pour interagir avec votre modèle importé à l'aide du format des messages, vous pouvez appeler Converse ou ConverseStream Operations. 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.

Prise en charge améliorée des API : plusieurs formats d'API

À compter du 17 novembre 2025, Amazon Bedrock Custom Model Import prend en charge des formats d' OpenAI-compatible API complets, offrant ainsi une flexibilité dans la manière dont vous intégrez et déployez vos modèles personnalisés. 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 Bedrock actuels

  • 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 des schémas et des modèles JSON, une prise en charge visuelle améliorée avec un traitement multi-images, des probabilités de log pour des informations de confiance 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 l'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 types.

OpenAICompletion

Le format OpenAICompletion assure la compatibilité du schéma de complétion OpenAI. Pour utiliser ce format, incluez le max_tokens paramètre à la place 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 toutes les fonctionnalités de sorties structuréesjson, y comprisregex,choice, et les grammar contraintes utilisant le structured_outputs paramètre.

OpenAIChatCompletion

OpenAIChatCompletionLe format offre 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 utilisant à la fois response_format des structured_outputs paramètres et. Pour des 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 et une fois que votre modèle importé est actif, vous pouvez obtenir l'ARN du modèle de votre modèle importé dans la console ou en envoyant une ListImportedModels demande.

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 les comprendre ModelNotReadyException, suivez les étapes de la section suivante relative à la manipulation 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 : L'importation de modèles personnalisés GPT-OSS sur Amazon Bedrock prend-elle en charge l'API Converse ?

R : Non. GPT-OSSles modèles d'importation de modèles personnalisés basés sur des modèles ne prennent pas en charge 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 prennent en charge les appels d'outils ?

R : les modèles personnalisés GPT-OSS basés sur des outils prennent en charge les fonctionnalités d'appel d'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 des 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 à l'adresse https://huggingface.co/openai/gpt-oss-20b/blob/main/generation_config.json. La configuration mise à jour inclut trois identifiants de jeton 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 comportement 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 maximum 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é correctement importé en vérifiant l'état 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, consultez la section 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.