快速落地AI应用 你可以参考这些平台和方法 | U刻
  • 快速落地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技术公告牌”微信公众号;或搜索微信ID:ucloud_tech进行关注。