人工智能云平台解决方案(小米人工智能云平台)

属于小米的开源黄金期到了。崔宝秋认为,技术开源既可以让人站在巨人肩膀上,反过来也能为巨人指方向。

撰文 | 宇多田

从现在来看,小米早已不是一家硬件公司。

从 2015 年小米初次披露 IoT 战略,再到 2017 年末雷军宣布小米 IoT 已经成为全球最大智能硬件 IoT 平台,让 IoT、人工智能和大数据成为这家公司的新焦点。

因此,尽管手机及其硬件生态链被看作是小米取得成功的标志,但在小米内部悄然组建起的一支 1000 多人的技术队伍逐渐露出水面,成为小米将 AI 与 IoT 作为「十年战略」基石后的中坚力量。

虽然这支为小米提供技术平台支持的团队更多是扮演幕后英雄的角色,但赢得大众口碑的 AI 音箱小爱同学,以及小米手机的背景虚化及美颜功能等等 2C 产品及应用,均出自该团队工程师之手。

「我们负责关于小米在 AI、大数据以及云计算方面的所有工作,相当于公司的互联网业务背后的工程技术与运维部门。同时,这些技术正在初步被导入到小米的多个应用场景中,手机就是用的最多的一种。」小米集团人工智能与云平台副总裁崔宝秋在接受机器之心采访时表示。

人工智能云平台解决方案(小米人工智能云平台)

现在,建立在海量数据、AI 产品经验以及云服务能力基础上,对于热爱开源、在 2012 年因为「小米是一家移动互联网公司」而加入到小米公司的崔宝秋来说,开源开放的一个黄金时机到了。

2018 年 6 月 28 日,小米正式宣布对外开源自己的移动端深度学习框架 MACE。这个框架此前已经被小米技术团队在自家手机的多个功能中做了应用,其中就包括相机的人像模式、场景识别,以及图像超分辨率等等。

再把时间再推回至 2017 年底,崔宝秋就曾在一个生态链企业的 CTO 技术峰会上强调,「小米的人工智能与云平台团队不仅仅是小米的团队,也是我们在座所有公司的人工智能与云平台团队。」

开源与释放能力,近年来逐渐成为小米技术团队投入最大的事情之一。

崔宝秋不止在一个公开场合强调过,小米想在开源上做一些事情,不仅仅是参与多种开源项目,同时也积极地将一些小米自研的项目开源,帮助把中国开源项目和开源社区推向世界。在云计算和大数据时代如此,在 AI 时代更是如此。

「今天 AI 如果没有开源软件,很多 AI 公司可能还处在一个寒冬阶段。」崔宝秋再次谈到开源在商业方面无可替代的价值,

「我过去两年与硅谷公司负责 AI 的一些领导、管理者交流,开源一方面可以让他们相互验证对方真正的能力,是不是真的如他们自己号称的效果那么好;

而另外一个非常实用的原因,是可以让这些 AI 企业在某些领域迅速占据领先优势。目前在 AI 落地的很多场景中,大家都没有明显优势,这些巨头要通过开源快速打造自己的优势。」

但是他认为,目前很多公司的开源项目其实是存在一些问题的,并没有与开源社区进行深入融合,共同进步。

「之前很多公司在开源上犯了一个错误,他们把一些开源项目拿来用,用了之后觉得很爽,并按照自己的特定需求做了大量改动,但是最终这些改动因为各种原因没有被贡献给开源社区,要么是公司不愿意把自己的代码贡献回社区,要么是公司不愿意再花功夫把自己的改动通用化,要么是自己的改动不被社区接收。

如此下去,随着开源社区这个巨人的大踏步前行,这些公司的代码迟早会被开源社区抛弃,最后造成的后果就是这些公司的代码维护成本越来越高,包袱越来越重,无法长期享用开源的红利。」

因此,崔宝秋根据十几年领导开源项目的经验,把开源的意义与真正的开源方式总结为一句话:

「除了要站在巨人肩膀上,还要为巨人指方向。」

以下为机器之心整理精选的采访实录(做了不改变原意的删减):

问:为什么要做开源移动端深度学习框架 MACE(Mobile AI Compute Engine)?

答:小米不仅仅是一家智能手机公司、更是一家以手机、智能硬件和 IoT 平台为核心的互联网公司,而这些设备面向 2C 市场。所以很多人工智能的预测、推理等能力,需要在端上运行,那么如何在端上快速的运行 AI 能力?

所以我们开发了 MACE 项目来解决此项问题。MACE 框架在 2017 年 12 月 15 日正式上线,已经应用到小米手机。这款产品支持高通、MTK、澎湃等芯片的异构计算加速,也支持 TensorFlow,Caffe 等框架训练好的模型。

为什么我们要做这款开源项目?6 年前,我在公司制定了开源战略的五大原则。小米内部也在倡导开源、拥抱开源,而开源也是小米工程文化的一个重要组成部分。小米在发展过程中,也享受了开源带来的便利,可以说是站在巨人的肩膀上,因此 MACE 也是对开源社区的一种回馈。这整体上反映了小米开放、开源、共享的态度,小米也希望通过 MACE 来赋能中国的 AI 生态和 AI 产业。

