龙空技术网

MLSys2020提前看:多面了解机器学习系统标准、加速方法和应用场景

机器之心Pro 346

前言:

当前朋友们对“linucb算法”大体比较关注,同学们都想要知道一些“linucb算法”的相关文章。那么小编同时在网上网罗了一些有关“linucb算法””的相关知识,希望咱们能喜欢,小伙伴们一起来了解一下吧!

机器之心分析师网络

分析师:伏贵荣

编辑:H4O

2020 年 MLSys 会议将于 3 月 2 日-4 日在美国德克萨斯举办。在本篇提前看中,我们从不同的角度选择三篇文章,以求对机器学习与系统(Machine Learning and Systems)领域有多面的了解。

机器学习本质上是一系列的数值计算。当需要计算的数据量很大或者计算模型很大时,就需要设计一个合适的平台来进行这种计算。机器学习系统就是针对此方面的研究,目的在于开发一类特殊的系统,用于支持和部署机器学习模型。MLSys 会议正是来解决机器学习和计算机系统之间的交叉问题。首届会议于 2018 年在斯坦福举办,吸引了学界和业界的广泛关注,会议主要研究(1)设计支持机器学习的软件系统;(2)设计硬件系统;(3)设计系统以满足精度以外的其他需求,诸如隐私,安全,公平性等。

在本篇提前看中,我们从不同的角度选择三篇文章。其中,第一篇文章对机器学习系统制定了一套具备一般性的工业衡量标准,第二篇文章从模型部署层面对机器学习模型进行加速,主要解决瓶颈是特征计算的问题,第三篇文章则针对一个特定应用场景——大量依赖隐私数据的机器学习任务设计了一个权衡隐私传输与模型效果的系统。

论文列表:

MLPerf Training BenchmarkWILLUMP: A Statistically-Aware End-To-End Optimizer ForMachine Learning InferencePrivacy-Preserving Bandits

MLPerf Training Benchmark

论文链接:

Github 链接:

引言

日趋复杂的机器学习算法和庞大的数据量对真正运行模型的系统提出了一系列的挑战,在这篇文章的工作之前,业界尚未存在一套针对机器学习系统具备工业级别的衡量标准。然而,纵观各个领域的发展,这样的一套标准不仅能起到具有说服力的比较效果,更能促进创新,推动科研和工业界的发展。由此,来自谷歌,百度,斯坦福大学,哈佛大学等众多业界和学界的研究人员共同合作,克服了在衡量机器学习系统的各种独特难题,定义了一套衡量基准 MLPerf。

该论文总结分析了衡量训练机器学习的系统的各种挑战,针对各种机器学习任务(如:图像分类,目标检测,机器翻译,强化学习等)给出不同的衡量标准,并附有详细的使用指南。

设计难点

一个训练机器学习的系统的工作流程抽象而言就是:系统输入端接受选定的数据集,优化器,模型,然后在系统上运行该模型直到模型质量(比如:图片分类的精确度)达到预期水平。选择一个系统,便要在训练后的模型质量和系统各方面的表现之间做出权衡。

那么,衡量训练机器学习的系统相较于一般的计算机系统,有哪些独特的挑战呢?

系统优化对系统表现与模型质量的不同影响。系统层面的优化可能在短期提高系统的表现性能,却会最终伤害到训练的模型的质量。这就要求,系统必须运行完整个训练过程才能判断模型是否达标,而不能只根据短时间的吞吐量进行优劣评估。并行化训练规模的双重影响。在大型分布式计算场景中,为了增加数据并行度和系统利用率,常常使用大的批量规模(batchsize)。这反过来要求调整模型的优化参数来保证模型性能,比如学习率(learning rate)。而这些参数的调整却可能对模型训练时间带来负面影响。简言之就是,大批量规模减少了每次训练的时间,却增加了所需的训练次数。模型中的随机性引起的系统表现的差异。即使是相同的模型和超参数,在不同的训练会话(session)中也可能需要不同的迭代次数以达到相同的准确度。这些差异为可信地比较系统表现带来了挑战。不同的软件环境的影响。不同软件框架,不同的数学计算表达,编程界面等诸多因素都可能影响一个系统的表现。

衡量标准

