在慕尼黑举行的OOP 2018大会上,我介绍了有关使用Apache Kafka生态系统和诸如TensorFlow,DeepLearning4J或H2O之类的深度学习框架构建可扩展,关键任务微服务的演讲的更新版本。 我想分享更新后的幻灯片,并讨论一些有关最新趋势的更新,这些我已纳入演讲中。

主要故事与我在Confluent博客中有关Apache Kafka生态系统和机器学习的文章相同 : 如何使用Apache Kafka在生产中构建和部署可扩展机器学习。 但是我更专注于深度学习/神经网络。 我还讨论了Apache Kafka生态系统中的一些创新以及最近几个月的ML趋势: Uber和Netflix的KSQL,ONNX,AutoML,ML平台 。 让我们看一下这些有趣的主题,以及它们之间的关系。

KSQL –一种Apache Kafka之上的流SQL语言。

KSQL是Apache Kafka的流SQL引擎 。 KSQL将入口栏放到了流处理领域,提供了一个简单且完全交互的SQL接口来处理Kafka中的数据。 您不再需要使用Java或Python之类的编程语言编写代码! KSQL是开源的(Apache 2.0许可的),分布式的,可伸缩的,可靠的和实时的。 它支持各种强大的流处理操作,包括聚合,联接,窗口,会话化等等。” 此处有更多详细信息:“ KSQL简介:Apache Kafka的开源流SQL ”。

您可以编写类似SQL的查询来部署可扩展的,关键任务流处理应用程序(在后台利用Kafka Streams)。 绝对是Kafka开源生态系统中的一大亮点。

KSQL和机器学习

KSQL建立在Kafka Streams之上,因此允许构建可扩展的,关键任务服务。 通过构建用户定义功能(UDF),可以轻松嵌入包括神经网络在内的机器学习模型。 这些天,我正在准备一个示例,其中我将神经网络(更准确地说是自动编码器)应用于传感器分析,以实时检测医院客人的异常情况(即健康检查中的关键值),从而向医生发送警报。

现在让我们讨论一下机器学习生态系统中一些有趣的新发展。

ONNX –一种表示深度学习模型的开放格式

ONNX 是代表深度学习模型的开放格式 。 借助ONNX,AI开发人员可以更轻松地在最先进的工具之间移动模型,并选择最适合他们的组合。”

这听起来类似于PMML (预测模型标记语言,请参阅KDnuggets上的“ What is PMML ”)和PFA (便携式分析格式),这是另外两个定义和共享机器学习模型的标准。 但是,ONNX在以下几个方面有所不同:

  • 专注于深度学习
  • 背后有多家大型科技公司(AWS,Microsoft,Facebook)和硬件供应商(AMD,NVidia,Intel,Qualcomm等)
  • 已经支持许多领先的开源框架(包括TensorFlow,Pytorch,MXNet)

ONNX已经在GA 1.0版中投入使用,并且已经可以量产 ( 如Amazon,Microsoft和Facebook在2017年12月宣布的那样 )。 对于不同的框架,还有一个不错的入门指南 。

ONNX和Apache Kafka生态系统

不幸的是, ONNX还没有Java支持 。 因此,尚不支持将其本身嵌入到Kafka Streams Java API中。 仅通过诸如执行REST调用或嵌入JNI绑定之类的解决方法。 但是我非常确定这只是时间问题,因为Java平台在许多企业中部署关键任务应用程序非常重要。

现在,您可以使用Kafka的Java API或其他Kafka客户端。 Confluent为几种编程语言(例如Python或Go)提供了官方客户 ,这两种语言也非常适合机器学习应用程序。

自动化机器学习(aka AutoML)

如前所述,“自动机器学习(AutoML)是一个热门领域,其目标是使人们能够轻松选择不同的机器学习算法,其参数设置以及提高其检测大数据中复杂模式能力的预处理方法。” 在这里 。

使用AutoML,您无需任何有关机器学习的知识就可以构建分析模型。 AutoML实现使用决策树,聚类,神经网络等的不同实现来开箱即用地构建和比较不同的模型。 您只需上传或连接历史数据集,然后单击一些按钮即可开始该过程。 可能不是每个用例都完美,但是您可以轻松地改进许多现有流程,而无需稀有且昂贵的数据科学家。

DataRobot或Google的AutoML是该领域许多知名的云产品中的两种。 H2O的AutoML已集成到其开源ML框架中,但它们还提供了一个很好的以UI为中心的商业产品,称为“ 无人驾驶AI ”。 我强烈建议您在任何AutoML工具上花费30分钟。 看到AI工具如今如何发展真是令人着迷。

