快速落地AI应用,你可以参考这些平台和方法

如果说前50年是AI的潜伏期,那么,2017就是人工智能的全面爆发年。我们在各行各业都可以看到AI的身影,包括各厂商推出的自研AI算法,以及满屏的基于AI的智能化探索和研究。无可否认的是,人工智能技术已经渗透到生活的各个领域当中。那么,在AI技术实际落地的过程中,会遇到什么样的瓶颈?基于深度学习的框架这么多,企业该如何选择最适合自己的那一条道儿?

12月9日UCloud收官战,聚焦AI技术的落地实践,通过高可用的异构AI计算平台构建过程、如何流程化地生产和发布AI产品、及深度学习性能优化工具和实现等内容分享,为开发者在快速落地AI应用和产品上提供了一些可用的方法和途径。

美团丁雪涛:美团配送智能网络规划系统

美团配送已承担日千万级单量的配送,为上百万商家和千万级用户提供服务。这其中如何建立配送网络的规划工具和规划策略至关重要,不过,仅仅依靠人工来对百万级别的网络进行调整,不但效率低成本高,而且标准不一。来自美团的资深技术专家丁雪涛,就美团配送网络的总体设计和规划、商家配送范围的策略和算法演进、区域规划的策略等内容展开了深入分享。

美团的整个配送网络整体设计包括三个核心概念:取件范围、送件范围以及配送范围。取件范围表示加盟商的势力范围,每一个商家对应一个独立的配送团队,势力范围即配送小哥能够为哪些地方取件;送件范围的目的是为配送团队规划一个整体可以到达用户的地;配送范围是指商家的配送范围,只有在这个配送范围内的用户才可以看到这样一个商家。

那么,美团怎样规划取件范围和配送范围呢?在取件范围的规划上,美团以效率、体验和公平为基准点,制定了生成划分方案。即基于聚类和多目标优化,来生成候选划分方案,通过迭代反馈,将生成的候选方案输入到仿真系统,通过真实历史订单骑手配置来模拟配送过程,得出效率和体验评估报告。

在配送范围的规划上,美团首先将配送场景划分为常规配送范围、恶劣天气范围、闲时配送范围、新商家范围等等,通过block决策、导航路线画图、中间指标、商家推荐、机器学习预估多种技术手段,分析出不同场景下最优的配送范围。

UCloud 宋翔:构建商用AI平台的挑战与思考

随后,UCloud 高级研发工程师宋翔,结合UCloud在AI PaaS产品研发过程中遇到的问题,以及AI平台构建过程中的挑战与解决方案,为现场参会者深入讲解了如何构建一个高可用的异构AI计算平台。

宋翔表示,目前业界主流的AI算法和框架非常多,算法包括VCG、LSTM、RestNet、Fast-RCNN等等,而框架又有TensorFlow、Keras、Caffe、MXNet等,其组合种类更加让人眼花缭乱。那么,如何在繁杂的组合里选择合适的算法和框架?宋翔分享了AI平台构建需要考虑的五大要素:算法兼容性、平台扩展性、集群化、纵向拓展、易用性,用户可以以这五大要素为基准点,根据平台构建的目的来搭配最适合的算法和框架。

基于以上五大要素,UCloud构建了自有的AI基础平台,里面包含AI训练和AI在线服务两大核心功能。如下图所示,最上层是训练日志和TensorBoard框架,下面接着就是图形化界面,这里面主要是完成一些基本的部署操作,右侧是Python SDK接口,接入层下面即为平台核心的AI Train和AI Service,最底层封装了所有的硬件和存储接入。这个平台看起来虽然简单,但基本上包含了AI商用平台的常用功能和接口,可以说是麻雀虽小,五脏俱全。

谈起AI平台的实现过程,宋翔表示,AI框架的构建最重要的两点就是保障平台的兼容性和可靠性。在兼容性上,UCloud采用了容器封装和数据接入两种方法实现环境的分离 ,将不同功能的AI框架、依赖环境、硬件设备、存储分隔开来,让不同的模块实现不同的功能。可靠性的实现上,UCloud主要采用负载均衡、请求调度算法优化、性能监控以及高可用的部署等方式,完成全局的弹性扩容。

