- 数据自助服务实践指南:数据开放与洞察提效
- (美)桑迪普·乌坦坎达尼
- 977字
- 2022-05-20 19:18:50
4.2 最小化特征处理耗时
特征处理耗时包括创建和管理特征所花费的时间。现在,花费的时间大致分为两类:特征计算和特征服务。特征计算涉及用于生成训练和推理特征的数据管道。特征服务的重点是在训练过程中为大量数据集提供服务,为模型推理提供低延迟的特征值,并使数据用户能够方便地跨特征搜索和协作。
4.2.1 特征计算
特征计算是将原始数据转化为特征的过程。这涉及构建数据管道,用于生成特征的历史训练值以及用于模型推理的当前特征值。训练数据集需要不断地用更新的样本进行回填。特征计算有两个关键的挑战。
首先,管理管道丛林的复杂性。管道从源数据存储中提取数据并将其转换为特征。这些管道有多个转换,需要处理生产中出现的紧急情况,在大规模生产中管理这些管道是一场噩梦。同时,特征数据样本的数量也在不断增长,特别是对于深度学习模型而言,在大规模生产中管理大型数据集需要分布式编程来优化扩展性和性能。总的来说,构建和管理数据管道通常是模型创建中最耗时的部分之一。
其次,为特定的特征编写单独的管道来训练和推理。这是因为有不同的时效要求,模型训练通常是面向批处理的,而模型推理是流式的,要求近实时的延迟。训练和推理管道计算中的差异是导致模型准确率问题的关键原因,也是在大规模生产中进行调试的噩梦。
4.2.2 特征服务
特征服务包括为训练提供大量特征值,以及为推理提供较低的延迟。它要求特征易于发现,并易于与其他现有特征进行比较和分析。在典型的大规模部署场景下,特征服务需要支持数千个模型推理。其中关键挑战是性能扩展,因为在原型开发过程中,数据用户要在数百种模型排列中进行快速探索,避免探索重复的特征也是关键挑战之一。
一个常见的问题是,模型在训练数据集上表现良好,但在生产中表现不佳。虽然这可能有多种原因,但关键问题是标签泄露(label leakage)。标签泄露是由于为模型特征提供了不正确的时间点值。找到正确的特征值很棘手,为了说明这一点,Zanoyan等人(https://oreil.ly/casp-)以图4-3为例展示了训练中选择的特征值,用于在T1时刻进行预测。图中有三个特征显示:F1、F2、F3。对于预测P1,需要分别为训练特征F1、F2、F3选择特征值7、3、8。相反,如果使用预测后的特征值(如F1的值4),由于该值代表了预测的潜在结果,在训练时错误地表示了高相关性,因此会出现特征泄露。
图4-3:在预测P1的训练过程中,为特征F1、F2、F3选择正确的时间点值。实际结果标签L用于训练监督机器学习模型