写点什么

关于大规模机器学习与云原生架构,我们与谷歌云聊了聊

  • 2019-08-30
  • 本文字数:3795 字

    阅读完需:约 12 分钟

关于大规模机器学习与云原生架构,我们与谷歌云聊了聊

最近五年来,人工智能引起了全世界的广泛关注。随着基础理论与算法层面准备就绪、硬件算力持续攀升、政策与投资不断倾斜,人工智能正在多个维度上重构现有的互联网基础设施,进而席卷整个技术世界。


而在人工智能时代,云计算同样重要。将模型构建与训练工作转移至云端,既降低了 AI 的算力成本,同时也降低了 AI 的技术门槛,因此极大的拓宽了 AI 技术的应用边界,使得更多技术企业投资 AI、加码 AI 的战略成为可能。


在这一领域,谷歌云的技术成就让人瞩目,无论是 AutoML 还是 TensorFlow,皆是在云端提供服务的“技术明星”。为此,我们特别举办“Hello 谷歌云——云·AI·原生技术畅聊之夜”晚场活动,并邀请七位来自谷歌云的工程师分别就云计算与 AI 领域的话题,与参会者展开深度交流和知识共享。


这七大议题分别是:


  • 多云平台部署和管理实现

  • 云端海量数据智能分析

  • 云原生架构设计与实现

  • 云游戏的现在与未来

  • AutoML 自定义机器学习模型

  • Tensorflow 大规模机器学习

  • AI 快速实现应用智能


那么,在这个与谷歌云深度对话的技术交流之夜,现场究竟碰撞出了怎样的火花呢?下面我们一一来看。

1、构建混合云及多云管理平台的具体方案

当传统业务开始大规模向云上迁移,混合云、多云架构即成为不可或缺的构建方案。混合云同时满足了企业对私有云的保密性与公有云的计算资源的双向需求;多云业务则主要是为了让企业在具有不同技术特点、不同价格方案的云服务中灵活选择。


那么谷歌云是如何构建混合云及多云管理平台的呢?


在混合云管理方面,谷歌云主要采用了分层混合的架构模式。分层混合是指将现有前端应用部署到公有云,现有后端应用保留在私有计算环境中,可以视具体情况调整。此处的前端应用是指对最终用户或设备直接公开的应用,对性能要求较高、迭代频繁、往往是无状态的,所以部署在公有云;而后端应用通常专注于管理数据,关注数据的批量处理和安全保护,所以保留在私有云。


而要满足多云管理需求,则需依赖几个重要组件的协作,分别是Google Kubernetes Engine(GKE)GKE On-PremIstio on GKE,它们各自提供了可以随时使用的容器化托管式环境、方便的 Kubernetes 集群管理以及微服务治理工具,以便与不同的云环境解耦。


至此,平台不但具备了混合云及多云的管理能力,同时也具备了云原生特征,为敏捷开发打下了基础。


2、在云端对海量数据进行智能分析的技术关键

随着数据规模的增长,业务对数据分析速度的要求逐渐提高,在云端进行数据分析工作的难度越来越大。在 IoT 场景下,海量智能终端的数据将涌入数据中心,云端数据分析工作面临着前所未有的压力。


可对海量数据的智能分析,不能只依赖硬件算力,算法和文件系统也是相当重要的组成部分。


谷歌云的BigQuery就是一个很好的例子。BigQuery 一直在担负谷歌生态内部的数据分析工作,后来开始对外商用。它在执行查询命令时请求的是 Dremel 查询引擎,Dremel 会把 SQL 查询转换成执行树,这棵树的叶子结点叫做“slots(插槽)”,分别执行数据的检索和必要的计算。树的分支叫做“mixers(混合器)”,负责执行数据的聚合操作。


BigQuery 使用分布式文件系统 Colossus 完成数据的存储和快照(快照可以用于数据恢复)。在进行数据存储时,BigQuery 会采用 ColumnIO 列式存储格式和压缩算法进行存储,以便提高读写效率同时降低成本。


正是这些在查询算法和文件系统上的优化,最终让 BigQuery 成功支撑起了业务的数据分析需求。


3、如何打造云原生架构,践行云原生思想?

虽然如今云原生已经被频繁提及,但很多开发者仍对云原生概念的理解有所偏差。谷歌对云原生的最新定义为:


“云原生技术帮助公司和机构在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、 服务网格、微服务、不可变基础设施和声明式 API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术可以使开发者轻松地对系统进行频 繁并可预测的重大变更 。”


