解決自動推理政策測試失敗的問題 - Amazon Bedrock

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

解決自動推理政策測試失敗的問題

如果自動推理政策的測試失敗,請檢閱測試調查結果中擷取的邏輯和規則。根據具體問題,有幾種方法可以解決失敗:

注意

教學課程影片:如需精簡和疑難排解自動推理政策的逐步解說,請觀看下列教學課程:

教學課程示範 3 - 精簡自動推理政策

理解註釋

註釋是您在測試失敗時套用來修復政策的更正方法。如果測試未傳回預期結果,您可以修改測試條件、重新執行測試條件,並將成功的修改套用為註釋,以更新您的政策。

使用註釋可以:

  • 修正不正確的規則

  • 新增缺少的變數

  • 改善變數描述

  • 解決翻譯模棱兩可的情況

範例:政策修復註釋

問題:政策核准所有全職員工的休假,但來源文件需要 1 年以上。

原始規則:

if isFullTime is true, then eligibleForParentalLeave is true

套用的註釋:

  1. 新增tenureMonths變數 (INT 類型)

  2. 更新規則為:if isFullTime is true and tenureMonths is greater than 12, then eligibleForParentalLeave is true

  3. 測試現在可正確為少於 12 個月期間的員工傳回 INVALID

  • 更新失敗測試的條件,並重新執行。如果測試傳回您預期的驗證結果,便可以套用此註釋來更新政策。

  • 更新政策的變數名稱或描述,以協助自動推理在將自然語言翻譯為邏輯時區分它們。

  • 如果您認為自動推理誤解了您的來源文件或您的來源文件包含錯誤,請更新政策的規則。

  • 透過新增變數和類型來編輯政策的邏輯。接著可以更新規則以使用新的變數。這是進階使用案例,我們通常不建議這麼做。

  • 使用更全面的指示重新建立您的政策。指示應包含足夠的內容,以便自動推理可以擷取與您的應用程式使用方式相關的邏輯。我們也建議您提供一些範例問題和答案,這些問題和答案是您預期會被問到的關於原始文件的問題。

當無法提供指引時

在某些情況下,自動推理可能會表示無法為失敗的測試提供指引。這通常發生在政策結構存在基本問題,而無法進行明確分析時。

無法提供指引的常見情境包括:

  • 規則衝突:您的政策包含相互矛盾的規則,因而造成邏輯不一致。例如,可能一個規則規定全職員工符合休假資格,而另一個規則規定服務少於一年的員工不符合資格,但沒有具體指定如何處理服務少於一年的全職員工。

  • 規則涵蓋範圍不完整:您的政策有漏洞,某些條件組合未被任何規則涵蓋,導致無法確定正確的結果。

  • 循環相依性:規則之間存在相互依賴關係,形成邏輯循環,導致系統無法得出明確結論。

  • 過於複雜的規則互動:當多個規則以某種方式互動,會針對特定測試情境建立模棱兩可或矛盾的結果。

若要解決這些問題:

  1. 有系統地檢閱您的政策規則:主控台中的定義頁面會顯示衝突規則、未使用的變數和未使用的值自訂類型的警告。資產中可從 QUALITY_REPORT GetAutomatedReasoningPolicyBuildWorkflowResultAssets API 動作取得相同的資訊。

  2. 檢查規則完整性:確保您的規則涵蓋領域中可能發生的所有條件組合。找出任何沒有適用規則的漏洞之處。

  3. 簡化複雜的互動:如果您有許多互連的規則,請考慮將它們細分為更簡單、更專注的規則,以便更容易理解和驗證。

  4. 測試邊緣案例:建立專門針對政策中邊界條件和邊緣情況的附加測試,以找出可能存在衝突或漏洞的地方。

  5. 考慮政策重組:如果衝突持續存在,您可能需要重組您的政策,使其具有更清晰的規則層級或優先順序,以解決模棱兩可的情況。

遇到這種情況時,通常可以先制定一個較簡單的政策版本,然後逐步增加複雜性,並在每個步驟中進行測試,以找出衝突出現在哪裡。

下列範例是測試可能失敗的常見原因,以及如何解決這些問題。

自動推理無法理解來源文件

常見原因

自動推理可能尚未從您的來源文件中擷取所有必要的變數,或者變數描述可能不夠清楚,無法從自然語言正確翻譯為形式邏輯。

