2018年机器学习趋势与Apache Kafka生态系统相结合
在慕尼黑舉行的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生态系统相结合的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 方程豹“豹 5”新车内饰官图亮相:设计以
- 下一篇: 创建一个坚固的备份系统