Ground Truth 串流標籤工作 - Amazon SageMaker

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

Ground Truth 串流標籤工作

如果您想要永久傳送新資料物件至 Amazon SageMaker Ground Truth 以加上標籤,請使用串流標籤任務。串流標籤工作可讓您:

  • 使用永久執行的標籤工作,即時傳送新資料集物件給工作者。只要標籤工作處於作用中狀態且正在向其傳送新物件,工作者就會持續接收要標籤的新資料物件。

  • 針對已排入佇列並等待標籤的物件數量取得可見性。請使用此資訊來控制傳送至標籤工作的資料物件流程。

  • 在工作者完成標籤之後,即時接收個別資料物件的標籤資料。

Ground Truth 串流標籤工作將保持啟用狀態,直到手動停止或閒置超過 10 天。當標籤工作處於作用中狀態時,您可以間歇性傳送新資料物件給工作者。

如果您是 Ground Truth 串流標籤工作的新使用者,建議您檢閱運作方式

使用建立串流標記任務來了解如何建立串流標籤工作。

注意

Ground Truth 串流標籤工作僅透過 SageMaker API.

運作方式

當您建立 Ground Truth 串流標籤工作時,工作會保持啟用狀態,直到手動停止、閒置超過 10 天或無法存取輸入資料來源為止。當其處於作用中狀態時,您可以間歇性傳送新資料物件給工作者。只要工作者目前可用的總任務數量少於 MaxConcurrentTaskCount 的值,工作者就可繼續即時接收新資料物件。否則,資料物件會傳送至 Ground Truth 在 Amazon 簡單佇列服務 (AmazonSQS) 中代表您建立的佇列,以供日後處理。一旦工作者目前可用的總任務數量低於 MaxConcurrentTaskCount,就會立即傳送這些任務給工作者。如果資料物件在 14 天後未傳送至工作者,則會過期。您可以檢視佇列的待處理的任務數量,並調整傳送到標籤工作的物件數量。例如,如果待處理物件的待辦項目超過閾值,您可降低傳送物件至標籤工作的速度。

傳送資料至串流標籤工作

當您使用輸入資訊清單檔案建立標籤工作時,您可以選用一次性提交輸入資料至串流標籤工作。標籤任務開始且狀態為後InProgress,您可以使用 Amazon SNS 輸入主題和 Amazon S3 事件通知,即時將新資料物件提交至標籤任務。

在開始標籤工作時,提交資料物件 (一次性):

  • 使用輸入資訊清單檔案 — 您可以選擇在建立串流標籤任務ManifestS3Uri時指定 Amazon S3 URI 中的輸入資訊清單檔案。Ground Truth 會向工作者傳送資訊清單檔案的每個資料物件,以便在標籤工作開始時立即進行標籤。如需進一步了解,請參閱 建立資訊清單檔案 (選用)

    在提交建立串流標籤工作的請求之後,其狀態將為 Initializing。在標籤工作處於作用中狀態之後,狀態會變更為 InProgress,您可以開始使用即時選項來提交其他資料物件以進行標籤。

即時提交資料物件:

  • 使用 Amazon SNS 消息發送數據對象 — 您可以通過發送 Amazon 消SNS息將 Ground Truth 新數據對象發送到標籤。您會將此訊息傳送至您在建立串流標籤任務時建立並指定的 Amazon SNS 輸入主題。如需詳細資訊,請參閱使用 Amazon 發送數據對象 SNS

  • 將資料物件放置在 Amazon S3 儲存貯體並加以傳送 – 每次將新資料物件新增至 Amazon S3 儲存貯體時,都可以提示 Ground Truth 處理該物件以進行標籤。為此,您可以將事件通知添加到存儲桶,以便每次將新對象添加到(或在其中創建)時通知您的 Amazon SNS 輸入主題。如需詳細資訊,請參閱使用 Amazon S3 傳送資料物件。此選項不適用於以文字為基礎的標籤工作,例如文字分類及具名實體辨識。

    重要

    如果您使用 Amazon S3 組態,請勿將相同的 Amazon S3 位置用於輸入資料組態和輸出資料。您可以在建立標籤工作時指定輸出資料的 S3 字首。

使用 Amazon 發送數據對象 SNS

