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

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

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

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

KSQL:Apache Kafka上的流式SQL语言

根据这篇文章可知:

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

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

KSQL和机器学习

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

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

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

根据ONNX官网可知:

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

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

1.ONNX专注于深度学习。

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

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

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

ONNX和Apache Kafka生态系统

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

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

自动机器学习(AKA AutoML) 

如此处所述:

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

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

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

AutoML和Apache Kafka生态系统

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

d4e38edba441cd223dfa7fedbb0e9f461f2ac6f8

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

ML平台:Uber的Michelangelo平台; Netflix的Meson平台

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

1dc5cbc51d59ced28596e77d2b686bd28fb11dfc

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

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

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

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

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

176f6be2c651989e8f64e9e655501df3d5373efa

这一次,你不会被迫只使用一种特定的技术。Kafka最棒的设计理念之一就是:你可以一次又一次地从它的分布式提交日志中重新处理数据,这就意味着可以使用一种技术构建不同的模型作为Kafka接收器(比如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代替其他流处理框架的主要区别之一。

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

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

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

本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

文章原标题《5 Machine Learning Trends for 2018 Combined With Apache Kafka Ecosystem》,译者:Mags,审校:袁虎。

文章为简译,更为详细的内容,请查看原文。

 

相关文章
|
消息中间件 Java Kafka
Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
599 7
|
人工智能 自然语言处理 安全
通过阿里云Milvus与PAI搭建高效的检索增强对话系统
阿里云向量检索Milvus版是一款全托管的云服务,兼容开源Milvus并支持无缝迁移。它提供大规模AI向量数据的相似性检索服务,具备易用性、可用性、安全性和低成本等优势,适用于多模态搜索、检索增强生成(RAG)、搜索推荐、内容风险识别等场景。用户可通过PAI平台部署RAG系统,创建和配置Milvus实例,并利用Attu工具进行可视化操作,快速开发和部署应用。使用前需确保Milvus实例和PAI在相同地域,并完成相关配置与开通服务。
|
消息中间件 监控 Java
Apache Kafka 分布式流处理平台技术详解与实践指南
本文档全面介绍 Apache Kafka 分布式流处理平台的核心概念、架构设计和实践应用。作为高吞吐量、低延迟的分布式消息系统,Kafka 已成为现代数据管道和流处理应用的事实标准。本文将深入探讨其生产者-消费者模型、主题分区机制、副本复制、流处理API等核心机制,帮助开发者构建可靠、可扩展的实时数据流处理系统。
1020 4
|
机器学习/深度学习 存储 运维
机器学习异常检测实战:用Isolation Forest快速构建无标签异常检测系统
本研究通过实验演示了异常标记如何逐步完善异常检测方案和主要分类模型在欺诈检测中的应用。实验结果表明,Isolation Forest作为一个强大的异常检测模型,无需显式建模正常模式即可有效工作,在处理未见风险事件方面具有显著优势。
1193 46
|
消息中间件 存储 监控
Apache Kafka 3.0与KRaft模式的革新解读
在该架构中,Kafka集群依旧包含多个broker节点,但已不再依赖ZooKeeper集群。被选中的Kafka集群Controller将从KRaft Quorum中加载其状态,并在必要时通知其他Broker节点关于元数据的变更。这种设计支持更多分区与快速Controller切换,并有效避免了因数据不一致导致的问题。
|
存储 人工智能 自然语言处理
基于QwQ-32B+Hologres+PAI搭建 RAG 检索增强对话系统
本文介绍如何使用PAI-EAS部署基于QwQ大模型的RAG服务,并关联Hologres引擎实例。Hologres与达摩院自研高性能向量计算软件库Proxima深度整合,支持高性能、低延时、简单易用的向量计算能力。通过PAI-EAS,用户可以一键部署集成大语言模型(LLM)和检索增强生成(RAG)技术的对话系统服务,显著缩短部署时间并提升问答质量。具体步骤包括准备Hologres向量检索库、部署RAG服务、通过WebUI页面进行模型推理验证及API调用验证。Hologres支持高性能向量计算,适用于复杂任务的动态决策,帮助克服大模型在领域知识局限、信息更新滞后和误导性输出等方面的挑战。
|
人工智能 自然语言处理 API
Hologres × PAI × DeepSeek 搭建 RAG 检索增强对话系统
本文介绍如何使用PAI-EAS部署基于DeepSeek大模型的RAG(检索增强生成)服务,并关联Hologres引擎实例。Hologres与阿里云自研高性能向量计算软件库Proxima深度整合,支持高性能、低延时的向量计算能力。通过PAI-EAS,用户可以一键部署集成了大语言模型和RAG技术的对话系统服务,显著缩短部署时间,并提高问答质量。部署步骤包括准备Hologres向量检索库、部署基于DeepSeek的RAG服务、通过WebUI进行模型推理验证,以及通过API调用进行模型推理验证。Hologres还提供了特色功能支持,如高性能向量计算等。
|
人工智能 自然语言处理 安全
基于阿里云向量检索 Milvus 版与 PAI 搭建高效的检索增强生成(RAG)系统
基于阿里云向量检索 Milvus 版与 PAI 搭建高效的检索增强生成(RAG)系统
516 0
|
机器学习/深度学习 存储 运维
分布式机器学习系统:设计原理、优化策略与实践经验
本文详细探讨了分布式机器学习系统的发展现状与挑战,重点分析了数据并行、模型并行等核心训练范式,以及参数服务器、优化器等关键组件的设计与实现。文章还深入讨论了混合精度训练、梯度累积、ZeRO优化器等高级特性,旨在提供一套全面的技术解决方案,以应对超大规模模型训练中的计算、存储及通信挑战。
1090 4
|
消息中间件 Java Kafka
什么是Apache Kafka?如何将其与Spring Boot集成?
什么是Apache Kafka?如何将其与Spring Boot集成?
1038 5

热门文章

最新文章

推荐镜像

更多