Databricks 特征库

Databricks 特征存储是用于 AI 和 ML 模型中特征的中央注册表。 在 Unity Catalog 中注册特征和模型后,即可获得内置治理、数据沿袭、时间点联接,以及跨工作空间的特征共享与发现能力。

你可以采用两种策略来编写功能。

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

借助 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 数据类型

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

[1] Unity Catalog 和工作区特征存储 v0.3.5 或更高版本中所有版本的特征工程都支持 BinaryTypeDecimalTypeMapType。 [2] 特征工程 v0.6.0 或更高版本支持 StructType

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

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

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

特征存储 UI 显示有关特征数据类型的元数据:

复杂数据类型示例

详细信息

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