在与美国、欧洲和中国主要互联网公司的机器学习和基础设施工程师交谈后,出现了两组公司。 一个团体已向基础设施投资数亿美元以实现实时机器学习,并且已经看到了投资回报。 另一组仍然想知道实时机器学习是否有价值。
Chip Huyen 似乎并没有忘记报告投资回报率是获得关注的好方法这一事实。 Huyen 是一位作家和计算机科学家,致力于实时机器学习的基础设施。 她写了上面介绍她在实时机器学习方面的发现,以具体化她和她的同事正在积累的成长经验。
Huyen 在创立自己的(秘密)创业公司之前曾与 Netflix、Nvidia、Primer 和 Snorkel AI 等公司合作。 她是斯坦福大学的毕业生,在那里她还教授机器学习系统设计,并且是 2019 年和 2020 年的 LinkedIn Top Voice。
换句话说,Huyen 非常有能力报告 ZDNet 撰稿人 Tony Baer 在他的数据 2022 展望中所说的“操作系统和分析的一个长期难以实现的目标”:将动态数据(流)与静态数据统一起来 (位于数据库或数据湖中的数据)。 这样做的最终目标是实现 Huyen 报告的投资回报率。
实时机器学习预测和系统更新
Huyen 的分析涉及两个层面的实时机器学习模型和系统。 级别 1 是在线预测:实时进行预测的 ML 系统,她将实时定义为毫秒到秒的量级。 第 2 级是持续学习:包含新数据并实时更新的 ML 系统,她将实时定义为分钟级。
Level 1 系统为何重要的要点在于,正如 Huyen 所说,“无论您的 ML 模型多么出色,如果它们只花费几毫秒来做出预测,用户就会点击其他东西”。 正如她所阐述的那样,快速预测的“非解决方案”是使它们批量离线、存储它们并在需要时提取它们。
当输入空间有限时,这可以起作用——您确切地知道有多少可能的输入可以进行预测。 一个例子是当您需要为您的用户生成电影推荐时——您确切地知道有多少用户。 因此,您会定期为每个用户预测一组推荐,例如每隔几个小时。
Huyen 指出,为了使用户输入空间有限,许多应用程序让用户从类别中进行选择,而不是输入开放式查询。 然后,她继续举例说明这种方法如何产生可能损害用户体验的结果,这些结果来自 TripAdvisor 和 Netflix。
尽管与用户参与/保留紧密相关,但这并不是灾难性的失败。 糟糕的结果在其他领域可能是灾难性的,例如欺诈检测的自动驾驶汽车。 从批量预测切换到在线预测可以使用动态特征进行更相关的预测。
Huyen 指出,ML 系统需要有两个组件才能做到这一点。 他们需要快速推理,即可以在毫秒级进行预测的模型。 他们还需要实时管道,即可以处理数据、将其输入模型并实时返回预测的管道。
为了实现更快的推理,Huyen 继续补充说,模型可以做得更快,它们可以做得更小,或者硬件可以做得更快。 我们在本专栏中一直关注的推理、TinyML 和 AI 芯片与此完全吻合,自然地,这些方法也不相互排斥。
Huyen 还着手分析流媒体基础知识和框架,这也是本专栏早期的广泛报道。 许多公司正在从批处理转向流处理,从请求驱动架构转向事件驱动架构,这与 Apache Kafka 和 Apache Flink 等框架的流行有关。 Huyen 指出,这种变化在美国仍然很缓慢,但在中国要快得多。
但是,流式传输不受欢迎的原因有很多。 公司看不到好处; 需要在基础设施方面进行心理转变和高额初始投资,处理成本更高,并且这些框架不是 Python 原生的,尽管努力通过 Apache Beam 弥合差距。
对于基于实时更新模型的机器学习系统,Huyen 更喜欢使用术语“持续学习”而不是“在线培训”或“在线学习”。 当人们听到在线培训或在线学习时,他们认为模型必须从每个传入的数据点中学习。
很少有公司真正这样做,因为这种方法会遭受灾难性遗忘——神经网络在学习新信息时突然忘记以前学习的信息。 此外,仅在一个数据点上运行学习步骤比在批处理上运行成本更高。
Huyen 在 2020 年 12 月做了上述分析。2022 年 1 月,她重新审视了这个话题。 虽然她认为我们离主流采用持续学习还有几年的时间,但她看到公司进行了大量投资以转向在线推理。 她概述了在线预测的进化过程。
迈向在线预测
第一阶段是批量预测。 在这个阶段,所有的预测都是批量预计算的,以一定的间隔生成,例如 每 4 小时或每天。 批量预测的典型用例是基于内容的协同过滤推荐。 使用批量预测的公司示例包括 DoorDash 的餐厅推荐、Reddit 的 subreddit 推荐或 Netflix 大约 2021 年的推荐。
Huyen 指出,Netflix 目前正在将其机器学习预测转移到网上。 她继续补充说,部分原因是对于新用户或未登录的用户,没有预先计算的个性化推荐。 到下一批推荐生成时,这些访问者可能已经离开而没有购买,因为他们没有找到与他们相关的任何东西。
Huyen 将批量预测的优势归功于 Hadoop 等遗留批处理系统。 这些系统能够非常有效地定期处理大量数据,因此当公司开始使用机器学习时,他们利用现有的批处理系统进行预测。
第 2 阶段是具有批量特征的在线预测。 机器学习中的特征是用于构建模型的现象的个体可测量属性或特征。 批特征是从历史数据中抽取的特征,通常进行批处理,也称为静态特征或历史特征。
这个阶段的组织不是在请求到达之前生成预测,而是在请求到达之后生成预测。 他们实时收集用户在其应用程序上的活动。 但是,这些事件仅用于查找预先计算的嵌入以生成会话嵌入。
这里的 Huyen 指的是机器学习中的嵌入。 嵌入可以被认为是表示向量的一种方式,这是机器学习模型用来表示与现实世界有关的信息的方式。
关于第 2 阶段系统,需要记住的重要一点是,它们使用来自用户操作的传入数据来查找预先计算的嵌入中的信息。 机器学习模型本身不会更新; 只是它们会实时产生结果。
根据 Huyen 的说法,基于会话的预测的目标是提高转化率(例如,将首次访问者转化为新用户或点击率)和保留率。 已经在进行在线推理或在其 2022 年路线图上进行在线推理的公司名单越来越多,包括 Netflix、YouTube、Roblox、Coveo 等。
Huyen 指出,每家转向在线推理并与她交谈的公司都告诉她,他们对自己的指标获胜感到非常满意。 她预计在未来两年内,大多数推荐系统将基于会话:每次点击、每次查看、每次交易都将用于近乎实时地生成新的相关推荐。
在这个阶段,组织需要将他们的模型从批量预测更新为基于会话的预测。 这意味着他们可能需要添加新模型。 组织还需要将会话数据集成到他们的预测服务中。 Huyen 写道,这通常可以通过由两个组件组成的流媒体基础设施来完成。
第一部分是流传输,例如 Kafka、AWS Kinesis 或 GCP Dataflow,用于移动流数据(用户的活动)。 第二部分是流式计算引擎,比如Flink SQL、KSQL、Spark Streaming,用来处理流式数据。
许多人认为在线预测在成本和性能方面都不如批量预测有效,因为批量处理预测比一个一个地处理预测更有效。 Huyen认为这不一定是真的。
部分原因是无需为未访问具有在线预测站点的用户生成预测。 如果每天只有 2% 的用户登录,并且每天为每个用户生成预测,那么用于生成这些预测的 98% 的计算将被浪费。 这个阶段的挑战将是推理延迟、设置流媒体基础设施和拥有高质量的嵌入。
具有复杂流和批处理功能的在线预测
Huyen 进化规模的第 3 阶段是具有复杂流和批处理特征的在线预测。 流特征是从流数据中提取的特征,通常经过流处理,也称为动态特征或在线特征。
如果第 2 阶段的公司需要一些流处理,第 3 阶段的公司会使用更多的流处理功能。 例如,用户在 Doordash 上下订单后,他们可能需要批处理功能和流处理功能来估计交货时间。
批量特征可能包括这家餐厅过去的平均准备时间,而此时的流特征可能包括他们有多少其他订单以及有多少送货员可用。
在第 2 阶段讨论的基于会话的推荐的情况下,不是仅仅使用项目嵌入来创建会话嵌入,而是流式传输特征,例如用户在网站上花费的时间或商品在网站上的购买次数 可以使用最后 24 小时。
处于这一阶段的公司示例包括 Stripe、Uber、Faire,用于欺诈检测、信用评分、驾驶和交付评估以及推荐等用例。
每个预测的流特征数量即使不是数千,也可能是数百个。 流特征提取逻辑可能需要具有沿不同维度的连接和聚合的复杂查询。 提取这些特征需要高效的流处理引擎。
根据 Huyen 的说法,为了将机器学习工作流程转移到这个阶段,有一些重要的要求。 第一个是成熟的流媒体基础设施,具有高效的流处理引擎,可以以可接受的延迟计算所有流媒体功能。 第二个是特征存储,用于管理物化特征并确保训练和预测期间流特征的一致性。
第三个是模型店。 流要素在创建后需要进行验证。 Huyen 说,为了确保新功能确实有助于提高模型的性能,您希望将其添加到模型中,这样可以高效地创建新模型。 理想情况下,模型商店应该有助于管理和评估使用新的流媒体功能创建的模型,但同时评估模型的模型商店还不存在,她指出。
最后但同样重要的是,更好的开发环境。 数据科学家目前即使在创建流功能时也会处理历史数据,这使得很难提出和验证新的流功能。
Huyen 问道,如果我们可以让数据科学家直接访问数据流,以便他们可以快速试验和验证新的流功能,会怎样? 如果数据科学家不仅可以访问历史数据,还可以访问笔记本中的传入数据流,会怎样?
这实际上在今天似乎是可能的,例如,通过 Flink 和 Kafka notebook 集成。 虽然我们不确定这些是否符合 Huyen 的设想,但重要的是要看到这里的大局。
这是一个复杂的话题,Huyen 正在根据她在一些技术最先进的组织中的经验规划一条道路。 我们甚至还没有触及第 2 级——包含新数据和实时更新的机器学习系统。
然而,回过头来看,如果 Huyen 的经历可以作为参考,那么收益很可能证明投资是值得的。