二是在解决智能手机等移动端相关问题的过程中,小米发现当前已经存在的同类产品(比如说 TensorFlow、TensorFlow Lite、Caffe)在端上的 AI 推理等能力等无法满足需求,无论是对内存、性能的要求还是对 GPU、CPU 和 DSP 的支持方面。同时存在沟通成本高,定制困难等一系列问题。这也是我们要自己开发 MACE 的一个理由。

问:MACE 主要支持哪些任务的完成?它们与小米业务的关系是什么?

答:MACE 主要支持深度学习的模型在移动端的推断,包括图像、NLP 等领域的 AI 模型。MACE 通过将小米业务中的深度学习模型部署在移动端上,帮助小米端上产品提升了用户体验(速度快),降低了成本(消耗资源少),同时也保护了用户的隐私(加密)。

MACE 成功地支持了很多小米 AI 产品,如小米相机内置的 AI 单摄背景虚化、场景识别,MIUI 10 的应用预加载功能,以及即将推出的机器翻译。可以说,MACE 为小米 AI 产品的快速落地保驾护航。

问:MACE 相比于 TensorFlow Lite 等其他端框架有哪些特点?

答:MACE 最重要的特点就是支持多种设备。MACE 不仅可以运行在移动端 的 CPU 上,还可以利用 GPU、DSP 完成更高效的计算。并且,MACE 同一类设备的不同架构。MACE 在这些设备上的速度都做过深度优化。

此外,MACE 通过加速模型初始化、解决 GPU 卡顿、降低内存占用等技术提升了用户体验。MACE 在用户隐私方面也做了很多工作,保证产品使用的模型很难被破解。这些特点使 MACE 更容易、更好地将不同类型的 AI 产品部署在小米丰富的设备中。

问:除了 MACE,小米还有其他什么代表性的 AI 开源项目吗?

除了 MACE,小米还有 AI 框架性能评测项目 (MobileAIBench)。

近几年,设备上的深度学习应用越来越普遍。在应用中部署深度学习模型给开发者带来挑战。开发者们需要选择一个合适的框架,选择性地利用量化压缩技术与模型精度进行权衡,最终将模型部署到设备上。对比测试这些框架,并从中选择是一个繁琐耗时的工作。

MobileAIBench 是一个端到端的测试工具,用于评测同一模型在不同框架上运行的性能表现,希望测评结果可以提供给开发者一些指导。

问:小米是如何推动鼓励研发人员进行开源项目的?

答:小米从一开始就对开源持鼓励和支持的态度,成立开源委员会,推广开源文化,鼓励研发人员参与开源项目和开源社区的活动;鼓励研发人员开源自研的项目。

参与开源项目使得研发人员有更多机会和公司外的技术人员进行更广泛和深入的协作和交流,对研发人员的能力可以起到促进作用。

将自己的代码改进提交到开源社区或将整个自研项目开源出去,能够让自己的代码和成果在一个更大范围得到检验和认可,提高研发人员在业界的影响力。

小米很好的将开源与工作结合在一起,以业务需求为导向,让研发人员参与与业务相关的开源项目,不会因担心参加开源影响工作而对其限制,也不会只是为了开源而开源,从一开始对采用开源系统就是一个非常务实的态度。

问:小米开源与其他一些纯技术公司的开源项目有什么不一样?

答:我几年前总结过开源的三股力量:

一种就是个人爱好者,他们中有的人甚至可能不是计算机专业出身,不从事计算机行业,但是用平时的业余时间大力开发一些软件。

第二类,没有直接商业模式的开源机构,包括一些互联网公司,以及一些高校。

第三类,有开源商业模式的公司,有些公司利用商业软件打造自己的一整套解决方案,包括软件、硬件、芯片。这些公司会大力拥抱开源,但是他们的打法和没有直接开源商业模式的企业机构是不同的。

这三种力量在过去扮演了很重要的角色,在 AI 时代同样也会扮演非常重要的角色。

而在这开源的三种力量中,小米属于第二种。作为一家互联网公司,小米在很多领域都会参与开源,这与像百度、雅虎、Facebook 等公司没有什么不同。

问:开源项目会给移动芯片的开发与使用带来什么影响?

答:今天我们的大部分开源工作与移动芯片的开发还没有直接关系。

但是 MACE,就是我们移动端的深度学习框架,这个会跟未来的芯片挂钩。譬如我们支持高通的,支持 MTK 的,我们希望未来支持更多的芯片。

开源「众人拾柴火焰高」,不仅仅在软件方面大家都贡献,硬件大家也应该都支持,这样才能真正提升中国的 AI 产业链价值。

问:小米开源对自己有什么好处?

答:一个重要的开源项目往往有几十万行、几百万行代码,一个公司拿来用,用的很顺利。这个是最直接的好处,简单说就是站在巨人肩膀上去做事情。

当下很多大数据公司、云技术公司,其实就是把开源的东西拿来加了些自己的东西,然后就去卖产品、卖服务了。这就是好处——有个半成品,只需要稍微加工一些,就能用了。

