建立人工檢閱工作流程 (API) - Amazon SageMaker

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

建立人工檢閱工作流程 (API)

使用 Amazon Augmented AI (Amazon A2I) 人工檢閱工作流程流程定義,來指定下列項目:

  • 對於 Amazon Textract 和 Amazon Rekognition 內建任務類型,據以呼叫人工循環的條件。

  • 您的任務被發送到的人力

  • 您的工作人力收到的一套指示,稱為「工作者任務範本」

  • 工作者任務的組態,包括接收任務的工作者人數,以及完成任務的時間限制。

  • 儲存您輸出資料的地方。

您可以在 SageMaker 主控台或使用作業建立人工審核工 SageMaker CreateFlowDefinition作流程。您可以在建立流程定義時,使用 Amazon Textract 的主控台和 Amazon Rekognition 任務類型來建立工作者任務範本。

重要

會啟動人工循環的人工啟動條件,例如,Amazon A2I 自訂任務類型不提供的可信度閾值 。使用主控台建立自訂任務類型的流程定義時,無法指定啟用條件。使用 Amazon A2I API 建立自訂任務類型的流程定義時,不能設定 HumanLoopActivationConditionsConfig 參數的 HumanLoopActivationConditions 屬性。若要控制何時起始人工檢閱,請在自訂應用程式中指定據以呼叫 StartHumanLoop 的條件。在這種情況下,每次 StartHumanLoop 呼叫都會導致人工檢閱。如需詳細資訊,請參閱 搭配使用自訂任務類型和 Amazon Augmented AI

先決條件

若要建立人工審查流程定義,須完成 使用增強版 AI 的先決條件 中所述的先決條件。

如果您使用 API 為任何任務類型建立流程定義,或在主控台中建立流程定義時使用自訂任務類型,則須先建立工作者任務範本。如需詳細資訊,請參閱 建立和管理範本

當您在主控台建立內建任務類型的流程定義時,如果想要預覽工作者任務範本,請使用如啟用工作者任務範本預覽 所述的政策,確保對您用於建立流程定義的角色,授與許可來存取 Amazon S3 儲存貯體,其中包含您的範本成品。

建立人工檢閱工作流程 (主控台)

使用此程序可使用主控台建立 Amazon Augmented AI (Amazon A2I) 人工審核工作流程 SageMaker。如果您是第一次使用 Amazon A2I,建議您使用組織中的人員來建立私有工作團隊,並在建立流程定義時使用此工作團隊的 ARN。若要了解如何設定私有人力及建立工作團隊,請參閱 建立私有人力 (Amazon SageMaker 主控台)。如果您已設定私有人力,請參閱 使用 SageMaker 主控台建立工作小組 以瞭解如何將工作團隊新增至該人力。

如果您將 Amazon A2I 與其中一個內建任務類型搭配使用,當您在主控台建立人工檢閱工作流程時,您可以使用 Augmented AI 提供的預設工作者任務範本來建立工作者指示。若要查看 Augmented AI 提供的預設範本範例,請參閱使用 Amazon A2I 的使用案例和範例中的內建任務類型。