由此可见,打造云原生架构首先要进行容器化改造,具备微服务架构。容器化改造主要是为了保证资源的隔离、环境的一致性;而微服务架构将功能轻量化,变得易于扩展,易于维护且可以支持灵活的技术选型。因此,容器技术正是最适合微服务架构的技术手段之一,两者可谓天作之合。容器化的代表技术是 Docker,微服务的代表技术首推 Spring Cloud,两者如今都为开发者所熟知。


服务网格(Service Mesh)主要针对微服务治理方向的需求,属于抽象出来的基础设施层,主要工作是保证通信消息的可靠传递、负载均衡、服务熔断等,是微服务架构下必须的保障技术。Istio 是该领域的代表性作品。


不可变的基础设施实际上是指代码定义的基础设施,即使用声明式的定义随时构建一套基础环境用于开 发、测试、生产,任何时候基于相同代码定义在任何地方都可以获得相同的基础实施。


声明式 API 则指通过对服务接口的抽象(API)解决服务间调用的难题,协调上下游开发者之间的开发需求,搭建敏捷开发的基础。


可见云原生是一个抽象概念,是由众多技术组成的技术体系,是一套需要通过技术手段践行的思想,也需要我们技术群体的持续探索和改进。


4、揭开云游戏的面纱,并探索 5G 时代的服务运行模式

云游戏是以云计算为基础的游戏方式,在云游戏的运行模式下,所有游戏都在服务器端运行,并将渲染完毕后的游戏画面压缩后通过网络传送给用户。在客户端,用户的游戏设备不需要任何高端处理器和显卡,只需要基本的视频解压能力就可以了。


今年 3 月,谷歌发布STADIA云游戏平台,每个玩家将占用一个搭载了定制 x86 处理器和 16GB 内存的 Stadia 服务器模块,最终实现约 10.7 teraflops 的计算性能。相比之下,本世代最强游戏主机的计算性能只能达到 Stadia 的一半。


这意味着,终端设备不但会变的轻量化,而且云计算还会带来更好的体验。现任 Google 副总裁 Phil Harrison 说道:“未来的游戏机将不再是一个物理盒子,服务器就是你的平台。”当然,前提是 5G 商用,保证云端运算结果的高速传输。


以上听起来像是一个相对垂直的概念,只适用于游戏领域。但实际上,云游戏的运行模式可能恰恰是 5G 时代下诸多服务的运行模式,即将客户端的运算任务转移至云端,然后凭借高速网络将处理结果传输至客户端提供服务。这种模式可能会为带来很多前端设备带来翻天覆地的变革。


5、AutoML,只需你提供数据,剩下的交给系统

AutoML 面世时, 大家对其形容为“AI 的自我训练”,从技术的角度上,AutoML 实现了一种模式:你只需要提供数据,系统会为你搭建合适的训练模型。


这主要依赖于迁移学习技术以及神经架构搜索技术。


迁移学习是指基于一个已经训练好的神经网络模型,进行参数与知识的迁移,使新的模型无需重新设计即可使用。具体要迁移什么呢?比如共性特征数据与权重信息,即卷积层共性特征的迁移等。


而神经架构搜索技术脱胎于NASNet算法,目标是搜索出最适用的神经网络架构。最初该算法虽然成功,但效率低下,而后谷歌先后推出了渐进式神经架构搜索(PNAS)算法、高效神经架构搜索(ENAS)算法,不断改善着算法效率。最终与迁移学习技术结合,发布了 Cloud AutoML。


现在的 Cloud AutoML 在计算机视觉、文本类别鉴定、智能翻译等方向都有了成熟的使用经验,帮助相关 AI 开发者更关注业务本身,而非神经网络基础知识。


6、如何利用 TensorFlow 实现大规模机器学习

TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库,被广泛用于众多机器学习算法的编程实现,是机器学习领域绝对的“技术明星”。


利用 TensorFlow 实现机器学习算法大概可以分为四步:


(1)定义算法公式,也就是神经网络前向运行时的计算;


(2)定义 loss,选定 optimizer,使用优化器优化 loss;


(3)开启迭代的数据训练操作;


(4)计算准确率,做出评测。


而对于大规模机器学习,谷歌已经构建了一个基于 TensorFlow 的生产规模的机器学习平台:TensorFlow Extended(TFX)。它提供了一个配置框架来解释由 TFX 组件组成的 ML 管道,可以使用 Apache Airflow 和 Kubeflow Pipeline 进行编排。


无论是 TensorFlow 还是 TFX,都为机器学习的算法实现提供了方便好用的工具,我们可以通过详尽的文档进一步了解实践。


7、AI 可能在哪些领域快速实现智能化改造?

