4.1 路线图

开发和管理特征是开发机器学习模型的关键步骤。通常,数据项目会共享一组公共特征,允许重复使用相同的特征。随着复用特征数量的增加,会降低新数据项目实现的成本(如图4-2所示)。在不同的项目中,特征有较多的重叠。本节讨论特征存储服务中的关键场景。

059-02

图4-2:随着特征存储中可用特征的增加,新数据项目所需的时间和成本会减少

4.1.1 发现可用特征

作为探索阶段的一部分,数据科学家搜索可用于构建机器学习模型的可用特征。这个阶段的目标是重用特征并降低构建模型的成本。这个过程包括分析可用特征是否具有良好的质量,以及它们的使用方法。由于缺乏集中的特征库,所以数据科学家经常跳过搜索阶段,而开发一些临时的训练管道,这些管道随着时间的推移变得越来越复杂。随着模型数量的增加,很快就变成了难以管理的管道丛林。

4.1.2 训练集生成

在模型训练过程中,需要由一个或多个特征组成的数据集来训练模型。训练集包含这些特征的历史值,并与预测标签一起生成。我们通过编写查询语句来准备训练集,这些查询语句从数据集源中提取数据,并对特征的历史数据值进行转换、清洗和生成。开发训练集往往要花费大量的时间。同时,特征集需要不断地更新新值(这个过程称为回填)。有了特征存储,在构建模型的过程中就可以获得特征的训练数据集。

4.1.3 用于在线推理的特征管道

对于模型推理,特征值作为模型的输入,然后由模型生成预测输出。在推理过程中,生成特征的管道逻辑必须与训练过程中使用的逻辑相匹配,否则模型的预测将是错误的。除了管道逻辑之外,在在线模型中生成用于推理的特征时延迟也要尽量小。当前,嵌入在机器学习管道中的特征管道不方便重用。此外,训练管道逻辑的变化可能无法与相应的模型推理管道保持一致。