值得一提的是,UCloud在GitHub开源了自身基于AI基础平台的公共镜像库和SDK,用户可以通过开源的SDK,将UCloud开源的镜像库打包成自身可以应用的镜像,开发者可以在本地镜像使用,也可以放在UCloud的在线服务或者说训练的平台,这些都是完全兼容的。感兴趣的同学也可以访问链接 https://github.com/ucloud/uai-sdk/,进行深入了解和演练。

UCloud范融:如何轻装上阵玩转AI

在产品化AI服务的过程中,普遍都会遇到基础资源管理、使用、封装等等问题,如何提升AI产品研发效率,简化非核心业务的研发流程是各个公司最关心的问题之一。来自UCloud高级研发工程师范融,现场结合动手实践,详细分享了如何流程化地生产和发布AI产品,节省开发时间和成本。

本地开发AI之前,开发者需要提前配置基础的环境,包括CPU、GPU的支持,以及深度学习框架准备和科学计算库的加载等,基础环境配置完成之后,即可进行开发工作。下图为UCloud AI本地开发的整个过程,下层是基础环境的配置,上面白框是应用代码部分,这部分主要解决两个的问题,一个是数据的训练,一个是数据的预测。一般来说预测网络和训练网络是类似的,如果预测模型和预测程序不止在本地运行,则需要加一个Web服务框架。

为了简化应用代码的部署和构建过程,UCloud提供了一些开源的工具和框架(上图蓝色框架的所有内容),包括辅助工具里面的代码打包和自动部署工具,开发者也可以在UCloud提供的SDK里面免费下载使用,省去许多部署烦恼。

AI本地训练虽然安全性比较高,但在资源申请和迭代开发方面具有一定的局限性,例如资源扩容较慢,多任务穿行是等待时间较长,调参困难等。范融认为,合理的将部分AI Train放在云端实现,可以有效的完成云端资源的按需申请、多任务并行处理以及任务参数记录等工作。在数据的上云实践方面,UCloud提供了比较完善的工具和方法,用户只需通过代码改写、打包镜像、上传训练数据以及启动任务四个步骤即可轻松上云。

Intel何普江:深度学习性能优化工具及实践

UCloud的两位讲师分享了AI落地实践的一些平台构建思路和方法,来自Intel何普江,则现场分享了基于深度学习的性能优化工具和实践经验,包括在高性能计算库(MKL和MKL-DNN)和框架(Intel发行版Caffe)的使用、注意事项和一些经验,以及基于CPU的高效的RNN设计实现过程。

Intel数学核心函数库(MKL)是一套高度优化、线程安全的数学例程、函数,能加速机器学习、科学研究、工程、财务和设计等领域的数学处理,并提供了稠密及稀疏线性代数 (BLAS, LAPACK, PARDISO), FFTs, Vector Math, Summary Statistics 等支持,具有标准的API以及高度优化的特点,最大限度发挥多核心和 SIMD指令的优势。

与MKL不同的是,MKL-DNN是一个开源的深度学习框架。下图为使用Intel MKL-DNN进行推理的过程,有两种方式可以实现这个过程,一种是训练好的模型,直接进入模型转换器,然后再用topo.txt(网络拓扑)生成Inference.cpp(基于MKL-DNN的Inference代码,在初始化的时候会加载weights.bin),这套逻辑需要用到Intel自身的网络拓扑模型的中间表示形式。另外一种方式是待topo.txt生成后,再用简单的代码转换器,实现轻量级的InferenceFramework.cpp(轻量级Inference框架,可以解析topo.txt并加载weights.bin)。