您可以使用 Amazon 簡單通知服務 (AmazonSNS) 將資料物件傳送到串流標籤任務。Amazon SNS 是一種 Web 服務,用於協調和管理端點之間傳送訊息(例如,電子郵件地址或 AWS Lambda 功能)。Amazon SNS 主題充當兩個或多個端點之間的通訊管道。您可以使SNS用 Amazon 將新資料物件傳送或發佈到中CreateLabelingJob參數SnsTopicArn中指定的主題InputConfig。這些訊息的格式與輸入資訊清單檔案的單一行相同。

例如,您可以透過發佈文字到輸入主題,傳送文字片段至活動中的文字分類標籤工作。您發佈的訊息可能類似下列內容:

{"source": "Lorem ipsum dolor sit amet"}

若要傳送新映像物件至影像分類標籤工作,您的訊息可能類似下列內容:

{"source-ref": "s3://amzn-s3-demo-bucket/example-image.jpg"}
注意

您也可以在 Amazon SNS 訊息中包含自訂的重複資料刪除IDs和重複資料刪除金鑰。如需進一步了解,請參閱 重複訊息處理

當 Ground Truth 建立您的串流標籤任務時,它會訂閱您的 Amazon SNS 輸入主題。

使用 Amazon S3 傳送資料物件

您可以將一或多個新資料物件放置在使用 Amazon SNS 事件通知設定的 Amazon S3 儲存貯體中,將其傳送至串流標籤任務。您可以設定事件,以便在儲存貯體中建立新物件時通知 Amazon SNS 輸入主題。您必須在中的CreateLabelingJob參數SnsTopicArn中指定此相同的 Amazon SNS 輸入主題InputConfig

每當您設定 Amazon S3 儲存貯體以傳送通知至 Amazon 時SNS,Ground Truth 都會發佈測試事件"s3:TestEvent",以確保主題存在,並確保指定的 Amazon S3 儲存貯體擁有發佈到指定主題的權限。建議您先設定 Amazon S3 連線,SNS然後再開始進行串流標記任務。如果不這樣做,則此測試事件可能會註冊為資料物件,並傳送至 Ground Truth 進行標籤。

重要

如果您使用 Amazon S3 組態,請勿將相同的 Amazon S3 位置用於輸入資料組態和輸出資料。您可以在建立標籤工作時指定輸出資料的 S3 字首。

對於以映像為基礎的標籤任務,Ground Truth 要求所有 S3 儲存貯體都必須附加CORS政策。如需進一步了解,請參閱 CORS權限要求

設定 Amazon S3 儲存貯體並建立標籤任務後,您可以將物件新增至儲存貯體,Ground Truth 會將該物件傳送給工作者,或將其放置在 Amazon SQS 佇列中。

如需進一步了解,請參閱 設定 Amazon S3 儲存貯體事件通知

重要

此選項不適用於以文字為基礎的標籤工作,例如文字分類及具名實體辨識。

使用 Amazon SQS 佇列管理標籤請求

當 Ground Truth 創建您的流式標記任務 AmazonSQS,它會在 AWS 用於建立標籤工作的帳戶。佇列名稱為 GroundTruth-labeling_job_name,其中 labeling_job_name 是標籤工作的名稱,以小寫字母表示。當您傳送資料物件至標籤工作時,Ground Truth 會直接傳送資料物件給工作者,或將任務置於佇列,以便稍後處理。如果資料物件在 14 天後未傳送至 工作者,則該物件會過期並從佇列移除。您可以在 Amazon 中設定警示SQS以偵測物件何時到期,並使用此機制控制傳送至標籤任務的物件數量。

重要

直接修改、刪除物件或將物件傳送至與串流標籤任務相關聯的 Amazon SQS 佇列,可能會導致任務失敗。

從串流標籤工作接收輸出資料

Amazon S3 輸出儲存貯體會定期更新串流標籤工作的新輸出資料。

或者,您可以指定 Amazon SNS 輸出主題。每次工作者提交已標籤物件時,都會向該主題傳送包含輸出資料的通知。您可以訂閱SNS輸出主題的端點,以便在接收來自標籤工作的輸出資料時接收通知或觸發事件。如果您想要即時鏈結至另一個串流任務,並在每次工作者提交資料物件時收到 Amazon SNS 通知,請使用 Amazon SNS 輸出主題。

