本頁說明為何要使用 MLTransform
功能準備資料,以及如何使用這項功能訓練機器學習 (ML) 模型。在一個類別中合併多個資料處理轉換,可簡化將 Apache Beam ML 資料處理作業套用至工作流程的程序。MLTransform
如要瞭解如何使用 MLTransform
執行嵌入生成工作,請參閱「使用 MLTransform 生成嵌入」。
MLTransform
。優點
MLTransform
類別具有下列優點:
- 轉換資料時,不必編寫複雜的程式碼或管理基礎程式庫。
- 透過單一介面,有效串連多種處理作業。
生成嵌入項目,可用於將資料推送至向量資料庫,或執行推論作業。
如要進一步瞭解如何生成嵌入,請參閱「使用 MLTransform 生成嵌入」。
支援與限制
MLTransform
類別具有下列限制:
- 適用於使用 Apache Beam Python SDK 2.53.0 以上版本的管道。
- 管道必須使用預設視窗。
使用 TFT 的資料處理轉換:
- 支援 Python 3.9、3.10、3.11。
- 支援批次管道。
用途
範例筆記本會示範如何將 MLTransform
用於特定用途的嵌入。
- 我想從資料集計算詞彙
- 從資料集計算出不重複的字彙,然後將每個字詞或符記對應至不同的整數索引。使用這項轉換,將文字資料轉換為機器學習工作適用的數值表示法。
- 我想擴充資料,以便訓練機器學習模型
- 擴充資料,以便用於訓練機器學習模型。Apache Beam
MLTransform
類別包含多個資料縮放轉換。
如需可用轉換指令的完整清單,請參閱 Apache Beam 說明文件中的「轉換」。
使用 MLTransform
如要使用 MLTransform
類別預先處理資料,請在管道中加入下列程式碼:
import apache_beam as beam
from apache_beam.ml.transforms.base import MLTransform
from apache_beam.ml.transforms.tft import TRANSFORM_NAME
import tempfile
data = [
{
DATA
},
]
artifact_location = gs://BUCKET_NAME
TRANSFORM_FUNCTION_NAME = TRANSFORM_NAME(columns=['x'])
with beam.Pipeline() as p:
transformed_data = (
p
| beam.Create(data)
| MLTransform(write_artifact_location=artifact_location).with_transform(
TRANSFORM_FUNCTION_NAME)
| beam.Map(print))
替換下列值:
TRANSFORM_NAME
:要使用的轉換名稱BCUKET_NAME
:Cloud Storage bucket 的名稱DATA
:要轉換的輸入資料TRANSFORM_FUNCTION_NAME
:您在程式碼中指派給轉換函式的名稱
後續步驟
- 如要進一步瞭解
MLTransform
,請參閱 Apache Beam 說明文件中的「預先處理資料」。 - 如需更多範例,請參閱 Apache Beam 轉換目錄中的
MLTransform
資料處理。 - 在 Colab 中執行互動式筆記本。