建立流程定義 (主控台)
  1. 在開啟 SageMaker 主控台https://console.aws.amazon.com/sagemaker/

  2. 在導覽窗格的 Augmented AI (增強 AI) 區段下,選擇 Human review workflows (人工檢閱工作流程),然後選擇 Create human review workflow (建立人工檢閱工作流程)

  3. Overview (概觀) 中,執行下列操作:

    1. Name (名稱) 中,輸入唯一的工作流程名稱。名稱必須是小寫,在您帳戶中的「 AWS 地區」中是唯一的,且最多可包含 63 個字元。有效字元包括:a-z、0-9 和- (連字號)。

    2. S3 location for output (輸出的 S3 位置) 中,輸入您要存放人工檢閱結果的 S3 儲存貯體。值區必須位於與工作流程相同的「 AWS 區域」中。

    3. 針對 IAM 角色,選擇具有所需許可的角色。如果您選擇內建任務類型,且想要在主控台預覽工作者範本,請提供已連接啟用工作者任務範本預覽 所述政策類型的角色。

  4. Task type (任務類型) 中,選擇您希望人力工作者執行的任務類型。

  5. 如果您選擇 Amazon Rekognition 或 Amazon Textract 任務類型,請指定要叫用人工檢閱的條件。

    • 對於 Amazon Rekognition Image 影像仲裁任務,選擇推論可信度分數臨界值區間,該區間會啟動人工檢閱。

    • 對於 Amazon Textract 任務,當缺少特定表單鍵或表單鍵偵測可信度偏低時,您可以啟動人工檢閱。在評估文字中的所有表單索引鍵之後,如果可信度低於任何表單索引鍵所需的臨界值,您也可以啟動人工檢閱。兩個變數指定您的可信度臨界值:識別可信度資格可信度。若要進一步了解這些變數,請參閱 搭配使用 Amazon 增強版 AI 與 Amazon Textract

    • 對於這兩種任務類型,您可以隨機傳送一定百分比的資料物件 (影像或表單) 及其標籤供人工檢閱。

  6. 設定和指定工作者任務範本:

    1. 如果您使用的是 Amazon Rekognition 或 Amazon Textract 任務類型:

      1. Create template (建立範本) 區段中:

        • 若要使用 Amazon Rekognition 和 Amazon Textract 任務類型的 Amazon A2I 預設範本,來為工作者建立指示,請選擇 從預設範本建立

          • 如果您選擇 Build from a default template (從預設範本建立),請在 Worker task design (工作者任務設計) 下建立指示:

            • 提供您所在 AWS 區域中唯一的範本名稱

            • Instructions (指示) 區段中,提供如何完成任務的詳細指示。為了幫助工作者獲得更高的準確性,請提供良好和不良範例。

            • (選用) 在 Additional instructions (其他指示),向工作者提供額外的資訊和指示。

              如需建立有效指示的資訊,請參閱 建立良好的工作者指示

        • 若要選取您已建立的自訂範本,請從 Template (範本) 功能表中選擇該範本,並提供 Task description (任務描述),為工作者簡短描述任務。若要了解如何建立自訂範本,請參閱建立工作者任務範本

    2. 如果您使用的是自訂任務類型:

      1. 工作者任務範本 區段中,從清單中選擇您的範本。您在 SageMaker 主控台中建立的所有範本都會顯示在此清單中。若要了解如何為自訂任務類型建立範本,請參閱 建立和管理範本

  7. (可選) 預覽工作者範本:

    對於 Amazon Rekognition 和 Amazon Textract 任務類型,您可以選擇查看範例工作者任務來預覽工作者任務 UI。

    如果您要為自訂任務類型建立流程定義,則可以使用該 RenderUiTemplate 操作預覽工作者任務 UI。如需詳細資訊,請參閱 預覽工作者任務範本

  8. Workers (工作者) 中,選擇人力類型。

  9. 選擇建立

後續步驟

建立人工檢閱工作流程後,它會出現在主控台的 Human review workflows (人工檢閱工作流程) 下。若要查看流程定義的 Amazon Resource Name (ARN) 和組態詳細資訊,請選取工作流程名稱來進行選擇。

如果您使用的是內建任務類型,則可以使用流程定義 ARN 來使用該 AWS 服務的 API (例如 Amazon Textract API) 啟動人工迴圈。若是自訂任務類型,您可以使用 ARN 來啟動使用 Amazon Augmented AI 執行時間 API 的人工循環。若要進一步了解這兩個選項,請參閱 建立和啟動人工迴圈

建立人工檢閱工作流程 (API)

若要使用 SageMaker API 建立流程定義,請使用該CreateFlowDefinition作業。完成之後使用增強版 AI 的先決條件,請使用下列程序來瞭解如何使用此 API 作業。

如需 CreateFlowDefinition 操作的概觀和每個參數的詳細資訊,請參閱 CreateFlowDefinition

