feathr

GitHub
1.9k 242 中等 1 次阅读 3周前Apache-2.0开发框架其他数据工具
AI 解读 由 AI 自动生成,仅供参考

Feathr 是一个可扩展的企业级数据与 AI 工程平台,源自 LinkedIn 内部使用六年的成熟项目,现由 LF AI & Data 基金会托管。它主要解决人工智能开发中特征工程复杂、数据一致性难保障以及团队协作效率低等痛点。

通过 Feathr,数据科学家和工程师可以使用直观的 Python API 定义原始数据的转换逻辑,无论是批量处理还是实时流数据均可统一支持。其核心优势在于自动计算特征并关联训练数据,严格采用“时间点正确”(point-in-time-correct)语义,有效防止模型训练中的数据泄露问题。此外,Feathr 内置了注册中心功能,让团队成员能够轻松命名、共享和复用特征,打破数据孤岛。

该平台特别适合需要构建大规模机器学习系统的开发者、数据科学家及 AI 工程师。技术亮点包括原生云集成、支持数十亿行数据的高效处理能力(内置布隆过滤器等优化),以及兼容 PySpark 和 Spark SQL 的高度自定义函数。Feathr 不仅降低了特征工程的学习门槛,还实现了从离线批处理到在线生产环境的全链路统一,帮助用户在几分钟内通过沙箱环境快速上手,高效落地 AI 应用。

使用场景

某大型电商公司的数据科学团队正在构建实时个性化推荐系统,需要处理海量用户行为日志并生成数千个动态特征用于模型训练和在线预测。

没有 feathr 时

  • 特征计算逻辑分散:离线训练代码与在线服务代码由不同团队维护,导致特征定义不一致,经常出现“训练 - 服务偏差”,模型上线后效果大幅缩水。
  • 时间穿越难以避免:在处理历史数据进行回溯测试时,缺乏原生的时间点正确性(Point-in-Time Correctness)机制,容易误用未来数据造成数据泄露,误导模型评估。
  • 协作效率低下:特征工程脚本以孤立的 Notebook 形式存在,无法统一注册和复用,新成员加入时需重复造轮子,跨团队共享特征几乎不可能。
  • 扩展性瓶颈:面对 PB 级用户行为流,自定义的 Spark 任务缺乏内置优化(如布隆过滤器、加盐连接),计算耗时极长且资源成本高昂。

使用 feathr 后

  • 统一特征定义:通过 Pythonic API 一次性定义特征转换逻辑,feathr 自动将其应用于离线批量训练和在线实时推理,彻底消除了训练与服务的环境差异。
  • 自动防止数据泄露:利用 feathr 内置的时间点正确语义,自动在_join_训练数据时对齐时间戳,确保回溯测试中绝不使用未来信息,保障模型评估真实可靠。
  • 特征注册与共享:将清洗后的特征注册到统一目录,团队成员可按名称直接调用现有特征,不仅加速了新模型迭代,还促进了全公司范围内的资产复用。
  • 高性能弹性计算:依托 feathr 内置的分布式优化引擎,轻松处理数十亿行数据流,显著缩短特征 материализация(物化)时间,同时降低了云资源消耗。

feathr 通过统一离线与在线的特征工程链路,让企业能够以低成本、高一致性快速交付生产级 AI 应用。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明

内存

未说明(Sandbox 模式需支持 Docker 容器运行)

依赖
notes该工具主要依赖 Apache Spark 进行数据处理。推荐使用 Docker 运行 Feathr Sandbox 以快速体验(需安装 Docker 并开放端口 8888, 8081, 7080)。生产环境支持 Azure Synapse、Databricks 及本地 Spark 集群。客户端可通过 pip 直接安装。无强制 GPU 要求,计算性能取决于底层 Spark 集群配置。
python3.8+
pyspark
azure-identity
azure-storage-blob
pandas
redis
confluent-kafka
pyhocon
jinja2
fastapi
uvicorn
feathr hero image

快速开始

一款面向企业的可扩展、统一的数据与AI工程平台

重要链接: Slack & 讨论区文档

许可证 GitHub发布 文档最新版 Python API CII最佳实践

什么是Feathr?

Feathr是一个数据与AI工程平台,在LinkedIn已广泛应用于生产环境多年,并于2022年开源。目前,它已成为LF AI & Data基金会下的一个项目。

请阅读我们的相关公告:开源FeathrFeathr在Azure上,以及LF AI & Data基金会的公告

