本頁面說明如何準備文字資料,以用於 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 模型通常無法預測人類無法指派的類別標籤。因此,若無法訓練人類透過閱讀文件的方式指定標籤,可能也無法訓練您的模式發揮同樣的作用。
- 使用多標籤分類時,請為每份文件套用所有相關標籤。舉例來說,如果您要為提供藥品詳細資料的文件加上標籤,可能會有一份標示為
Dosage
和Side 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