天天看點

結合Apache Kafka生态系統,談談2018年機器學習5大趨勢

    在2018慕尼黑OOP會議上,我展示了使用Apache Kafka生态系統和深度學習架構(如TensorFlow,DeepLearning4J)建構可擴充關鍵型(mission- critical)任務微服務的最新版本。本文中,我想分享出最新的幻燈片并讨論最新趨勢。

本博文的主要内容與我在Confluent Blog中寫的關于Apache Kafka生态系統和機器學習文章一樣,但這裡我更關注深度學習/神經網絡。我還讨論了Apache Kafka生态系統中的一些創新以及機器學習最近幾個月的趨勢:Uber和Netflix上的KSQL,ONNX,AutoML和機器學習平台。下面,讓我們來看看這些有趣的平台以及它們之間是如何互相關聯的。

<b>KSQL</b><b>:</b><b>Apache Kafka</b><b>上的流式</b><b>SQL</b><b>語言</b><b></b>

“KSQL是Apache Kafka上的流式SQL引擎,KSQL降低了流處理領域的門檻,為Kafka中的資料處理提供了一個簡單且完全互動的SQL接口,并且不再需要用諸如Java或Python程式設計語言編寫代碼!KSQL是一個開放源碼(Apache 2.0 licensed),具有分布式,可擴充,可靠和實時等特性。它支援大量的流處理操作,包括聚合,連接配接,視窗化,會話等等。

你可以編寫類似SQL查詢的語句來部署可伸縮的關鍵型流處理app(利用Kafka Streams底層技術)——這絕對是Kafka開源生态系統中的一大亮點。

<b>KSQL</b><b>和機器學習</b><b></b>

現在我們來談談機器學習生态系統中一些比較有意思的新發展。

<b>ONNX</b><b>:代表深度學習模式的開放版本</b><b></b>

“ONNX代表着深度學習模式的開放版本,采用ONNX,AI開發人員可以更輕松地在各種最先進的工具之間對模型進行遷移,并選擇最适合他們的組合。”

1.ONNX專注于深度學習。

2.ONNX有幾家巨型科技公司(AWS,微軟,Facebook)和硬體廠商(AMD,NVidia,Intel,Qualcomm)在使用。

3.ONNX已經支援許多較為領先的開源架構(TensorFlow,Pytorch,MXNet)。

<b>ONNX</b><b>和</b><b>Apache Kafka</b><b>生态系統</b><b></b>

<b>自動機器學習(</b><b>AKA AutoML</b><b>)</b><b>  </b>

“自動機器學習(AutoML)是一個炙手可熱的新領域,旨在使您輕松選擇不同的機器學習算法,其參數設定和預處理方法提高了在大資料中檢測複雜模式的能力。”

使用AutoML,你不需要學習任何關于機器學習的知識就可以建構分析模型。 AutoML使用決策樹、聚類、神經網絡等不同的實作方式來建構和比較不同模型,AutoML支援即開即用。你隻需要上傳或連接配接曆史資料集,然後單擊幾個按鈕即可啟動該過程——不一定對于每種用例來說都是完美的,但是你可以很輕松的改進許多現有的流程,而無需使用罕見且昂貴的資料科學家。

<b>AutoML</b><b>和</b><b>Apache Kafka</b><b>生态系統</b><b></b>

大多數AutoML工具都提供了模型的部署。你可以通路分析模型,即通過一個REST接口,而不是像Kafka可擴充的事件驅動架構這樣的的完美解決方案。 有一個好消息就是:許多AutoML解決方案還允許導出其生成的模型,以便将它們部署到你的應用程式中。例如,在H2O開源架構中的AutoML隻是衆多選擇之一。您隻需在你選擇的程式設計語言(R,Python,Scala,Web UI)中使用另外一個操作:

結合Apache Kafka生态系統,談談2018年機器學習5大趨勢

這和建構線性回歸方法、決策樹或神經網絡比較類似。其結果是生成的Java代碼,你可以很輕松地将其嵌入到Kafka Streams微服務或任何其他的Kafka應用程式中去。借助AutoML,你無需對機器學習有特别深入的了解,同樣也可以建構和部署高度可擴充的機器學習。

<b>ML</b><b>平台:</b><b>Uber</b><b>的</b><b>Michelangelo</b><b>平台</b><b>; Netflix</b><b>的</b><b>Meson</b><b>平台</b><b></b>

結合Apache Kafka生态系統,談談2018年機器學習5大趨勢

你可能會用不同的技術來建構幾個分析模型,并非所有内容都将在你的Spark、Flink聚類或單個雲基礎架構中建構。你可以在公共雲中的一些大而昂貴的GPU上運作TensorFlow來建構強大的神經網絡。又或者你可以使用H2O建構立一些小的,但非常有效率和高性能的決策樹,它能在幾微秒内做出推斷。 ML有許多應用用例。

<b>應用于</b><b>ML</b><b>平台的</b><b>Apache Kafka</b><b>生态系統</b><b></b>

Apache Kafka能夠取得如此成功的原因之一就是它被很多科技巨頭廣泛使用。幾乎所有偉大的矽谷公司,如LinkedIn,Netflix,Uber和eBay都在談論他們将Kafka作為其關鍵任務應用的中樞神經系統。許多人專注于分布式資訊流平台,但是我們也看到越來越多的附加元件被采用,如Kafka Connect,Kafka Streams,REST Proxy,Schema Registry以及KSQL。

再看看上面的圖檔,想一想:Kafka不适合ML平台嗎?它可以進行訓練,監控,部署,推理,配置,A / B測試等。這也許就是Uber,Netflix和其他許多公司已經将Kafka作為ML基礎設施核心元件的原因。

結合Apache Kafka生态系統,談談2018年機器學習5大趨勢

這一次,你不會被迫隻使用一種特定的技術。Kafka最棒的設計理念之一就是:你可以一次又一次地從它的分布式送出日志中重新處理資料,這就意味着可以使用一種技術建構不同的模型作為Kafka接收器(比如Apache Flink或Spark),或者連接配接不同的技術,如:用于本地測試的scikit-learn,運作在Google Cloud GPU上實作強大的深度學習的TensorFlow,用于AutoML的H2O節點的部署安裝,以及其它的部署在Docker容器或Kubernetes中Kafka Streams ML的一些應用程式。所有這些ML應用程式都會按照自己的步調并行地使用資料,不過他們經常性的必須這麼做。

<b>Apache Kafka</b><b>和深度學習:</b><b>OOP</b><b>會議上的幻燈片</b><b></b>

<b>文章原标題《</b><b>5 Machine Learning Trends for 2018</b>

Combined With Apache Kafka Ecosystem<b>》,譯者:Mags,審校:袁虎。</b>

繼續閱讀