準備分類的文字訓練資料

本頁面說明如何準備文字資料,以用於 Vertex AI 資料集,訓練單一標籤和多標籤分類模型。

單一標籤分類

如果是單一標籤分類,訓練資料會包含文件,以及適用於這些文件的分類類別。單一標籤分類:可讓您為文件指派一個標籤。

資料條件

  • 您必須提供至少 20 份但不超過 1,000,000 份的訓練文件。
  • 你必須提供至少 2 個但不超過 5000 個不重複的類別標籤。
  • 您必須將每個標籤套用於至少 10 份文件。
  • 如為多標籤分類,您可以為文件套用一或多個標籤。
  • 您可以內嵌文件,或參照 Cloud Storage 值區中的 TXT 檔案。

訓練 AutoML 模型時使用文字資料的最佳做法

以下建議適用於用於訓練 AutoML 模型的資料集。

  • 訓練資料應與要用來進行預測的資料同樣多樣化。加入長度不等的文件、不同作者撰寫的文件、使用不同用語或風格的文件等等。
  • 使用真人讀者容易分類的文件。 AutoML 模型通常無法預測人類無法指派的類別標籤。因此,若無法訓練人類透過閱讀文件的方式指定標籤,可能也無法訓練您的模式發揮同樣的作用。
  • 盡可能為每個標籤提供多份訓練文件。只要為每個標籤提供更多範例,即可提高模型的可信度分數。使用每個標籤 50 個範例訓練模型,並評估結果。新增更多範例並重新訓練,直到達到準確度目標為止。每個標籤可能需要數百個甚至 1000 個範例。
  • 最常用標籤文件的數量不多於最少用標籤文件的 100 倍時,模型的訓練效果最佳。建議移除頻率非常低的標籤。
  • 考慮為不符合任一既定標籤的文件加入網域外標籤 (例如 None_of_the_above)。舉例來說,如果只為有關藝術和娛樂的文件加上標籤,但資料集包含與其他主題有關的文件,例如運動或科技,請為與其他主題相關的文件加上 None_of_the_above 標籤。如果沒有這類標籤,訓練好的模型會嘗試將所有文件指派給其中一個已定義的標籤,即使這些標籤不適合該文件也一樣。
  • 如果大量文件目前不符合標籤,請將這些文件篩除,以免模型預測結果偏向網域外的標籤。舉例來說,您可以建立篩選模型,預測文件是否符合目前的標籤集,或是否超出網域。篩選後,您會得到另一個模型,只會分類網域內的文件。

輸入檔案

單一標籤分類支援 JSON Lines 或 CSV 輸入檔案。您只能為特定文件指定一個標籤 (註解)。以下各節說明輸入檔案,並提供每個檔案類型的範例。

JSON Lines

JSON Lines 檔案的格式、欄位名稱和值類型,是由公開的 YAML 檔案 (即結構定義檔案) 決定。

您可以從下列 Cloud Storage 位置下載單一標籤分類的結構定義檔案:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_single_label_io_format_1.0.0.yaml

JSON Lines 範例

以下範例說明如何使用結構定義建立自己的 JSON Lines 檔案。為了方便閱讀,範例中包含換行符。在 JSON 檔案中,請只在每個文件後加入換行符。例如,dataItemResourceLabels 欄位會指定 ml_use,且為選用欄位。

 {   "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

CSV 檔案中的每一行都代表一份文件。以下範例顯示有效 CSV 檔案的一般格式。ml_use 欄為選用項目。

 [ml_use],gcs_file_uri|"inline_text",label 

以下程式碼片段是輸入 CSV 檔案的範例。

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

多標籤分類

如要進行多標籤分類,訓練資料包含文件和適用於這些文件的分類類別。多標籤分類可讓您為文件指派一或多個標籤。

資料條件

  • 您必須提供至少 20 份但不超過 1,000,000 份的訓練文件。
  • 你必須提供至少 2 個但不超過 5000 個不重複的類別標籤。
  • 您必須將每個標籤套用於至少 10 份文件。
  • 如為多標籤分類,您可以為文件套用一或多個標籤。
  • 您可以內嵌文件,或參照 Cloud Storage 值區中的 TXT 檔案。

訓練 AutoML 模型時使用文字資料的最佳做法

以下建議適用於用於訓練 AutoML 模型的資料集。

  • 訓練資料應與要用來進行預測的資料同樣多樣化。加入長度不等的文件、不同作者撰寫的文件、使用不同用語或風格的文件等等。
  • 使用真人讀者容易分類的文件。 AutoML 模型通常無法預測人類無法指派的類別標籤。因此,若無法訓練人類透過閱讀文件的方式指定標籤,可能也無法訓練您的模式發揮同樣的作用。
  • 使用多標籤分類時,請為每份文件套用所有相關標籤。舉例來說,如果您要為提供藥品詳細資料的文件加上標籤,可能會有一份標示為 DosageSide Effects 的文件。
  • 盡可能為每個標籤提供多份訓練文件。只要為每個標籤提供更多範例,即可提高模型的可信度分數。模型分類文件時若傳回多個標籤,可信度分數越高通常越有幫助。使用每個標籤 50 個範例訓練模型,並評估結果。新增更多範例並重新訓練,直到達到準確度目標為止。每個標籤可能需要數百甚至數千個範例。
  • 最常用標籤文件的數量不多於最少用標籤文件的 100 倍時,模型的訓練效果最佳。建議移除頻率非常低的標籤。
  • 考慮為不符合任一既定標籤的文件加入網域外標籤 (例如 None_of_the_above)。舉例來說,如果只為有關藝術和娛樂的文件加上標籤,但資料集包含與其他主題有關的文件,例如運動或科技,請為與其他主題相關的文件加上 None_of_the_above 標籤。如果沒有這類標籤,訓練好的模型會嘗試將所有文件指派給其中一個已定義的標籤,即使這些標籤不適合該文件也一樣。
  • 如果大量文件目前不符合標籤,請將這些文件篩除,以免模型預測結果偏向網域外的標籤。舉例來說,您可以建立篩選模型,預測文件是否符合目前的標籤集,或是否超出網域。篩選後,您會得到另一個模型,只會分類網域內的文件。

輸入檔案

多標籤分類支援 JSON Lines 或 CSV 輸入檔案。您可以為特定文件指定多個標籤 (註解)。以下各節說明輸入檔案,並提供每個檔案類型的範例。

JSON Lines

JSON Lines 檔案的格式、欄位名稱和值類型是由結構定義檔案決定,這些檔案是公開的 YAML 檔案。

您可以從下列 Cloud Storage 位置下載多標籤分類的結構定義檔案:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_multi_label_io_format_1.0.0.yaml

JSON Lines 範例

以下範例說明如何使用結構定義建立自己的 JSON Lines 檔案。為了方便閱讀,範例中包含換行符。在 JSON 檔案中,請只在每個文件後加入換行符。例如,dataItemResourceLabels 欄位會指定 ml_use,且為選用欄位。

 {   "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

CSV 檔案中的每一行都代表一份文件。以下範例顯示有效 CSV 檔案的一般格式。ml_use 欄為選用項目。

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

以下程式碼片段是輸入 CSV 檔案的範例。

 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