MLPerf 的整体思路是,根据不同的机器学习训练任务,让系统运行预先规定的数据集,模型,测量其使训练模型达到特定性能后的训练时间。目前所涵盖的机器学习任务有:图片分类,目标监测,实例分割与目标检测,翻译(循环与非循环神经网络),推荐和强化学习。图 1 展示了 0.5 版本的 MLPerf 训练基准库,当前已更新至 0.6 版本。

图 1. MLPerf0.5 版本训练基准

为了尽可能排除模型本身造成的系统表现差异,MLPerf 规定了作为测试基准的数据集,模型和标准阈值,同时附有模型的参考实现和超参数设置。

就如何测量训练时间,MLPerf 也从测量时间的构成和结合多次测量两个方面给出了详细说明。

时间构成方面,系统的初始化时间,20 分钟以内的模型创建和初始化时间等不包括在内。由于机器学习任务的训练时间有相当大的随机性,MLPerf 的最终训练结果是由指定多次的基准测试时间在去掉最低和最高值后平均得出的。

测试结果

MLPerf 的测试根据专区和系统类型进行分类。其中,专区有两种:封闭式和开放式。封闭式要求必须使用基准中规定的模型(或与之等价的模型),参数初始化,数据集,超参数等,以求尽可能公平地对比各个硬件/软件系统。开放式的测试专区则侧重于鼓励创新,允许使用不同的模型架构,优化过程等。

系统类型分为三种:可获取类,预览类和研究类。根据软硬件的可获取程度进行区分。做这一类型上的区分也是为了鼓励创新和便于横向比较。后期会增加云系统的测量。

MLPerf 测试的最终结果不是一个单一得分,而是系统在各个不同任务中测试的加速比。加速比即模型在该系统下的测试时间与基础系统的测试时间的比值。这一设定考虑到了不同任务的差异悬殊的训练时间。

目前,MLPerf 已发布了训练基准 0.5 和 0.6 两个版本,来自业界和学界的超过五十个机构参与到了 MLPerf 测试竞赛中,包括英特尔,英伟达,谷歌,阿里等公司机构。相信这一标准将会极大促进行业竞赛,激励创新。

WILLUMP: A Statistically-Aware End-To-End Optimizer For Machine Learning Inference

论文链接:

引言

机器学习作为一种服务正在受到越来越多的关注。随着 Amazon 的 Sagemaker,Microsoft 的 AzureML 众多机器学习计算平台被人们熟知和使用,机器学习正在成为一项门槛更低,推广度更高的服务。本文专注于机器学习推理中——即模型已经训练完成,将直接用于对新数据进行预测——的系统优化问题。机器学习模型一旦被训练好,实际上就是一个数据转化器:将用户输入经过格式转化,特征计算,模型计算等,最后得到输出预测。推理流水线常直接作为用户端的服务,因此要求低延迟,高吞吐,在负载尖峰时也要保证一定的性能。据研究,在推理服务中,特征计算是一个重要的瓶颈问题。这篇论文设计了一套端到端的推理流水线优化 Willump,着力于加速特征计算,提高系统响应性能。

优化流程及原理

Willump 提供了两种任务的优化方法:1. 分类预测,2. top-k 排名。

级联优化

针对分类任务,Willump 采用了一种「区别对待」的思想,即搭建一个级联模型:结合原有模型和一个使用特征更少,计算更快的简单模型。对于每一个新的输入,先对其的部分特征在简单模型上进行快速计算,并根据输出结果的置信度决定是否使用原来的模型进行更为复杂的计算。系统流程如图 2 所示:左边为原来的推理模型的流水线,右边为 Willump 优化后的流水线。

图 2.Willump 的级联优化

如何决定从所有的特征中选择哪一部分进行简单模型的训练呢?Willump 的目标是选择一部分对预测很重要,但是计算开销又不大的特征。但直接计算所有特征的组合,并评估它们各自模型的精确度显然在计算层面是不可行的。于是,Willump 使用了一个 trick:

首先根据计算独立的要求对所有的特征进行分组。计算独立性可用常规的编译技术解析出数据转换树得到。接着,针对每一组特征,Willump 计算两个统计量:计算花销和排列重要性(permutation importance)。后者是用来衡量一组特征对预测结果重要程度的常用方法。最后,设定特征计算所允许的最大开销,从独立的特征组中选取使排列重要性和最大的组合。这就将原目标转化为一个 knapsack 问题,可用动态规划进行求解。

