深度学习服务介绍
机器学习与人工智能,相信大家已经耳熟能详,随着大规模标记数据的积累、神经网络算法的成熟以及高性能通用GPU的推广,深度学习逐渐成为计算机专家以及大数据科学家的研究重点。近年来,无论是图像的分类、识别和检测,还是语音生成、自然语言处理,甚至是AI下围棋或者打游戏都基于深度学习有了很大的突破。而随着TensorFlow、Caffe等开源框架的发展,深度学习的门槛变得越来越低,甚至初中生都可以轻易实现一个图像分类或者自动驾驶的神经网络模型,但目前最前沿的成果主要还是出自Google、微软等巨头企业。
Google不仅拥有优秀的人才储备和大数据资源,其得天独厚的基础架构也极大推动了AI业务的发展,得益于内部的大规模集群调度系统Borg,开发者可以快速申请大量GPU资源进行模型训练和上线模型服务,并且通过资源共享和自动调度保证整体资源利用率也很高。Google开源了TensorFlow深度学习框架,让开发者可以在本地轻易地组合MLP、CNN和RNN等模块实现复杂的神经网络模型,但TensorFlow只是一个数值计算库,并不能解决资源隔离、任务调度等问题,将深度学习框架集成到基于云计算的基础架构上将是下一个关键任务。
除了Google、微软,国内的百度也开源了PaddlePaddle分布式计算框架,并且官方集成了Kubernetes等容器调度系统,用户可以基于PaddlePaddle框架实现神经网络模型,同时利用容器的隔离性和Kubernetes的资源共享、自动调度、故障恢复等特性,但平台不能支持更多深度学习框架接口。而亚马逊和腾讯云相继推出了面向开发者的公有云服务,可以同时支持多种主流的开源深度学习框架,阿里、金山和小米也即将推出基于GPU的云深度学习服务,还有无数企业在默默地研发内部的机器学习平台和大数据服务。
云深度学习平台设计
云深度学习平台,我定义为Cloud Machine Learning,就是基于云计算的机器学习和深度学习平台。首先TensorFlow、MXNet是深度学习框架或者深度学习平台,但并不是云深度学习平台,它们虽然可以组成一个分布式计算集群进行模型训练,但需要用户在计算服务器上手动启动和管理进程,并没有云计算中任务隔离、资源共享、自动调度、故障恢复以及按需计费等功能。因此我们需要区分深度学习类库以及深度学习平台之间的关系,而这些类库实现的随机梯度下降和反向传播等算法却是深度学习应用所必须的,这是一种全新的编程范式,需要我们已有的基础架构去支持。
云计算和大数据发展超过了整整十年,在业界催生非常多优秀的开源工具,如实现了类似AWS IaaS功能的OpenStack项目,还有Hadoop、Spark、Hive等大数据存储和处理框架,以及近年很火的Docker、Kubernetes等容器项目,这些都是构建现代云计算服务的基石。这些云服务有共同的特点,例如我们使用HDFS进行数据存储,用户不需要手动申请物理资源就可以做到开箱即用,用户数据保存在几乎无限制的公共资源池中,并且通过租户隔离保证数据安全,集群在节点故障或者水平扩容时自动触发Failover且不会影响用户业务。虽然Spark通过MLib接口提供部分机器学习算法功能,但绝不能替代TensorFlow、Caffe等深度学习框架的作用,因此我们仍需要实现Cloud Machine Learning服务,并且确保实现云服务的基本特性——我将其总结为下面几条:
  • 屏蔽硬件资源保证开箱即用
  • 缩短业务环境部署和启动时间
  • 提供“无限”的存储和计算能力
  • 实现多租户隔离保证数据安全
  • 实现错误容忍和自动故障迁移
  • 提高集群利用率和降低性能损耗
相比于MapReduce或者Spark任务,深度学习的模型训练时间周期长,而且需要调优的超参数更多,平台设计还需要考虑以下几点:
  • 支持通用GPU等异构化硬件
  • 支持主流的深度学习框架接口
  • 支持无人值守的超参数自动调优
  • 支持从模型训练到上线的工作流
这是我个人对云深度学习平台的需求理解,也是小米在实现cloud-ml服务时的基本设计原则。虽然涉及到高可用、分布式等颇具实现难度的问题,但借助目前比较成熟的云计算框架和开源技术,我们的架构和实现基本满足了前面所有的需求,当然如果有更多需求和想法欢迎随时交流。

