了解模型推理與延伸推理 - Amazon Nova

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

了解模型推理與延伸推理

注意

本文件適用於第 1 版。如需如何在第 2 版中使用延伸思考的相關資訊,請參閱延伸思考

延伸思考是一種設定,可讓模型處理具有不同推理階段的複雜問題。在此階段,它會先在涉及逐步系統探索問題的reasoningContent區塊中產生專用推理內容。然後,模型會反映其推理,識別潛在的錯誤或替代方法。然後,它會完成其回應。這可提供清晰的最終答案,同時提供模型程序的透明洞見

由於擴展思維的大型運算需求,Nova 允許混合方法的選擇性啟用。這表示您可以針對複雜且時間較不關鍵的查詢,開啟延伸思考。對於簡單或需要快速回應的查詢,您可以停用延伸思考以減少運算資源負載。

延伸推理的運作方式

啟用延伸思考時,Nova 會在回應中建立 reasoningContent 區塊,以輸出其內部思考程序。模型使用此推理來通知其最終文字回應,在思考階段與最終答案之間建立明確的區隔。

以下是 API 回應,其中包含文字內容reasoningContent區塊後面的區塊:

{ "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 參數提供延伸思考行為的彈性控制,可讓您針對特定需求最佳化推論時間運算配置。

合理控制

您可以在兩種模式之間切換延伸思考功能。type 設定為 disabled(預設值) 表示 Nova 使用有效率的隱含推理,最佳化速度和效率。設定 typeenabled啟用 Nova 的明確延伸思維,並顯示推理程序。

合理的工作量層級

啟用延伸思考時,您可以控制 Nova 在推理過程中投入的運算工作量。maxReasoningEffort 將 設定為低適用於需要額外推理的中等複雜任務。中等設定非常適合需要大量分析的複雜問題。高設定可為高度複雜、多面向的任務提供最徹底的推理,最多可使用 32,000 個推理字符。

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

使用 lowmedium設定時,當使用 產生每個字符時,將會串流推理內容ConverseStream。不過, high的運作方式不同,套用不同的方法來改善品質,進而輸出最終區塊中的所有推理內容。這可能會大幅增加第一次字符的時間,並需要額外的用戶端工作才能有效管理。

延伸思考的最佳實務

識別延長推理使用案例

本節將介紹延伸推理為 且不適用的潛在使用案例。

適用延伸思考的使用案例:

  • 複雜問題解決 – 多步驟數學計算和證據、需要系統性方法的演算法挑戰、具有多個相互依存變數的科學分析,以及具有複雜案例和限制條件的財務建模,全都受益於模型在專用思考階段有條理地解決問題的能力。

  • 進階編碼任務 – 跨多個檔案和相依性的大型程式碼庫重構、需要系統消除可能性的複雜偵錯案例、具有多個技術考量的系統架構設計,以及跨多個服務和平台的遷移規劃,全都受益於 Nova 在提出解決方案之前全面推理問題空間的能力。

  • 分析任務 – 需要跨多個來源合成的文件分析、具有競爭優先順序和限制條件的策略規劃、需要評估衝突證據的研究任務,以及需要仔細考慮法規的法律或合規分析,全都受益於模型有系統地處理複雜資訊的能力。

  • 多步驟規劃:具有相依性和資源限制的專案規劃、需要跨多個條件進行最佳化的工作流程設計、需要評估多個案例的風險分析,以及需要系統性評估的業務流程最佳化,全都受益於 Nova 的增強型規劃功能。

不適用延伸推理的使用案例:

  • 簡單查詢 - 基本事實問題,例如「什麼是法國首都?」、直接定義,例如「API 代表什麼?」、涉及基本算術的簡單計算,以及從提供的內容中擷取直接資訊,都以 Nova 的預設潛在推理模式有效率地運作。

  • 速度關鍵型應用程式 – 延遲很重要的即時聊天應用程式、生產系統中的高頻率 API 呼叫、大量使用案例的簡單內容產生,以及基本分類或情緒分析任務都受益於潛在推理的更快回應時間。

  • 成本敏感工作負載 – 大量處理,其中速度和成本比推理深度更重要,簡單的自動化任務具有直接的邏輯、基本內容管制或篩選,以及例行資料處理和轉換通常不需要對延伸思考進行額外的運算投資。

選擇推理工作層級

  • — 最適合用於程式碼檢閱和改進建議、需要額外考量的基本分析任務、從結構化方法中受益的簡單問題解決,以及大多數中等複雜性的day-to-day開發任務。此層級提供有意義的推理增強功能,同時維持合理的成本和延遲特性。

  • — 適用於需要系統調查的複雜偵錯案例、具有相互依存性的多步驟計算、具有多個限制條件的中等規劃任務,以及需要評估多種替代方案的分析。此層級可為受益於更徹底分析的問題提供重要的推理深度。

  • — 為進階數學問題和證據、具有多個架構考量的複雜系統設計、需要深度分析和合成的研究任務、具有重大影響的關鍵決策案例,以及需要仔細規劃和驗證的多步驟工作流程提供最佳結果。此層級可讓 Nova 投入大量運算資源,以全面處理複雜的問題。

管理成本和效能

成本最佳化

最佳化成本需要深思熟慮的延伸思考。只有在複雜性證明額外的運算成本時,才使用延伸思考,因為推理權杖會以輸出權杖的形式計費。從低工作量開始,並根據結果遞增,以尋找使用案例的最佳平衡。監控應用程式中的字符使用模式推理,以識別最佳化機會。考慮對non-time-sensitive的大量推理任務進行批次處理,以降低成本。請記住,停用延伸思維的隱含推理會有效地處理大多數任務,並應保持預設方法。

效能最佳化

效能最佳化需要設定適當的 maxTokens 值,以適應推理和最終回應內容。將串流用於複雜的推理任務,以改善感知效能和使用者體驗。盡可能快取經常遇到問題類型的推理模式。考慮根據使用者期望和時間限制推理工作量,在徹底分析與回應時間要求之間取得平衡。