本頁面說明如何準備文字資料,以便在 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 行
JSON Lines 檔案的格式、欄位名稱和值類型,是由結構定義檔案決定,這些檔案是可公開存取的 YAML 檔案。
您可以從下列 Cloud Storage 位置下載單標籤分類的結構定義檔案:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_single_label_io_format_1.0.0.yaml
JSON 行範例
以下範例說明如何使用結構定義建立自己的 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 個範例訓練模型,並評估結果。新增更多範例並重新訓練,直到達到準確度目標為止。每個標籤可能需要數百或甚至 1000 個範例。
- 最常用標籤文件的數量不多於最少用標籤文件的 100 倍時,模型的訓練效果最佳。建議移除頻率非常低的標籤。
- 請考慮為不符合任一已定義標籤的文件加入非網域標籤 (例如
None_of_the_above
)。例如,若只為有關藝術和娛樂的文件加上標籤,但資料集包含與其他主題有關的文件,例如運動或科技,請為與其他主題相關的文件加上None_of_the_above
標籤。如果沒有這類標籤,經過訓練的模型會嘗試將所有文件指派給其中一個定義的標籤,即使這些標籤不適合文件也一樣。 - 如果您有大量文件目前不符合標記,請篩除這些文件,以免模型將預測結果偏向非領域標記。舉例來說,您可以建立篩選模型,預測文件是否符合目前的標籤組合,或是不屬於該領域。篩選後,您將擁有另一個模型,可分類僅限於網域內的文件。
輸入檔案
多標籤分類支援 JSON 行或 CSV 輸入檔案。您可以為特定文件指定多個標籤 (註解)。以下各節將說明輸入檔案,並提供各檔案類型的範例。
JSON 行
JSON Lines 檔案的格式、欄位名稱和值類型,是由結構定義檔案決定,這些檔案是可公開存取的 YAML 檔案。
您可以從下列 Cloud Storage 位置下載多標籤分類的架構檔案:
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_multi_label_io_format_1.0.0.yaml
JSON 行範例
以下範例說明如何使用結構定義建立自己的 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