WAIC 2021 | 思谋科技刘枢:赋能制造业需要什么样的算法平台?
在 WAIC 2021 AI 开发者论坛上,思谋科技联合创始人兼技术负责人刘枢带来题为《智能制造中的算法平台》的精彩分享。在演讲中,他主要介绍了在制造业中,什么样的算法平台能为客户与自己降本增效。以下为刘枢在 WAIC 2021 AI 开发者论坛上的演讲内容,机器之心进行了不改变原意的编辑、整理。今天非常高兴有机会在这个地方分享我们的思考,也让大家看一下我们怎么从深度学习前边走到后边,来到了这个后
在 WAIC 2021 AI 开发者论坛上,思谋科技联合创始人兼技术负责人刘枢带来题为《智能制造中的算法平台》的精彩分享。在演讲中,他主要介绍了在制造业中,什么样的算法平台能为客户与自己降本增效。
以下为刘枢在 WAIC 2021 AI 开发者论坛上的演讲内容,机器之心进行了不改变原意的编辑、整理。
今天非常高兴有机会在这个地方分享我们的思考,也让大家看一下我们怎么从深度学习前边走到后边,来到了这个后深度学习的 AI 时代。我相信,很多 ToB 公司初心为客户降本增效,其实作为 ToB 公司也可以对自己好一点,为自己降本增效。
我来自思谋科技,创始人及董事长是贾佳亚博士,他是香港中文大学终身教授、电气和电子工程师协会(IEEE)院士、业内顶级期刊 TPAMI 副主编、计算机视觉、人工智能与计算机影像学等领域权威专家。思谋科技成立于 2019 年 12 月,现在已经 1 岁半,像刚刚出生的婴儿一样,成长非常迅速。最近已经完成 2 亿美元 B 轮融资,2020 年 10 月,完成超亿美元 A 轮融资。之所以得到资本市场的青睐,也是因为短短一年半时间,(我们)做成了许多标杆案例项目交付以及软硬一体标准产品的打磨。
一、为什么是制造业?
我们所关注的领域是制造业,历经机械自动化、电子化,(制造业)现在迎来智能化时代。思谋科技致力于研发新一代 AI 技术,打磨全栈交付能力,通过标准化软硬件一体产品以及端到端的解决方案,推动整个制造业智能化转型升级。
制造业发展趋势非常好,不管是全球还是中国市场,发展速度均远超 GDP 增长率。就国内来讲,由于受到「智能制造 2025」以及新基建利好政策影响,增长趋势远超国外。同时,随着人工智能计算机视觉技术不断成熟与发展,现在可以解决许多之前机器视觉所解决不了的需求,增长也迎来爆发点。
举个简单例子。提到制造业,人们的第一反应都会想到怎么把这个东西生产出来。这个过程自动化程度已经非常高。每一件产品生产出来之后,有一个必不可少的环节是什么?一定要做产品的质量检测(不管物理的、化学的还是外观检测)。比如,手机生产完之后表面有没有划痕,(检测)有没有缺陷,往往是人力参与最多的环节。
举一个具体例子。产线女工要看芯片是不是平整,怎么做?拿一个小东西往里戳,戳不进去就是平的,戳进去就是不平。这里存在很多问题。首先是速度非常慢,效率非常低。其次,这样做是非常主观的事情。男、女工人去戳同一块芯片,结果可能不一样。这个环节往往效率最低,结果也最不可靠。
我们提供了一套解决方案。用 3D 激光做线扫,很多芯片可以一次性扫描出来,检测上面是不是平的、有无缺陷等,给客户提供效率更高、结果更靠谱的方案。
把视角放大一点,看一下每个人都会用的手机。手机里面有几百种零件,几百个供应商,每个零件都要做检测。有些零件组装之后也要做检测,看有没有引入新的缺陷。每个零件本身可能有几十种缺陷要做检测,仅仅是一部手机就需要做上万种缺陷检测。市场需求非常大,这是非常好的事情。但是,这里面也有些痛苦。
每个零件都不一样,每个缺陷都不一样,项目需求非常碎片化。同时,上线之前数据很少,怎么用比较少的数据快速得到还能够上线的模型去迭代?随着产线良率的变化,最后验收标准也会发生调整,有点像薛定谔的需求一样,时时刻刻摸不准,但还是要去满足它。性能要求高就不用说了,迭代速度快是什么意思?在一个产线上会混线生产不同厂商的产品,算法要同时兼容它们,生产线怎么快速迭代到新产品里面?这都是具体技术问题。
我相信在座的各位都是做技术的同学,有一个很重要的点就是怎样把客户纷繁复杂的需求抽象成通用技术问题,用更高的交付效率和更低交付成本完成项目交付,这是最大价值。
我们自己开发了一套完整的覆盖所有应用以及上下游工具链的算法平台,Smore AI Platform(SMap)。通过平台完成了所有项目交付以及打通所有产品,所有工程师一起使用和维护这套平台。接下来,我按照我们内部时间演进顺序、从四个维度阐述我们认为需要什么样的算法平台。
二、「降本增效」需要什么样的算法平台?
首先,最简单的是工具化。它能够被不同工程师快速使用,如果用得比较好,不同工程师可以互相迁移,它本身可以作为知识沉淀、知识传播的载体。
与之相对的是,可能有不同算法工程师,每个人有自己祖传的代码,虽然里面加了非常多好用的东西,但是不同工程师不共享,很多东西还要重新开发,没办法用起来,这就非常痛苦了。
为了解决这个问题,这是第一代算法平台大概架构图。第一代把不同应用做了单独代码库,比如检测、分类、分割等等,做相同方向的同学可以快速复用起来。比如,A 同学做了一些长尾问题解决方案,B 同学做了其他方案,只要做同一个方向大家都可以用起来。
问题是,当我们希望把模型做得更快时,用到蒸馏或者量化技术,因为代码库是完全割裂开的,在检测、分类、分割应用时,都要重新开发一遍,非常浪费。
而且不同人设计不同代码库,设计理念和设计语言也不一样,比如同样一个术语在不同代码库可能引起混淆,这就带来第二代的架构,一定是平台化东西。
不同应用以及上下游工具链一定是依照同样优秀的抽象,它定义了数据流、架构应该长什么样子,不同模块长什么样子等等。有了比较好抽象以后,不同模块以插件形式融入到一起,非常简单地加以调用。同样,依赖于比较好的抽象,以后不断衍生的新技术也可以很快用起来。
这是我们的第二代架构, 我们把整个代码抽象成三个层级。中间是最核心的模块(Core),承载不同应用 、上下游工具链抽象的总接口,同时沉淀了所有共享的东西。
它的上面链接了应用层,比如检测、分类、分割、关键点、机器学习的技术以及机器视觉技术等等。算法同学只跟核心模块交互,通过核心模块调用不同应用,就可以非常简单用起来。
第三层是插件层,通过统一抽象(因为我们数据已经完全抽象好了),开发一次就能支撑所有应用。除此之外,我们还封装了对应的解决方案,针对不同方向,比如 3C、半导体,打包不同技术点成为一些方向性的解决方案,帮助我们快速复用。
这是一个比较简单的例子。我们做了抽象之后,算法工程师只用跟核心模块打交道,因为这一套所有交互都是完全一致的,迁移起来去做检测分割、分类等,就没有迁移的成本。同时,因为是可插拔设计,后续需要任何工具链上东西,都可以通过 Core 快速组装起来,直接得到想要的模型。
简单地讲一点不同的东西。思谋的 SMap 在设计之初就是定位面向工业界交付的代码库,跟面向学术界或者网上开源代码库有一些不同点。比如,网上开源的 OpenMMLab 是一套非常好的代码库,是面向学术界的,不会有上下游工具链的一套支撑,而 SMap 具有这些优势。同时 OpenMMLab 也比较开放,方便大家所以去做一些修改。
但是面向工业界的东西,要以某种方式约束代码库,不能太过于随便。举个例子。做研究生或者做项目交付时,可能会遇到这种问题。这个模型训练好了,过两三个月之后,客户或者研究生导师突然要求复现这个模型,这个时候可能会复现不出来,为什么?
大家平时都是通过 config 去定义怎么训练模型,但是,模型的产生不仅仅依赖 config 所定义的训练方法,还依赖于模型运行环境以及模型所依赖的代码版本。过两个月代码库变了,再去训练它可能就没有办法保证得到同样的模型。
为了去满足这个问题,我们也加了一些限制,比如用另外一套文件去定义到底在什么运行环境下,依赖于哪一个分支得到模型,保证每个模型都是可以严格复现出来的。
再比如,大家之前可能觉得 configuration 比较随意、比较开放,最好用。但我们做了一些操作,比如,default value 或者会限制数据类型等,去做一些防呆的设计。封闭是一方面,开放这个东西也不能丢。我们的解决方法是加了一个 customize 模块。通过一套统一接口,只要能把接口设计得比较符合逻辑,将这个 customize 模块、训练 configuration 以及对环境的定义放在同一个文件下,就可以完整定义出一套自己的实验,同时也通过这种方式允许大家去开发自己的东西。开发好后,如果是比较好的解决方案,就可以直接纳入到核心代码库里。就算尝试失败,也不会对核心代码库造成任何影响。
除了细节设计,单点的技术也有突破。比如,蒸馏是非常重要的模块,蒸馏是希望把大模型的一些 dark knowledge 放到小模型里,让小模型速度既快、性能又好。下面是比较常见的一套方法。
后来,我们发现在小模型里面,如果在其高层同时学习所有前面的 teacher 层,可以得到非常好的效果,有点像考试之前要复习一下,临时突击一下也可以学到很多东西,温故而知新嘛。如果 student 每一层都去学习前面一层,也能得到非常好的效果,但是也会非常笨拙。我们最后做了一些精简,得到一个简单架构,效果也很好。这个发表在了 CVPR,已经开源了,感兴趣的同学可以用一下。
这是简单的结果。跟其他方法相比,在任务集上都有非常大的提升,同时可以应用在不同场景里面,比如检测、分割、分类数据集等等,效果不错,也已经被广泛地应用到了我们的项目交付里面。
这个东西做完,可以看到,训练往往不需要开发一套新的东西,因为沉淀了非常多标工具,大家直接调用就可以了,节省了非常多重复开发、反复 debug 的时间。但是,算法工程师还是需要花费一些时间在选择用什么方法、调整超参、网络结构等等,这就跟前面几位嘉宾讲的很像,需要 automl 的加持(在后面做演讲有非常好的地方,总是可以发出英雄所见略同的感慨)。
第三个维度叫范式化。我们希望实现项目流程范式化,快速把类似东西复制到不同项目去,极大实现模型自动化生产,减少算法同学调整模型、超参的时间。
还是这个图。我们在这个基础上跟 Core 打交道,加了自监督学习、超参自动优化、NAS 搜索网络结构、损失函数等等。
但是,跟之前嘉宾讲的不一样,我们不是为了去用 automl 而去用,而是会结合自己的实际应用,核心点在于用 automl 多快好省地解决客户问题。所以,对搜索空间、时间成本都做了非常大的精简,基于我们的经验 know-how 约束了搜索成本和时间。大家知道,通过 automl 可以节省算法工程师很多时间,但是电费也很贵,能省一点也是好的。
加了 automl 之后,可以看到调用的逻辑会变得复杂一点。通过对 Core 的调用,比如我们现在选择两个模块,可以用 HPO 自动优化,可以用 NAS 去搜索结构。
大家还记得刚才提到的,我们遇到的项目数据量不是很大,但是,我们一直持续接项目,一年半时间接触几百个项目,如果把这么多项目数据全部放在一块,本身量就很大。怎么样能够把数据利用起来呢?这就是一件非常有意思的事情。
虽然项目可能对应不同零件、不同缺陷,但都有某些工业场景下的共性,都是希望找一些不同。在这种情况下,自监督学习就是非常好的模式。用自监督学习把不同数据放在一块,进行预训练,用已经知道的知识帮助模型快速收敛,在数据比较少的时候也收敛到比较好的状态。
解决小数据问题,这只是其中一个点,也还有很多其他的方法。
这边有一些具体数字,有了这套代码库后,我们 POC 基本只要半天就可以得到还不错的模型;平均而言,整个模型迭代速度有三倍提升,尤其对于比较难的项目,对于模型的性能,推理速度要求比较高,可能 5-10 倍的提升,收益非常大。同时,还有单点的技术,比如 NAS、HPO,即使只是用其中一个小块,也能带来一些提升。
这里有两个比较有意思的漫画。左边说,当模型训练不是特别好的时候,要看看数据是不是对的。我们现在也是往这个方向迈进,大家想一想,这个现象的原因是什么,是因为后面框架已经足够优秀,大家的时间更多花在前端处理数据上。这也是大家需要关注的点,从客户拿的数据怎么样达到要求,理清楚客户需求,这个占用的时间会越来越多,也是后面要做一些探索的。比如,之前嘉宾也分享过一些技术(比如 active learning)帮忙去做。
另一幅漫画上,可以看到研究员合理摸鱼、划水的理由是什么?答案是,我的模型在训练。这也是一个现实状态,模型训练占了绝大多数时间,当然,算法工程师也不是在摸鱼,而是在仰望星空看下一代需要做什么东西。
简单再介绍一个小技术,就是我们的自监督方法。我们拿到两张图做一个切分,把不同的图拼在一起,拼成新的图,把他们丢到神经网络,学习怎么把之前的图恢复出来。跟之前的方法不同,我们不需要同时 forward 两倍数量的图片,这样可以加速训练速度和减少显存的占用,同时还把定位信息加进去了。这也是很有意思的工作,是 2021CVPR 的一个 Oral,代码开源了,感兴趣同学可以看一下。
最后一个维度是产品化。刚刚讲了我们的算法平台本身一定是面向交付的。什么叫面向交付?开源代码库往往是训练完这个模型就结束了,对于公司来讲,还差一公里,模型要工程化变成 SDK 交付给客户,产生价值。现在,算法这一侧已经跟工程侧完全打通,同样一个 configuration,定义的不仅仅是怎么去训练模型,同时也定义了推理时需要怎样前后的处理。通过 configuration,就可以自动化把 SDK 组装起来,得到可以到线上去部署的推理 SDK。
我相信,很多公司也会给客户提供一套通用性算法平台,但可能会有一个问题,提供给客户的平台,跟自家算法工程师用的平台是两个东西,怎么去保证给到客户东西真是一套好用的东西?我们的做法是将内部算法平台与提供给客户的产品完全打通,打通以后也有非常多好处。
首先给到客户的服务一定有保证的,这是我们自己平时用的东西。另外,研发做出所有新技术、提升能够非常快速地传导给客户,做到工程、产品以及算法三位一体协同,极大加速了价值传递。得益于优秀的代码结构抽象,我们通过核心模块,就可以跟 SDK 侧、产品侧完全打通。
这里简单展示一下现在做出来标准化产品。左手边都是软件平台,比如 ViMo 允许客户自己收集数据、标注数据、训练模型、部署模型,所用到的算法模块就是我们自己内部在用的算法平台。
右边是软硬一体硬件体系,比如智能扫码器、智能硬件,以及有机械功能、能够帮助客户端到端解决问题的智能机台,都是我们已经推出的产品。
三、落地案例
最后跟大家分享已经做出来的标杆案例。首先是芯片工艺分析项目。芯片非常小,需要检测里面的电路结构。之前靠人手工打磨,磨了一层后,使用电子显微镜成像,成像之后可以得到灰度、颜色不一样电路图,然后去做结构化。
大家知道,到了百万、千万门的这个级别,不可能再靠人工做这样的事情,有迫切自动化需求。听起来很简单,但要处理非常多的问题。比如成像模糊、制程不同(28 纳米跟 14 纳米成像出来都是不一样的),或者有一些噪声等等。思谋推出了对应的全栈解决方案,并实现了亿级晶体结构的自动结构化,最后检出率非常高,超过 99.99%,处理效率超过 96%。
另外一个是汽车行业案例,做轴承检测。不只是轮子,汽车有很多地方都要用到轴承,轴承质量跟行车安全关联度非常高。思谋的轴承 AI 检测一体机已在某世界 500 强汽车部件厂商正式上线,极大地缩短了原有产线的检测流程,实现了 0.001 毫米的极限曲线检测,质检效率提升超过 80%,检测准确率接近 100%。据悉,这也是该企业首次在其主流乘用车产线上引入 AI 产品。
还有 3C 行业的产品。思谋为某全球市值最高的智能手机品牌商提供了无线充电线圈检测一体化设备。我相信在座各位肯定有人有这款手机,元器件检测就是我们在做,已经交付落地。新一代产品复制的订单也是在生产过程中,我们做了 30 多种高难度缺陷(检测),也得到非常好的检出率,超过 99.8%,人力成本削减 80%。
总结一下,我们认为需要有一个工具化、平台化、范式化、产品化的算法平台,完成流水线式模型自动化生产,帮助我们自己和客户降本增效。最后,也非常欢迎感兴趣同学加入我们,一起在「中国制造 2025」发挥作用。
更多推荐
所有评论(0)