深蓝学院,AI、机器人与无人驾驶切入,专注前沿科技在线教育,孵化于中科院自动化所,具有国际竞争力。深蓝学院有计算机视觉、SLAM、机器学习、智能语音机器人、增强现实、自动驾驶等课程,在学员中有良好口碑。
背景:什么是主动学习(Active Learning)?
机器学习的研究领域包括有监督学习、无监督学习、半监督学习和强化学习等诸多内容。针对有监督学习和半监督学习,都需要一定数量的标注数据,也就是说在训练模型的时候,全部或者部分数据需要带上相应的标签才能进行模型的训练。但是在实际的业务场景或者生产环境中,工作人员获得样本的成本其实是不低的,甚至在某些时候是相对较高的,那么如何通过较少成本来获得较大价值的标注数据,进一步地提升算法的效果就是值得思考的问题了。
主动学习(Active Learning)的大致思路就是:通过机器学习的方法获取到那些比较“难”分类的样本数据,让人工再次确认和审核,然后将人工标注得到的数据再次使用有监督学习模型或者半监督学习模型进行训练,逐步提升模型的效果,将人工经验融入机器学习的模型中。
用一个例子来比喻,一个高中生通过做高考的模拟试题以希望提升自己的考试成绩,那么在做题的过程中就有几种选择。一种是随机地从历年高考和模拟试卷中随机选择一批题目来做,以此来提升考试成绩。但是这样做的话所需要的时间也比较长,针对性也不够强;另一种方法是每个学生建立自己的错题本,用来记录自己容易做错的习题,反复地巩固自己做错的题目,通过多次复习自己做错的题目来巩固自己的易错知识点,逐步提升自己的考试成绩。其主动学习的思路就是选择一批容易被错分的样本数据,让人工进行标注,再让机器学习模型训练的过程。
介绍完了主动学习是什么,接下来带着大家详细读一下这篇论文的内容吧。
摘要
现今人工智能(AI)应用程序的成功不仅需要模型训练(Model-centric,以模型为中心),还需要数据工程(Data-centric,以数据为中心)。在以数据为中心的 AI 中,主动学习(AL) 起着至关重要的作用,但当前的 AL 工具无法有效地执行 AL 任务。
对此,本文提出了一种高效的 AL MLOps 系统,命名为 ALaaS(主动学习即服务)。具体来说,ALaaS 采用服务器-客户端架构,支持 AL 流水线,并且可以高效地实现阶段级的并行处理。同时,缓存和批处理技术被用来进一步加速 AL 过程,除了效率之外,ALaaS在配置即服务的设计理念的帮助下,还确保了可访问性。它还将AL流程抽象为多个组件,并为高级用户提供丰富的API以将系统扩展到新的场景。大量实验表明,ALaaS在延迟和吞吐量方面优于所有其他开源的AL工具。进一步的消融研究证明了我们设计的有效性以及ALaaS的易用性。
一
介绍
以数据为中心的人工智能是一个新兴主题,其重点是利用现成的机器学习(ML)模型为人工智能应用的开发提供数据工程支持。以前的工作主要是以模型为中心的人工智能,假设环境是静态的。在这个环境中,以模型为中心的AI的主要目标是:
完成数据收集和工程设计
持续开发机器学习(ML)模型以在测试集上实现高性能。
然而,现实世界的人工智能应用程序面临着更复杂的场景,以模型为中心的人工智能无法充分解决这一问题。例如,研究人员必须花费大量时间准备数据,包括数据标注、错误检测等,同时他们还需要监控数据以检测分布漂移,以便及时更新模型,然而仅从模型角度处理这些问题将导致次优解决方案。因此,为了进一步改进和普及人工智能应用程序,许多工作现在都转向以数据为中心或将以模型为中心与以数据为核心相结合。
虽然以数据为中心的人工智能概念最近才提出,但许多开创性研究已经展开,其核心贡献在于数据工程,其中一个重要方向是主动学习(AL)。AL的动机是减少手动标注工作,同时保持甚至提高ML模型的性能。众所周知,ML模型非常需要数据,因此,为了达到满足应用程序要求的高性能(例如精度),人们总是需要在数据收集期间标注大量数据。这个过程非常耗时以及需要大量劳动,所以常常成为ML应用程序开发的瓶颈。
为了解决这一问题,AL采用从大型训练数据库中选择最具代表性但多样的训练样本的AL策略,然后,它只将选定的样本发送给数据库(例如,人工标注工具)进行标记。接下来,ML模型将仅在这些子数据集上进行训练。通过这样做,我们仍然可以获得具有竞争性能的ML模型,但可以节省大量的标注和训练的成本。
然而,利用AL方法并不是件容易的事。本质上,将AL应用于AI应用开发不仅仅是搜索、选择或实现AL算法。相反,用户必须构建一个后端来运行AL流水线,为自己的应用程序量身定制环境(例如私有集群和AWS)。换句话说,他们需要使用样板代码进行大量重复的工程工作。此外,用户必须考虑效率和成本问题。因为AL通常运行在庞大的数据集上,并且一些AL算法需要运行多个ML模型以进行数据选择,这将导致长期的结果处理时间和额外的成本。虽然有几种开源AL工具降低了应用AL的门槛,但它们无法满足效率要求。
图1 ALaaS架构。我们的系统采用服务器-客户端架构,易于部署,它还支持各种人工智能策略、不同模型的库和服务引擎。
为了解决这些问题,我们建议为AL构建一个高效的后端。主动学习即服务(ALaaS)(见图1)能够通过利用单个或分布式多个设备在大型数据集上高效运行AL策略。具体来说,它采用服务器-客户端架构来执行 AL 任务。因此,该系统可以轻松安装在笔记本电脑和公共云上。安装完成后,用户可以按照我们的模板使用简单的配置文件启动系统。然后,系统将以高效的流水线方式运行所有任务。同时,将使用更多加速技术,如数据缓存和批处理,以进一步加速AL进程。除此之外,我们的系统还考虑了可访问性和模块化,使得非专家也可以轻松地使用我们的AL库中存储的AL策略,而专家可以针对更多场景提出更高级的AL策略。
实验表明,我们的ALaaS在延迟和吞吐量方面优于所有其他基线。进一步的消融研究表明了我们的设计的有效性,并且揭示了更具洞察力的结论。
二
相关工作
本节介绍了相关工作,包括3类:主动学习(AL)算法和工具、以数据为中心的AI和MLOps。
表1 主动学习(AL)开源工具的比较。我们的ALaaS提供了“机器学习即服务”的实践,大大提高了AL效率。
2.1 人工智能算法和工具
我们将AL策略分为3类,即基于多样性、基于不确定性和混合策略抽样。基于多样性的方法旨在从整个数据集中选择信息量最大的样本来表示它;基于不确定性的方法旨在选择目前的ML模型无法可靠识别的样本,然后使用这些样本进一步改进ML模型;混合方法结合了上述两种方法。我们的系统支持所有这些方法,并能更有效地运行它们。
目前已经开发了许多使学术界和工业界都受益的开源AL工具,包括ModAL、DeepAL、Libact和ALiPy。我们的ALaaS受到这些工具的启发,并通过采用MLOps概念进一步提高了AL效率和可访问性。表1总结了详细的比较。
2.2 以数据为中心的人工智能
以数据为中心的人工智能的提出是为了通过分析数据集来提高人工智能应用程序的性能,而不是只关注模型。Landing.AI最近举办的以数据为中心的人工智能竞赛和研讨会展示了来自学术界和工业界的许多令人兴奋的研究。受这项开创性工作的启发,许多以数据为中心的方法被提出用于不同的领域,包括NLP、CV、Robotics等。此外,还建立了一个新的基准,以推动以数据为中心的人工智能研究。据我们所知,ALaaS是第一个从以数据为中心的角度实现高效AL的MLOps系统。
2.3 MLOps
MLOps(机器学习运维)旨在简化ML模型开发并降低人工智能应用程序的维护成本。许多MLOps系统已被提出用于以数据为中心的人工智能和以模型为中心的人工智能。从以数据为中心的观点来看,标签工具(如labelme)、数据清理工具(如ActiveClean)、数据漂移监视器等都可以视为MLOps系统。从以模型为中心的角度来看,我们有模型存储系统、模型持续集成工具、训练平台、部署平台等。与这些系统不同,ALaaS是专门为更高效地运行AL任务而设计的。
此外,科技巨头开始为MLOps构建端到端云平台(如TFX,SageMaker,Ludwig),我们的ALaaS可以成为这些系统的一个很好的补充插件。
三
系统设计和架构
本节首先重点介绍了我们的主动学习即服务(ALaaS),包括三个关键功能,然后详细介绍了系统核心模块的设计,如图1所示。
3.1 ALaaS的亮点
我们强调了系统提供的三个关键特性,即效率、可访问性和模块性。这些功能也是我们的设计原则,即使专家(如数据科学家和机器学习(ML)工程师)和非专家(如领域知识很少的客户)均能使用。
(1)高效 主动学习(AL)总是面对要标注的大规模数据集,一些AL甚至采用多个计算密集型深度学习(DL)模型。因此,有效地处理这些数据集和模型对于加快ML应用程序开发和节省用户的使用成本至关重要。
(2)可访问性 为了进一步降低应用程序障碍并提高采用率,AL系统应确保AL非专家能够轻松使用它,并避免编写太多代码。我们的ALaaS遵循这一原则,通过实施具有丰富配置的集装箱化AL服务来帮助用户快速入门,从而实现流畅的用户体验。
(3)模块化 人工智能发展迅速,尤其是在深度学习的推动下,需要大量数据进行训练,使AL可访问且不应妨碍AL或ML专家对其进行高级使用。因此,我们的系统以高度模块化的方式设计,使专家能够轻松地原型化、扩展和部署最先进的(SOTA)AL方法。
3.2 ALaaS体系结构
该系统采用服务器-客户端架构,将复杂的AL算法抽象为基于web的服务,实现开箱即用的用户体验。此外,我们的系统提供了一个模块化数据管理器和一个AL策略库,在AL的应用中解耦了两个关键过程:大数据操作(如数据索引和存储)、AL策略开发和选择。
图2:已部署的ALaaS系统。AL客户端将数据URI发送到AL服务器,数据将在那里下载。然后,AL服务器将数据样本发送给不同的工作人员进行AL处理。
(1)服务器和客户端 服务器-客户端体系结构使得从领域专家到几乎不了解AL的ML初学者等不同级别的用户都可以上手。它可以部署到个人笔记本电脑和公共云上。我们采用部署到AWS的ALaaS(见图2)作为示例,详细介绍了整个工作流程。首先,用户只需按照提供的模板准备一个配置文件,包括基本设置,如数据集路径和AL方法,如图3所示。然后,用户只需要很少的代码行(LoCs),就可以启动AL客户端和AL服务器。接下来,用户将其未标记的数据集推送到AL服务器,这些数据集可以存储在本地磁盘或AWS S3中。
图3 可以使用YML文件轻松配置和启动AL服务
从AL客户端获得数据集统一资源标识符(URI)后,AL服务器将下载数据集,并以流水线的方式使用特定的AL策略进行处理,如图4所示。通过这种简单的优化,处理速度可以达到比其他开源平台快10倍(见第4.2节)。同时,AL服务器将在数据管理器的帮助下为数据集中的每个样本分配唯一ID,从而为其编制索引。这些ID将由AL策略使用。
图4 传统的基于池的学习方法(a)、(b)和我们提出的ALaaS(c)之间的数据流比较。这些工作流显示了数据在多轮AL中如何以不同的方法在机器中流动。红色框表示下载阶段的数据样本,蓝色框表示处理阶段的数据样本,绿色框表示AL推理阶段的数据样本,带有对角填充的框表示没有过程。方框内的数字表示不同轮的AL。
最后,服务器将下载的样本分发给优化推理工作者,并使用ML作为后端进行推理。根据预定义的AL策略,AL服务器将做出决策并生成一份报告,其中包括要标注的选定样本的URI。因此,AL服务器只需要将URI返回给AL客户端,避免从AL服务器下载选定的样本。
(2)数据管理器 数据管理器管理着系统中数据集的生命周期。首先,它接收用户的数据集,并将其元数据(例如名称、所有者等)持久化,以进行数据管理。其次,在系统运行期间,它将索引数据样本,以避免冗余数据移动和批处理数据,从而实现高效的GPU进程。同时,它为NLP、CV和音频等不同任务提供了丰富的数据转换功能。此外,对于不同类型的AL方法,数据管理器可以配备相应的处理方法以提高可用性。
(3)AL策略库(AL Strategy Zoo) AL策略库提炼并存储了许多AL策略,包括基于不确定性、贝叶斯、基于密度、批处理模式等,它还为高级用户提供了一个基类,用于继承和扩展AL到新场景。
(4)其他工具 为了进一步降低使用AL的障碍并提高效率,该系统还提供了许多实用的功能。例如,如图1所示,模型库旨在连接许多公共模型中心,如HuggingFace和TorchHub,并从中获得预先训练的模型。其次,如图2所示,数据缓存用于提高AL计算效率,使用服务引擎的工作人员将调用不同的ML服务后端,以加快ML模型推理。
四
系统评估
本节介绍了我们系统的定量评估。我们首先将我们的系统与其他开源平台进行比较。然后,我们从不同的角度对我们的系统进行基准测试,以证明其效率和可访问性。
4.1 评估设置
硬件和软件 我们在AWS EC2和MacBook笔记本电脑上评估了该系统,后端推理软件是Triton推理服务器。
数据集 我们使用CIFAR-10数据集进行实验。它包括50000个训练图像和10000个测试图像。
模型 我们使用广泛部署的ResNet-18模型来评估系统性能,并对不同的AL策略和AL设置进行基准测试。
4.2 与其他开源工具的比较
第一个实验比较了ALaaS与其他基准工具的效率。
实验设置 在本实验中,我们模拟了一个单轮AL过程,该过程应用AL方法扫描整个数据集以生成子池子,该子池子包括将用于进一步改进现有ML模型的样本。具体而言,我们首先从CIFAR-10训练集中随机选择10000张图像来训练ML模型作为初始模型。接下来,我们使用不同的AL工具在AWS 3x.大型CPU/GPU EC2上为经过训练的模型提供服务。对于所有工具,我们使用相同的AL策略,称为最小置信抽样。最后,我们利用这些工具从训练集中剩余的40000个图像中选择10000个样本,并比较它们的延迟和吞吐量。
结果与见解 结果如表2所示,与其他工具相比,我们的ALaaS实现了最低的延迟和最高的吞吐量,同时仍保持相同的精度。这种效率的提高可归因于两方面。首先,我们的ALaaS实现了阶段级并行,从而减少了设备空闲时间;其次,ALaaS采用现有的ML推理服务器来加速模型推理。
表2 不同开源工具之间的性能评估。与所有基准工具相比,ALaaS具有最低的延迟和最高的吞吐量。
此外,我们评估了我们的ALaaS不同预算的中间结果,如图5所示,随着预算的增加,将选择更多的样本,精确度也将提高,这进一步证明了我们系统的有效性。
图5:不同AL预算的Top-1和Top-5精度(ACC)
4.3 ALaaS的特征
我们进一步使用不同的系统设置对我们的ALaaS进行基准测试。第一个实验是评估在我们的系统中重新实现的不同AL策略,第二个实验探讨了Batch Size对系统效率的影响。
4.3.1 AL策略影响
我们的ALaaS已经在模型库中为用户提供了许多开箱即用的AL策略。本实验从准确性和效率的角度评估了ALaaS重新实施的这些策略,以提供更多的见解。所有设置与上一个实验中相同。
结果与见解 不同方法的精度如图6a所示。Core set实现了最高的精度,这并不令人惊讶,因为它是为计算机视觉(CV)任务中的CNN设计的。同时,K-Center贪心(KCG)和最小置信度(LC)是第2和第3高的精度,尽管提出得很早。这告诉我们,即使在深度学习(DL)时代,传统方法仍然发挥着至关重要的作用,可以与深度学习很好地合作。吞吐量如图6b所示。LC的吞吐量最高,而Core set的吞吐量最低。结合精度和吞吐量结果,我们可以得出结论,在LC平衡时,Core set的精度改进来自重型设计,而LC很好地平衡了精度和效率之间的平衡。
总之,ALaaS提供了许多具有清晰准确性和效率报告的方法,因此用户可以根据自己的场景进行选择。
图6 CIFAR-10数据集上ResNet-18的一轮AL性能,使用不同的AL策略(即最小置信度(LC)、边际置信度(MC)、比率置信度(RC)、熵采样(ES)、K-Center贪心(KCG)、K-means采样、Core-set和多样化小批量(DBAL))。下限基线使用随机抽样(random)策略,而上限基线使用整个数据集进行训练。
4.3.2 Batch Size影响
实验设置 我们评估了Batch Size对两种部署场景的影响,即专用服务器和AWS云。具体来说,我们首先将CIFAR-10数据集分别存储在私有FTP服务器和AWS S3上,然后我们在笔记本电脑上启动ALaaS来模拟端到端的AL过程,包括从其他设备下载数据、预处理数据以及使用AL策略选择AL。其他设置与第一个实验相同。
图7 CIFAR-10上ResNet-18基于一个循环池的AL的端到端吞吐量,具有不同的AL推断Batch Size。在私有FTP服务器(图7a)和S3(图7b)上存储图像都显示了端到端吞吐量相对于推断Batch Size的单调增长。
结果与见解 如图7所示,我们的ALaaS可以在两种不同批量的环境中稳定有效地管理整个流程。此外,从图7中,我们发现了许多有趣的现象。首先,Batch Size=1和Batch Size=2具有非常接近的吞吐量。第二点是从Batch Size=2到Batch Size=8的增长趋势最为显著。第三,Batch Size=16后,增长将停止。我们将原因归结为当Batch Size较小时,传输时间占总处理时间的很大比例。因此,吞吐量的提高在开始时是微乎其微的。后来,批处理计算时间成为总处理时间的最大部分,因此改进非常显著。最后,当Batch Size达到计算容量时,增加停止。
五
总结
本文提出了一种新的MLOps系统,称为ALaaS,用于以数据为中心的人工智能。ALaaS采用机器学习即服务(Machine-Learning-as-Service)的理念,并实现了服务器-客户端架构,因此用户可以将AL用作web服务。同时,它将人工智能过程抽象为多个组件,并开发了几个模块,包括数据管理器、人工智能策略库和实用功能,以支持它们。更重要的是,ALaaS采用阶段级并行(流水线方式)、缓存和批处理来提高AL运行效率。实验表明,我们的系统比所有其他基准工具具有更低的延迟和更高的吞吐量。
END