Netflix 实现机器学习民主化:构建模型生命周期图谱 笔记

Netflix 实现机器学习民主化:构建模型生命周期图谱

Netflix 在个性化、制片厂制作、支付和广告等多个业务领域广泛采用机器学习。随着机器学习(ML)应用的扩展,一个挑战随之出现:模型与数据分散在孤岛中,阻碍了协作与发现。机器学习从业者难以理解模型血缘、特征来源及其在不同系统中的影响。这种碎片化使得关于现有特征、数据来源、管道依赖以及变更影响的查询难以获得便捷答案。核心难点在于连接生成元数据的异构机器学习基础设施组件。从管道编排器到实验平台和特征存储,数十个系统以各种格式产生数据。解决这一问题需要收集异构元数据,将其转换为统一模型,并构建一个用于探索的连接图。解决方案是元数据服务(MDS),它在 Netflix 内部构建模型生命周期图(Model Lifecycle Graph),以互联机器学习实体。MDS 实时摄入机器学习元数据,支持跨域查询,例如识别使用特定模型的实验,或共享某些特征的模型。其愿景是使公司内所有机器学习资产均可被发现、可理解且可复用。MDS 基于以下核心抽象构建:组件(Component),每个拥有唯一的 AIP URI;实体(Entity),即具有属性的机器学习专用资产;实体类型(Entity Type),定义数据形状;域(Domain),用于分组相关的实体类型;以及提供者(Provider),即来自源系统的域的具体实现。这种基于 URI 的地址机制允许任何服务以通用方式引用任何机器学习资产。构建该图的过程包含多个阶段。首先,MDS 通过 Kafka 和 AWS SNS/SQS 与源系统集成,消费表示变更的轻量级事件。专用的事件处理器处理来自管道编排、模型注册表、特征存储、实验平台和身份平台等系统的事件。其次,MDS 实现水合契约(hydration contract),验证事件并调用源系统 API 获取完整状态,随后将其转换为标准化实体。这种“变更通知”模式确保了针对事件顺序问题的鲁棒性,但会将读取负载施加到源系统上。第三,原始事件被转换为具有标准化字段的统一实体模型,为下游消费者提供一致接口。标准化实体统一字段名称和格式,并将平台特定 ID 转换为全局 AIP URI。最后,标准化实体被持久化到 Datomic 用于缓存和关系存储,同时也在 Elasticsearch 中建立索引。Datomic 凭借其不可变事实模型,支持复杂的图遍历和实体关系查询,使得跨多域查询无需低效的 N+1 查询模式。
CdXz5zHNQW_EXeyjNVmx8.png