Databricks 特征存储

Databricks 特征存储是用于 AI 和 ML 模型中特征的中央注册表。 当你在 Unity 目录中注册功能和模型时,你会获得内置的治理、血缘、时间点连接以及跨工作空间的功能共享和发现功能。

你可以用两种策略来撰写特写。

两者都生产由 Unity 目录管理的功能,这些功能发布到 在线功能商店。 参见 选择创作策略

  • 功能视图,通过声明式定义功能,让Databricks帮你计算和管理功能流水线。 此功能现提供公共预览版
  • 特征表,你通过写入特征值到Delta表来填充它们。

借助 Databricks,整个模型训练工作流在单个平台上进行,包括:

  • 用于引入原始数据、创建特征表、训练模型和执行批量推理的数据管道。
  • 可一键式使用的并提供毫秒级延迟的模型和特征服务终结点。
  • 数据和模型监测。

使用 Databricks 特征库中的特征来训练模型时,模型会自动跟踪在训练中使用的特征的关联。 在推理时,模型会自动查找最新的特征值。 Databricks 功能存储还为实时应用程序提供按需计算功能,并处理所有功能计算任务。 这消除了训练/推理偏差,确保推理中使用的特征计算与模型训练期间使用的特征计算相同。 它还大大简化了客户端代码,因为 Databricks 功能存储处理所有功能查找和计算。

注释

本页介绍启用了 Unity Catalog 的工作区的 Databricks 特征存储。 如果未为 Unity Catalog 启用工作区,请参阅工作区特性存储(已弃用)。

概念概述

有关 Databricks 功能存储的工作原理和术语表的概述,请参阅 Databricks 功能存储概述和术语表

选择一种创作策略

功能商店支持两种创作功能的方式。 两者都创建了由 Unity 目录管理的功能,并且都可以发布到在线功能商店。 一般来说,大多数新案例推荐使用特征视图,尽管特征表最适合灵活的多阶段批处理工作负载。

Strategy 最适用于 工作原理
推荐的特色视图 大多数新项目、时间窗口聚合和流媒体功能。 将特征声明性定义为 Unity 目录 Feature 对象。 Databricks 负责创建和管理功能流水线。 你可以在注册前在笔记本里对本地定义的特征做实验,然后实现特征管线。 流功能视图支持亚秒级的新功能数据,实时 模式 直接写入 在线功能商店
功能表 你用 Lakeflow 或 Spark 声明式管道计算的功能,以及需要 Delta 共享、第三方在线商店或仅限 GA 的一般可用创作路径的工作负载。 将特征值写入 Unity 目录中的 Delta 表,该表有主键。 你拥有填充和刷新表的流水线。

开发功能

功能 / 特点 Description
特色视图 通过特征视图(Feature Views)声明式定义和计算特征,包括时间窗口聚合和流功能。
实体化特征视图 实现功能视图,用于离线培训或在线服务。
Unity 目录中的功能表 创建和使用功能表。

发现和共享功能

功能 / 特点 Description
浏览 Unity 目录中的功能表 使用目录资源管理器和功能 UI 浏览和管理功能表。
在 Unity 目录中将标记与功能表和功能配合使用 使用简单的键值对对特征表和特征进行分类和管理。
浏览 Unity 目录中的功能视图 在 Databricks UI 中浏览功能视图定义和具体化状态。

在训练工作流中使用特性

功能 / 特点 Description
使用特征表训练模型 使用功能训练模型。
时间点功能联接 使用时间点正确性创建一个训练数据集,该数据集反映记录标签观察的时间特征值。
特征工程 Python API Python API 参考

服务功能

功能 / 特点 Description
Databricks 在线特征库 为联机应用程序和实时机器学习模型提供功能数据。 由 Databricks Lakebase 提供支持。
使用自动特征查找进行模型服务 自动从在线商店查找特征值。
功能服务终结点 为 Databricks 外部的模型和应用程序提供功能。
按需特征计算 在推理时计算特征值。

特征治理和世系

功能 / 特点 Description
特征治理和世系 使用 Unity 目录控制对功能表的访问,并查看特征表、模型或函数的世系。

Tutorials

Tutorial Description
入门示例笔记本 基本笔记本。 演示如何创建特征表、使用它来训练模型,以及如何使用自动功能查找运行批处理评分。 此外,还显示了用于搜索特征和查看来源的特征工程用户界面。
出租车示例笔记本。 显示创建功能、更新特征以及将它们用于模型训练和批处理推理的过程。
示例:部署和查询功能服务终结点 演示如何部署和查询功能服务终结点的教程和示例笔记本。
示例:在结构化 RAG 应用程序中使用功能 演示如何使用 Databricks 联机表和功能服务终结点进行检索增强生成(RAG)应用程序的教程。

要求

若要使用 Databricks 功能存储,您的工作区必须启用 Unity Catalog。 如果未为 Unity Catalog 启用工作区,请参阅工作区特性存储(已弃用)。

支持的数据类型

Databricks 功能存储和旧工作区功能存储支持以下 PySpark 数据类型

  • IntegerType
  • FloatType
  • BooleanType
  • StringType
  • DoubleType
  • LongType
  • TimestampType
  • DateType
  • ShortType
  • ArrayType
  • BinaryType [1]
  • DecimalType [1]
  • MapType [1]
  • StructType [2]

[1] Unity Catalog 的所有 Feature Engineering 版本以及 Workspace Feature Store v0.3.5 或更高版本中支持 BinaryTypeDecimalTypeMapType。 [2] 特征工程 v0.6.0 或更高版本支持 StructType

上面列出的数据类型支持机器学习应用程序中常见的特征类型。 例如:

  • 可以将稠密矢量、张量和嵌入存储为 ArrayType
  • 可以将稀疏矢量、张量和嵌入存储为 MapType
  • 可以将文本存储为 StringType

发布到在线商店时,ArrayTypeMapType 特征以 JSON 格式存储。

特征库 UI 显示特征数据类型的元数据。

复杂数据类型示例

详细信息

有关最佳做法的详细信息,请下载特征存储综合指南