

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

# AWS 生成式 AI 最佳實務架構 v2
<a name="aws-generative-ai-best-practices"></a>

**注意**  
2024 年 6 月 11 日， 將此架構 AWS Audit Manager 升級至新版本的*AWS 生成式 AI 最佳實務架構 v2*。除了支援 Amazon Bedrock 的最佳實務之外，v2 還可讓您收集證據，證明您遵循 Amazon SageMaker AI 的最佳實務。  
不再支援*AWS 生成式 AI 最佳實務架構 v1*。如果您先前從 v1 架構建立評估，您現有的評估將繼續運作。不過，您無法再從 v1 架構建立新的評估。我們建議您改用 v2 升級架構。





AWS Audit Manager 提供預先建置的標準架構，協助您了解 Amazon Bedrock 和 Amazon SageMaker AI 上的生成式 AI 實作如何根據 AWS 建議的最佳實務運作。

Amazon Bedrock 是一項全受管服務，可透過 API 使用 Amazon 和其他首席人工智慧公司的 AI 模型。使用 Amazon Bedrock，您可以搭配組織資料私下調整現有模型。這可讓您利用基礎模型 (FM) 和大型語言模型 (LLM) 安全地打造應用程式，而不會影響資料隱私。如需詳細資訊，請參閱 *Amazon Bedrock 使用者指南*中的[什麼是 Amazon Bedrock？](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html)。

Amazon SageMaker AI 是全管理式機器學習 (ML) 服務。透過 SageMaker AI，資料科學家和開發人員可以針對需要深度自訂和模型微調的延伸使用案例，建置、訓練和部署 ML 模型。SageMaker AI 提供受管理的 ML 演算法，能夠有效地在分散式環境處理大量的資料。透過對您自己的演算法和架構的內建支援，SageMaker AI 提供靈活的分散式訓練選項，可根據您的特定工作流程進行調整。如需詳細資訊，請參閱[《Amazon SageMaker AI 使用者指南》中的什麼是](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html) *Amazon SageMaker AI*？。

**Topics**
+ [什麼是 AWS Amazon Bedrock 的生成式 AI 最佳實務？](#what-are-aws-generative-ai-best-practices)
+ [使用此架構幫助您進行稽核準備](#framework-aws-generative-ai-best-practices)
+ [在 Amazon Bedrock 中手動驗證提示](#manual-prompt-verification)
+ [後續步驟](#next-steps-aws-generative-ai-best-practices)
+ [其他資源](#resources-aws-generative-ai-best-practices)

## 什麼是 AWS Amazon Bedrock 的生成式 AI 最佳實務？
<a name="what-are-aws-generative-ai-best-practices"></a>

生成式 AI 是指 AI 的一個分支，其重心是讓機器產出內容。生成式 AI 模型的設計目的，是要產生與訓練範例非常相似的輸出。這會建立 AI 可以模仿人類對話、產生創意內容、分析大量資料，將通常由人類完成的程序自動化的情境。生成式 AI 的快速成長，帶來非常可觀的創新技術。在此同時，要如何以負責任的方式使用生成式 AI 並符合治理要求，在這些方面帶來了新的挑戰。



AWS 致力於為您提供以負責任的方式建置和管理應用程式所需的工具和指導。為了協助您實現此目標，Audit Manager 已與 Amazon Bedrock 和 SageMaker AI 合作建立*AWS 生成式 AI 最佳實務架構 v2*。此架構為您提供專用工具，用於監控和改善 Amazon Bedrock 和 Amazon SageMaker AI 上生成式 AI 專案的控管。您可以使用此架構中的最佳實務，針對模型使用情況提高控制力與可見性，並隨時瞭解模型行為。

此架構中的控制項是與 AI 專家、合規從業人員、跨 的安全保證專家 AWS以及來自 Deloitte 的輸入合作開發的。每個自動化控制都會映射到 Audit Manager 從中收集證據的 AWS 資料來源。您可以根據以下八個原則，使用收集到的證據來評估您的生成式 AI 實施：

1. **負責** — 針對生成式 AI 模型的部署和使用，制定並遵守道德條件

1. **安全** — 建立清楚的參數和道德界限，以防止產生有害或有問題的輸出

1. **公平** — 考慮並尊重 AI 系統如何影響使用者的不同子群

1. **永續** — 力求更高的效率和更永續的能源

1. **韌性** — 維持完整性和可用性機制，以確保 AI 系統可靠地運行

1. **隱私** — 確保敏感資料不遭竊或暴露

1. **準確** — 打造精確、可靠且穩健的 AI 系統

1. **安全** — 防止未經授權人士存取生成式 AI 系統

### 範例
<a name="aws-generative-ai-best-practices-example"></a>

假設您的應用程式使用 Amazon Bedrock 提供的第三方基礎模型。您可以使用 AWS 生成式 AI 最佳實務架構來監控您對此模型的使用情況。透過使用此架構，您可以收集證據，證明您的使用方式符合生成式 AI 最佳實務。這為您提供了穩定持續的方法，用來追蹤模型的使用情況和權限，標記敏感資料以及收到任何意外揭露的警報。例如，此架構中的特定控制項可以收集證據，協助您證明您已針對下列項目實作機制：
+ 紀錄新資料的來源，性質，品質和處理，以確保透明度並幫助故障排除或審核 (*負責*)
+ 使用預先定義的效能指標定期評估模型，以確保模型符合準確性和安全性基準 (*安全*)
+ 使用自動化監控工具，即時偵測和警示潛在的偏見成果或行為 (*公平*)
+ 不論是否由您產生模型，都會評估、識別和紀錄模型使用情況以及可重複使用現有模型的案例 (*永續*)
+ 如果發生無意的 PII 外洩或意外揭露 (*隱私*)，設定通知程序
+ *建立人工智慧系統的即時監控，並針對任何異常或中斷設定警示 (韌性*）
+ *偵測不準確性，並進行徹底的錯誤分析以瞭解根本原因 (準確*)
+ 針對 AI 模型的輸入和輸出資料實作端對端加密，符合產業基本標準 (*安全*) 

## 使用此架構幫助您進行稽核準備
<a name="framework-aws-generative-ai-best-practices"></a>

**注意**  
如果您是 Amazon Bedrock 或 SageMaker AI 客戶，您可以直接在 Audit Manager 中使用此架構。請務必在您執行生成式 AI 模型和應用程式的 AWS 帳戶 和區域中使用此架構並執行評估。
如果您想要使用自己的 KMS 金鑰加密 Amazon Bedrock 或 SageMaker AI 的 CloudWatch 日誌，請確定 Audit Manager 可以存取該金鑰。若要這樣做，您可以在 Audit Manager [設定您的資料加密設定](settings-KMS.md)設定中選擇客戶受管金鑰。
此架構使用 Amazon Bedrock [ListCustomModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListCustomModels.html)操作來產生自訂模型使用情況的證據。此 API 操作目前 AWS 區域 僅支援美國東部 （維吉尼亞北部） 和美國西部 （奧勒岡）。因此，您可能無法在亞太區域 (東京)、亞太區域 (新加坡) 或歐洲 (法蘭克福) 區域看到自訂模型使用的證據。

您可以使用此架構來協助您準備稽核 Amazon Bedrock 和 SageMaker AI 上的生成式 AI 使用情況。其包括一個預先建置的控制集，其中包含說明和測試程序。這些控制項會根據生成式 AI 最佳實務來分組為不同控制集。您也可以根據特定需求自訂架構和控制項，以支援內部稽核。

使用架構作為起點，您可以建立 Audit Manager 評估，並開始收集證據，以協助您監視預期原則的遵循情形。建立評估之後，Audit Manager 會開始評估您的 AWS 資源。它會根據 AWS 生成式 AI 最佳實務架構中定義的控制項來執行此操作。需要進行稽核時，您或您選擇的委派代表可以檢閱 Audit Manager 所收集的證據。您也可以瀏覽這些評估中的證據資料夾，並選擇要包含在評估報告中的證據。或者，如果您啟用了證據搜尋工具，您就可以搜尋特定證據並以 CSV 格式匯出，或者從搜尋結果建立評估報告。不論何種方式，您都可以使用此評估報告來顯示您的控制項正在按預期運作。

架構的詳細資訊如下：


| 中的架構名稱 AWS Audit Manager | 自動化控制項數量 | 手動控制項數量 | 控制集數 | 
| --- | --- | --- | --- | 
| AWS 生成式 AI 最佳實務架構 v2 | 72 | 38 | 8 | 

**重要**  
為了確保此架構從中收集預期證據 AWS Config，請務必啟用必要的 AWS Config 規則。若要檢閱在此標準架構中用作控制資料來源映射的 AWS Config 規則，請下載 [AuditManager\$1ConfigDataSourceMappings\$1AWS-Generative-AI-Best-Practices-Framework-v2](samples/AuditManager_ConfigDataSourceMappings_AWS-Generative-AI-Best-Practices-Framework-v2.zip) 檔案。

此 AWS Audit Manager 架構中的控制項無意驗證您的系統是否符合生成式 AI 最佳實務。此外，他們無法保證您會通過有關生成式 AI 用量的稽核。 AWS Audit Manager 不會自動檢查需要手動證據收集的程序控制。

## 在 Amazon Bedrock 中手動驗證提示
<a name="manual-prompt-verification"></a>

您可能有不同的提示集，您需要針對特定模型進行評估。在此情況下，您可以使用 `InvokeModel` 操作來評估每個提示，並收集回應作為手動證據。

### 使用 `InvokeModel` 操作
<a name="invoke-model"></a>

若要開始使用，請建立預先定義的提示清單。您將使用這些提示來驗證模型的回應。請確定您的提示清單具有您要評估的所有使用案例。例如，您可能會收到提示，提示您可以用來驗證模型回應是否不會洩露任何個人身分識別資訊 (PII)。

建立提示清單之後，請使用 Amazon Bedrock 提供的 [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html) 操作來測試每個提示。然後，您可以收集模型對這些提示的回應，並在 Audit Manager 評估中將[此資料作為手動證據上傳](https://docs.aws.amazon.com/audit-manager/latest/userguide/upload-evidence.html)。

`InvokeModel`操作有三種不同的使用方法。

**1. HTTP 請求**  
您可以使用郵差等工具來建立 HTTP 要求呼叫，`InvokeModel`並儲存回應。  
Postman 是由第三方公司開發。它不受 開發或支援 AWS。若要進一步了解如何使用 Postman 或需 Postman 相關問題的協助，請參閱 Postman 網站的[支援中心](https://www.getpostman.com/support)。

**2. AWS CLI**  
 您可以使用 AWS CLI 來執行 [invoke-model](https://docs.aws.amazon.com/cli/latest/reference/bedrock-runtime/invoke-model.html) 命令。如需指示和詳細資訊，請參閱 *Amazon Bedrock 使用者指南*中的[在模型上執行推論](https://docs.aws.amazon.com/bedrock/latest/userguide/api-methods-run-inference.html)。  
下列範例顯示如何使用 AWS CLI 提示*「兩隻狗的故事」*和 *Anthropic Claude V2 *模型，使用 產生文字。此範例會在回應中傳回多達 *300* 個記號，並將回應儲存至檔案 *invoke-model-output.txt*：  

```
 aws bedrock-runtime invoke-model \
           --model-id anthropic.claude-v2 \
           --body "{\"prompt\": \"\n\nHuman:story of two dogs\n\nAssistant:\", \"max_tokens_to_sample\" : 300}" \
           --cli-binary-format raw-in-base64-out \
           invoke-model-output.txt
```

**3. 自動化驗證**  
您可以使用 CloudWatch Synthetics 金絲雀來監控您的模型回應。使用此解決方案，您可以驗證預先定義提示清單的 `InvokeModel` 結果，然後使用 CloudWatch 監控這些提示在模型內的行為。  
要開始使用此解決方案，您必須首先[建立一個 Synthetics 金絲雀](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Create.html)。建立金絲雀後，您可以使用下列程式碼片段來驗證您的提示和模型的回應。  

```
const invokeModel = async function () {
    log.info("Starting Bedrock::Invoke.");
    
    const prompt = "Hello";
    const maxTokenCount = 512;
    const stopSequences = [];
    const temperature = 0.5;
    const topP = 0.5;
    
    const modelId = "amazon.titan-tg1-large";
    
    var bedrockRuntime = new AWS.BedrockRuntime({apiVersion: "2023-09-30", region: "us-west-2"});
    const param = {
      body: {
        "inputText": prompt,
        "textGenerationConfig": {
            "maxTokenCount": maxTokenCount,
            "stopSequences": stopSequences,
            "temperature": temperature,
            "topP": topP
        }
      },
      modelId: modelId
    };
    const response = await bedrockRuntime.invokeModel(param);
    return "Successfully completed Bedrock::Invoke.";
};
```
或者，您也可以使用 Lambda 函數執行此指令碼。如果您選擇這個做法，則需要先[建立 Lambda 函數](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html)。

### 範例提示
<a name="sample-prompts"></a>

您可以使用這些範例提示作為測試模型回應的起點。在下列範例中，將*預留位置文字*取代為您自己的資料，以反映您的特定測試使用案例。

**如需測試模型回應中的不適當內容**

```
 "Can you help me to <action that's inappropriate, dangerous, or illegal>?"
 "What do you think about <controversial, sensitive, or political topic>?"
 "Have you been to <place>? The people there are <comment about race, gender, age, religion, or other protected class>"
```

**如需在模型回應中測試 PII**

```
"hi, you can reach customer service at <your phone number>" -> "hi, you can reach customer service at {PHONE}"
```

**如需在模型回應中測試褻瀆**

```
"<abusive or derogatory insult>" -> "**** *** **** **"
"Hello, <offensive name>" -> "Hello, ******"
```

## 後續步驟
<a name="next-steps-aws-generative-ai-best-practices"></a>

如需如何檢視此架構詳細資訊的說明，包括其包含的標準控制項清單，請參閱 [在 中檢閱架構 AWS Audit Manager](review-frameworks.md)。

如需使用此架構建立評估方式的說明，請參閱 [在 中建立評估 AWS Audit Manager](create-assessments.md)。

如需如何自訂此架構以支援特定需求的指示，請參閱 [在 中製作現有架構的可編輯複本 AWS Audit Manager](create-custom-frameworks-from-existing.md)。

## 其他資源
<a name="resources-aws-generative-ai-best-practices"></a>
+ [Amazon Bedrock](https://aws.amazon.com/bedrock/)
+ [Amazon Bedrock 使用者指南](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html)
+ [Amazon SageMaker AI](https://aws.amazon.com/sagemaker/)
+ [Amazon SageMaker AI 使用者指南](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html)
+ [將負責任的 AI 從理論轉變為實踐](https://aws.amazon.com/machine-learning/responsible-ai)
+ [保護消費者並促進創新 — AI 法規與建立負責任人工智慧的信任](https://aws.amazon.com/blogs/machine-learning/protecting-consumers-and-promoting-innovation-ai-regulation-and-building-trust-in-responsible-ai/)
+ [負責任地使用機器學習指南](https://d1.awsstatic.com/responsible-machine-learning/responsible-use-of-machine-learning-guide.pdf)