如需進一步了解,請參閱 讓端點訂閱 Amazon SNS 輸出主題

重複訊息處理

對於即時傳送的資料物件,Ground Truth 透過確保每個唯一物件僅傳送並加以標籤一次來保證等冪性,即使多次接收參考該物件的輸入訊息 (重複訊息) 也是如此。為此,傳送至串流標籤工作的每個資料物件都會指派重複刪除 ID,並以重複刪除金鑰識別。

如果您使用 Amazon Messages 直接透過 Amazon SNS 輸入主題傳送資料物件標籤的請求,您可以選擇IDs為物SNS件選擇自訂的重複資料刪除金鑰和重複資料刪除功能。如需詳細資訊,請參閱在 Amazon SNS 訊息中指定重複資料刪除金鑰和 ID

如果您未提供自己的重複刪除金鑰,或是如果您使用 Amazon S3 組態傳送資料物件至標籤工作,Ground Truth 會使用下列其中一項來作為重複刪除 ID:

  • 對於直接發送到您的 Amazon SNS 輸入主題的消息,Ground Truth 使用SNS消息 ID。

  • 對於來自 Amazon S3 組態的訊息,Ground Truth 會將物件的 Amazon S3 URI 與訊息中的排序器權杖結合,以建立重複資料刪除 ID。

在 Amazon SNS 訊息中指定重複資料刪除金鑰和 ID

使用 Amazon SNS 訊息將資料物件傳送至串流標籤任務時,您可以選擇以下其中一種方式指定重複資料刪除金鑰和重複資料刪除 ID。在所有這些情況,請使用 dataset-objectid-attribute-name 識別您的重複刪除金鑰。

使用自有重複刪除金鑰與 ID

透過如下方式設定 Amazon SNS 訊息,建立自己的重複資料刪除金鑰和重複資料刪除 ID。請以您的金鑰取代 byo-key,並以該資料物件的重複刪除 ID 取代 UniqueId

{ "source-ref":"s3://bucket/prefix/object1", "dataset-objectid-attribute-name":"byo-key", "byo-key":"UniqueId" }

您的重複刪除金鑰長度上限為 140 個字元。支援的模式包含:"^[$a-zA-Z0-9](-*[a-zA-Z0-9])*"

您的重複刪除 ID 長度上限為 1,024 個字元。支援的模式包含:^(https|s3)://([^/]+)/?(.*)$

使用現有金鑰作為重複刪除金鑰

您可以使用訊息的現有金鑰做為重複刪除金鑰。在執行此操作時,關聯該金鑰的值會用作重複刪除 ID。

例如,您可以將訊息格式化,指定使用 source-ref 金鑰作為重複刪除金鑰,如下所示:

{ "source-ref":"s3://bucket/prefix/object1", "dataset-objectid-attribute-name":"source-ref" }

在此範例,Ground Truth 採用 "s3://bucket/prefix/object1" 作為重複刪除 ID。

在輸出資料尋找重複刪除金鑰與 ID

您可以在輸出資料看到重複刪除金鑰與 ID。重複刪除金鑰的識別條件為 dataset-objectid-attribute-name

當您使用自有自訂重複刪除金鑰時,您的輸出內容包含類似下列內容:

"dataset-objectid-attribute-name": "byo-key", "byo-key": "UniqueId",

當您未指定金鑰時,您可以找到 Ground Truth 指派給資料物件的重複刪除 ID,如下所示。此 $label-attribute-name-object-id 參數可識別您的重複刪除 ID。

{ "source-ref":"s3://bucket/prefix/object1", "dataset-objectid-attribute-name":"$label-attribute-name-object-id" "label-attribute-name" :0, "label-attribute-name-metadata": {...}, "$label-attribute-name-object-id":"<service-generated-key>" }

對於 <service-generated-key>,如果資料物件透過 Amazon S3 組態提供,則 Ground Truth 會新增服務所使用的唯一值,並發出由 $sequencer 鍵入的新欄位,其中顯示使用的 Amazon S3 序列器。如果對象被SNS直接送入,Ground Truth 使用SNS消息 ID。

注意

請勿在標籤屬性名稱使用 $ 字元。