人工智能大数据平台中Golang的应用实践

2018 年 9 月 27 日 MomentaAI

分享人:薛磊,Momenta资深研发工程师,前Sun中国工程研究院工程师,专注于分布式系统、存储系统、容器等技术,目前从事深度学习训练平台的基础架构研发。热爱开源和分享,目前是Kubeflow member及多个开源项目contributor。


Momenta成立于2016年,是世界顶尖的自动驾驶公司。其核心技术是基于深度学习的环境感知、高精度地图、驾驶决策算法。在产品方面,Momenta已经形成服务多个场景的自动驾驶解决方案,包括高速环路、城市道路以及泊车场景的高度自动驾驶,目前正围绕不同级别自动驾驶方案与车企和一级供应商展开合作。

前言

目前人工智能非常火,大家所熟知的人脸识别、智能安防、自动驾驶等领域都在应用人工智能技术。但在自动驾驶这个行业中我们能用Go语言做什么事情?今天分享的主要是人工智能数据流的流转方式,也是Golang在Momenta大数据平台当中的应用。


Momenta大数据平台

Momenta的目标是打造自动驾驶大脑,基于深度学习和海量数据,Momenta已经形成服务多个场景的自动驾驶解决方案,解决了逆光、桥、隧道、雨天、夜间、匝道等复杂道路场景。


在实现自动驾驶的过程中,深度学习的算法在训练模型时得有基础数据作支撑,需要大量的图像数据。


借助团队极强的研究能力与工程能力,Momenta已经建立起大数据平台、大计算平台、大测试平台三大基础平台,从而实现大数据与AI算法的反馈闭环——以强大的计算资源处理丰富的海量数据,得到更精准、更可靠的算法模型


其中,大数据平台能够完美处理自动驾驶领域的数据流,具体而言,便是处理收集数据、筛选数据、数据标注、训练模型、模型测试、封装发布的整个过程。

人工智能数据流

数据筛选

上图是车辆识别的一个典型,富有中国特色和北京特色——电动车,Momenta目前对电动车、自行车、人力三轮车、三轮电动车等,都能进行识别,并且达到很高的准确度。在人工智能数据流中,数据筛选这一步骤主要有以下作用:


  • 降低成本:无需重复标注已经可以很好识别的素材,降低标注成本,模型运行结果可用于辅助标注;

  • 提高模型训练效率:去除无效素材,提取包含识别目标的素材,提高训练效率;

  • 提高模型训练边际效用:通过对极端情况(corner case)的数据进行针对性训练,可以有效的提高模型性能。

数据标注

经过筛选之后,会有部分图片需要人工标注。基于极强的工程能力,Momenta开发了在线远程众包数据标注系统,实现可视化操作,即便标注人员不懂代码也能远程完成各类标注任务。数据标注的作用主要是提高模型训练精度, 获得更多标注图片,提取包含识别目标的素材,提高训练精度。

模型训练

上图是模型训练的流程图,其中,在数据导入、模型训练和模型验证Momenta都做出了极大的创新。


  • 数据导入:支持多种数据类型,支持多批次数据合并,支持多种组合规则;


  • 模型训练:多机多卡并发训练,共享式集群、支持多人多任务同时进行,支持多种主流训练框架,所有任务由 Kubernetes 自动调度完成;


  • 模型验证:训练所得模型自动在验证集上进行验证,通过验证的模型将进入模型仓库供后续流程使用。


与传统方式相比,Momenta采用的共享集群调度让用户(内部的算法研发人员)可以编写任务描述和训练脚本,而管理员通过网页界面进行集群管理和工作调度。极大地节省人工成本,提高资源利用率,实现集中性管理,提高安全性。

Golang 在人工智能数据流中的应用

Golang在人工智能数据流中主要应用在筛选系统、标注系统和训练系统。

筛选系统

Momenta每天可能需要处理几千万张图片,数据量巨大,如果逐一进行标注将给存储带来很大的挑战。


解决这个问题的方法就是筛选系统,通过筛选系统,我们将大的数据集拆分为小的单元,每个单元中包含小的任务,而每个单元对应一个 GPU,使用 GPU进行智能筛选。最终只有约10%的图片是需要进行标注,大大减少了数据标注的成本。

标注系统

 Momenta为内部算法研发人员服务的标注系统,可以实现用户管理、任务分发、计费、结算和自动审核。自动审核是比较特殊的,在一般场景和服务中用得比较少,自动审核是指用Momenta的模型来证实用户(在平台上兼职标注的人员)的标注结果是否符合需求或预期,主要是应付较大的用户访问,特别是节假日的时候。(节假日期间平台的用户比较闲,会希望在平台上赚点零花钱。)

数据筛选

训练系统是基于K8S搭建使用的,能够实现自己的调度。K8S作为容器的调度平台,默认是调度一个pod在不同的机器上面运行的,但是做多机训练可能需要同时使用多个Pod,每个机器上面一个Pod。这样就需要相应的管理以及生命周期的维护,我们这套系统是基于K8S做的开发,承担这样的工作。


