Menyiapkan data pelatihan teks untuk klasifikasi

Halaman ini menjelaskan cara menyiapkan data teks untuk digunakan dalam set data Vertex AI untuk melatih model klasifikasi label tunggal dan multi-label.

Klasifikasi label tunggal

Untuk klasifikasi label tunggal, data pelatihan terdiri dari dokumen dan kategori klasifikasi yang berlaku untuk dokumen tersebut. Klasifikasi label tunggal memungkinkan dokumen diberi satu label saja.

Persyaratan data

  • Anda harus menyediakan sedikitnya 20, dan tidak lebih dari 1.000.000, dokumen pelatihan.
  • Anda harus menyediakan minimal 2, dan tidak lebih dari 5.000, label kategori unik.
  • Anda harus menerapkan setiap label ke minimal 10 dokumen.
  • Untuk klasifikasi multi-label, Anda dapat menerapkan satu atau beberapa label ke dokumen.
  • Anda dapat menyertakan dokumen secara inline atau mereferensikan file TXT yang ada di bucket Cloud Storage.

Praktik terbaik untuk data teks yang digunakan untuk melatih model AutoML

Rekomendasi berikut berlaku untuk set data yang digunakan untuk melatih model AutoML.

  • Gunakan data pelatihan yang bervariasi seperti data yang akan digunakan untuk membuat prediksi. Menyertakan panjang dokumen yang berbeda, dokumen yang ditulis oleh orang yang berbeda, dokumen yang menggunakan kata-kata atau gaya yang berbeda, dan sebagainya.
  • Menggunakan dokumen yang dapat dikategorikan dengan mudah oleh pembaca manusia. Model AutoML umumnya tidak dapat memprediksi label kategori yang tidak dapat ditetapkan oleh manusia. Jadi, jika manusia tidak dapat dilatih untuk menetapkan label dengan membaca dokumen, model Anda kemungkinan juga tidak dapat dilatih untuk melakukan hal tersebut.
  • Berikan dokumen pelatihan sebanyak mungkin per label. Anda dapat meningkatkan skor keyakinan dari model Anda dengan menggunakan lebih banyak contoh per label. Latih model menggunakan 50 contoh per label dan evaluasi hasilnya. Tambahkan lebih banyak contoh dan latih ulang sampai Anda memenuhi target akurasi, yang mungkin memerlukan ratusan atau bahkan 1.000 contoh per label.
  • Model akan berfungsi optimal jika ada dokumen yang 100 kali lebih banyak untuk label yang paling umum daripada label yang paling tidak umum. Sebaiknya Anda menghapus label berfrekuensi rendah.
  • Pertimbangkan untuk menyertakan label di luar domain (misalnya, None_of_the_above) untuk dokumen yang tidak cocok dengan label yang Anda tentukan. Misalnya, jika Anda hanya memberi label pada dokumen tentang seni dan hiburan, tetapi set data Anda berisi dokumen tentang subjek lain, seperti olahraga atau teknologi, beri label dokumen tentang subjek lain sebagai None_of_the_above. Tanpa label tersebut, model yang dilatih akan mencoba menetapkan semua dokumen ke salah satu label yang ditentukan, bahkan dokumen yang label tersebut tidak sesuai.
  • Jika ada banyak dokumen yang saat ini tidak cocok dengan label Anda, filter dokumen tersebut sehingga model Anda tidak mencondongkan prediksi ke label di luar domain. Misalnya, Anda dapat memiliki model pemfilteran yang memprediksi apakah dokumen sesuai dengan kumpulan label saat ini atau berada di luar domain. Setelah pemfilteran, Anda akan memiliki model lain yang mengklasifikasikan dokumen dalam domain saja.

File input

Klasifikasi label tunggal mendukung file input JSON Lines atau CSV. Anda hanya dapat menentukan satu label (anotasi) untuk dokumen tertentu. Bagian berikut menjelaskan file input dan memberikan contoh untuk setiap jenis file.

JSON Lines

Format, nama kolom, dan jenis nilai untuk file JSON Lines ditentukan oleh file skema, yang merupakan file YAML yang dapat diakses secara publik.

Anda dapat mendownload file skema untuk klasifikasi label tunggal dari lokasi Cloud Storage berikut:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_single_label_io_format_1.0.0.yaml

Contoh JSON Lines

Contoh berikut menunjukkan cara menggunakan skema untuk membuat file JSON Lines Anda sendiri. Contoh ini menyertakan baris baru agar lebih mudah dibaca. Dalam file JSON, sertakan jeda baris hanya setelah setiap dokumen. Kolom dataItemResourceLabels menentukan, misalnya, ml_use dan bersifat opsional.