Resolution

  1. 檢閱定義畫面上的變數清單,以確認從您的問答中擷取事實宣告所需的所有變數都存在於您的政策中。

  2. 如果缺少必要的變數:

    1. 選擇新增以建立新的變數。

    2. 選取適當的類型 (bool、int、real 或 enum)。

    3. 撰寫清晰、全面的變數描述。

  3. 如果有變數,但在問答驗證期間未正確指派,請改善其描述,以協助自動推理更好地翻譯自然語言。例如:

    原始描述 (過於簡略):「每週工作超過 20 小時的員工」。

    改進後的描述:「每週工作超過 20 小時的員工視為全職員工。當使用者提到自己是「全職」工作或全時工作時,將此值設為 true,當他們提到自己是「兼職」工作或減少工時,則設為 false。」

自動推理政策中的規則有誤

常見原因

自動推理可能誤解了您的來源文件,或您的來源文件可能包含錯誤或不一致。

Resolution

  1. 如果驗證輸出引用不正確的規則,請編輯規則。您可能會先注意到這一點,因為測試結果為 VALID,而您預期結果是 INVALID

  2. 在規則中參考變數時,請使用政策定義區段中指定的完整變數名稱。例如,拼出 isFullTime。如果您希望輸入的問答符合特定規則,請先檢查輸入問答中的變數是否正確。如果正確,您可能需要新增規則。

  3. 使用規則清單右上角的新增按鈕來輸入新規則。使用自然語言指定規則。首先指定限制條件,然後使用變數的完整名稱來參考變數。例如,如果某規則只允許全職員工休假,文字可以是如下:「如果員工 isFullTime,則允許他們帶薪休假 (LoAP)」。

自動推理政策傳回 TRANSLATION_AMBIGUOUS

常見原因

如果您的政策傳回 TRANSLATION_AMBIGUOUS,這表示自動推理在將自然語言翻譯為形式邏輯時偵測到模棱兩可的情況。當系統無法明確判斷如何將自然語言概念映射到政策中的形式邏輯變數和規則時,就會發生這種情況。

翻譯模棱兩可能由多種根本原因造成:

  • 重疊的變數定義:當您政策中的多個變數可合理代表自然語言提及的相同概念時,系統無法判斷要使用哪個變數。例如,如果您同時有描述類似的 tenureMonthsmonthsOfService 變數,則當使用者詢問「某人在公司工作多久」時,系統可能很難判斷要使用哪個變數。這會在翻譯過程中產生模棱兩可的情況,並可能導致結果不一致。

  • 變數描述不完整:變數描述缺乏足夠的細節,說明使用者如何在日常語言中指涉概念,導致難以將使用者輸入映射到正確的形式邏輯表示。

  • 模棱兩可自然語言輸入:使用者提示或模型回應中包含模糊、矛盾或可多重解釋的陳述,無法清楚翻譯成形式邏輯。

  • 缺少內容資訊:當自然語言提及您領域中存在的概念,但這些概念在政策的變數結構描述中無法充分表示時。

  • 術語不一致:當來源文件、變數描述和使用者互動中使用不同的術語來指涉同一個概念時,會在翻譯過程造成混淆。

了解這些原因可協助您偵錯測試的問題,並判斷要對政策進行哪些變更。在某些情況下,您可能需要調整政策的可信度等級設定,以便在特定使用案例的嚴格準確性和實際可用性之間取得更好的平衡。

Resolution

根據根本問題的不同,有幾種方法可以解決這個問題:

  • 變數描述過於相似:當兩個變數的名稱或描述相似時,翻譯過程可能會不一致地在它們之間進行選擇。例如,如果您同時具有描述類似的 isFullTimefullTimeStatus 變數,則系統可能無法一致地將有關雇用狀態的自然語言映射到正確的變數。檢閱您的變數描述,讓每個變數都有明確區分的目的和內容。考慮將重複的概念合併為單一變數,或確保每個變數都有其獨特的用途,並搭配清晰、不重疊的描述,明確說明每個變數的特定使用情境。

  • 變數內容不足:您的變數描述可能無法充分涵蓋使用者如何參考您領域中的概念。使用正確的內容層級更新您的變數描述。

  • 值格式不一致:當系統不確定如何格式化值 (例如數字或日期) 時,可能會發生翻譯模棱兩可的情況。更新您的變數描述,以釐清預期的格式。

  • 模棱兩可的輸入:如果輸入文字包含模棱兩可的陳述式,請使用替代解譯之間的分歧,以更精確地修改它們。