若要建立流程定義 (API)
  1. 請在 FlowDefinitionName 輸入唯一的名稱。該名稱在您帳戶中的 AWS 區域中必須是唯一的,並且最多可包含 63 個字元。有效字元包括:a-z、0-9 和- (連字號)。

  2. 對於 RoleArn,輸入您已設定來授予資料來源存取權的角色 ARN。

  3. 對於 HumanLoopConfig,輸入有關工作者及他們應該看到什麼的資訊。如需中每個參數的相關資訊HumanLoopConfig,請參閱HumanLoopConfig

  4. (選用) 如果您使用內建任務類型,請在 HumanLoopActivationConfig 中提供會啟動人工循環的條件。若要瞭解如何建立 HumanLoopActivationConfig 參數所需的輸入,請參閱 Amazon Augmented AI 中,適用於 JSON 結構描述的人工循環啟動條件。如果您未在此處指定條件,則當您為與內建任 AWS 務類型 (例如 Amazon Textract 或 Amazon Rekognition) 相關聯的服務提供流程定義時,該服務會將每個任務傳送給人工工作者進行審核。

    如果您使用的是自訂任務類型,則會停用 HumanLoopActivationConfig。若要瞭解如何在任務傳送給人類工作者時使用自訂任務類型控制,請參閱 搭配使用自訂任務類型和 Amazon Augmented AI

  5. (選擇性) 如果您使用的是內建任務類型,請在參數中指定整合來源 (例如 Amazon Rekognition 或 Amazon Textract)。HumanLoopRequestSource

  6. 對於OutputConfig,請指出於 Amazon Simple Storage Service (Amazon S3 存放人工循環輸出的位置。

  7. (選用) 使用 Tags 輸入金鑰值對,以協助您分類和組織流程定義。每個標籤皆包含由您定義的索引鍵和值。

Amazon Textract – Key-value pair extraction

以下是使用建立 Amazon Textract 人工審核工作流程 (流程定義) 的請求範例。 AWS SDK for Python (Boto3)您必須使用'AWS/Textract/AnalyzeDocument/Forms/V1'來創建一個 Amazon Textract 人工循環。如果您使用的是 Mechanical Turk 工作人力,請僅包括PublicWorkforceTaskPrice參數。

sagemaker_client = boto3.client('sagemaker', aws_region) response = sagemaker_client.create_flow_definition( FlowDefinitionName='ExampleFlowDefinition', HumanLoopRequestSource={ 'AwsManagedHumanLoopRequestSource': 'AWS/Textract/AnalyzeDocument/Forms/V1' }, HumanLoopActivationConfig={ 'HumanLoopActivationConditionsConfig': { 'HumanLoopActivationConditions': '{...}' } }, HumanLoopConfig={ 'WorkteamArn': 'arn:aws:sagemaker:aws_region:aws_account_number:workteam/private-crowd/workteam_name', 'HumanTaskUiArn': 'arn:aws:sagemaker:aws_region:aws_account_number:human-task-ui/template_name', 'TaskTitle': 'Example task title', 'TaskDescription': 'Example task description.', 'TaskCount': 123, 'TaskAvailabilityLifetimeInSeconds': 123, 'TaskTimeLimitInSeconds': 123, 'TaskKeywords': [ 'Keyword1','Keyword2' ], 'PublicWorkforceTaskPrice': { 'AmountInUsd': { 'Dollars': 123, 'Cents': 123, 'TenthFractionsOfACent': 123 } } }, OutputConfig={ 'S3OutputPath': 's3://bucket/path/', 'KmsKeyId': '1234abcd-12ab-34cd-56ef-1234567890ab' }, RoleArn='arn:aws:iam::aws_account_number:role/role_name', Tags=[ { 'Key': 'KeyName', 'Value': 'ValueName' }, ] )
Amazon Rekognition – Image moderation

以下是使用 AWS SDK for Python (Boto3)建立 Amazon Rekognition 人工審核工作流程 (流程定義) 的請求範例。您必須使用'AWS/Rekognition/DetectModerationLabels/Image/V3'建立 Amazon Rekognition 流程定義。如果您使用的是 Mechanical Turk 工作人力,請僅包括PublicWorkforceTaskPrice參數。

sagemaker_client = boto3.client('sagemaker', aws_region) response = sagemaker_client.create_flow_definition( FlowDefinitionName='ExampleFlowDefinition', HumanLoopRequestSource={ 'AwsManagedHumanLoopRequestSource': 'AWS/Rekognition/DetectModerationLabels/Image/V3' }, HumanLoopActivationConfig={ 'HumanLoopActivationConditionsConfig': { 'HumanLoopActivationConditions': '{...}' } }, HumanLoopConfig={ 'WorkteamArn': 'arn:aws:sagemaker:aws_region:aws_account_number:workteam/private-crowd/workteam_name', 'HumanTaskUiArn': 'arn:aws:sagemaker:aws_region:aws_account_number:human-task-ui/template_name', 'TaskTitle': 'Example task title', 'TaskDescription': 'Example task description.', 'TaskCount': 123, 'TaskAvailabilityLifetimeInSeconds': 123, 'TaskTimeLimitInSeconds': 123, 'TaskKeywords': [ 'Keyword1','Keyword2' ], 'PublicWorkforceTaskPrice': { 'AmountInUsd': { 'Dollars': 123, 'Cents': 123, 'TenthFractionsOfACent': 123 } } }, OutputConfig={ 'S3OutputPath': 's3://bucket/path/', 'KmsKeyId': '1234abcd-12ab-34cd-56ef-1234567890ab' }, RoleArn='arn:aws:iam::aws_account_number:role/role_name', Tags=[ { 'Key': 'KeyName', 'Value': 'ValueName' }, ] )
Custom Workflow

以下是為自訂整合,建立人工審核工作流程 (流程定義) 的請求範例。要創建此類人工審閱工作流程,請省略HumanLoopRequestSource從流定義請求。如果您使用的是 Mechanical Turk 工作人力,您只需包括PublicWorkforceTaskPrice參數。

sagemaker_client = boto3.client('sagemaker', aws_region) response = sagemaker_client.create_flow_definition( FlowDefinitionName='ExampleFlowDefinition', HumanLoopActivationConfig={ 'HumanLoopActivationConditionsConfig': { 'HumanLoopActivationConditions': '{...}' } }, HumanLoopConfig={ 'WorkteamArn': 'arn:aws:sagemaker:aws_region:aws_account_number:workteam/private-crowd/workteam_name', 'HumanTaskUiArn': 'arn:aws:sagemaker:aws_region:aws_acount_number:human-task-ui/template_name', 'TaskTitle': 'Example task title', 'TaskDescription': 'Example task description.', 'TaskCount': 123, 'TaskAvailabilityLifetimeInSeconds': 123, 'TaskTimeLimitInSeconds': 123, 'TaskKeywords': [ 'Keyword1','Keyword2' ], 'PublicWorkforceTaskPrice': { 'AmountInUsd': { 'Dollars': 123, 'Cents': 123, 'TenthFractionsOfACent': 123 } } }, OutputConfig={ 'S3OutputPath': 's3://bucket/path/', 'KmsKeyId': '1234abcd-12ab-34cd-56ef-1234567890ab' }, RoleArn='arn:aws:iam::account_number:role/role_name', Tags=[ { 'Key': 'KeyName', 'Value': 'ValueName' }, ] )

後續步驟

成功呼叫 CreateFlowDefinition API 操作的傳回值是流程定義 Amazon Resource Name (ARN)。

如果您使用的是內建任務類型,則可以使用流程定義 ARN 來使用該 AWS 服務的 API (即 Amazon Textract API) 啟動人工迴圈。若是自訂任務類型,您可以使用 ARN 來啟動使用 Amazon Augmented AI 執行時間 API 的人工循環。若要進一步了解這兩個選項,請參閱 建立和啟動人工迴圈