Caffe是一个清晰、可读性高、快速的深度学习框架,Intel发行版的Caffe同样也是开源框架,它基于BAIR/BVLC Caffe改进而来,Intel在BAIR/BVLC Caffe的基础上添加了流行检测网络的支持(如SSD),同时,也支持多节点训练以及CAFFE、MKL2017和MKLDNN三种引擎。在RNN的优化上,何普江介绍到,Intel主要对高效的GEMM实现、一些小操作的合并、并行化元素级操作、合理的数据排布以及低精度表示上进行了系列改进实践,优化之后的CPU性能基本上可以比GPU高甚至高出不少。

写在最后

这次分享从平台、方法和工具等不同角度,全面诠释和讲解了开发者该如何从0开始快速落地AI产品。虽然目前人工智能技术整体都还处在探索阶段,不过相信大家定能从这次分享中吸取精华,有所收获,在并将其应用在未来的开发者之路上。UCan下午茶2017系列沙龙,在走过了北京、上海、深圳、广州等一系列城市后,于美丽的杭州湖畔完美收官。

UCloud技术
UCloud技术

分享UCloud的技术创新、架构设计、实践总结,内容同步于微信公众号“UCloud技术公告牌”

https://www.ucloud.cn/
专栏二维码
产业机器学习深度学习应用IntelUCloud美团
2
相关数据
英特尔机构

英特尔是计算创新领域的全球领先厂商,致力于拓展科技疆界,让最精彩体验成为可能。英特尔创始于1968年,已拥有近半个世纪产品创新和引领市场的经验。英特尔1971年推出了世界上第一个微处理器,后来又促进了计算机和互联网的革命,改变了整个世界的进程。如今,英特尔正转型成为一家数据公司,制定了清晰的数据战略,凭借云和数据中心、物联网、存储、FPGA以及5G构成的增长良性循环,提供独到价值,驱动日益发展的智能互联世界。英特尔专注于技术创新,同时也积极支持中国的自主创新,与产业伙伴携手推动智能互联的发展。基于明确的数据战略和智能互联全栈实力,英特尔瞄准人工智能、无人驾驶、5G、精准医疗、体育等关键领域,与中国深度合作。面向未来,英特尔致力于做中国高价值合作伙伴,在新科技、新经济、新消费三个方面,着力驱动产业协同创新,为实体经济增值,促进消费升级。

https://www.intel.com/content/www/us/en/company-overview/company-overview.html
相关技术
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

调度技术

调度在计算机中是分配工作所需资源的方法。资源可以指虚拟的计算资源,如线程、进程或数据流;也可以指硬件资源,如处理器、网络连接或扩展卡。 进行调度工作的程序叫做调度器。调度器通常的实现使得所有计算资源都处于忙碌状态,允许多位用户有效地同时共享系统资源,或达到指定的服务质量。 see planning for more details

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

规划技术

人工智能领域的「规划」通常是指智能体执行的任务/动作的自动规划和调度,其目的是进行资源的优化。常见的规划方法包括经典规划(Classical Planning)、分层任务网络(HTN)和 logistics 规划。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

MXNet技术

MXNet是开源的,用来训练部署深层神经网络的深度学习框架。它是可扩展的,允许快速模型训练,并灵活支持多种语言(C ++,Python,Julia,Matlab,JavaScript, Go,R,Scala,Perl,Wolfram语言)

长短期记忆网络技术

长短期记忆(Long Short-Term Memory) 是具有长期记忆能力的一种时间递归神经网络(Recurrent Neural Network)。 其网络结构含有一个或多个具有可遗忘和记忆功能的单元组成。它在1997年被提出用于解决传统RNN(Recurrent Neural Network) 的随时间反向传播中权重消失的问题(vanishing gradient problem over backpropagation-through-time),重要组成部分包括Forget Gate, Input Gate, 和 Output Gate, 分别负责决定当前输入是否被采纳,是否被长期记忆以及决定在记忆中的输入是否在当前被输出。Gated Recurrent Unit 是 LSTM 众多版本中典型的一个。因为它具有记忆性的功能,LSTM经常被用在具有时间序列特性的数据和场景中。

推荐文章
暂无评论
暂无评论~