カスタム・モデル・データセット

カスタム・モデルのサポートされているデータセット、およびデータセットをサポートされている形式に変換する方法を確認します。

カスタム・テキスト分類に許可されるデータセット

カスタム・テキスト分類モデルのラベル付きデータは、次の2つの方法で提供できます。

  • データ・ラベリング・プロジェクト
  • カンマ区切り値(.csv)ファイル
CSVファイルの要件
  • 最初の行は、次の2列の名前を含むヘッダーである必要があります。
    • text: 分類するテキストを取得します。
    • labels: 割り当てられた1つ以上のクラスを取得します。マルチラベルの分類データセットの場合、複数のクラス名を指定するには、それらを|記号で結合します。
  • ヘッダー行の後の全ての行に研修レコードが含まれます。
  • ファイルに2つ以上の列がある場合、モデルのトレーニングにはtext列およびlabels列のみが使用されます。
  • CSVファイルのエンコーディングには、UTF-8を使用します。Excelを使用する場合は、ファイルをCSV UTF-8 (カンマ区切り)(.csv)として保存します。

  • デリミタには、カンマ(,)を使用します。
  • エスケープ文字の場合は、二重引用符(")を使用します。これは、Unicode文字U+0022でも知られています。

    たとえば、Excelで次のテキストを入力するとします。

    This is a "double quote" sentence

    前述の文は、次のようにCSVに格納されます。

    "This is a ""double quote"" sentence"

単一ラベルのテキスト分類用のCSVファイルの例:

text,labels
Windows OS -unable to print,Network Printer Failure
Citrix Account frequently locking,Account (Password reset)
Pull print queue not working ,Application Component Disconnect
wifi disable and lan is disconnected at the desktop,Hardware Device Failure
マルチ・ラベル・テキスト分類のCSVファイルの例:
Windows OS -unable to print,Network Printer Failure
Pull print queue not working ,Application Component Disconnect|Network Printer Failure
wifi disable and lan is disconnected at the desktop,Hardware Device Failure|Network Connection Issue

カスタムNERに許可されるデータセット書式

カスタムNERモデルのラベル付きデータは、次の2つの方法で提供できます。

  • データ・ラベリング・プロジェクト
  • JSON行形式(.jsonl)。
JSONファイルの要件

JSONファイルにはトレーニング・データは含まれません。代わりに、JSONファイルは、ラベルとラベルなしデータを含むファイルへのポインタ(相対パス)を含むマニフェストファイルです。

JSON形式はJSON行(JSONL)形式であり、各行は単一のJSONオブジェクトです。

  • オブジェクトの最初の行は、ラベルまたはクラスのセットと注釈ファイルのタイプを示します。
  • 後続のすべての行は、研修レコードの説明です。
  • すべてのテキスト・ファイルをマニフェスト・ファイル(.jsonl)と同じディレクトリに保存し、トレーニング・レコードにファイル名を付けます。

スキーマの定義
  1. 最初の行はヘッダー行です。これには、ファイル・タイプを記述するJSONオブジェクトが含まれます。
  2. 後続の行には、ラベル付きレコードを表すJSONオブジェクトが含まれます。
ヘッダー明細書式
フィールド タイプ 説明
labelsSet オブジェクトの配列です。

注釈でサポートされているエンティティのセットを示す文字列メンバー"name"を持つオブジェクト。ここにすべてのエンティティをリストします。

annotationFormat 文字列 NERデータセットには"ENTITY_EXTRACTION"を使用します。
datasetFormatDetails オブジェクト 注釈付けされるデータのタイプを示す文字列メンバー"formatType"を持つオブジェクト。LanguageのformatTypeの値を"TEXT"に設定します。
JSONスキーマの例:
{
    "labelsSet": [
      {
        "name": "Label1"
      },
      {
        "name": "Label2"
      },
      {
        "name": "Label3"
      },
      {
        "name": "Label4"
      }
    ],
    "annotationFormat": "ENTITY_EXTRACTION",
    "datasetFormatDetails": {
      "formatType": "TEXT"
    }
  }
ラベル付きレコード形式
フィールド タイプ 内容
sourceDetails オブジェクト

注釈を付けるファイルを指す文字列メンバーpathを持つオブジェクト。

ファイル・パスは、jsonファイルの場所に対する相対パスです。

annotations オブジェクト 注釈を記述する複合オブジェクト。
entities 配列(オブジェクト) レコードで識別されるエンティティのリスト。
entityType 文字列 エンティティ注釈のタイプ。値には、NERに"TEXTSELECTION"を使用します。
labels 配列(オブジェクト) 配列内の各オブジェクトには、識別されるエンティティのタイプを表すメンバー"label_name"があります。
textSpan オブジェクト テキスト・スパンを表すオブジェクト。"offset"および"length"の2つの必須数値メンバーが含まれます。
ラベル付きレコード形式の例のJSONスキーマ:
{
    "sourceDetails": {
      "path": "Complaint3.txt"
    },
    "annotations": [
      {
        "entities": [
          {
            "entityType": "TEXTSELECTION",
            "labels": [
              {
                "label_name": "Label1"
              },
              {
                "label_name": "Label2"
              }
            ],
            "textSpan": {
              "offset": 0,
              "length": 28
            }
          },
          {
            "entityType": "TEXTSELECTION",
            "labels": [
              {
                "label_name": "Label1"
              }
            ],
            "textSpan": {
              "offset": 196,
              "length": 11
            }
          }
        ]
      }
    ]
  }

データセットのアップロード

データセットをObject Storageバケットにアップロードします。

ノート

または、OCI Data Labelingサービスを使用してデータセットを作成できます。

バケットの作成

データセットのオブジェクト・ストレージ・バケットがある場合は、この項をスキップします。

  1. ナビゲーションメニューを開き、「ストレージ」をクリックします。「Object Storage & Archive Storage」で、「Buckets」をクリックします。
  2. 「リスト範囲」コンパートメント・リストで、バケットを作成するコンパートメントの名前をクリックします。オブジェクト・ストレージ・リソースをこのコンパートメントに追加する権限がすでにある必要があります。
  3. 「バケットの作成」をクリックします。
  4. リージョンに固有のバケットの名前を入力してください。
  5. その他のフィールドについては、「詳細」リンクをクリックし、データに適用されるオプションを選択します。
  6. 作成」をクリックします。デフォルトでは、バケットの作成後に表示を変更しないかぎり、バケットにはプライベート表示があります。

ノート

ネームスペース内には一意のバケット名が必要です。ネームスペースはリージョン固有ですが、ネームスペース名自体はすべてのリージョンで同じです。たとえば、テナンシに、すべてのリージョンのネームスペース名である<your-namespace>というネームスペース名が割り当てられている場合です。

MyBucketという名前のバケットを米国西部(フェニックス)に作成できます。米国西部(フェニックス)にMyBucketという名前のバケットをもう1つ作成することはできません。ただし、ドイツ中央部(フランクフルト)にはMyBucketという名前のバケットを作成できます。ネームスペース名はテナントに対して一意であるため、他のユーザーはMyBucketという名前のバケットを自分のネームスペースに作成できます。

バケットへのデータの追加

バケットを作成したら、バケットにデータセットを追加します。データセットがすでにバケット内にある場合は、このセクションをスキップします。

ファイルをオブジェクトとしてバケットに格納します。オブジェクトは、データおよびオブジェクトに関するメタデータで構成されます。

  1. ナビゲーションメニューを開き、「ストレージ」をクリックします。「Object Storage & Archive Storage」で、「Buckets」をクリックします。
  2. 「リスト範囲」「コンパートメント」リストで、バケットをホストするコンパートメントの名前をクリックします。
  3. データを追加するバケットの名前をクリックします。
  4. 「アップロード」をクリックします
  5. データをアップロードします。