インポートしたモデルを呼び出す - Amazon Bedrock

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

インポートしたモデルを呼び出す

モデルのインポートジョブでは、CreateModelImportJob リクエストを送信した後、モデルがインポートされるまでに数分かかる場合があります。インポートジョブのステータスは、コンソールで確認するか、GetModelImportJob オペレーションを呼び出してレスポンスの Statusフィールドで確認できます。モデルのステータスが Complete の場合、インポートジョブは完了しています。

インポートしたモデルを Amazon Bedrock で利用できる状態になったら、オンデマンドスループットでそのモデルを使用できます。その場合は、InvokeModel または InvokeModelWithResponseStream リクエストを送信して、モデルに対して推論呼び出しを行います。詳細については、「InvokeModel で 1 つのプロンプトを送信する」を参照してください。

メッセージ形式を使用してインポートしたモデルとのインターフェイスを取るには、Converse または ConverseStream オペレーションを呼び出します。詳細については、「Converse API を使用する場合」を参照してください。

注記

Converse API は、Qwen2.5、Qwen2-VL, Qwen2.5-VL、および GPT-OSSモデルではサポートされていません。

拡張 API サポート: 複数の API 形式

2025 年 11 月 17 日以降、Amazon Bedrock Custom Model Import は包括的な OpenAI 互換 API 形式をサポートし、カスタムモデルの統合とデプロイの方法を柔軟に実現します。2025 年 11 月 11 日以降にインポートされたすべてのモデルは、これらの拡張機能を自動的に活用でき、追加の設定は必要ありません。

カスタムモデルインポートが 3 つの API 形式をサポートするようになりました。

  • BedrockCompletion (テキスト) - 現在の Bedrock ワークフローと互換性があります

  • OpenAICompletion (テキスト) - OpenAI Completions スキーマの互換性

  • OpenAIChatCompletion (テキストとイメージ) - 会話型スキーマの完全互換性

これらの拡張機能には、JSON スキーマとパターンを適用するための構造化された出力、マルチイメージ処理によるビジョンのサポートの強化、モデル信頼度インサイトのログ確率、GPT-OSSモデルのツール呼び出し機能が含まれます。

API リファレンスドキュメントの詳細については、公式の OpenAI ドキュメントを参照してください。

API 形式の例

次の例は、インポートされたモデルでサポートされている 4 つの API 形式を使用する方法を示しています。

BedrockCompletion

BedrockCompletion 形式は現在の Bedrock ワークフローと互換性があり、テキストベースの推論リクエストをサポートしています。

リクエストの例:

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

レスポンスの例:

{ "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 はjson_object、 および json_schemaタイプの response_formatパラメータを使用した構造化出力をサポートします。

OpenAICompletion

OpenAICompletion 形式は、OpenAI Completions スキーマの互換性を提供します。この形式を使用するには、 の代わりに max_tokensパラメータを含めますmax_gen_len

リクエストの例:

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

レスポンスの例:

{ "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 は、、jsonchoice、および regexstructured_outputsパラメータを使用したgrammar制約を含む完全な構造化出力機能をサポートしています。

OpenAIChatCompletion

OpenAIChatCompletion 形式は、完全な会話型スキーマ互換性を提供し、テキスト入力と画像入力の両方をサポートします。

リクエストの例:

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

レスポンスの例:

{ "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 は、 パラメータresponse_formatstructured_outputsパラメータの両方を使用した構造化出力をサポートします。ビジョン機能の場合は、base64 でエンコードされた画像データを使用して、コンテンツ配列に画像を含めます。

注記

ChatCompletion 形式を使用するには、チャットテンプレートを の一部にする必要がありますtokenizer_config.json。カスタムモデルインポートは、デフォルトのチャットテンプレートをリクエストに適用しません。

新しくインポートしたモデルに対して推論呼び出しを行うには、モデルの ARN が必要です。インポートジョブが正常に完了し、インポートしたモデルがアクティブになったら、そのモデルの ARN をコンソールで取得するか、または ListImportedModels リクエストを送信して取得できます。

InvokeModel または InvokeModelWithStream を使用してインポートしたモデルを呼び出す場合、リクエストが 5 分以内に処理されるか、ModelNotReadyException が発生する可能性があります。ModelNotReadyException を理解するには、次のセクションの ModelNotreadyException の処理手順に従ってください。

よくある質問

Q: どの API 形式を使用する必要がありますか?

A: さまざまな SDKs との互換性を最大限に高めるには、OpenAICompletion 形式または OpenAIChatCompletion 形式を使用することをお勧めします。これらは、さまざまなツールやライブラリで広くサポートされている OpenAI 互換スキーマを提供するためです。

Q: GPT-OSS on Amazon Bedrock Custom Model Import は Converse API をサポートしていますか?

A: いいえ。 GPT-OSSベースのカスタムモデルのインポートモデルは、Converse API または ConverseStream API をサポートしていません。GPT-OSS ベースのカスタムモデルを使用する場合は、OpenAI 互換スキーマで InvokeModel API を使用する必要があります。

Q: ツール呼び出しをサポートするモデルは何ですか?

A: GPT-OSSベースのカスタムモデルは、ツール呼び出し機能をサポートしています。ツール呼び出しにより、複雑なワークフローの関数呼び出しが可能になります。

Q: 2025 年 11 月 11 日より前にインポートされたモデルについてはどうですか?

A: 2025 年 11 月 11 日より前にインポートされたモデルは、既存の API 形式と機能でそのまま動作し続けます。

Q: OpenAI ベースのモデルgeneration_config.jsonの場合はどうなりますか?

A: などの OpenAI ベースのモデルをインポートするときは、正しいgeneration_config.jsonファイルを含めることが重要ですGPT-OSS。https://huggingface.co/openai/gpt-oss-20b/blob/main/generation_config.json で利用可能な更新された設定ファイル (2024 年 8 月 13 日更新) を使用する必要があります。更新された設定には 3 end-of-sequenceトークン IDs ([200002, 199999, 200012]) が含まれていますが、古いバージョンには 2 つのトークン () のみが含まれていました[200002, 199999]。古いgeneration_config.jsonファイルを使用すると、モデルの呼び出し中にランタイムエラーが発生します。このファイルは適切なモデル動作に不可欠であり、OpenAI ベースのモデルインポートに含める必要があります。

ModelNotReadyException の処理

Amazon Bedrock Custom Model Import は、アクティブでないモデルを削除することで、ハードウェア使用率を最適化します。削除されたモデルを呼び出そうとすると、ModelNotReadyException が発生します。モデルが削除された後、そのモデルを初めて呼び出すと、Custom Model Import はモデルの復元を開始します。復元時間は、オンデマンドフリートのサイズとモデルサイズによって異なります。

InvokeModel または InvokeModelWithStream リクエストから ModelNotReadyException が返された場合は、例外を処理する手順に従ってください。

  1. 再試行を設定する

    デフォルトでは、リクエストはエクスポネンシャルバックオフで自動的に再試行されます。再試行回数の上限を設定することができます。

    次のサンプルコードは、再試行の設定方法を示しています。${region-name}${model-arn}10 は、それぞれ実際のリージョン、モデル ARN、最大試行回数に置き換えてください。

    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. 再試行中にレスポンスコードをモニタリングする

    再試行のたびに、モデルの復元プロセスが開始されます。復元時間は、オンデマンドフリートの可用性とモデルサイズによって異なります。復元プロセスの進行中にレスポンスコードをモニタリングしてください。

    再試行が一貫して失敗する場合は、次の手順に進みます。

  3. モデルが正常にインポートされたことを確認する

    モデルが正常にインポートされたかどうかは、コンソールでインポートジョブのステータスを確認するか、GetModelImportJob オペレーションを呼び出すことで確認できます。レスポンスの Status フィールドを確認します。モデルのステータスが Complete の場合、インポートジョブは成功しています。

  4. 詳細な調査サポートについては、 にお問い合わせください。

    でチケットを開く サポート詳細については、「サポートケースの作成」を参照してください。

    サポートチケットにはモデル ID やタイムスタンプなどの関連する詳細を含めます。