{
  "classificationAnnotation": {
    "displayName": "label"
  },
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}
{
  "classificationAnnotation": {
    "displayName": "label2"
  },
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

CSV

Setiap baris dalam file CSV mengacu pada satu dokumen. Contoh berikut menunjukkan format umum file CSV yang valid. Kolom ml_use bersifat opsional.

[ml_use],gcs_file_uri|"inline_text",label

Cuplikan berikut ini adalah contoh file CSV input.

test,gs://path_to_file,label1
test,"inline_text",label2
training,gs://path_to_file,label3
validation,gs://path_to_file,label1

Klasifikasi multi-label

Untuk klasifikasi multi-label, data pelatihan terdiri dari dokumen dan kategori klasifikasi yang berlaku untuk dokumen tersebut. Klasifikasi multi-label memungkinkan dokumen diberi satu atau beberapa label.

Persyaratan data

  • Anda harus menyediakan sedikitnya 20, dan tidak lebih dari 1.000.000, dokumen pelatihan.
  • Anda harus menyediakan minimal 2, dan tidak lebih dari 5.000, label kategori unik.
  • Anda harus menerapkan setiap label ke minimal 10 dokumen.
  • Untuk klasifikasi multi-label, Anda dapat menerapkan satu atau beberapa label ke dokumen.
  • Anda dapat menyertakan dokumen secara inline atau mereferensikan file TXT yang ada di bucket Cloud Storage.

Praktik terbaik untuk data teks yang digunakan untuk melatih model AutoML

Rekomendasi berikut berlaku untuk set data yang digunakan untuk melatih model AutoML.

  • Gunakan data pelatihan yang bervariasi seperti data yang akan digunakan untuk membuat prediksi. Menyertakan panjang dokumen yang berbeda, dokumen yang ditulis oleh orang yang berbeda, dokumen yang menggunakan kata-kata atau gaya yang berbeda, dan sebagainya.
  • Menggunakan dokumen yang dapat dikategorikan dengan mudah oleh pembaca manusia. Model AutoML umumnya tidak dapat memprediksi label kategori yang tidak dapat ditetapkan oleh manusia. Jadi, jika manusia tidak dapat dilatih untuk menetapkan label dengan membaca dokumen, model Anda kemungkinan juga tidak dapat dilatih untuk melakukan hal tersebut.
  • Saat menggunakan klasifikasi multi-label, terapkan semua label yang relevan ke setiap dokumen. Misalnya, jika Anda melabeli dokumen yang memberikan detail tentang obat-obatan, Anda mungkin memiliki dokumen yang diberi label dengan Dosage dan Side Effects.
  • Berikan dokumen pelatihan sebanyak mungkin per label. Anda dapat meningkatkan skor keyakinan dari model Anda dengan menggunakan lebih banyak contoh per label. Skor keyakinan yang lebih baik sangat membantu saat model Anda menampilkan beberapa label saat mengklasifikasikan dokumen. Latih model menggunakan 50 contoh per label dan evaluasi hasilnya. Tambahkan contoh lainnya dan latih ulang hingga Anda memenuhi target akurasi, yang mungkin memerlukan ratusan atau bahkan 1.000 contoh per label.
  • Model akan berfungsi optimal jika ada dokumen yang 100 kali lebih banyak untuk label yang paling umum daripada label yang paling tidak umum. Sebaiknya Anda menghapus label berfrekuensi rendah.
  • Pertimbangkan untuk menyertakan label di luar domain (misalnya, None_of_the_above) untuk dokumen yang tidak cocok dengan label yang Anda tentukan. Misalnya, jika Anda hanya memberi label pada dokumen tentang seni dan hiburan, tetapi set data Anda berisi dokumen tentang subjek lain, seperti olahraga atau teknologi, beri label dokumen tentang subjek lain sebagai None_of_the_above. Tanpa label tersebut, model yang dilatih akan mencoba menetapkan semua dokumen ke salah satu label yang ditentukan, bahkan dokumen yang label tersebut tidak sesuai.
  • Jika ada banyak dokumen yang saat ini tidak cocok dengan label Anda, filter dokumen tersebut sehingga model Anda tidak mencondongkan prediksi ke label di luar domain. Misalnya, Anda dapat memiliki model pemfilteran yang memprediksi apakah dokumen sesuai dengan kumpulan label saat ini atau berada di luar domain. Setelah pemfilteran, Anda akan memiliki model lain yang mengklasifikasikan dokumen dalam domain saja.

File input

Klasifikasi multi-label mendukung File input CSV atau JSON Lines. Anda dapat menentukan lebih dari satu label (anotasi) untuk dokumen tertentu. Bagian berikut menjelaskan file input dan memberikan contoh untuk setiap jenis file.

JSON Lines

Format, nama kolom, dan jenis nilai untuk file JSON Lines ditentukan oleh file skema, yang merupakan file YAML yang dapat diakses secara publik.

Anda dapat mendownload file skema untuk klasifikasi multi-label dari lokasi Cloud Storage berikut:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_multi_label_io_format_1.0.0.yaml

Contoh JSON Lines

Contoh berikut menunjukkan cara menggunakan skema untuk membuat file JSON Lines Anda sendiri. Contoh ini menyertakan baris baru agar lebih mudah dibaca. Dalam file JSON, sertakan jeda baris hanya setelah setiap dokumen. Kolom dataItemResourceLabels menentukan, misalnya, ml_use dan bersifat opsional.

{
  "classificationAnnotations": [{
    "displayName": "label1"
    },{
    "displayName": "label2"
  }],
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}
{
  "classificationAnnotations": [{
    "displayName": "label2"
    },{
    "displayName": "label3"
  }],
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

CSV

Setiap baris dalam file CSV mengacu pada satu dokumen. Contoh berikut menunjukkan format umum file CSV yang valid. Kolom ml_use bersifat opsional.

[ml_use],gcs_file_uri|"inline_text",label1,label2,...

Cuplikan berikut ini adalah contoh file CSV input.

test,gs://path_to_file,label1,label2
test,"inline_text",label3
training,gs://path_to_file,label1,label2,label3
validation,gs://path_to_file,label4,label5