AutoML和Apache Kafka生态系统

大多数AutoML工具都提供其模型的部署。 您可以通过REST接口访问分析模型。 对于可扩展的事件驱动架构(如Kafka)而言,并不是一个完美的解决方案。 好消息: 许多AutoML解决方案还允许导出其生成的模型,以便您可以将其部署到应用程序中 。 例如,H2O开源框架中的AutoML只是众多选择之一。 您只能以您选择的编程语言(R,Python,Scala,Web UI)使用其他操作:

aml <- h2o.automl(x = x, y = y,training_frame = train,leaderboard_frame = test,max_runtime_secs = 30)

与构建线性回归,决策树或神经网络类似。 结果是生成的Java代码,您可以轻松地将它们嵌入到Kafka Streams微服务或任何其他Kafka应用程序中。 AutoML使您能够构建和部署高度可扩展的机器学习,而无需掌握ML的丰富知识。

Netflix的介子

科技巨头通常比“传统企业”领先几年。 他们已经在几年前建造了今天或明天建造的建筑。 ML平台没有区别。 编写ML源代码以训练分析模型只是现实世界ML基础结构的一小部分。 您需要考虑整个开发过程。 下图显示了“ 机器学习系统中的隐藏技术债务 ”:

您可能会使用不同的技术构建多个分析模型。 并非所有内容都将构建在您的Spark或Flink群集或单个云基础架构中。 您可以在公共云中的某个大型,昂贵的GPU上运行TensorFlow,以构建强大的神经网络。 或者使用H2O来构建一些小的但非常高效且高性能的决策树,这些决策树会在几微秒内完成推理……ML有许多用例。

这就是为什么许多科技巨头都建立了自己的ML平台的原因,例如Uber的Michelangelo或Netflix的Meson 。 这些ML平台使他们能够构建和监视强大的,可扩展的分析模型,而且还可以保持灵活性以针对每种用例选择正确的ML技术。

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

Apache Kafka如此成功的原因之一是许多科技巨头的广泛采用。 几乎所有伟大的硅谷公司,如LinkedIn,Netflix,Uber,Ebay,都是“ you-name-it”博客,并谈论了它们如何将Kafka用作关键任务应用程序的事件驱动中枢神经系统。 许多人将重点放在用于消息传递的分布式流平台上,但我们也看到越来越多的插件被采用,例如Kafka Connect,Kafka Streams,REST Proxy,Schema Registry或KSQL。

如果您再次看一下上面的图片,请考虑一下Kafka:它不是ML平台的理想选择吗? 培训,监控,部署,推理,配置,A / B测试等,等等。这可能就是为什么Uber,Netflix和许多其他公司已经将Kafka用作其ML基础结构的核心组件的原因。

同样,您不必被迫仅使用一种特定技术。 Kafka的伟大设计概念之一是,您可以一次又一次地从其分布式提交日志中重新处理数据。 这意味着您既可以使用Kafka Sink(例如Apache Flink或Spark)的一种技术构建不同的模型,也可以连接scikit-learn等进行本地测试的技术,在Google Cloud GPU上运行的TensorFlow进行强大的深度学习以及内部安装适用于AutoML的H2O节点,以及部署在Docker容器或Kubernetes中的其他一些Kafka Streams ML应用。 所有这些ML应用程序都按照其速度和需要的频率并行使用数据。

这是一个很好的示例,说明如何使用Kafka和Kafka Streams自动进行可伸缩ML微服务的培训和部署 。 无需添加另一个大数据集群。 这是在您的ML应用程序中使用Kafka Streams或KSQL而不是其他Stream Processing框架的主要区别之一。

Apache Kafka和深度学习– OOP的幻灯片

最后,在对Apa​​che Kafka生态系统和机器学习/深度学习的新趋势进行了所有这些讨论之后,这是我在OOP 2018大会上的演讲的更新幻灯片:
2018年机器学习趋势与 KaiWähner 的Apache Kafka生态系统相结合

我还使用Apache Kafka,Kafka Streams和不同的开源ML框架(例如H2O,TensorFlow和DeepLearning4j(DL4J))构建了一些示例 。 Github项目显示了将分析模型部署到高度可扩展,容错且关键任务的Kafka微服务有多么容易。 KSQL演示也将很快发布。

请分享您的反馈。 您是否已经在机器学习领域使用Kafka? 您除了使用Kafka核心外还使用哪些组件? 请随时与我联系以详细讨论。

翻译自: https://www.javacodegeeks.com/2018/02/machine-learning-trends-2018-combined-apache-kafka-ecosystem.html

2018年机器学习趋势与Apache Kafka生态系统相结合相关推荐

  1. apache kafka_2018年机器学习趋势与Apache Kafka生态系统相结合

    apache kafka 在慕尼黑举行的OOP 2018大会上,我介绍了有关使用Apache Kafka生态系统和诸如TensorFlow,DeepLearning4J或H2O之类的深度学习框架构建可 ...

  2. kafka教程_2018年机器学习趋势与Apache Kafka生态系统结合

    kafka教程 在慕尼黑举行的OOP 2018大会上,我介绍了有关使用Apache Kafka生态系统和诸如TensorFlow,DeepLearning4J或H2O之类的深度学习框架构建可扩展,关键 ...

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

    摘要: 让我们来研究下U`ber和Netflix上的KSQL,ONNX,AutoML和机器学习平台,看看它们之间是如何相互关联的. 在2018慕尼黑OOP会议上,我展示了使用Apache Kafka生 ...

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

    导读:让我们来研究下 Uber 和 Netflix 上的 KSQL,ONNX,AutoML 和机器学习平台,看看它们之间是如何相互关联的. 在2018慕尼黑 OOP 会议上,我展示了使用 Apache ...

  5. Apache Kafka流+机器学习(Spark,TensorFlow,H2O.ai)

    我于2017年5月开始在Confluent工作,担任技术传播者,专注于围绕开源框架Apache Kafka的主题. 我认为机器学习是当今最热门的流行语之一,因为它可以在任何行业中增加巨大的商业价值. ...

  6. grpc_模型服务:流处理与使用Java,gRPC,Apache Kafka,TensorFlow的RPC / REST

    grpc 机器学习/深度学习模型可以通过不同的方式进行预测. 我的首选方法是将分析模型直接部署到流处理应用程序(如Kafka Streams或KSQL )中. 您可以例如使用TensorFlow fo ...

  7. kafka grpc_模型服务:流处理与使用Java,gRPC,Apache Kafka,TensorFlow的RPC / REST

    kafka grpc 机器学习/深度学习模型可以通过不同的方式进行预测. 我的首选方法是将分析模型直接部署到流处理应用程序(如Kafka Streams或KSQL )中. 您可以例如使用TensorF ...

  8. 模型服务:流处理与使用Java,gRPC,Apache Kafka,TensorFlow的RPC / REST

    机器学习/深度学习模型可以通过不同的方式进行预测. 我的首选方法是将分析模型直接部署到流处理应用程序(如Kafka Streams或KSQL )中. 您可以例如使用TensorFlow for Jav ...

  9. Spring Apache Kafka教程

    在本SpringApache Kafka课程中,我们将学习如何在Spring Boot项目中开始使用Apache Kafka,并开始生成和使用我们所选主题的消息. 除了一个简单的项目外,我们还将深入探 ...

最新文章

  1. 【转】android错误 aapt.exe已停止工作的解决方法
  2. 实例分割最新最全面综述:从Mask R-CNN到BlendMask
  3. redis之intset
  4. 浅析堡垒机概念及工作原理(转)
  5. 【论文相关】1.1 T 的 arXiv 数据集:170 万篇论文,可以看到下辈子
  6. php round half even,PHP round( )用法及代碼示例
  7. 西门子上升沿指令_西门子SCL编程实例——霓虹灯顺序控制(DECO指令)
  8. mysql基础知识整理_MYSQL基础知识整理
  9. python中对文件进行读和写
  10. 马斯克回应一切:2018年极其痛苦,福特难熬下次经济衰退,后悔发太多推特
  11. getch和getchar的区别
  12. BOBSLEDDING(一道有趣的贪心题 nyoj309)
  13. 数字抽奖小程序_两款火爆的抽奖小程序,最高抽2000元现金红包 亲测提现8.59元秒到...
  14. fofa域名检测存活工具_检测cdn和寻找真实ip的一些方法总结
  15. HTML网页实训的目的,网页设计实习目的及意义
  16. CAD绘制固定矩形批注(网页版)
  17. maya2018安装教程
  18. HTML、js实现图片绕中心旋转
  19. NUVOTON新唐单片机使用总结
  20. 【5G/4G】NAS与AS层 完整性保护与加密算法系列文章

热门文章

  1. 1、Spring简介
  2. Spring Aop总结
  3. 汇编语言(五)之数组中正数和负数分离
  4. 学习分布式不得不会的ACP理论
  5. JavaFX UI控件教程(二)之JavaFX UI控件
  6. Redis 的 8 大应用场景
  7. Java IO: 流
  8. 输入框限定保留三位小数点
  9. 简化springboot部署,太灵活方便了!
  10. 使用JDBCTemplate实现与Spring结合,方法公用