拡張推論を使用したモデル推論について - Amazon Nova

拡張推論を使用したモデル推論について

注記

このドキュメントはバージョン 1 を対象としています。バージョン 2 で拡張思考を使用する方法については、「拡張思考」を参照してください。

拡張思考は、モデルが個別の推論フェーズで複雑な問題にアプローチできるようにする設定です。このフェーズでは、まず、問題を段階的に体系的に探索する reasoningContent ブロックで専用の推論コンテンツを生成します。次に、モデルは推論を反映し、潜在的なエラーや代替アプローチを特定します。その後、レスポンスを確定します。これにより、モデルのプロセスを透過的に把握しながら、クリーンな最終回答を得られます。

拡張思考は計算要件が大きいため、Nova はハイブリッドアプローチのための選択的な有効化を行えるようにします。つまり、複雑で時間的制約の少ないクエリの場合は、拡張思考に切り替えることができます。単純なクエリや迅速なレスポンスが必要なクエリでは、拡張思考を無効にして計算リソースの負荷を軽減できます。

拡張推論の仕組み

拡張思考を有効にすると、Nova は内部思考プロセスを出力するレスポンスに reasoningContent ブロックを作成します。このモデルは、この推論を使用して最終的なテキストレスポンスを通知し、思考フェーズと最終的な回答を明確に分離します。

以下は、reasoningContent ブロックとそれに続くテキストコンテンツブロックを含む API レスポンスです。

{ "output": { "message": { "role": "assistant", "content": [ { "reasoningContent": { "reasoningText": { "text": "Let me analyze this optimization problem systematically. First, I need to understand the constraints: 5 warehouses, 12 distribution centers, 200 retail locations, with a 50-mile maximum distance requirement. This is a classic facility location problem with distance constraints...", } } }, { "text": "Based on my analysis, I recommend implementing a two-phase optimization approach. Phase 1 should focus on clustering retail locations using k-means algorithm to identify natural distribution center catchment areas..." } ] } } }

拡張推論の使用

以下は、拡張推論が有効になっている Converse API コールの例です。

import boto3 import json client = boto3.client("bedrock-runtime", region_name="us-east-1") # Enable extended thinking for complex problem-solving response = client.converse( modelId="amazon.nova-lite-1-5-v1:0", messages=[{ "role": "user", "content": [{"text": "I need to optimize a logistics network with 5 warehouses, 12 distribution centers, and 200 retail locations. The goal is to minimize total transportation costs while ensuring no location is more than 50 miles from a distribution center. What approach should I take?"}] }], inferenceConfig={ "maxTokens": 40000, "temperature": 0 }, additionalModelRequestFields={ "reasoningConfig": { "type": "enabled", "maxReasoningEffort": "high" } } ) # The response will contain reasoning blocks followed by the final answer for block in response["output"]["message"]["content"]: if "reasoningContent" in block: reasoning_text = block["reasoningContent"]["reasoningText"]["text"] print(f"Nova's thinking process:\n{reasoning_text}\n") elif "text" in block: print(f"Final recommendation:\n{block['text']}")

reasoningConfig 要素を除外すると、モデルはデフォルトで拡張思考を無効にします。

拡張思考設定オプション

Nova は、reasoningConfig パラメータを通じて拡張思考動作を柔軟に制御できるため、特定のニーズに合わせて推論時のコンピューティング割り当てを最適化できます。

推論制御

拡張思考機能を 2 つのモード間で切り替えることができます。typedisabled に設定すると (デフォルト)、Nova は効率的な潜在推論を使用し、速度と効率を最適化します。typeenabled に設定すると、Nova の明示的な拡張思考が、視覚的な推論プロセスでアクティブ化されます。

推論の労力レベル

拡張思考を有効にすると、Nova が推論プロセスに使用する計算労力を制御できます。追加の推論を必要とする中程度に複雑なタスクの場合は、maxReasoningEffort を low に設定するのが適しています。大規模な分析を必要とする複雑な問題の場合は、medium に設定するとうまく機能します。high に設定すると、最大 32,000 個の推論トークンを使用して、非常に複雑で多面的なタスクに最も詳細な推論が提供されます。

{ "modelId": "amazon.nova-lite-1-5-v1:0", "inferenceConfig": { "maxTokens": 40000, "temperature": 0 }, "additionalModelRequestFields": { "reasoningConfig": { "type": "enabled", "maxReasoningEffort": "high" } } }
注記

low および medium 設定を使用すると、ConverseStream を使用して各トークンが生成されるときに推論コンテンツはストリーミングされます。しかし、high の場合は動作が異なり、さまざまなアプローチを適用して品質を向上させ、最終チャンクにすべての推論コンテンツを出力します。このため、最初のトークンまでの時間が大幅に長くなり、効果的に管理するためにクライアント側で追加の作業が必要になる場合があります。

拡張思考のベストプラクティス

拡張推論のユースケースの特定

