AutoML 模型資料分割作業簡介

本頁面說明 Vertex AI 如何使用訓練、驗證和測試資料集訓練 AutoML 模型,以及如何控管資料在這三個資料集中的分割方式。AutoML 會根據訓練資料的資料類型,以不同方式使用資料分割。

本頁面說明圖片資料的資料分割。如要瞭解表格型資料的資料分割,請參閱表格型資料的資料分割

如果是圖片資料集,AutoML 會使用訓練集訓練模型,並使用驗證集驗證模型在訓練期間傳回的結果。訓練完成後,AutoML 會使用測試集提供最終評估指標。

您可以讓 Vertex AI 自動分割資料。系統會依百分比將資料隨機分成三組。這是最簡單的資料分割方式,在大多數情況下都適用。

設定 百分比
訓練 80
驗證 10
測試 10

如要使用預設資料分割,請在 Google Cloud 控制台中接受預設值,或將 API 的 split 欄位留空。

如要控制資料集的分割方式,可以選擇下列選項:

請只選擇其中一個選項,並在訓練模型時做出選擇。部分選項需要變更訓練資料 (例如 ml_use 標籤)。加入資料或資料分割選項的標籤,不代表您必須使用這些選項,訓練模型時仍可選擇其他選項。

手動分割非結構化資料

手動分割也稱為「預先定義的分割」。

如要使用 ml_use 標籤控制資料分割,您必須在資料上設定 ml_use 標籤。

設定 ml_use 標籤的值

您可以在匯入圖片資料時 (每個資料項目或整個匯入檔案),或是在匯入資料後使用 Google Cloud 控制台,設定 ml_use 標籤。

在匯入時為個別資料項目設定 ml_use

JSON Lines 資料中加入 aiplatform.googleapis.com/ml_use 欄位的值,或設定 CSV 檔案第一欄的值,即可為每個資料項目設定 ml_use 標籤。詳情請參閱資料類型相關的資料準備資訊。

如果資料中的任何資料項目重複 (如果匯入檔案中出現多次相同的圖片程式碼片段),Vertex AI 會使用遇到的第一個資料項目的 ml_use 值,並忽略後續的 ml_use 值。第一個遇到的項目不一定是上傳檔案開頭附近的項目。

為整個上傳檔案設定 ml_use

如果資料可依 ml_use 值排序至不同上傳檔案,您可以在使用 Google Cloud 控制台上傳檔案時,透過每個檔案的下拉式選單設定整個上傳檔案的 ml_use 值,也可以使用 datasets.import 方法中的 dataItemLabels 對應欄位。

如果您為上傳檔案設定 ml_use,且檔案也包含 ml_use 值,檔案中的 ml_use 值會優先於檔案全域值。

在匯入後設定 ml_use

上傳資料後,您可以在ml_use控制台 Google Cloud 中選取清單檢視畫面中的一或多個項目,然後使用「指派機器學習用途」下拉式選單,為特定資料項目設定或更新 ml_use 值。

即使 ml_use 值已變更,重新上傳資料檔案也不會更新 ml_use 值。匯入後,您無法使用 Vertex AI API 更新 ml_use 值。

使用 ml_use 標籤

訓練模型時,請在 Google Cloud 控制台中,將「資料分割」指定為「手動 (進階)」。如果使用 Vertex AI API 訓練模型,請使用 FilterSplit 物件,並指定訓練篩選器 labels.aiplatform.googleapis.com/ml_use=training、驗證篩選器 labels.aiplatform.googleapis.com/ml_use=validation 和測試篩選器 labels.aiplatform.googleapis.com/ml_use=test。例如:

model = job.run(
dataset=dataset,
model_display_name=_name,
training_filter_split="labels.aiplatform.googleapis.com/ml_use=training",
validation_filter_split="labels.aiplatform.googleapis.com/ml_use=validation",
test_filter_split="labels.aiplatform.googleapis.com/ml_use=test")

系統會將 ml_use 值的所有資料項目指派給指定集合。訓練程序會排除未設定 ml_use 的資料項目。

資料篩選器分割

您可以使用其他標籤 (ml-use 除外) 和其他欄位,透過 Vertex AI API 中的 FilterSplit 物件分割資料。舉例來說,您可以將 trainingFilter 設為 labels.flower=rosevalidationFilter 設為 labels.flower=daisy,以及 testFilter 設為 labels.flower=dahlia。這項設定會將標示為 rose 的所有資料新增至訓練集,將標示為 daisy 的所有資料新增至驗證集,並將標示為 dahlia 的所有資料新增至測試集。

如果依多個欄位篩選,資料項目可能會符合多個篩選條件。 在本例中,訓練集優先於驗證集,驗證集優先於測試集。換句話說,只有在項目符合測試集的篩選條件,但不符合訓練集或驗證集的篩選條件時,才會放入測試集。如果項目不符合任何一組的篩選條件,就會從訓練中排除。

請勿使用與模型預測內容相關的資料分割類別;每個資料集都必須反映模型用於預測的資料範圍。(舉例來說,如果模型預期會依花卉類型分類圖片,請勿使用先前所述的篩選器)。

如要讓篩選器不比對任何項目,請將其設為「-」(減號)。

數學分組

數學分割也稱為「分數分割」。

根據預設,系統會按照資料類型的預設百分比,將資料隨機分割成不同集合。您可以將百分比變更為加總為 100 的任何值 (如果是 Vertex AI API,請使用加總為 1.0 的分數)。

如要變更百分比 (分數),請使用 FractionSplit 物件定義分數。如果是圖片資料類型,您也可以在訓練模型時,使用Google Cloud 控制台更新分割百分比。