Databricks 上的 AI 和机器学习

本文介绍由 Azure Databricks 提供,可帮助你生成和监视 AI 和 ML 工作流的工具。 示意图显示了这些组件如何协同工作,以帮助实现模型开发和部署过程。

机器学习图:Databricks 上的模型开发和部署

为什么使用 Databricks 进行机器学习和深度学习?

借助 Databricks,从原始数据到保存所服务模型的每个请求和响应的推理表,单个平台为模型开发和部署过程的每个步骤提供服务。 数据科学家、数据工程师、ML 工程师和 DevOps 可使用同一组工具和数据的单一事实来源来执行其工作。

借助数据智能平台,ML 平台和数据堆栈就是同一个系统。 ML 平台基于数据层构建。 所有数据资产和项目(如模型和函数)都可在单个目录中发现和管理。 对数据和模型使用单个平台使得跟踪从原始数据到生产模型的世系成为可能。 内置数据和模型监控将质量指标保存到同样存储在平台的表中,从而更轻松地确定模型性能问题的根本原因。 有关 Databricks 如何支持完整的 ML 生命周期和 MLOps 的详细信息,请参阅“Azure Databricks 上的 MLOps 工作流”和“MLOps 堆栈:将开发过程建模为代码”。

数据智能平台的一些关键组件包括:

任务 组件
治理和管理数据、功能、模型和函数。 此外,还有发现、版本控制以及世系。 Unity Catalog
特征开发和管理 特征工程
训练模型 Databricks 自动化 MLDatabricks 笔记本
跟踪模型开发 MLflow 跟踪
生成自动化工作流和生产就绪 ETL 管道 Databricks 作业
Git 集成 Databricks Git 文件夹

Databricks 中的深度学习

配置深度学习应用程序的基础结构可能很困难。

适用于机器学习的 Databricks Runtime 可为你处理这一任务,它包含内置兼容版本的最常见深度学习库(如 TensorFlow、PyTorch 和 Keras)的群集,以及 Petastorm、Hyperopt 和 Horovod 等支持库。 Databricks Runtime ML 群集还包括预配置的 GPU 支持以及驱动程序和支持库。 它还支持 Ray 等库,以便并行化计算处理来缩放 ML 工作流和 AI 应用程序。

对于机器学习应用程序,Databricks 建议使用运行用于机器学习的 Databricks Runtime 的群集。 请参阅使用 Databricks Runtime ML 创建群集

若要开始在 Databricks 上进行深度学习,请参阅:

Databricks 上的大型语言模型 (LLM) 和生成式 AI

适用于机器学习的 Databricks Runtime 包括 Hugging Face TransformersLangChain 之类的库,这些库支持你将现有的预先训练的模型或其他开放源代码库集成到工作流中。 借助 Databricks MLflow 集成,可以轻松地将 MLflow 跟踪服务与转换器管道、模型和处理组件配合使用。 此外,可以在 Azure Databricks 工作流中集成来自 John Snow Labs 等合作伙伴的 OpenAI 模型或解决方案。

使用 Azure Databricks,可以针对特定任务的数据自定义 LLM。 借助开放源代码工具(如 Hugging Face 和 DeepSpeed)的支持,可以高效使用基础 LLM 并使用自己的数据进行训练,以提高特定域和工作负载的准确度。 然后,可以在生成式 AI 应用程序中利用自定义 LLM。

用于机器学习的 Databricks Runtime

用于机器学习的 Databricks Runtime (Databricks Runtime ML) 可使用预生成的机器学习和深度学习基础结构(包括最常见的 ML 和 DL 库)自动创建群集。 有关 Databricks Runtime ML 的每个版本中库的完整列表,请参阅发行说明

若要在 Unity Catalog 中访问机器学习工作流的数据,群集的访问模式必须是单用户(已分配)。 共享群集与用于机器学习的 Databricks Runtime 不兼容。 此外,TableACLs 群集或将 spark.databricks.pyspark.enableProcessIsolation config 设置为 true 的群集不支持 Databricks Runtime ML。

使用 Databricks Runtime ML 创建群集

创建群集时,请从“Databricks Runtime 版本”下拉菜单中选择一个 Databricks Runtime ML 版本。 CPU 和启用 GPU 的 ML 运行时均可用。

选择 Databricks Runtime ML

如果你在笔记本中从下拉菜单选择一个群集,将在群集名称的右侧显示 Databricks Runtime 版本:

查看 Databricks Runtime ML 版本

如果选择已启用 GPU 的 ML 运行时,系统会提示你选择兼容的“驱动程序类型”和“辅助角色类型”。 下拉菜单中不兼容的实例类型会灰显。 “GPU 加速”标签下列出了已启用 GPU 的实例类型。

注意

若要在 Unity Catalog 中访问机器学习工作流的数据,群集的访问模式必须是单用户(已分配)。 共享群集与用于机器学习的 Databricks Runtime 不兼容。 有关如何创建群集的详细信息,请参阅计算配置参考

Photon 和 Databricks Runtime ML

创建运行 Databricks Runtime 15.2 ML 或更高版本的 CPU 群集时,你可以选择启用 Photon。 Photon 可以提高使用 Spark SQL、Spark 数据帧、功能工程、GraphFrames 和 xgboost4j 的应用程序的性能。 预计不会提高使用 Spark RDD、Pandas UDF 和非 JVM 语言(例如 Python)的应用程序的性能。 因此,使用 Photon 不会提高 Python 包(例如 XGBoost、PyTorch 和 TensorFlow)的性能。

Spark RDD API 和 Spark MLlib 与 Photon 的兼容性有限。 使用 Spark RDD 或 Spark MLlib 处理大型数据集时,可能会遇到 Spark 内存问题。 请参阅 Spark 内存问题

Databricks Runtime ML 中已包含库

Databricks Runtime ML 包含各种常见的 ML 库。 该库使用每个发行版进行更新,以包括新功能和修复。

Databricks 已将一部分受支持的库指定为顶层库。 对于这些库,Databricks 提供了更快的更新节奏,可通过每个运行时版本更新到最新的包版本(除非存在依赖项冲突)。 Databricks 还为顶层库提供高级支持、测试以及嵌入式优化。

有关顶层库和提供的其他库的完整列表,请参阅 Databricks Runtime ML的发行说明

后续步骤

如要入门,请参阅:

有关 Databricks 机器学习上建议的 MLOps 工作流,请参阅:

若要了解 Databricks 机器学习的主要功能,请参阅: