Databricks 特征存储是用于 AI 和 ML 模型中特征的中央注册表。 在 Unity Catalog 中注册特征和模型后,即可获得内置治理、数据沿袭、时间点联接,以及跨工作空间的特征共享与发现能力。
你可以采用两种策略来编写功能。
借助 Databricks,整个模型训练工作流在单个平台上进行,包括:
- 用于引入原始数据、创建特征表、训练模型和执行批量推理的数据管道。
- 可通过一键访问并提供毫秒级延迟的模型和特征服务终结点。
- 数据和模型监测
使用 Databricks 特征库中的特征来训练模型时,模型会自动跟踪在训练中使用的特征的关联。 在推理时,模型会自动查找最新的特征值。 Databricks 功能存储还为实时应用程序提供按需计算功能,并处理所有功能计算任务。 这消除了训练/推理偏差,确保推理中使用的特征计算与模型训练期间使用的特征计算相同。 它还大大简化了客户端代码,因为 Databricks 功能存储处理所有功能查找和计算。
注释
本页介绍启用了 Unity Catalog 的工作区的 Databricks Feature Store。 如果未为 Unity Catalog 启用工作区,请参阅工作区特性存储(已弃用)。
概念概述
有关 Databricks 功能存储的工作原理和术语表的概述,请参阅 Databricks 功能存储概述和术语表。
选择创作策略
功能商店支持两种创作功能的方式。 两者都创建了由 Unity 目录管理的功能,并且都可以发布到在线功能商店。 一般来说,大多数新案例推荐使用特征视图,尽管特征表最适合灵活的多阶段批处理工作负载。
| 策略 | 最适用于 | 工作原理 |
|---|---|---|
| 功能视图(推荐) | 多数新项目、基于时间窗口的聚合以及流式处理功能。 | 以声明方式将特征定义为 Unity Catalog Feature 对象。 Databricks 负责创建和管理功能流水线。 你可以在注册前在笔记本里对本地定义的特征做实验,然后实现特征管线。 流功能视图支持从 实时模式 直接写入联机功能存储的次秒新功能数据。 |
| 功能表 | 你用 Lakeflow 或 Spark 声明式管道计算的功能,以及需要 Delta 共享、第三方在线商店或仅限 GA 的一般可用创作路径的工作负载。 | 将特征值写入 Unity 目录中的 Delta 表,该表有主键。 负责填充和刷新该表的数据管道由你负责。 |
开发功能
| 功能 / 特点 | Description |
|---|---|
| 特征视图 | 通过特征视图(Feature Views)声明式地定义和计算特征,包括时间窗口聚合和流式特征。 |
| 实体化特征视图 | 将特征视图实体化,用于离线训练或在线服务。 |
| Unity 目录中的功能表 | 创建和使用功能表。 |
发现和共享功能
| 功能 / 特点 | Description |
|---|---|
| 浏览 Unity 目录中的功能表 | 使用目录资源管理器和功能 UI 浏览和管理功能表。 |
| 在 Unity 目录中将标记与功能表和功能配合使用 | 使用简单的键值对来对特征表和特征进行分类和管理。 |
在训练工作流中使用功能
| 功能 / 特点 | Description |
|---|---|
| 使用特征表训练模型 | 使用功能训练模型。 |
| 时间点功能联接 | 使用时间点正确性创建一个训练数据集,该数据集反映记录标签观察的时间特征值。 |
| 特征工程 Python API | Python API 参考 |
服务功能
| 功能 / 特点 | Description |
|---|---|
| 功能服务终结点 | 为 Databricks 外部的模型和应用程序提供功能。 |
| 按需特征计算 | 在推理时计算特征值。 |
特征治理和世系
| 功能 / 特点 | Description |
|---|---|
| 功能治理和世系 | 使用 Unity 目录控制对功能表的访问,并查看特征表、模型或函数的世系。 |
Tutorials
| Tutorial | Description |
|---|---|
| 以供入门使用的示例笔记本 |
基本笔记本。 演示如何创建特征表、使用它来训练模型,以及如何使用自动功能查找运行批处理评分。 此外,还显示了用于搜索功能和查看起源的特征工程 UI。 出租车示例笔记本。 显示创建功能、更新特征以及将它们用于模型训练和批处理推理的过程。 |
| 示例:利用功能来应用于结构化 RAG 应用程序 | 教程演示如何使用 Databricks 联机表和特性服务端点来实现检索增强生成(RAG)应用程序。 |
要求
若要使用 Databricks 功能存储,您的工作区必须启用 Unity Catalog。 如果未为 Unity Catalog 启用工作区,请参阅工作区特性存储(已弃用)。
支持的数据类型
Databricks 功能存储和旧工作区功能存储支持以下 PySpark 数据类型:
IntegerTypeFloatTypeBooleanTypeStringTypeDoubleTypeLongTypeTimestampTypeDateTypeShortTypeArrayType-
BinaryType[1] -
DecimalType[1] -
MapType[1] -
StructType[2]
[1] Unity Catalog 和工作区特征存储 v0.3.5 或更高版本中所有版本的特征工程都支持 BinaryType、DecimalType 和 MapType。
[2] 特征工程 v0.6.0 或更高版本支持 StructType。
上面列出的数据类型支持机器学习应用程序中常见的特征类型。 例如:
- 可以将稠密矢量、张量和嵌入存储为
ArrayType。 - 可以将稀疏矢量、张量和嵌入存储为
MapType。 - 可以将文本存储为
StringType。
发布到在线商店时,ArrayType 和 MapType 特征以 JSON 格式存储。
特征存储 UI 显示有关特征数据类型的元数据:
详细信息
有关最佳实践的详细信息,请下载特征存储综合指南。