第二个好处,也是我认为最重要的好处之一,就是真正降低软件的开发成本与维护成本。用开源软件不单纯是「我不懂拿来用」,而是去参与和深度拥抱。

当然还有其他好处,譬如吸引人才,激发员工的工作热情。对于小米员工来说,他们会觉得成就感比较强,能力被社区认可,被行业认可,他自己的能力也可以快速提升。

问:现在各大公司都在搞开源,但是在开源的过程中会出现哪些问题?

答:既然每家公司都有自己的需求——站在巨人肩膀拿来用的感觉很好,但长期来看,「开源」这个巨人是要大踏步往前走的。

之前很多公司在开源上犯了一个错误,他们把一些开源项目拿来用,用了之后觉得很爽,并按照自己的特定需求做了大量改动,但是最终这些改动因为各种原因没有被贡献给开源社区,要么是公司不愿意把自己的代码贡献回社区,要么是公司不愿意再花功夫把自己的改动通用化,要么是自己的改动不被社区接收。

如此下去,随着开源社区这个巨人的大踏步前行,这些公司的代码迟早会被开源社区抛弃,最后造成的后果就是这些公司的代码维护成本越来越高,包袱越来越重,无法长期享用开源的红利。

社区的力量非常大,一个公司力量再强,可能也比不过社区。如果公司的代码被抛弃,版本不能合并的话,那么跟社区版本就是两个不同的文件了,这样维护成本就会非常高。

因此,真正深度拥抱开源,是应该跟社区共同成长,公司与社区这两个分支应该相互交融,前者真正参与社区,让社区接受这些,这样才能最终降低公司软件的开发成本与维护成本。

所以我觉得,开源的意义在于,「除了站在巨人肩膀上,还要为巨人指方向」。

问:开源项目有没有一些比较有意思的反馈?

答:比较让我感动的是,会有一些「良心制作」,「看到了代码会感动」的反馈给到我们这里。而且从开源项目的成效来看,很多竞争对手也在用我们的开源软件。

譬如,之前我们的运维部开源了一款互联网企业级监控系统软件 Open-Falcon,推出后就被大大小小 200 多家公司拿去用。

目前,包括滴滴、美团、京东等公司也在用小米的一些开源软件,大家在社区里提 bug,报 bug,提需求,贡献代码都是常态。

问:IoT 设备的数据有哪些特点?现在小米会如何利用 IoT 设备数据?

答:IoT 设备的数据有着大容量,多样性,高速性,真实性的特点。

这几个大数据的 4V 特征带来了极大的价值性,尤其是多种设备信息融合后。

另外,传感器数据的大容量伴随着价值密度低,这对存储和数据挖掘带来巨大挑战:必须大幅降低成本,开发杀手应用,才能让 IoT 的数据服务在商业上变得可行。

实时性也是新的挑战。

工业物联网、个人穿戴设备的数据服务,一般高度依赖于实时场景。实时数据流处理的挑战,再加上 IoT 设备与数据的易变性,使数据处理和价值挖掘变得更加困难。

小米大数据部受益于先行一步的小米 IoT 战略,以及全球最大量的 IoT 设备数据,很早就开始探索 IoT 数据的价值挖掘。目前这些数据主要用于提升对用户的个性化服务和人工智能的智能水平。

答:小米在哪些设备及应用上会采用深度学习算法,小米会对这些算法做一些创新或研究吗?

问:小米在很多设备上都采用了深度学习,比如小米手机、小米电视、小米 AI 音箱服务以及米免故事机等生态链设备,在搜索与推荐、电商、金融等应用上也广泛采用深度学习算法。

AI 技术落地是一件技术与需求结合的过程,只有深刻理解技术的边界,才能将技术以更好的形态落地到产品中去。所以小米对视觉、NLP 等技术都会进行研究。不管是与其他 AI 算法厂商合作,还是自研算法,都会投入大量的研究精力。

在创新方面,小米作为直接与用户打交道的公司,尤其在硬件方面,对用户需求和理解上非常擅长,我们知道手机拍照或智能家居的痛点。因此,我们能够做出创新。

例如 AI 场景相机,已全部落地小米 MIX2S、小米 6X、小米 8 全系、小米 Max3、PocoPhone F1(包含脏镜头检测);AI 单摄背景虚化已落地今年全部已发布新机,单摄背景虚化中的多人合影优化、夜景虚化等更是受到印度用户好评。

问:哪些 AI 算法适合在 IoT 设备端做推理,哪些 AI 算法在云端做推理?

答:AI 算法部署到端上的主要好处是速度快,体验好、成本低。如一些语音识别功能或手机拍照需要实时性因此需要做在端上。在功耗和体验允许的情况下部署在端上也可以节省部署服务器的成本。

例如数据量比较大需要比较高的计算能力或者功耗要求比较高的产品,比如企业大数据分析、明星脸识别、语音识别这类适合在云端完成。

推荐阅读

雷军至今发布的最重磅AI产品, 不是手机和音箱, 而是小米AI研发团队与技术伙伴们 | 独家

发表评论

登录后才能评论