Dataflow ML

透過 Dataflow ML,您可以使用 Dataflow 部署及管理完整的機器學習 (ML) 管道。使用機器學習模型,透過批次和串流管道執行本機和遠端推論。使用資料處理工具準備資料,以便用於模型訓練及處理模型生成的結果。
無論您想即時分類圖片、執行遠端推論呼叫,還是建構自訂模型處理常式,都能找到完整的 Dataflow ML 範例。
使用 MLTransform 類別預先處理機器學習 (ML) 工作流程的資料。只要在一個類別中合併多個資料處理轉換,MLTransform 就能簡化將 Apache Beam ML 資料處理轉換套用至工作流程的程序。
with pipeline as p:
  predictions = (
      p
      | beam.ReadFromSource('a_source')
      | RunInference(MODEL_HANDLER))
使用 RunInference 的方式很簡單,只要將轉換程式碼新增至管道即可。在本範例中,MODEL_HANDLER 是模型設定物件。
with beam.Pipeline() as p:
  transformed_data = (
    p
    | beam.Create(data)
    | MLTransform(...)
    | beam.Map(print))
如要準備資料用於訓練機器學習模型,請在管道中使用 MLTransformMLTransform 會將多個資料處理轉換包裝在一個類別中,讓您使用一個類別執行各種前置處理任務。

使用預先訓練模型進行預測和推論

使用 Pytorch 的預先訓練模型。
使用 scikit-learn 搭配預先訓練模型。
使用 TensorFlow 搭配預先訓練模型。
Apache Beam 內建支援將要求傳送至遠端部署的 Vertex AI 端點。這個筆記本說明如何使用 Apache Beam RunInference 轉換,透過 Vertex AI 進行圖片分類。
使用 RunInference 轉換和鍵控模型處理常式,在同一個 RunInference 轉換中使用多個模型。

使用 MLTransform 的資料處理

使用 Apache Beam 的 MLTransform 類別和 Vertex AI 文字嵌入 API,生成文字嵌入。文字嵌入是將文字表示為數值向量的方法,許多自然語言處理 (NLP) 任務都需要用到這項技術。
搭配使用 Apache Beam 的 MLTransform 類別和 Hugging Face Hub 模型,生成文字嵌入。Hugging Face 的 SentenceTransformers 框架使用 Python 生成句子、文字和圖片嵌入。
從資料集計算出不重複的詞彙,然後將每個字詞或符記對應至不同的整數索引。使用這項轉換功能,將文字資料轉換為數值表示法,以用於機器學習任務。
擴充資料,以便用於訓練機器學習模型。Apache Beam 的 MLTransform 類別包含多個資料縮放轉換。

使用 Hub 模型進行預測和推論

您可以在推論管道中使用 Gemma 模型,評估對話的情緒、歸納對話內容,以及草擬難以回覆的對話。
使用 RunInference 轉換,搭配 Hugging Face 訓練的模型。
搭配 TensorFlow Hub 中訓練的模型,使用 TensorFlow 的 RunInference 轉換。
使用 RunInference 轉換功能執行生成式 AI 任務。這本筆記本使用 Hugging Face Model Hub 的語言模型。

機器學習工作流程自動化調度管理

Vertex AI Pipelines 可讓您以無伺服器的方式自動化調度管理機器學習工作流程,以便自動化處理、監控及管理機器學習系統。使用 Vertex AI Pipelines 自動化調度管理 TFX 或 KFP 定義的工作流程 DAG,並使用 Vertex ML Metadata 自動追蹤機器學習構件。
TensorFlow Extended (TFX) 可讓您使用自動化調度管理架構部署完整的機器學習管道,該架構內建與 Apache Beam 和 Dataflow 執行器的整合功能。
Kubeflow 可簡化在 Kubernetes 中部署機器學習工作流程的作業,並提高其可攜性與可擴充性。Kubeflow Pipelines 是使用 Kubeflow Pipelines SDK 建構的可重複使用完整機器學習工作流程。

異常偵測

這本筆記本示範如何使用 AnomalyDetection PTransform 對批次和串流資料執行異常偵測。這項功能會使用 Z 分數演算法,找出資料集中的離群值。

其他功能

在 Dataflow 工作中使用 GPU 和 TPU 等加速器,可大幅加快資料處理任務的速度,這類任務常會用於機器學習和影像處理用途。

TPU 是專門設計的 AI 加速器,經過最佳化調整後,適合用於訓練及使用大型 AI 模型,可靈活調度資源,支援各種 AI 工作負載。

混用 GPU 和 CPU,以提高效能並降低成本。將資源指定至特定管道步驟的功能,可提供額外的管道彈性和功能,並可能節省成本。
Apache Beam 提供可新增至管道的現成擴充轉換,簡化 data enrichment 工作流程。

模型維護與評估

RunInference 可讓您執行自動模型更新,而不必停止 Apache Beam 管道。即使管道正在執行,您也可以使用側邊輸入即時更新模型。
使用 TensorFlow Model Analysis (TFMA) 建立及比較兩個模型,藉此調查及視覺化呈現模型的成效。使用 Apache Beam,您可以在一個步驟中評估及比較多個模型。

資源

如要在 Java 管道中使用 RunInference,請建立跨語言 Python 轉換。管道會呼叫轉換作業,執行預先處理、後製處理和推論。