

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ラベリングジョブの連鎖
<a name="sms-reusing-data"></a>

Amazon SageMaker Ground Truth では、クローン作成と連鎖の 2 つの方法で前のジョブのデータセットを再利用することができます。

*クローン作成*では、以前のラベル付けジョブの設定がコピーされるため、追加の変更を行うことで実行を開始できます。

*連鎖*は、前のジョブの設定だけでなく、結果も使用します。これにより、未完了のジョブを続行し、完了したジョブにラベルやデータオブジェクトを追加することができます。連鎖の操作は、クローン作成よりも複雑です。

データ処理の場合: 
+  クローン作成では、以前のジョブの*入力*マニフェストを必要に応じて変更し、これを新しいジョブの入力マニフェストとして使用します。
+  連鎖では、以前のジョブの*出力*マニフェストを新しいジョブの入力マニフェストとして使用します。

連鎖は、次の場合に便利です。
+ 手動で停止したラベル付けジョブを続行する。
+ 途中で失敗したラベル付けジョブを、問題の修正後に続行する。
+ ジョブの一部を手動でラベル付けした後で、自動データラベリングに切り替える (またはその逆)。
+ 完了したジョブにさらにデータオブジェクトを追加して、そこからジョブを開始する。
+ 完了したジョブに別の注釈を追加する。例えば、トピックにラベル付けされたフレーズのコレクションがあり、そのセットを再度実行して、トピックの暗黙的な対象者別に分類するとします。

Amazon SageMaker Ground Truth では、コンソールまたは API を使用して、連鎖されたラベル付けジョブを設定できます。

## キーワード: ラベル属性名
<a name="sms-reusing-data-LAN"></a>

*ラベル属性名* (API では `LabelAttributeName`) は、ワーカーがデータオブジェクトに割り当てたラベルから形成されたキーと値のペアのキーとなる文字列です。

ラベル属性名には、次の規則が適用されます。
+ `-metadata` で終わることはできません。
+ `source` および `source-ref` の名前は予約されているため使用できません。
+ セマンティックセグメンテーションのラベル付けジョブでは、`-ref` で終わる必要があります。他のすべてのラベル付けジョブで、`-ref` で終わることは*できません*。コンソールを使用してジョブを作成する場合、Amazon SageMaker Ground Truth は、セマンティックセグメンテーションジョブを除くすべてのラベル属性名に対して自動的に `-ref` を付加します。
+ 連鎖されたラベル付けジョブの場合、元のジョブと同じラベル属性名を使用しているときに、自動ラベル付けを使用するように連鎖ジョブを設定すると、任意の時点で自動ラベル付けモードになったときに、Ground Truth は元のジョブのモデルを使用します。

出力マニフェストでは、ラベル属性名が次のように表示されます。

```
  "source-ref": "<S3 URI>",
  "<label attribute name>": {
    "annotations": [{
      "class_id": 0,
      "width": 99,
      "top": 87,
      "height": 62,
      "left": 175
    }],
    "image_size": [{
      "width": 344,
      "depth": 3,
      "height": 234
    }]
  },
  "<label attribute name>-metadata": {
    "job-name": "<job name>",
    "class-map": {
      "0": "<label attribute name>"
    },
    "human-annotated": "yes",
    "objects": [{
      "confidence": 0.09
    }],
    "creation-date": "<timestamp>",
    "type": "groundtruth/object-detection"
  }
```

コンソールでジョブを作成する際に、ラベル属性名の値を明示的に設定しないと、Ground Truth はジョブのラベル属性名としてジョブ名を使用します。

## 連鎖ジョブの開始 (コンソール)
<a name="sms-reusing-data-console"></a>

既存のジョブのリストから、停止、失敗、または完了したラベル付けジョブを選択します。これにより、**[Actions]** (アクション) メニューが有効になります。

**[Actions]** (アクション) メニューから [**Chain**] (連鎖) を選択します。

### ジョブの概要パネル
<a name="sms-reusing-data-console-job-panel"></a>

**[ジョブの概要]** パネルで、新しい **[ジョブ名]** は、このジョブの連鎖元のジョブのタイトルに基づいて設定されます。このデフォルトの名前は変更できます。

ラベル付けジョブ名とは異なるラベル属性名を指定することもできます。

完了したジョブから連鎖している場合は、構成中の新しいジョブの名前がラベル属性の名前に使用されます。名前を変更するには、チェックボックスをオンにします。

停止または失敗したジョブから連鎖している場合は、連鎖元のジョブの名前がラベル属性の名前に使用されます。名前のチェックボックスがオンになっているため、値を簡単に確認および編集することができます。

**属性ラベルの命名に関する考慮事項**  
**デフォルト**では、Ground Truth で選択されているラベルの属性名が使用されます。そのラベル属性名に接続されたデータを含まないデータオブジェクトはすべてラベル付けされます。
マニフェストに存在しない**ラベル属性名を使用**すると、データセット内のオブジェクトは*すべて*、ジョブで処理されます。

この場合の **[入力データセットの場所]** は、連鎖ジョブの出力マニフェストとして自動的に選択されます。入力フィールドは使用できないため、変更することはできません。

**ラベル付けジョブにデータオブジェクトを追加する**  
代替マニフェストファイルを指定することはできません。前のジョブの出力マニフェストを手動で編集して新しい項目を追加してから、連鎖ジョブを開始します。Amazon S3 URI を使用すると、Amazon S3 バケット内のマニフェストを格納している場所を見つけやすくなります。そこからマニフェストファイルをダウンロードして、コンピュータ上でローカルに編集し、新しいバージョンをアップロードして置き換えます。編集中にエラーが発生していないことを確認してください。JSON を確認するには JSON lineter を使用することをお勧めします。通常、一般的なテキストエディタや IDE では linter のプラグインを使用することができます。

## 連鎖ジョブの開始 (API)
<a name="sms-reusing-data-API"></a>

この手順は、`CreateLabelingJob` を使用した新しいラベル付けジョブの設定とほぼ同じです。ただし、次の 2 つの主な違いを除きます。
+ **マニフェストの場所:** 前のジョブの元のマニフェストを使用するのではなく、`DataSource` の `ManifestS3Uri` の値で前のラベル付けジョブの*出力マニフェスト* の Amazon S3 URI を指す必要があります。
+ **ラベル属性名:** ここで正しい `LabelAttributeName` 値を設定することが重要です。これはキーと値のペアのキー部分です。値部分はラベル付けするデータです。サンプルのユースケースを以下に示します。
  + **完了したジョブに新しいラベルまたは具体的なラベルを追加する** - 新しいラベル属性名が設定されます。
  + **以前のジョブのラベル付けされていない項目をラベル付けする** - 前のジョブのラベルの属性名が使用されます。

## 部分的にラベル付けされたデータセットの使用
<a name="sms-reusing-data-newdata"></a>

既に部分的にラベル付けされている拡張マニフェストを使用すると、連鎖によるメリットが得られます。[**ラベル属性名**] チェックボックスをオンにして、マニフェストの名前と一致するように名前を設定します。

API を使用する場合の手順は、連鎖ジョブを開始する場合と同じです。ただし、以前のジョブの出力マニフェストを使用せずに、必ずマニフェストを Amazon S3 バケットにアップロードして使用してください。

マニフェストの**ラベルの属性名**の値は、以前に説明した命名の考慮事項に準拠している必要があります。