度小满自动机器学习平台实践算法机器学习AI

首先介绍一下度小满机器学习平台的背景、发展过程以及现状。

1.业务场景

度小满是一家金融科技公司,公司内部的业务场景主要分为三个方面:

由于业务涉及的AI技术非常多样,给AI算法落地带来了很大的挑战。

2.AI算法落地难题

AI算法落地存在一个不可能三角:很难同时实现算法开发的高效率、低成本和高质量。

面对这些AI落地的难题,我认为唯一的解决方案是使用机器学习平台。

3.AI算法生产流程

下面从AI算法的生产流程来理解AI算法落地过程中遇到的具体困难。

AI算法落地主要分为数据管理、模型训练、算法优化及部署发布四个部分,其中模型训练和算法优化之间是一个反复迭代的过程。

在算法开发的每一个步骤里面,对参与该步骤的人员的技术要求的差异很大:

从各个步骤需要的技术栈可以看出,很难有一个或者两三个技术人员完全掌握所有的技术,并且每一个涉及人工的步骤,都是造成生产不稳定的生产瓶颈。而使用机器学习平台可以解决这两个问题。

4.机器学习平台ATLAS

我们的机器学习平台ATLAS贯穿AI生产的全流程,旨在替代AI算法落地过程中的人工参与,达到高效产出、给AI算法研发提能增效的目标。

ATLAS涉及以下四个平台:

这四个平台之间也是循环迭代的关系。下面分别介绍这几个平台的设计细节及运转过程。

5.ATLAS:数据与训练

数据与训练部分涵盖了标注平台、数据平台和训练平台。

(1)标注平台

标注平台主要为AI算法的训练提供标注数据,自从深度学习诞生以来,模型已经具有了很高的复杂度,AI算法效果的瓶颈从模型设计上转移到了数据质量和数量上,所以数据的高效生产是在AI算法落地中至关重要的环节。

ATLAS的数据标注平台主要有两方面的能力特性:多场景覆盖和智能标注。

(2)数据平台

数据平台主要实现大规模数据治理,在治理的过程中能够兼顾灵活性,动态地匹配样本。在保存了上亿用户的5000维度以上的特征的基础上,可以做到一个在线的实时查询。动态匹配样本可以满足不同场景的样本选择和数据的选择要求。

(3)训练平台

训练平台是一个很重要的设施,分为五个层:

6.ATLAS:部署上线

我们的部署采用类Serverless的架构,之所以说它是类Serverless是因为它并不是完全的Serverless的服务。因为我们的服务面向的并不是广泛通用的应用场景,只面向模型的在线服务,所以不需要考虑更多的场景兼容。

在API接口这一层提供了模型会接触到的三个部分:

7.ATLAS:优化迭代

下面演示在ATLAS上的两个优化迭代的场景。

例如在一个OCR模型的落地过程中,旧模型部署之后会产生一些badcase,这些badcase和已有的标注数据融合之后成为新的数据集,再通过AutoML优化流水线优化旧模型产生新模型,新模型部署之后再循环往复。通过这样的循环可以让模型保持额外的1%的准确率的提升,由于OCR的模型精度很高,一般会在95%以上,所以1%也是很大的提升。

对于简单重复的优化流程使用全流程AutoML替代,对需要专家经验参与的场景使用AutoML作为辅助优化,并且使用全流程AutoML的结果作为Baseline,选择最优的模型部署上线。在我们公司内部有60%以上的场景通过这样的优化方式获得性能提升,提升效果从1%到5%不等。

02

自动机器学习

下面介绍一下我们运用了哪些AutoML的技术,以及我们所做的改进。

1.专家建模与AutoML

首先介绍一下AutoML相比传统的专家建模有哪些优势。

AutoML的优势分为三个方面:

2.AutoML简介

下面来介绍一下AutoML中常用的技术。

AutoML常用的技术包括三个方面:

在实际工作过程中,会根据不同的任务场景选择不同的技术,且这些技术可以联合使用。

下面几个部分分别介绍这三方面的技术。

3.自动机器学习平台:自动优化流水线