Top-K 优化

针对 Top-K 排名问题,Willump 依然采取「区别对待」的思想:主要资源用于计算可能性大(排名可能更靠前)的对象,少数资源用于计算可能性小的对象。实现起来就是:

Willump 首先训练一个近似的模型,用于快速过滤掉得分低的对象,再把未被淘汰的对象送给原模型进行评分,对它们进行排名,从中得到 Top K。

如何训练一个近似的模型呢?Willump 依然试图确定一部分「最优的特征」,并在这组特征上训练一个近似的模型。不同于前述方法,这里「最优」的定义有所变化。给定一个 Top K 预测的准确率要求,给定一部分特征,可以计算出在这部分特征上多大的数据量(设定为 N)能以预设的准确率覆盖 Top K。最优意味着 N/K 的值最小。直观上说,就是没被这组特征过滤掉的数据量尽可能地少,尽可能地接近 K。当然,在搜索特征组的时候,依然以最大的计算开销为限制进行搜索。

总体而言,Willump 的工作流程包括三个阶段:

数据流阶段:将原有的机器推理流水线转化为转换图。优化阶段:使用级联/Top-K 的优化方法。编译阶段:将优化后的图转化会程序函数,交给 Weld 等优化系统进行编译。

实验结果

论文针对级联优化和 Top-K 优化分别进行实验,使用系统吞吐量,延迟和模型的准确度进行结果衡量。

实验使用了七种不同的数据集,分别来自数据科学竞赛平台 CIKM, Kaggle 和 WSDM。数据集包括分类与回归两个类别,所用的机器学习模型包括:线性模型,GBDT,Ensemble 和 NN。

图 3 显示了数据集的详细信息,图 4 给出了特征与输入间的计算依赖关系。

图 3. Willump 使用的基准数据集

图 4. 所有基准数据集的转换图。白色:输入,黑色:转换节点,灰色:模型。

级联优化

级联优化针对前五个分类任务的数据集,在 Weld 平台上进行编译,图 5 和图 6 对比展示了 Python 源代码的吞吐量和延迟,直接用 Weld 平台编译后的吞吐量和延迟,以及 Weld+Willump 优化后的吞吐量和延迟。同时,图 7 给出 Willump 选定的特征组优化的模型精确度之间的关系。

图 5. Willump 在离线批查询上的吞吐量表现

图 6. Willump 在线上点查询上的延迟累积分布函数

图 7. 吞吐量与精确度的对比图。蓝色标注原始模型,红色标注 Willump 选定的级联阈值,橙色标注近似模型。

综上,在精确度损失 0.1% 的范围内,级联优化的吞吐量相较于原 Python 程序最高达到 16 倍加速,相较于经 Weld 优化后的程序,仍可达到最高 5 倍的加速。级联优化的延迟也有显著减小。

Top-K 优化

在 Top-K 优化的实验设置中,K 设定为 20,覆盖精确度设定为 95%,使用的编译优化平台为 Clipper。吞吐量优化结果如图 8 所示。

图 8. Willump 在 Top-K 优化中的吞吐量表现

小结

Willump 针对机器推理流水线中的特征计算进行优化,它开创性地利用了特征对模型结果影响的统计信息,通过结合更简单的模型和原有模型,在分类问题和 Top-K 问题上展示出系统吞吐量和延迟上的显著改善。它是一个位于 Python 端与编译平台中间的优化方法,在多个编译优化平台上均取得显著提升效果。

Privacy-Preserving Bandits

论文链接:

引言

在计算广告和推荐系统领域,一个典型应用是针对用户进行个性化推荐。用多臂赌博机模型来描述这个问题,就是将每一个待推荐的物品看作一个赌博机,在将此推荐给这个用户前,并不知道会获得多大的收益。那么每次推荐时,该如何选择一个赌博机呢?更进一步,如果考虑到不同用户具有不同特征,即同一个物品推荐给不同的用户会带来不一样的收益,又该怎样设计算法来最大化收益呢?这类问题被抽象为与情景有关的赌博机(contextual bandit)问题。LinUCB 算法是解决这类问题的一个典型算法,它利用了用户特征和物品特征,训练模型进行推荐。收集到越多的用户数据,越有利于模型进行更精确,收益更高的推荐。