机器学习场景下Golang的发展


如果此前没有接触过机器学习,如何能够加入人工智能的浪潮中,学习并进入机器学习领域呢?


Go Notebooks、Caffe和Caffe2,TensorFlow-Go几个工具都是很好的工具。接下来将演示如何用TensorFlow的Golang binding做一个简单工具。

点击边框调出视频工具条
   

基于已有模型(他人训练的模型),对图片进行加载,随后可输出带有标记框的图片,也是模型识别的效果。

所用的代码参考如下:

建议可尝试用自己的模型或是TensorFlow官方模型形成小的应用,例如人脸识别。但官方公布的模型精度都不高,原因是数据集较小,Momenta拥有的大数据平台能有效降低人工标注的成本,但大数据的训练往往涉及到多机训练。多机训练已经经历了三个重要时期,我们定义为:史前时代、石器时代和现代文明

史前时代

多机训练最原始的阶段是直接登录到某几台机器,安装各类训练框架、驱动和网络配置等,在每台机器上跑训练任务,很难进行优化。容器出现后,可被用来避免某些重复的配置,让多机训练进入了下一个时代——石器时代。

石器时代

借助Docker 将智能框架进行封装,在每台机器上面运行命令。

现代文明

在现代文明阶段,所有调度和管理工作都通过容器进行,可以同时管理几百台机器。能够进入这个阶段主要是靠众多开源社区的努力和合作,比如 TensorFlow和Kubernetes的强强联合便诞生了Kubeflow。


KubeFlow其实是一些工具的集成或是一些框架,它有官方的自定义资源以及Caffe2的资源。通过KubeFlow,用户只需要敲几行命令便可进行多机的训练,也可以实现简单的模型训练。



END


Momenta全球热招中!期待百里挑一的你!

校园招聘火热进行中,点击图片了解详情↓↓


点击「阅读原文」,查看热招岗位

登录查看更多
5

相关内容

Momenta 定位于打造自动驾驶大脑,核心技术是基于深度学习的环境感知、高精地图和驾驶决策算法,产品包括不同级别的自动驾驶方案,以及衍生出的大数据服务。Momenta 的战略是量产自动驾驶(Mpilot)与完全无人驾驶(MSD)两条腿走路,通过数据、数据驱动算法和两者之间的迭代闭环,推动自动驾驶技术落地量产,并最终实现无人驾驶。
专知会员服务
121+阅读 · 2020年3月26日
【阿里技术干货】知识结构化在阿里小蜜中的应用
专知会员服务
96+阅读 · 2019年12月14日
【大数据白皮书 2019】中国信息通信研究院
专知会员服务
133+阅读 · 2019年12月12日
【白皮书】“物联网+区块链”应用与发展白皮书-2019
专知会员服务
90+阅读 · 2019年11月13日
2019年人工智能行业现状与发展趋势报告,52页ppt
专知会员服务
115+阅读 · 2019年10月10日
【CPS】CPS应用案例集
产业智能官
81+阅读 · 2019年8月9日
【工业智能】人工智能在智能制造中的应用
产业智能官
22+阅读 · 2019年1月11日
蚂蚁金服微服务实践(附演讲PPT)
开源中国
17+阅读 · 2018年12月21日
《人工智能转型手册》,吴恩达 著
人工智能学家
20+阅读 · 2018年12月14日
领域应用 | NLP 和知识图谱:金融科技领域的“双子星”
开放知识图谱
21+阅读 · 2018年8月12日
解析京东大数据下高效图像特征提取方案
京东大数据
4+阅读 · 2017年9月29日
【人工智能架构】深度解密京东登月平台基础架构
产业智能官
11+阅读 · 2017年9月26日
Arxiv
4+阅读 · 2018年5月21日
Arxiv
5+阅读 · 2018年5月1日
Arxiv
3+阅读 · 2018年2月24日
Arxiv
7+阅读 · 2018年1月31日
Arxiv
6+阅读 · 2017年12月2日
VIP会员
相关资讯
【CPS】CPS应用案例集
产业智能官
81+阅读 · 2019年8月9日
【工业智能】人工智能在智能制造中的应用
产业智能官
22+阅读 · 2019年1月11日
蚂蚁金服微服务实践(附演讲PPT)
开源中国
17+阅读 · 2018年12月21日
《人工智能转型手册》,吴恩达 著
人工智能学家
20+阅读 · 2018年12月14日
领域应用 | NLP 和知识图谱:金融科技领域的“双子星”
开放知识图谱
21+阅读 · 2018年8月12日
解析京东大数据下高效图像特征提取方案
京东大数据
4+阅读 · 2017年9月29日
【人工智能架构】深度解密京东登月平台基础架构
产业智能官
11+阅读 · 2017年9月26日
相关论文
Arxiv
4+阅读 · 2018年5月21日
Arxiv
5+阅读 · 2018年5月1日
Arxiv
3+阅读 · 2018年2月24日
Arxiv
7+阅读 · 2018年1月31日
Arxiv
6+阅读 · 2017年12月2日
Top
微信扫码咨询专知VIP会员