Feathr可以帮助您:

  • 定义 基于原始数据源(批处理和流式)的数据及特征转换,使用类Python的API。
  • 注册 转换规则并为其命名,从而为各种用例获取转换后的数据(特征),包括AI建模、合规性、市场推广等。
  • 共享 转换规则及数据(特征)给团队或公司内的其他部门。

Feathr在AI建模中尤为有用,它能够自动计算您的特征转换,并以“时间点正确”的语义将其与训练数据进行关联,避免数据泄露问题;同时支持将特征物化并部署到线上生产环境中使用。

🌟 Feathr亮点

  • 原生云集成,架构简化且可扩展。
  • 经过6年以上生产环境的严格考验:LinkedIn已持续使用Feathr超过6年,并拥有专门的支持团队。
  • 内置优化功能,具备强大的可扩展性:Feathr可处理数十亿行数据及PB级别的海量数据,内置布隆过滤器和加盐连接等优化技术。
  • 丰富的转换API,包括基于时间的聚合、滑动窗口连接、查找特征等,所有操作均符合AI所需的“时间点正确”原则。
  • 类Python的API和高度可定制的用户自定义函数(UDF),原生支持PySpark和Spark SQL,降低数据科学家的学习曲线。
  • 统一的数据转换API适用于离线批处理、流式处理和在线环境。
  • Feathr内置的注册中心使命名转换和数据/特征的复用变得轻而易举。

🏃 快速入门Feathr - Feathr沙盒

尝试Feathr最简单的方式是使用Feathr沙盒,这是一个自包含的容器,集成了Feathr的大部分功能,您只需5分钟即可开始高效工作。只需运行以下命令:

# 80: Feathr UI, 8888: Jupyter, 7080: Interpret
docker run -it --rm -p 8888:8888 -p 8081:80 -p 7080:7080 -e GRANT_SUDO=yes feathrfeaturestore/feathr-sandbox:releases-v1.0.0

然后您可以查看Feathr快速入门Jupyter笔记本:

http://localhost:8888/lab/workspaces/auto-w/tree/local_quickstart_notebook.ipynb

运行完笔记本后,所有特征都会在UI中注册,您可以通过以下地址访问Feathr UI:

http://localhost:8081

🛠️ 在本地安装Feathr客户端

如果您想在Python环境中安装Feathr客户端,请使用以下命令:

pip install feathr

或者直接从GitHub获取最新代码:

pip install git+https://github.com/feathr-ai/feathr.git#subdirectory=feathr_project

☁️ 在云端运行Feathr用于生产环境

Feathr与Databricks和Azure Synapse实现了原生集成:

请按照Feathr ARM部署指南在Azure上运行Feathr。该指南提供了使用Azure资源管理器模板进行自动化部署的快速入门方法。

如果您希望手动搭建所有组件,可以参考Feathr CLI部署指南,逐步设置每个资源。

📓 文档

🧪 样例

名称 描述 平台
NYC Taxi 演示 快速入门笔记本,展示了如何使用 NYC 出租车费预测样本数据定义、物化和注册特征。 Azure Synapse、Databricks、本地 Spark
Databricks 快速入门 NYC Taxi 演示 包含 NYC 出租车费预测样本数据的 Databricks 快速入门笔记本。 Databricks
特征嵌入 Feathr UDF 示例,展示如何使用预训练的 Transformer 模型和酒店评论样本数据定义并使用特征嵌入。 Databricks
欺诈检测演示 一个示例,演示如何使用用户账户和交易数据等多种数据源来操作 Feature Store。 Azure Synapse、Databricks、本地 Spark
产品推荐演示 带有产品推荐场景的 Feathr Feature Store 示例笔记本 Azure Synapse、Databricks、本地 Spark

🔡 Feathr 主要功能

请阅读 Feathr 全部功能,以获取更多示例。以下是其中几个精选功能:

Feathr UI

Feathr 提供了一个直观的用户界面,使您可以搜索和探索所有可用的特征及其相应的血缘关系。

您可以通过 Feathr UI 搜索特征、识别数据源、跟踪特征血缘关系以及管理访问控制。请查看最新的实时演示 这里,了解 Feathr UI 能为您做些什么。在提示登录时,请使用以下任一账号:

  • 工作或学校组织账号,包括 Office 365 订阅用户。
  • Microsoft 个人账号,即可以访问 Skype、Outlook.com、OneDrive 和 Xbox LIVE 的账号。

Feathr UI

