AutoML 模型資料分割作業簡介

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

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

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

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

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

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

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

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

手動分割非結構化資料

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

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

為 ml_use 標籤設定值

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

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

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

如果資料項目在資料中重複 (例如匯入檔案中出現多個相同的圖片片段),Agent Platform 會使用第一個資料項目的 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 值。匯入後,您無法使用 Agent Platform API 更新 ml_use 值。

使用 ml_use 標籤

訓練模型時,請在 Google Cloud 控制台中,為「資料分割」指定「手動 (進階)」。如果使用 Agent Platform 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 除外) 和其他欄位,透過 Agent Platform API 中的 FilterSplit 物件分割資料。舉例來說,您可以將 trainingFilter 設為 labels.flower=rosevalidationFilter 設為 labels.flower=daisy,並將 testFilter 設為 labels.flower=dahlia。這樣一來,所有標示為 rose 的資料都會新增至訓練集,所有標示為 daisy 的資料都會新增至驗證集,所有標示為 dahlia 的資料都會新增至測試集。

如果篩選多個欄位,資料項目可能會符合多個篩選條件。在這種情況下,訓練集會優先處理,接著是驗證集,最後是測試集。換句話說,只有在項目符合測試集的篩選條件,但不符合訓練或驗證篩選條件時,才會放入測試集。如果項目不符合任何集合的篩選條件,就會從訓練中排除。

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

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

數學分組

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

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

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