小米云深度学习平台的架构设计与实现相关推荐

  1. 打造企业级云深度学习平台——小米云深度学习平台的架构设计与实现

    作者:陈迪豪,小米深度学习工程师,负责小米云深度学习平台的架构和实现,目前专注于TensorFlow和Kubernetes社区. 责编:何永灿,欢迎人工智能领域技术投稿.约稿.给文章纠错,请发送邮件至 ...

  2. 基于实时深度学习的推荐系统架构设计和技术演进

    简介:整理自 5 月 29 日 阿里云开发者大会,秦江杰和刘童璇的分享,内容包括实时推荐系统的原理以及什么是实时推荐系统.整体系统的架构及如何在阿里云上面实现,以及关于深度学习的细节介绍 本文整理自 ...

  3. 从0开始建立谷歌云深度学习平台

    对于研究深度学习的朋友来说,GPU服务器是必不可少的,但是对于很多朋友来说可能没有现成的昂贵GPU服务器供使用,因此利用云服务器来训练模型成为另一个选型.谷歌云较其他云服务器(AWS,阿里云等等)的优 ...

  4. 从头开始搭建谷歌云深度学习平台

    对于研究深度学习的朋友来说,GPU服务器是必不可少的,但是对于很多朋友来说可能没有现成的昂贵GPU服务器供使用,因此利用云服务器来训练模型成为另一个选型.谷歌云较其他云服务器(AWS,阿里云等等)的优 ...

  5. 美团云深度学习平台-快速开始

    关注微信公众号:paper大讲堂(paperclasssroom)获取更多教程和资源. 概述 本模块将会以经典的例子:MNIST手写数字识别 来带你快速入门DLS服务,并了解DLS的基本功能,包括: ...

  6. 【深度学习】网络架构设计:CNN based和Transformer based

    从DETR到ViT等工作都验证了Transformer在计算机视觉领域的潜力,那么很自然的就需要考虑一个新的问题,图像的特征提取,究竟是CNN好还是Transformer好? 其中CNN的优势在于参数 ...

  7. 阿里云DataWorks学习——数仓架构设计

    (一)技术架构选型 在数据模型设计之前,您需要首先完成技术架构的选型.本教程中使用阿里云大数据产品MaxCompute配合DataWorks,完成整体的数据建模和研发流程. 完整的技术架构图如下图所示 ...

  8. 阿里云深度学习平台试玩

    1,第一个图片分类cifar-10代码中可以看出,(在本地跑)参数是这样传进服务器的: python cifar_pai.py --buckets /Users/kylefan/program/cif ...

  9. 腾讯云机器学习平台技术负责人:揭秘深度学习平台DI-X背后的秘密

    本文转自:https://news.cnblogs.com/n/566061/ 腾讯正式发布了旗下深度学习平台 DI-X(Data Intelligence X),这是继今年 1 月推出 FPGA 云 ...

最新文章

  1. 【命令init3/5】centos7切换图像界面和dos界面
  2. 正则小记 javascript
  3. 解决: Client does not support authentication protocol requested by server; consider upgrading MySQL
  4. Lambda表达式使用2
  5. MFC:移动对话框到右下角
  6. Windows 2008 R2 安装 Windows phone 7 开发环境
  7. 《JavaScript开发框架权威指南》——2.4 处理任务
  8. 【收藏】图解最常用的10个机器学习算法!
  9. 你应该知道的一些 ADB 命令
  10. bin文件查看器app_鸿蒙系统编译第一个APP:hello
  11. execute、executeUpdate、executeQuery三者的区别
  12. LNMP下Redis介绍以及安装(Linux)
  13. hinkPad T510系列主要机型对比
  14. 公式推导 11-20
  15. 2016年 最火的 15 款 HTML5 游戏引擎
  16. office2007每次打开都配置进度_解决Office2007每次启动时出现配置进度的问题
  17. 快速原型VS敏捷、迭代
  18. linux如何打开22端口?如何开启ssh远程链接
  19. 拳王公社:虚拟资源项目赚钱方法?前2种最常见,第3种鲜为人知
  20. C++ 笔记 加号运算符重载

热门文章

  1. 绩效考核OKR怎么做?
  2. 如何书写UserCase
  3. “永恒之蓝” 实战演练
  4. undefined reference to 'floor'/undefined reference to
  5. mail命令发送html格式的电子邮件
  6. iPhone 5 屏幕尺寸变长指南
  7. MD5碰撞后时代,MD5还有存在的意义吗?
  8. 无线传感器网络(特点,挑战和应用)
  9. 【java】java: -source 1.5 中不支持 diamond 运算符
  10. 正交实验正交表的创建