但是,在这个面向诸多个体的问题情境中,又涉及了另一个重要的研究课题:隐私保护。很多情况下,为了保护用户数据的隐私,并不能将每个终端模型的数据信息全数汇总,以更新模型参数(比如:物品的特征)。最大化收益要求尽可能多的用户数据,隐私保护又限制了用户数据的传输。如何在隐私保护与模型效果中间权衡取舍就是本论文研究的中心问题。

本论文提出了一个系统 P2B(privacy-preserving bandits 隐私保护赌博机)。该系统能在用户本地端运行,并能使中心模型通过特定的方式收集各个用户端的数据,同时提供一定程度的隐私保证。

P2B 系统架构和原理分析

P2B 系统的主要架构是:

本地代理对用户的数据进行加密,并选择性地上传。洗牌机(位于用户端和中心服务器之间):收集一定数量的加密后的用户数据,进行匿名化处理,重新洗牌,并将达到阈值数量的数据上传到中心服务器。中心服务器:利用洗牌机发来的数据进行模型更新,并将更新后的模型发回各个本地用户端。

系统架构详情如图 9 所示:

图 9. P2B 系统架构

在整个系统中,为了保证用户隐私,作者设计了多个精巧的操作。

本地代理随机地上传数据。更准确地说,对于每一条加密后的用户数据,本地代理以概率 p 决定上传该数据。概率值 p 直接影响到模型最后的效果。本地编码方式:先将原有的 d 维用户特征向量归一化,用精度为 q 的数字表示,并将编码后的向量通过 k-means 聚类到 k 个类中,用 {0,...,k-1} 进行编码表示。这一操作可以让相似的用户有相同的编码。洗牌机选择上传超过给定阈值数量 l 的编码数据。这一阈值的选择保证了群体混合隐私。

对隐私分析的理论结果见图 10:

图 10. 隐私分析的理论结果

对于上述 epsilon 和 delta 直观上的理解是:对于所有与原数据集相邻的数据集(有一个数据点不同),以 1-delta 的概率保证隐私的绝对损失在限制内。

实验结果

论文中共设置了三种实验模式:冷启动(百分百隐私保证),热启动+无隐私(用户上传全部数据)和热启动+隐私(P2B 系统的应用,用户上传部分编码后的隐私数据)。分别在多标签的分类任务和在线广告场景中进行对比实验。其中分类任务采用准确率作为衡量标准,在线广告场景中采用点击通过率(CTR)作为衡量标准。实验所使用的采样概率 p 为 0.5.

图 11. P2B 综合基准测试:(上)A=10,(中)A=20,(下)A=50.

图 11 展示了在用户可采取的行为数量(A)不同的环境下,平均回报与系统参与用户的数量的关系。可以看出,在冷启动(用户不分享数据的情况下),模型的平均回报与用户数量无显著关系。而在热启动的情况下,二者存在显著的正相关。

小结

P2B 为隐私保护设计了一个简单却有效的系统架构。相较于联邦学习等复杂的模型,这一系统无论在用户端的计算性能上还是通信量上都更加轻便。此外,论文提出了一个新颖的编码方式,并从理论上进行了差分隐私分析。后续可进行对其他编码方式的尝试和分析。

分析师介绍:伏贵荣,数据科学硕士,现就读于苏黎世联邦理工学院,毕业于北京大学元培学院。现在主要的研究方向为社交网络分析,对统计学习,机器学习领域有较浓厚的兴趣。希望理论和实践共同发展,持续成长中。

关于机器之心全球分析师网络 Synced Global Analyst Network

机器之心全球分析师网络是由机器之心发起的全球性人工智能专业知识共享网络。在过去的四年里,已有数百名来自全球各地的 AI 领域专业学生学者、工程专家、业务专家,利用自己的学业工作之余的闲暇时间,通过线上分享、专栏解读、知识库构建、报告发布、评测及项目咨询等形式与全球 AI 社区共享自己的研究思路、工程经验及行业洞察等专业知识,并从中获得了自身的能力成长、经验积累及职业发展。

标签: #linucb算法