AutoML 模型資料分割作業簡介

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

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

映像檔

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

影片

如果是影片資料集,AutoML 會使用訓練集訓練模型,然後使用測試集提供最終評估指標。驗證集不適用於影片資料集。

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

設定 圖片 影片
訓練 80 80
驗證 10 不適用
測試 10 20

如要使用預設資料分割,請在 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 控制台更新分割百分比。