Dataflow 机器学习

借助 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 类包含多个数据扩缩转换。

使用中心模型进行预测和推理

您可以在推理流水线中使用 Gemma 模型来衡量对话的情绪,总结对话内容,并为棘手对话草拟回复。
RunInference 转换与 Hugging Face 中经过训练的模型搭配使用。
将 TensorFlow 的 RunInference 转换与 TensorFlow Hub 中经过训练的模型搭配使用。
使用 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 流水线是使用 Kubeflow Pipelines SDK 构建的可重复使用的完整机器学习工作流。

其他功能

在 Dataflow 作业中使用 GPU 可以加快图片处理和机器学习处理任务的速度。请参阅 Dataflow 支持的 GPU 类型,以及有关不同工作负载应使用哪种 GPU 类型的建议。
混合使用 GPU 和 CPU,以提高性能和降低成本。为特定的流水线步骤指定资源可提高流水线的灵活性和能力,并可能节省费用。
Apache Beam 通过提供可添加到流水线的一站式丰富转换,来简化数据丰富化工作流。

模型维护和评估

RunInference 使您可以在不停止 Apache Beam 流水线的情况下执行自动模型更新。即使流水线正在运行,您也可以使用辅助输入实时更新模型。
使用 TensorFlow Model Analysis (TFMA) 通过创建和比较两个模型来调查和直观呈现模型的性能。借助 Apache Beam,您可以在一个步骤中评估和比较多个模型。

资源

如需将 RunInference 与 Java 流水线搭配使用,请创建跨语言 Python 转换。该流水线会调用转换,后者会执行预处理、后处理和推理。
如需运行 Dataflow ML 示例,您可能需要配置 Google Cloud 权限。阅读有关 Dataflow 流水线所需权限的详细指南。
GitHub 上提供了示例和相应的源代码。在 GitHub 中,您还可以找到在 Colab 中运行示例的说明。