このセクションでは、拡張推論が適用されるユースケースと適用されないユースケースについて説明します。

拡張思考が適用されるユースケース:

  • 複雑な問題解決 — 複数ステップの数学的計算と証明、体系的なアプローチを必要とするアルゴリズムの課題、複数の相互依存変数による科学的分析、複雑なシナリオと制約のある財務モデリングの場合はすべて、専用の思考フェーズで問題を体系的に処理するモデルの能力からメリットを得られます。

  • 高度なコーディングタスク — 複数のファイルと依存関係にわたる大規模なコードベースのリファクタリング、可能性を体系的に排除する必要がある複雑なデバッグシナリオ、複数の技術的考慮事項があるシステムアーキテクチャ設計、複数のサービスおよびプラットフォーム間の移行計画の場合はすべて、ソリューションを提案する前に問題領域を包括的に推論する Nova の能力からメリットを得られます。

  • 分析タスク — 複数のソースを統合する必要のあるドキュメント分析、競合する優先順位と制約を伴う戦略的計画、競合する証拠の評価を必要とする研究タスク、規制を慎重に検討する必要がある法的またはコンプライアンス分析の場合はすべて、複雑な情報を体系的に処理するモデルの能力からメリットを得られます。

  • マルチステップ計画 — 依存関係とリソースの制約を伴うプロジェクト計画、複数の基準にわたる最適化を必要とするワークフロー設計、複数のシナリオを評価する必要があるリスク分析、体系的な評価を必要とするビジネスプロセスの最適化の場合はすべて、Nova の拡張された計画機能からメリットを得られます。

拡張推論が適用されないユースケース:

  • シンプルなクエリ — 「フランスの首都は何ですか?」などの基本的な事実に関する質問、「API が意味するものは何ですか?」などの簡単な定義、基本的な算術を含む単純な計算、提供されたコンテキストからの直接的な情報の取得の場合はすべて、Nova のデフォルトの潜在推論モードで効率的に処理できます。

  • 速度重視のアプリケーション — レイテンシーが問題となるリアルタイムチャットアプリケーション、本番稼働システムでの高頻度の API コール、大量のユースケースに対するシンプルなコンテンツ生成、基本的な分類や感情分析タスクの場合はすべて、潜在推論の短い応答時間からメリットを得られます。

  • コスト重視のワークロード — 推論の深さよりも速度とコストが重要である大量の処理、単純なロジックを使用したシンプルな自動化タスク、基本的なコンテンツのモデレーションまたはフィルタリング、日常的なデータ処理と変換の場合は通常、拡張思考による追加の計算投資は必要ありません。

推論の労力レベルの選択

  • Low — コードのレビューと改善の提案、追加の考慮事項を必要とする基本的な分析タスク、構造化されたアプローチからメリットを得られる簡単な問題解決、および中程度の複雑さを持つ大部分の日常的開発タスクに最適です。このレベルは、妥当なコストとレイテンシーの特性を維持しながら、有意義な推論の強化を提供します。

  • Medium — 体系的な調査を必要とする複雑なデバッグシナリオ、相互依存関係を持つ複数ステップから成る計算、複数の制約を伴う中程度の計画タスク、いくつかの代替を評価する必要がある分析に適しています。このレベルは、より詳細な分析からメリットを得られる問題に対して、かなり深い推論を提供します。

  • High — 高度な数学的問題と証明、複数のアーキテクチャ上の考慮事項を含む複雑なシステム設計、深い分析と合成を必要とする研究タスク、多大な影響を伴う重要な意思決定シナリオ、慎重な計画と検証を必要とする複数ステップのワークフローに対して最良の結果を提供します。このレベルでは、Nova は複雑な問題を包括的かつ詳細に処理するために、大量の計算リソースを使用します。

コストとパフォーマンスの管理

コスト最適化

コストに合わせて最適化するには、拡張思考を慎重に適用する必要があります。推論トークンは出力トークンとして請求されるため、追加の計算コストを容認できるほど複雑な場合にのみ、拡張思考を使用してください。低労力から始めて、結果に基づいて段階的に増やし、ユースケースに最適なバランスを見つけます。アプリケーションで推論トークンの使用パターンをモニタリングして、最適化の機会を特定します。時間にあまり制約のない推論負荷の高いタスクでは、コストを削減するためにバッチ処理を検討してください。拡張思考を無効にしても、潜在推論はほとんどのタスクを効果的に処理できるため、デフォルトのアプローチのままにしておく必要があります。

パフォーマンスの最適化

パフォーマンスを最適化するには、推論コンテンツと最終レスポンスコンテンツの両方に対応するために適切な maxTokens 値を設定します。複雑な推論タスクにストリーミングを使用して、認識されるパフォーマンスとユーザーエクスペリエンスを向上させます。可能な限り、頻繁に発生する問題タイプの推論パターンをキャッシュします。ユーザーの期待と時間の制約に基づいて推論の労力レベルを検討し、詳細な分析と応答時間の要件のバランスを取ります。