人工智能的高速发展不单纯局限于理论,在商业应用方面,也有很多非常不错的应用实践。比如机器翻译、语音识别、舆情勘测、智能驾驶等等。得益于如今日益进步的云端基础设施,人工智能在很多领域的改造工作并不那么复杂。


在谷歌云技术晚场上,本组导师就带领组员对可能快速实现智能化改造的领域进行了展望,其中有利用 OCR 文字识别技术实现“看图说话”应用,投放在少儿教育领域;也有在网络营销领域开发 AI 应用,帮助进行客户引流或做信息流优化;还有将 AI 应用于企业内部,智能定制员工 KPI、智能筛选简历。


最有创意的设想是“AI 实现垃圾分类”,通过计算机视觉技术自动进行的垃圾的分类、分拣,当能解决掉很多麻烦。


一个产业若想健康发展,至少需要两大支柱,一是基础技术准备充分、技术设施准备就绪;二是商业价值已经被发掘,实验性应用可以投放。两者互为补充,缺一不可。本组议题的讨论,也为众多开发者打开了新的思路。



七组议题涵盖了云计算与 AI 领域最引人瞩目的技术领域,在超过一个小时的深入交流后,每组都选派代表进行了总结性的分享。在这些分享的背后,是一次次固有知识的互相碰撞与新知识的糅合诞生。


2019-08-30 18:0917164
用户头像
王一鹏 前 InfoQ 总编辑

发布了 164 篇内容, 共 113.0 次阅读, 收获喜欢 479 次。

关注

评论

发布
暂无评论
发现更多内容

0到1产品需求整理分析模型参考

燕陈华

产品设计 产品需求

解读下一代网络:算力网络正从理想照进现实

华为云开发者联盟

AI 5G 网络 云技术

田哥:面试被问== 与equals 的区别,该怎么回答?

田维常

面试

Java程序员说:世界上有三个伟大的发明【火、轮子、kafka】

Java架构师迁哥

Istio 中的智能 DNS 代理功能

Jimmy Song

开源 云原生 Service Mesh istio 服务网格

排序与二分

落曦

阿里云原生中间件首次实现自研、开源、商用“三位一体”,技术飞轮效应显现

阿里巴巴云原生

阿里云 云原生 中间件

详解企业管理系统工作流配置

Marilyn

敏捷开发 工作流 软件架构

披星戴月地辛苦割胶或成历史,海南胶园迎来这一“神器”!

华为云开发者联盟

云计算 大数据 IoT

第9周学习总结

饭桶

“人上人”大专学历,通过系统的六个学习步骤,艰难4面终砍offer,“跳进”字节跳动

Java架构追梦

Java 架构 字节跳动 面试 微服务

Minikube-运行在笔记本上的Kubernetes集群

网管

学习 Kubernetes k8s minikube k8s入门

Serverless 架构就不要服务器了?

华为云开发者联盟

云计算 Serverless 架构

除了类 Excel, SpreadJS 表格控件还能为系统开发带来什么价值?

葡萄城技术团队

上线操作规范——基础版本

程序员架构进阶

团队管理 开发流程 发布流程 规范

LeetCode069-x的平方根-easy

书旅

数据结构 算法 Go 语言

记一次HEX和RGB互换算法的思考及应用

徐小夕

Java 面试 算法 大前端

华为云MVP付健权:从机械工程师到AI开发者的华丽转身

华为云开发者联盟

AI 转型 工程师

云原生趋势下的迁移与容灾思考

阿里巴巴云原生

云原生 迁移 容灾

第九周课后练习

饭桶

第九周总结

架构训练营 - 第9周课后作业 - 学习总结

Pudding

第九周作业

Geek_4c1353

极客大学架构师训练营

为什么你的“开发速度”和“产品性能”,都比不过竞品?丨开发者必读

葡萄城技术团队

第九周作业

智能灯串开发资料全开源!为这个冬天装点烂漫“星空”

智能物联实验室

人工智能 物联网 智能硬件 智能家居

架构师训练营 - 第 9 周课后作业(1 期)

Pudding

软件测试系统学习流程和常见面试题

测试人生路

软件测试

《Elasticsearch服务器开发》.pdf

田维常

elasticsearch

开发霸总:我要让所有人知道,这个扫码组件,被你承包了

蚂蚁集团移动开发平台 mPaaS

支付宝 uniapp mPaaS

从基础设施到云原生应用,全方位解读阿里云原生新锐开源项目

阿里巴巴云原生

阿里云 开源 云原生

关于大规模机器学习与云原生架构,我们与谷歌云聊了聊_AI&大模型_王一鹏_InfoQ精选文章