前言

目前人工智能非常火,大家所熟知的人脸识别、智能安防、自动驾驶等领域都在应用人工智能技术。但在自动驾驶这个行业中我们能用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拥有的大数据平台能有效降低人工标注的成本,但大数据的训练往往涉及到多机训练。多机训练已经经历了三个重要时期,我们定义为:史前时代、石器时代和现代文明。

史前时代

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

石器时代

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

现代文明

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

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

golang 大数据平台_Golang在Momenta大数据平台当中的应用相关推荐

  1. hadloop大数据平台论文_企业大数据平台建设过程中的问题和建议

    2 0 1 7 年 第 1 2 期 信 息 通 信 2017 (总第 180 期) INFORMATION & COMMUNICATIONS ( Sum . N o 180) 企业大数据平台建 ...

  2. 全民大数据时代已来 阿里数加平台详解

    文章讲的是全民大数据时代已来 阿里数加平台详解,业界流行一种说法,云计算与大数据就是一枚硬币的两面,相生相惜,不可分割.在当下互联网时代,数据的价值越来越受到社会的认可,并在今天,已然成为一种普惠资源 ...

  3. 大数据成败之“监”:美团数据质量监管平台这样搭建

    http://www.sohu.com/a/227310642_411876 背景 数据,已经成为互联网企业非常依赖的新型重要资产.数据质量的好坏直接关系到信息的精准度,也影响到企业的生存和竞争力. ...

  4. 七牛大数据平台的演进与大数据分析实践--转

    原文地址:http://www.infoq.com/cn/articles/qiniu-big-data-platform-evolution-and-analysis?utm_source=info ...

  5. 阿里大数据分析与应用(part4)--一站式大数据平台DataWorks

    学习笔记,仅供参考,有错必纠 文章目录 一站式大数据平台DataWorks 大数据开发平台-DataWorks DataWorks 的主要功能及作用 DataWorks基本操作 数据平台开发流程 数据 ...

  6. 大数据平台容量评估_大数据平台

    系统概述 大数据应用支撑平台提供数据支撑服务,对外发布数据服务进行数据价值变现.包含数据采集.数据治理.数据交换.数据存储.数据计算相关组件的搭建.验证,并建立大数据仓库. b)功能要求 1.数据采集 ...

  7. 智慧新泰时空大数据与云平台_智慧警务大数据云平台开发情报研判系统解决方案...

    智慧公安作为公安信息化开展到高级阶段的一种警务形态,"智慧公安"主要采用物联网.云计算.无线通讯.智能动态感知分析等新一代信息技术,将公安工作IT根底设备与物理设备.人际环境等高度 ...

  8. 数据产品经理:6大数据分析平台的“世界观”

    作者:李阳  来源公众号:数据有毒 GrowingIO.神策.诸葛IO.TalkingData.友盟.Google Analytics for Firebase是数据分析领域广为人知的几家综合性平台, ...

  9. 阿里飞天大数据平台正式亮相:国内最大计算平台

    昨日,阿里云飞天大数据平台在阿里云峰会上海站上正式亮相.据悉,这是中国唯一自主研发的大数据计 算引擎,单一引擎可将10万台服务器合为一体,也是全球集群规模最大的计算平台. 飞天大数据平台是当前国内规模 ...

最新文章

  1. 2005年你看过的,认为比较好的书,请大家一起来评评
  2. python数据分析需要数据库吗_python数据分析|使用python操作MySQL数据库
  3. linux下创建和删除软、硬链接
  4. 手机:导致手机发烫的原因有哪些?
  5. Oracle分页排序采坑记录
  6. 一些你可能不知道的 Python 小技巧!
  7. pjk static tp.php,在测试服上偶然出现 Error: Loading chunk 5 failed.
  8. mysql socket错误处理_Mysql 报错处理
  9. 1、CSS Float(浮动),2、CSS 布局 - 水平 垂直对齐,3、CSS 伪类(Pseudo-classes),4、导航栏
  10. 飞控计算机的作用,自动飞控计算机测试系统
  11. 移动硬盘计算机限制打不开,可移动磁盘打不开,教您移动硬盘打不开怎么办
  12. [Maven实战-许晓斌]-[第二章]-2.7-2.8 Mave安装的最优建议和安装小结
  13. win10文件服务器ssd当缓存盘,Win10怎么启用设备上的写入缓存|提高固态硬盘性能方法...
  14. 通过拖拽改变图片大小
  15. Java日常实习 京东/爱奇艺面经
  16. ios 内存深度优化_iOS内存优化
  17. 第一台通用计算机发明时间,第一台计算机发明于哪一年?
  18. gmssl 生成SM2证书、加密、解密、签名、验签
  19. Hadoop集群之HDFS伪分布式安装 HA(二)
  20. 【ROS仿真实战】获取机器人在gazebo位置真值的三种方法(三)

热门文章

  1. 七:Shell脚本:正则表达式与文本处理器三剑客grep,egrep, sed,awk
  2. HashMap原理以及TreeMap和Collections工具类(2022.6.10)
  3. 秋季当养肺,水果蔬菜来帮忙
  4. 基本算法4.1堆积木详细题解
  5. C++ primer plus 第六章课后习题
  6. Python之SYN数据包探测端口
  7. 孙溟㠭(展)为哥伦比亚总统‘阿尔瓦罗·乌里贝‘先生治名章篆刻印章
  8. Java 计算时间差
  9. 犹他大学计算机科学毕业,犹他大学计算机科学理学硕士研究生申请要求及申请材料要求清单...
  10. 图像视频伪造检测,针对DeepFake技术检测效果不佳