那个"不可能"的Bug
2026年3月,我们的推荐模型上线后,AUC从0.91掉到了0.68。排查了整整两天,最终发现:训练时对"用户过去30天购买次数"这个特征,做了log(1+x)转换。但推理时,这个转换被遗漏了。
一个简单的log函数,导致整个模型失效。这不是程序员的错——这是"特征工程逻辑分散在多个代码库"的系统性缺陷。
金句:如果你在训练和推理时分别写特征工程代码,你就是在为Bug写邀请函。Feature Store就是你的"单一真相来源"。
什么是Feature Store?
Feature Store统一管理特征的定义、存储和服务,确保训练和推理使用完全相同的特征。三个核心组件:特征注册表(Feature Registry)——特征的目录,定义每个特征的名称、类型、数据来源、转换逻辑。离线存储(Offline Store)——存储历史特征数据,用于模型训练。在线存储(Online Store)——存储最新的特征值,用于低延迟推理。
Feast实战
Feast(Feature Store)是2026年最流行的开源Feature Store。安装:pip install feast。定义实体和特征视图:Entity(name="user")、FeatureView(name="user_stats", entities=[user], schema=[...])。训练时从离线存储获取历史特征:store.get_historical_features()。推理时从在线存储获取最新特征:store.get_online_features()。关键:训练和推理使用完全相同的特征定义,消除了"训练-推理不一致"。
Feature Store的三大价值
价值一:消除训练-推理不一致。 特征定义一次,训练和推理都用同一个定义。价值二:特征复用。 不同模型共享相同的特征,减少重复的特征工程工作。价值三:特征回溯(Point-in-Time Correct)。 获取某个历史时间点的特征值,杜绝"数据泄露"。
结论:Feature Store不是"银弹",但它是解决"训练-推理不一致"问题的最佳方案。 当你的模型数量超过5个,或者你经历了一次"训练-推理不一致"事故,你就会理解Feature Store的价值。