有关 Feathr UI 及其背后注册表的更多信息,请参阅 Feathr 特征注册表

丰富的 UDF 支持

Feathr 具有高度可定制的 UDF,并与原生 PySpark 和 Spark SQL 集成,从而降低数据科学家的学习曲线:

def add_new_dropoff_and_fare_amount_column(df: DataFrame):
    df = df.withColumn("f_day_of_week", dayofweek("lpep_dropoff_datetime"))
    df = df.withColumn("fare_amount_cents", df.fare_amount.cast('double') * 100)
    return df

batch_source = HdfsSource(name="nycTaxiBatchSource",
                        path="abfss://feathrazuretest3fs@feathrazuretest3storage.dfs.core.windows.net/demo_data/green_tripdata_2020-04.csv",
                        preprocessing=add_new_dropoff_and_fare_amount_column,
                        event_timestamp_column="new_lpep_dropoff_datetime",
                        timestamp_format="yyyy-MM-dd HH:mm:ss")

定义具有时间点正确性的窗口聚合特征

agg_features = [Feature(name="f_location_avg_fare",
                        key=location_id,                          # 特征(组)的查询/连接键
                        feature_type=FLOAT,
                        transform=WindowAggTransformation(        # 窗口聚合变换
                            agg_expr="cast_float(fare_amount)",
                            agg_func="AVG",                       # 在窗口上应用平均聚合
                            window="90d")),                       # 在 90 天窗口内
                ]

agg_anchor = FeatureAnchor(name="aggregationFeatures",
                           source=batch_source,
                           features=agg_features)

在其他特征之上定义派生特征

# 在现有特征之上计算一个新的特征(即派生特征)
derived_feature = DerivedFeature(name="f_trip_time_distance",
                                 feature_type=FLOAT,
                                 key=trip_key,
                                 input_features=[f_trip_distance, f_trip_time_duration],
                                 transform="f_trip_distance * f_trip_time_duration")

# 另一个计算嵌入相似度的例子
user_embedding = Feature(name="user_embedding", feature_type=DENSE_VECTOR, key=user_key)
item_embedding = Feature(name="item_embedding", feature_type=DENSE_VECTOR, key=item_key)

user_item_similarity = DerivedFeature(name="user_item_similarity",
                                      feature_type=FLOAT,
                                      key=[user_key, item_key],
                                      input_features=[user_embedding, item_embedding],
                                      transform="cosine_similarity(user_embedding, item_embedding)")

定义流式特征

有关详细信息,请参阅 流式源摄取指南

时间点连接

有关详细信息,请参阅 Feathr 中的时间点正确性和时间点连接

运行 Feathr 示例

按照 快速入门 Jupyter 笔记本 进行尝试。此外,还有一个配套的 快速入门指南,其中对笔记本进行了更详细的解释。

🗣️ 关于 Feathr 的技术分享

⚙️ 云集成与架构

架构图

Feathr 组件 云集成
离线存储 – 对象存储 Azure Blob Storage、Azure ADLS Gen2、AWS S3
离线存储 – SQL Azure SQL DB、Azure Synapse 专用 SQL 池、VM 中的 Azure SQL、Snowflake
流式数据源 Kafka、EventHub
在线存储 Redis、Azure Cosmos DB
特征注册与治理 Azure Purview、ANSI SQL(如 Azure SQL Server)
计算引擎 Azure Synapse Spark 池、Databricks
机器学习平台 Azure 机器学习、Jupyter Notebook、Databricks Notebook
文件格式 Parquet、ORC、Avro、JSON、Delta Lake、CSV
凭证管理 Azure Key Vault

🚀 路线图

  • 更多 Feathr 在线客户端库,例如 Java
  • 支持特征版本控制
  • 支持特征监控

👨‍👨‍👦‍👦 社区准则

为社区而建,由社区共建。请查看社区准则

📢 Slack 社区频道

加入我们的Slack 社区频道,进行问题交流和讨论(或点击邀请链接)。

版本历史

v1.0.02023/02/28
v1.0.0-rc42023/02/28
v0.10.4-rc32023/01/17
v0.10.4-rc22023/01/17
v0.10.4-rc12023/01/17
v0.10.0-rc12022/12/15
v0.9.02022/11/01
v0.8.02022/09/23
v0.7.22022/08/29
v0.6.02022/07/29
v0.5.12022/07/29
v0.4.02022/05/03
v0.3.02022/04/12
v0.2.12022/03/23
v0.1.02022/03/07

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架