Dataflow ML

透過 Dataflow ML,您可以使用 Dataflow 部署及管理完整的機器學習 (ML) pipeline。使用機器學習模型,透過批次和串流管道執行本機和遠端推論。使用資料處理工具準備資料,以便用於模型訓練及處理模型生成的結果。
無論您想即時分類圖片、執行遠端推論呼叫,還是建構自訂模型處理常式,都能找到完整的 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 模型,評估對話的情緒、歸納對話內容,以及草擬難以回覆的對話。
搭配 Hugging Face 訓練的模型使用 RunInference 轉換。
搭配 TensorFlow Hub 中訓練的模型,使用 TensorFlow 的 RunInference 轉換。
使用 RunInference 轉換功能執行生成式 AI 工作。這本筆記本使用 Hugging Face Model Hub 的語言模型。

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

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

其他功能

在 Dataflow 工作中使用 GPU,可加速影像處理和機器學習處理工作。瞭解 Dataflow 支援的 GPU 類型,以及不同工作負載建議使用的 GPU 類型。
混用 GPU 和 CPU,以提高效能並降低成本。您可以將資源指定給特定管道步驟,進一步提升管道的彈性和功能,並節省費用。
Apache Beam 提供可新增至管道的現成擴充轉換,簡化資料擴充工作流程。

模型維護與評估

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

資源

如要搭配 Java 管道使用 RunInference,請建立跨語言 Python 轉換。管道會呼叫轉換作業,執行預先處理、後續處理和推論。
如要執行 Dataflow ML 範例,您可能需要設定 Google Cloud 權限。請參閱詳細指南,瞭解 Dataflow pipeline 的必要權限。
您可以在 GitHub 找到範例和對應的原始碼。您也可以在 GitHub 中找到在 Colab 中執行範例的操作說明。