结合Apache Kafka生态系统,谈谈2018年机器学习5大趋势

摘要: 让我们来研究下U`ber和Netflix上的KSQL,ONNX,AutoML和机器学习平台,看看它们之间是如何相互关联的。

    2018慕尼黑OOP会议上,我展示了使用Apache Kafka生态系统和深度学习框架(如TensorFlowDeepLearning4J)构建可扩展关键型(mission- critical)任务微服务的最新版本。本文中,我想分享出最新的幻灯片并讨论最新趋势。

本博文的主要内容与我在Confluent Blog中写的关于Apache Kafka生态系统和机器学习文章一样,但这里我更关注深度学习/神经网络。我还讨论了Apache Kafka生态系统中的一些创新以及机器学习最近几个月的趋势:UberNetflix上的KSQLONNXAutoML和机器学习平台。下面,让我们来看看这些有趣的平台以及它们之间是如何相互关联的。

KSQLApache Kafka上的流式SQL语言

根据这篇文章可知:

KSQLApache Kafka上的流式SQL引擎,KSQL降低了流处理领域的门槛,为Kafka中的数据处理提供了一个简单且完全交互的SQL接口,并且不再需要用诸如JavaPython编程语言编写代码!KSQL是一个开放源码(Apache 2.0 licensed),具有分布式,可扩展,可靠和实时等特性。它支持大量的流处理操作,包括聚合,连接,窗口化,会话等等

你可以编写类似SQL查询的语句来部署可伸缩的关键型流处理app(利用Kafka Streams底层技术)——这绝对是Kafka开源生态系统中的一大亮点。

KSQL和机器学习

KSQL是在Kafka Streams基础之上构建的,因此允许构建可扩展的关键型服务,它还包括神经网络在内的机器学习模型可通过构建用户自定义函数(UDF轻松的嵌入。这些天我正在准备一个例子:将一个神经网络(更确切地说是一个自动编码器)用于传感器分析对异常进行检测,例如:实时检测病人健康检查中的健康临界值,以便向医生发送警报。

现在我们来谈谈机器学习生态系统中一些比较有意思的新发展。

ONNX:代表深度学习模式的开放版本

根据ONNX官网可知:

ONNX代表着深度学习模式的开放版本,采用ONNXAI开发人员可以更轻松地在各种最先进的工具之间对模型进行迁移,并选择最适合他们的组合。

这听起来与PMML(预测模型标记语言,更多细节请参阅本文)和PFA(便携式格式分析)类似,这两个标准用于定义和共享机器学习模型。然而,ONNX在几个方面有所不同:

1.ONNX专注于深度学习。

2.ONNX有几家巨型科技公司(AWS,微软,Facebook)和硬件厂商(AMDNVidiaIntelQualcomm)在使用。

3.ONNX已经支持许多较为领先的开源框架(TensorFlowPytorchMXNet)。

4.ONNX已经是GA版本1.0,并且可以在生产环境中使用(201712月由亚马逊,微软和Facebook声明)。对于不同的框架来说是一个很好的入门指南

ONNXApache Kafka生态系统

不幸的是,ONNX还不支持Java 因此,目前还不支持将它嵌入到Kafka Streams Java API本地——只能通过一种解决方法:执行REST调用或嵌入JNI绑定。但我相信这只是时间问题,因为Java平台对许多企业部署关键任务应用程序来说非常重要。

现在,你可以使用KafkaJava API或其他Kafka客户端。Confluent Blog为多种编程语言提供了官方客户端,如PythonGo,这两种编程语言都适用于机器学习应用程序。

自动机器学习(AKA AutoML 

此处所述:

自动机器学习(AutoML)是一个炙手可热的新领域,旨在使您轻松选择不同的机器学习算法,其参数设置和预处理方法提高了在大数据中检测复杂模式的能力。

使用AutoML,你不需要学习任何关于机器学习的知识就可以构建分析模型。 AutoML使用决策树、聚类、神经网络等不同的实现方式来构建和比较不同模型,AutoML支持即开即用。你只需要上传或连接历史数据集,然后单击几个按钮即可启动该过程——不一定对于每种用例来说都是完美的,但是你可以很轻松的改进许多现有的流程,而无需使用罕见且昂贵的数据科学家。

DataRobotGoogle AutoML是这个领域众多知名云产品中的两个。H2O AutoML被集成到其开源的机器学习框架中,同时它们也提供了一个非常好的基于UI的商业产品,称为无人驾驶汽车AI。我强烈建议在任何一个AutoML工具上花费30分钟的时间来研究下,来看看现在的人工智能工具如何发展,这真的很吸引人。

AutoMLApache Kafka生态系统

大多数AutoML工具都提供了模型的部署。你可以访问分析模型,即通过一个REST接口,而不是像Kafka可扩展的事件驱动架构这样的的完美解决方案。 有一个好消息就是:许多AutoML解决方案还允许导出其生成的模型,以便将它们部署到你的应用程序中。例如,在H2O开源框架中的AutoML只是众多选择之一。您只需在你选择的编程语言(RPythonScalaWeb UI)中使用另外一个操作:


这和构建线性回归方法、决策树或神经网络比较类似。其结果是生成的Java代码,你可以很轻松地将其嵌入到Kafka Streams微服务或任何其他的Kafka应用程序中去。借助AutoML,你无需对机器学习有特别深入的了解,同样也可以构建和部署高度可扩展的机器学习。

ML平台:UberMichelangelo平台; NetflixMeson平台

科技巨头通常比“传统企业”早几年,他们早在几年前就已经建立了你今天或明天想要建造的东西。同样,ML平台也不例外。编写一个来训练分析模型的机器学习源代码只是真实世界ML基础设施中非常小的一部分。你需要考虑整个开发过程,下图显示了ML系统中隐藏的技术结构


你可能会用不同的技术来构建几个分析模型,并非所有内容都将在你的SparkFlink聚类或单个云基础架构中构建。你可以在公共云中的一些大而昂贵的GPU上运行TensorFlow来构建强大的神经网络。又或者你可以使用H2O构建立一些小的,但非常有效率和高性能的决策树,它能在几微秒内做出推断。 ML有许多应用用例。

这就是为什么许多科技巨头已经建立了自己的ML平台,如UberMichelangeloNetflixMeson。这些ML平台允许他们构建和监控强大的可扩展分析模型,同时也能够灵活地为每个用例选择正确的ML技术。

应用于ML平台的Apache Kafka生态系统

Apache Kafka能够取得如此成功的原因之一就是它被很多科技巨头广泛使用。几乎所有伟大的硅谷公司,如LinkedInNetflixUbereBay都在谈论他们将Kafka作为其关键任务应用的中枢神经系统。许多人专注于分布式信息流平台,但是我们也看到越来越多的附加组件被采用,如Kafka ConnectKafka StreamsREST ProxySchema Registry以及KSQL

再看看上面的图片,想一想:Kafka不适合ML平台吗?它可以进行训练,监控,部署,推理,配置,A / B测试等。这也许就是UberNetflix和其他许多公司已经将Kafka作为ML基础设施核心组件的原因。


这一次,你不会被迫只使用一种特定的技术。Kafka最棒的设计理念之一就是:你可以一次又一次地从它的分布式提交日志中重新处理数据,这就意味着可以使用一种技术构建不同的模型作为Kafka接收器(比如Apache FlinkSpark),或者连接不同的技术,如:用于本地测试的scikit-learn,运行在Google Cloud GPU上实现强大的深度学习的TensorFlow,用于AutoMLH2O节点的部署安装,以及其它的部署在Docker容器或KubernetesKafka Streams ML的一些应用程序。所有这些ML应用程序都会按照自己的步调并行地使用数据,不过他们经常性的必须这么做。

这个例子很好的说明了如何使用KafkaKafka Streams来自动训练以及对可扩展ML微服务的部署。它没有必要再添加另一个大数据集群,这就是在你的ML应用程序上使用Kafka StreamsKSQL代替其他流处理框架的主要区别之一。

Apache Kafka和深度学习:OOP会议上的幻灯片

在对Apache Kafka生态系统和机器学习/深度学习的新趋势的所有讨论的同时,也展示了作者在OOP 2018会议上的演讲中展示幻灯片幻灯片请点击原文观看。

我还使用了Apache KafkaKafka Streams以及不同的开源ML框架(H2OTensorFlowDeepLearning4jDL4J)构建了一些示例。GitHub项目显示了将分析模型部署到高度可扩展的容错任务关键型Kafka微服务上是一件很容易的事。我们也很快将会推出一个KSQL演示。

文章原标题《5 Machine Learning Trends for 2018 Combined With Apache Kafka Ecosystem》,

译者:Mags,审校:袁虎。


原文链接

干货好文,请关注扫描以下二维码:



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522300.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计一段代码,判断在内存中是小端存储还是大端存储

大端存储:数据中的低位保存在内存中的高地址中,数据中的高位保存在内存中的低地址中。 小端存储:数据中的高位保存在内存中的高地址中,数据中的低位保存在内存中的低地址中。 假设int a1; 则a在存储中的存储是 00 00 00 01&#…

51单片机雾化片自动扫频程序_单片机简介

单片机简介数字电路简介在一个控制系统中, 单片机是电路的一部分, 单片机中的程序是针对其所在的电路编写的。因此,要对单片机编程并实现一定的功能,必须了解整个系统的电路图。单片机编程是针对某个特定的电路进行的单片机编程是…

IT公司老板落水,各部门员工怎么救??

戳蓝字“CSDN云计算”关注我们哦!公司高层公司副总A:咱们开个会研究一下这个事情怎么处理。公司副总B:如果老板没有救成功,下任是谁呢?会不会影响公司的上市?公司副总C:我认为咱们开会应该讨论两…

使用 MaxCompute(原ODPS) java sdk 运行安全相关命令

摘要: 使用 odps console 的同学,可能都使用过 odps 安全相关的命令。 转自zhenhong 使用 MaxCompute console 的同学,可能都使用过 odps 安全相关的命令。官方文档上有详细的 odps 安全指南,并给出了安全相关命令列表。 简而言之…

苹果笔记本能不能用python_“苹”除了苹果还能组哪些词?苹组词,释义及造句汇总!...

“苹”字组词,很多人第一反应就是苹果。那么除了苹果,苹还能组哪些词?苹组词都有哪些?下面,浙江秦学教育小编为大家带来苹组词,释义及造句汇总!来更新我们的组词大全,大家一定要多积累&#xff…

历史回顾——NLP问题解决方案的演变史

摘要: 回顾NLP问题的解决方案,探寻当下最流行的NLP技术,激发NLP问题新的解决方案!NLP-深度学习时代之前:在深度学习来临之前的日子里,在自然语言处理算法(NLP)领域出乎意料地有许多相…

关于signed和unsigned进行整形提升所出现的问题

看如下代码: int main() {char a -1;signed char b -1;unsigned char c -1;printf("a%d,b%d,c%d", a, b, c);return 0; }输出结果如下图所示 为什么会出现这种结果呢,现在我来分析一下 内存中存储这些变量都是以补码的方式进行存储&#x…

flowable BPMN的组件汉化

1.背景: 现在flowable流程设计器已经部分做了汉化,但是bpmn的组件还是没有汉化的,这样对我们中国 人来说就不是很方便。 2.效果:如何实现这一效果呢? 3.实现 3.1. stencilset_bpmn.json拷贝这个json文件到我们的资源…

华为确认与三家EDA公司停止合作;开源安卓恶意软件窃取用户隐私信息;三星高通回应7纳米EUV工艺问题……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 速腾聚创与英国 Aidrivers达…

MaxCompute Console 实用小命令

摘要: MaxCompute Console 可以从 这里 下载。在阿里云官网可以查看 帮助文档。 这里跟大家分享一些 MaxCompute Console 中实用的小命令。 MaxCompute Console 可以从 这里 下载。在阿里云官网可以查看 帮助文档。 这里跟大家分享一些 MaxCompute Console 中实用的…

一个form 如何做两次提交_如何做一个优秀的家长

如何做一个优秀的家长文|潍坊坊子崇文中学父母对待孩子无外乎三种情况:一是事事管、时时管,做了很多事,效果却不好;二是什么都不管,什么都不做,放任自流,不闻不问,结果更不好&#x…

动态执行shell脚本

文章目录一、linux动态执行指定脚本二、需求思路分析①我要做什么?②先手动执行一遍流程③ 把执行命令记录下来三、动态执行脚本①手动制作脚本②脚本升级③ 脚本截图一、linux动态执行指定脚本 脚本目录 /app/CodeQualityScan/gblfy_cx/脚本名 sonar-scanner.sh用…

关于机器学习,你需要知道的三件事!

摘要: MATLAB开发运营团队深度解析何为机器学习,什么时候使用机器学习,如何选择机器学习算法,MATLAB到底能为机器学习提供怎样的便利?机器学习是一种数据分析技术,让计算机执行人和动物与生俱来的活动&…

京东云的区块链“经”

戳蓝字“CSDN云计算”关注我们哦!就在不久前,京东云在北京国家会议中心召开“区块链京东云 大有可为”战略合作媒体沟通会。会上,京东云与京东数科宣布了在区块链技术服务领域深度合作,重磅发布了智臻链“云”建设规划&#xff0c…

MaxCompute Tunnel SDK数据上传利器——BufferedWriter使用指南

摘要: MaxCompute 的数据上传接口(Tunnel)定义了数据 block 的概念:一个 block 对应一个 http request,多个 block 的上传可以并发而且是原子的,一次同步请求要么成功要么失败,不会污染其他的 b…

库函数strlen的模拟实现

1、对于strlen这个库函数来说&#xff0c;主要就是求字符串的长度的&#xff0c;无论何时&#xff0c;只要遇到‘\0’,求得的长度都会戛然而止&#xff0c;可以看一下例子 #include<stdio.h> #include<string.h> int main(){char* str1[]"abcdef";char*…

MaxCompute 中的Code Generation技术简介

摘要&#xff1a; 前言 在《数据库系统中的Code Generation技术介绍》中&#xff0c;我们简单介绍了一下Code Generation技术及其在大规模OLAP系统&#xff0c;特别是大规模分布式OLAP系统中的重要性。MaxCompute采用了Code Generation技术来提高计算效率。在MaxCompute 前言 …

java调用python_Python教程:17个冷门但实用的小技巧

Python是机器学习的主流语言&#xff0c;没有之一。今年5月&#xff0c;它首次在PYPL排行榜上超越JAVA&#xff0c;成为全球第一大编程语言。而一个月后&#xff0c;Stack Overflow也分享了最新的编程语言浏览量统计数字&#xff0c;结果显示&#xff0c;Python的月活历史性地超…

Hadoop精华问答 | NameNode的工作特点

我们很荣幸能够见证Hadoop十年从无到有&#xff0c;再到称王。感动于技术的日新月异时&#xff0c;让我们再来看看关于Hadoop的精华问答。1Q&#xff1a;NameNode的工作特点A&#xff1a;NameNode始终在内存中保存metedata&#xff0c;用于处理“读请求”&#xff0c;到有“写请…

五个非常实用的自然语言处理资源

摘要&#xff1a; 正在学习NLP&#xff0c;手中没有资源&#xff1f;快来看看这些免费的NLP学习资源吧&#xff01;如果你对自然语言处理方面的资源感兴趣&#xff0c;请仔细阅读本篇文章。运行数据科学POC的7个步骤网上有很多依靠深度学习方法的NLP资源&#xff0c;有一些资源…