首先是超参优化部分。实际上在我们的自动优化流水线当中,是将整个机器学习流水线作为自动优化的目标,而不仅仅是针对超参优化。包括自动化的特征工程、模型选择、模型训练和自动集成等,这样相比单独的超参优化,降低了过拟合的可能性。

除此之外,我们自己实现了一个AutoML的框架Genesis,来兼容主流的AI算法和AutoML工具,且对扩展友好,能够把平台中不同的能力模块相互正交,使得他们之间可以自由组合,实现更加灵活的自动优化流水线。

4.自动机器学习平台:元学习系统

我们的系统中也使用了元学习方法,下面介绍一下元学习方法的必要性和应用的重点场景。

(1)元学习的必要性

在积累了大量实验数据之后,我们发现数据集在元特征空间呈现明显的聚集性,所以我们假设在元特征空间分布接近的数据集的最优解也会接近。基于这个假设,我们使用历史任务的超参指导新任务的参数优化,发现超参搜索收敛速度会更快,且在有限的预算下,算法效果可以额外提升1%。

(2)应用场景

在大数据的应用场景中,有时会需要对已有数据集进行合并,例如将数据集A和数据集B合并产生新的数据集C,如果用数据集A和数据集B的超参作为数据集C的冷启动来指导数据集C的超参优化,一方面可以锁定搜索空间,另一方面可以达到最优的参数优化结果。

在实际开发过程中有时会需要对数据集进行采样,再对采样后的数据集进行超参优化,因为采样后的数据的元特征空间分布与原始数据是接近的,所以用原始数据集的超参去指导采样数据的超参优化,就可以提高优化效率。

5.自动机器学习平台:深度学习优化

最后是我们针对深度学习场景所做的自动优化。分为超参优化和对NAS的探索两个方面:

03

规模与效率

最后来讨论一下我们在机器学习平台建设过程中碰到的规模和效率的问题。

1.深度学习困境

更多的模型参数意味着更好的模型表现是行业的共识。而深度学习存在如下的摩尔定律:

所以高速增长的计算需求与硬件性能之间的鸿沟必须通过优化来解决。

2.数据并行

最常用的优化方法就是并行,包括数据并行、模型并行等。其中最常用的是数据并行的技术。

ATLAS平台的数据并行技术有以下特征:

3.模型并行

还有一些模型不能只靠数据并行解决训练效率问题,还需要引入模型并行技术。

ATLAS的模型并行主要分为两个方面:

一些网络模型的全连接层参数规模非常大,如arcFace的分类规模高达几十、上百万甚至上千万,这样的一个全连接层不可能通过一张GPU卡覆盖。这时需要引入层内并行技术,不同节点计算同一张量的不同部分。

4.图并行

除了可以用张量描述的线性数据以外,我们做了一些图数据并行训练的探索。

对图数据来说,不管是采样还是其他操作都需要动态跨节点,而且图数据一般规模都很大,我们内部的图数据达到了百亿的规模,这样的图数据的计算很难在单机上完成。

图数据分布式计算的瓶颈在于映射表,传统的映射表的空间复杂度为O(n),如10亿个点10亿条边的图数据占内存160GB,形成分布式训练的规模天花板。我们提出了一个空间复杂度为O(1)的方法,通过重排节点和边的ID,只保留映射边界,达到图并行训练规模可任意扩展的效果。

5.训练效率

同时我们也做了一些训练效率方面的优化。

我们还使用了反向传播重计算技术。对于一些参数非常多的模型,在正向传播的过程中,我们并不保存所有的层的计算结果,仅保留部分节点的checkpoint,在反向传播时空白参数节点从checkpoint开始重新计算。通过这种方式可以减少50%以上的内存资源,训练效率提高35%以上。

04

总结与思考

最后谈谈在机器学习平台的建设中的经验和思考。

我们总结了如下一些经验:

因为我们AI算法落地涉及到的,技术和内容是方方面面的,我不可能要求任意任一个环节上的同学都会了解整个全局,那我们一定要有一个平台能提供这些基础的能力来帮助大家去解决这些问题。

因为只有把自动化或者AutoML的应用做得好了,才能够更有效的去解放算法专家的生产力,让算法专家可以去做一些更深入的算法,或者能力的建设来提高机器学习的上限。

展望未来:

05

问答环节

Q1:开源的AutoML框架,我们尝试过哪些推荐哪些?

A1:开源的AutoML框架现在用的比较多的就是Optuna,还尝试过Auto-Sklearn和AutoWeka,然后给大家推荐一个网站是automl.org,因为其实现在做这个领域的人还是比较少的,这个网站是几个在AutoML领域的专家教授建的一个网站,上面有很多的AutoML的开源学习资料,大家都可以去参考。开源框架我们比较推荐的是我们用的Optuna去做调参,因为它的算法的来说的话就不是就这种最基础的贝叶斯优化,它是一个TPE的算法,比较适合参数量非常大的一些场景,贝叶斯优化还是更适合参数比较少的一些场景,不过我的建议是说大家可能针对不同的场景尝试一些不同的方法,因为就做更多尝试之后,大家可能会对什么场景适合什么方法更有经验。

Q2:机器学习平台的开发周期是多久?

Q3:交叉验证的时候怎么消除过拟合?

A3:这可能是一个更具体的算法优化的问题,但在我们的优化流水线里面,我们是通过采样的方法来训练的,通过这样的方式让我们的任务能够见到数据集的更多的角度,或者说方面,然后再通过把这些采样之后训练得到的top模型集成起来,来让我们的模型有更强的泛化能力,这在我们的场景里面也是非常重要的一个方法。

Q4:我们构建整个机器学习学习平台,开发周期和人员投入大概是多少啊?

Q5:虚拟化GPU会不会对机器学习平台有提升?

A5:首先这个同学提到的虚拟化GPU,应该是指资源的分割和隔离吧。我们做机器学习平台的话,虚拟化GPU应该是一个必须的能力,就是说我们一定要把资源做到虚拟化,才能做更好的资源调度和分配。然后在这个基础之上的话,我们可能还会把我们的GPU的显存和它的计算资源去做分割,然后把不同大小的资源块去分给不同任务使用,但这一点实际上我们没有在训练里面去用,因为训练的任务通常会对计算的能力有更高的要求,不会是一个更小的资源消耗的应用场景,我们在推理的场景里面是会用到的。我们在实际应用过程当中发现虚拟化技术没有很好的开源免费的方案,有部分的云服务厂商会提供一些收费的方案,所以说我们自己在部署上使用的是分时复用的方案,就是把一些计算要求高的任务和一些计算要求低的任务去做混布,来做到分时的复用,在一定程度上能达到提高容量的效果。

Q6:多节点分布式并行训练加速比怎么样?能接近线性吗?

A6:我们是可以接近一个线性的加速比的,就是我们自己测的话,比较好的时候大概可以达到一个80到90的程度。当然,如果节点数量非常多,可能还会需要做进一步的优化,现在可能大家发论文或者看到论文里面会提到说32个或者64个节点可以达到80、90的加速比,那可能是要有一些更专门的优化。但我们在机器学习平台里面的话,有可能会要针对更广泛的场景,在实际的场景里面,大多数的训练可能是4个GPU卡、8个GPU卡,最多16个GPU卡就能够满足要求。

Q8:有哪些开源的机器学习框架可以参考?

A8:这个问题刚才提到过,就是像Optuna,Auto-Sklearn还有AutoWeka这些都是可以参考的。然后刚才有说到那个automl.org的这个网站,上面有很多资料,大家可以去学习一下。

Q9:与EasyDL的关系是什么?

A9:EasyDL是百度的,我们这个框架是完全自研的。

INTRODUCTION

单黎平

度小满

AI算法高级专家

单黎平,硕士毕业于北京大学计算机系,度小满AI算法高级专家,现任度小满图平台、机器学习异构训练平台负责人,专注于机器学习与人工智能技术提能增效与落地应用。

THE END
1.元学习MetaLearning什么是元学习 元学习(Meta-Learning),也称为“学习如何学习”,是一种机器学习方法,其目的是通过学习算法的经验和结构特性,提升算法在新任务上的学习效率。 换句话说,元学习试图学习一种更有效的学习方法,使得模型能够快速适应新的任务或环境。 传统的机器学习算法通常需要大量的数据来训练模型,并且当数据分布发生变化https://blog.csdn.net/qq_60735796/article/details/142025393
2.元学习案例(学习如何学习)元学习入门详解(MAML算法及Reptile算法复现)优秀教程 元学习(Meta-learning),也称为“学习如何学习”,是机器学习领域的一种方法,旨在让模型通过学习经验来更好地应对新的任务。传统机器学习通常专注于解决单一任务,而元学习则聚焦于使模型通过从多个任务中学习,来提高其在全新任务中的表现。 http://www.kler.cn/a/349427.html?action=onClick
3.元学习元学习 (Meta-Learning) 通常被理解为“学会学习 (Learning-to-Learn)”, 指的是在多个学习阶段改进学习算法的过程。 在基础学习过程中, 内部(或下层/基础)学习算法解决由数据集和目标定义的任务。 在元学习过程中,外部(或上层/元)算法更新内部学习算法,使其学习的模型改进外部目标。 因此,元学习的核心想法是学https://www.jianshu.com/p/b88053b4402d
4.深度学习应用篇指的是在多个学习阶段改进学习算法的过程。 在基础学习过程中, 内部(或下层/基础)学习算法解决由数据集和目标定义的任务。 在元学习过程中,外部(或上层/元)算法更新内部学习算法,使其学习的模型改进外部目标。 因此,元学习的核心想法是学习一个先验知识 (prior)。 https://cloud.tencent.com/developer/article/2296112
5.元学习:机器学习的未来,让AI从经验中学习并适应新挑战元学习,也称为“学习如何学习”,是机器学习领域中一个令人兴奋且极具潜力的研究方向。传统的机器学习算法通常需要大量的数据来训练模型,并且当数据分布发生变化或者遇到一个新任务时,模型往往需要重新训练才能保持良好的性能。而元学习则不同,它通过 https://mp.weixin.qq.com/s?__biz=MzIwNDY0MjYzOA==&mid=2247516515&idx=1&sn=34a8816d1a6cdfd54fc94ddff3bfe615&chksm=96141a1d4833254215aca22f3010b3716a2a765fe8f683269e94182a443f03ae3f95fee2efa0&scene=27
6.计算机视觉中的小样本学习综述wx5d23599e462fa的技术博客元学习算法——定义、度量学习、基于梯度的元学习 Few-Shot图像分类算法——与模型无关的元学习、匹配、原型和关系网络 Few-Shot目标检测– YOLOMAML 什么是小样本学习? Few-Shot Learning(以下简称FSL)是机器学习的一个子领域。在只有少数具有监督信息的训练样本情况下,训练模型实现对新数据进行分类。 https://blog.51cto.com/u_14439393/5748518
7.百面深度学习算法工程师带你去面试本书由Hulu的近30位算法研究员和算法工程师共同编写完成,专门针对深度学习领域,是《百面机器学习:算法工程师带你去面试》的延伸。全书内容大致分为两个部分,第一部分介绍经典的深度学习算法和模型,包括卷积神经网络、循环神经网络、图神经网络、生成模型、生成式对抗网络、强化学习、元学习、自动化机器学习等;第二https://www.epubit.com/bookDetails?id=UB71eb7f09e64b2
8.什么是元学习Metalearning?(为什么它很重要)强化学习:依赖海量的训练,并且需要精准的奖励。成本较高且比较复杂。 元学习:具备自学能力,能够充分利用过去的经验来指导未来的任务。被认为是实现通用人工智能的关键。 什么是元学习? 元学习的思想是学习「学习(训练)」过程。 元学习有好几种实现方法,不过本文谈到的两种「学习『学习』过程」的方法和上文介绍的方式https://easyai.tech/ai-definition/meta-learning/
9.《除数是整数的小数除法》说课稿(通用11篇)解决问题:《新编童话集》共4本,售价26.8元。平均每本售价多少钱? 环节六:完善认知。 引导学生从知识、方法多方面来谈自己的收获,并对自己整节课的表现作自我评价。 四、说板书设计。 例题作为本节课的重点板书在黑板中央,整数除法放在附板书位置,用来作为学习例题的辅助资源。整体上板书设计层次分明,重点突出,使学https://www.yjbys.com/shuokegao/xiaoxue/1186007.html
10.小学数学教案(精选15篇)小数乘整数表示什么呢? 二。探究算法 1、请大家想办法算出0。2×3的积。 (1)学生独立思考并计算。 (2)同桌交流算法。 (3)全班交流: A。连加法:0。2+0。2+0。2=0。6 b。联想、转化:0。2元=2角2角×3=6角=0。6元 c。画图法:你是怎样画的?为什么要画3个0。2? https://www.unjs.com/jiaoan/shuxue/20230626065815_7317540.html
11.当传统联邦学习面临异构性挑战,不妨尝试这些个性化联邦学习算法该方法通过引入一个精细化调整阶段,该精细化调整阶段使用模型不可知的元学习算法(model agnostic meta learning,MAML)。通过联邦学习训练得到的全局模型可以个性化地捕捉单个设备中的细粒度信息,从而提高每个物联网设备的性能。MAML 可以灵活地与任何模型表示相结合,以适应基于梯度的训练。此外,它只需少量的数据样本就https://www.thepaper.cn/newsDetail_forward_9306970
12.一周AI最火论文模型是否遗忘了我删除的数据?这个算法可以评估!为了实现机器人在复杂多变的世界中的自主运行,学习适应性策略至关重要。在本文中,谷歌AI研究人员与哥伦比亚大学合作提出了一种新的元学习方法,该方法可以使机器人快速适应动态变化。 与依赖于二阶梯度估计的元学习算法相比,研究人员引入了更耐噪声的Batch Hill-Climbing适应算子,并将其与基于进化策略的元学习相结合。https://news.hexun.com/2020-04-27/201164779.html
13.NatureMachineIntelligence刘琦教授团队开发基于元学习的AIPanPep算法框架(图2)包含了元学习模块和解耦蒸馏(Disentanglement distillation)模块。其中,针对已知数据的长尾效应,元学习模块采用了Model-Agnostic Meta Learning(MAML)计算框架。模型假设每一个肽段具有其特异性的TCR结合模式,因此每一个肽段下的TCR结合识别任务被当作MAML中的一个任务,且肽段表征的分布即为任务的分https://life.tongji.edu.cn/81/05/c12615a295173/page.htm
14.学会学习更多:元强化学习译站元学习算法:元学习算法通过所学知识来更新模型权重。该算法的主要目标是应用从先前任务中学到的知识优化模型,以在最短时间内使模型能够处理全新的任务。先前的研究一般是通过LSTM单元的梯度下降来更新权重。 MAML和Reptile是典型的元学习算法,通过该算法更新模型参数,使得模型在未知的新任务中具有良好的泛化性能。 04 https://god.yanxishe.com/TextTranslation/2950
15.字节跳动CVPR2023论文精选来啦(内含一批图像生成新研究)因此在这项工作中,为了提升模型对这种未见组合的表现,作者团队从元学习的角度提出了一个新颖的框架, 这个框架只改变模型的训练方式,因此可以无缝的和现有模型结合起来去提升他们的表现。 首先作者分析了这个任务中现有文字表达主要的三种组合方式,即单词与单词的组合,单词与词组的组合,词组与词组的组合,可见下图中的例子https://xie.infoq.cn/article/940b4ff308a91bf5cec9ab05b
16.融合元学习和PPO算法的四足机器人运动技能学习方法融合元学习和PPO算法的四足机器人运动技能学习方法 朱晓庆?,刘鑫源,阮晓钢,张思远,李春阳,李鹏 (北京工业大学信息学部,北京100020;计算智能与智能系统北京市重点实验室,北京100020)摘要:具备学习能力是高等动物智能的典型表现特征,为探明四足动物运动技能学习机理,本文对四足机器人步态学习任务进行研究,复现了四足动物的https://wenku.baidu.com/view/e368afcebb4ae45c3b3567ec102de2bd9705de71.html