當前位置:
首頁 > 最新 > Keras作者力推開源框架Lore:15分鐘搞定深度學習模型從配置到部署

Keras作者力推開源框架Lore:15分鐘搞定深度學習模型從配置到部署

作者|Montana Low

譯者|Debra

編輯|Emily

AI 前線導讀:今天,Keras 的作者 Francois Chollet 轉推了一篇文章,教大家基於開源框架 Lore 在 15 分鐘內建立深度學習模型,用 Python 配置、構建、部署和維護深度學習模型。真的能在這麼短的時間內構建深度學習模型嗎?我們來一探究竟。

更多乾貨內容請關注微信公眾號「AI 前線」,(ID:ai-front)

隨著 Instacart 的發展,我們學到了一些知識,但是獲取知識的方法卻並不簡單。我們的開源框架 Lore ,可以讓工程師距離機器學習更進一步,而且機器學習研究人員也可以操作。

開源框架 Lore 鏈接:

https://github.com/instacart/lore

機器學習一般給人的印象是這樣的:

呃,這張紙並沒有告訴我它的工作方式......

常見問題

為了解決這些問題,我們正在對 Lore 中的機器學習進行標準化。在 Instacart,我們的三個團隊正在使用 Lore 進行機器學習開發,目前已經可以運行十幾種 Lore 模型。

TLDR

以下是在沒有上下文的情況下進行快速預測的演示,你可以從 github 複製。如果想了解全程,請跳至大綱。

功能規格

在 15 分鐘內將自己的深度學習項目投入生產,你就能充分體會到 Lore 的優勢在哪裡了。如果你想在編寫代碼之前查看一下功能規格,請參閱以下簡要概述:

15 分鐘構建深度學習框架大綱

只要懂得基本的 Python 知識,就可以開始這個任務了。如果你的機器不能進行學習,就可以用剩下的時間好好探索機器學習的複雜性。

創建一個新的應用程序

Lore 獨立管理每個項目的依賴關係,以避免與你的系統 Python 或其他項目發生衝突。將 Lore 以標準的 pip 軟體包安裝:

當你無法創建相同的環境時,就很難重複別人的工作。 Lore 保留你的操作系統 Python 的工作方式,以防止依賴性錯誤和項目之間發生衝突。每個 Lore 應用程序都有它自己的目錄,有自己的 Python 安裝,以及把各自需要的依賴關係鎖定到 runtime.txt 和 requirements.txt 中的特定版本。這使得分享 Lore 應用程序的效率更高,並使我們的機器學習項目向避免重複性方面邁進了一步。

安裝 Lore 後,你就可以創建一個新的深度學習項目應用程序。Lore 默認是模塊化的,因此我們需要指定來安裝此項目的深度學習依賴項。

設計模型

我們將演示如何建立一個模型,僅根據名稱和所屬的分類預測商品在 Instacart 網站上受歡迎的程度。世界各地的製造商都會測試各種類產品的名稱,零售商則通過優化產品以最大限度地提高產品的吸引力。我們這個簡單的人工智慧將提供相同的服務。

機器學習最難的挑戰之一就是獲取優質數據。幸運的是,Instacart 已經為此任務公開了 300 萬份匿名貨物訂單,並重新進行調整。然後,我們可以將問題創建成一個監督式學習回歸模型,該模型根據 2 個特徵預測年銷售量:產品名稱和分類。

請注意,我們將建立的模型僅用於演示,並無沒有實際用途。我們給好奇的讀者提供了一個很好的模型,僅供練習。

生成框架

每個 Lore 模型包括一個用於載入和編碼數據的管道,以及一個部署特定機器學習演算法的估算器。這個模型有趣的地方在於類別生成實現過程的細節。

整個過程從左側的原始數據開始,並將其編碼為右側所需的形式。然後使用編碼數據、驗證測試提前終止數據對估算器進行訓練,並在測試集上進行評估。所有內容都可以在模型存儲區進行序列化,然後再次載入數據循環進行訓練。

模型工作原理示意圖

管道部署

很少有原始數據完全適用於機器學習演算法。通常我們從資料庫獲得原始數據或下載一個 CSV 文件,進行調整以適應演算法,然後將其分為為訓練集和測試集。 中的基類將此邏輯按照標準化流程執行。

將數據分成訓練、驗證和測試集,並對我們的機器學習演算法進行編碼。我們的子類將負責定義 3 種方法:,和。

Instacart 公布的數據分布在多個 csv 文件中。

管道的將下載原始 Instacart 數據,並使用 pandas 將其加入到具有和對應的銷售總量的中:

這是的部署:

接下來,我們需要為每列指定一個編碼器。計算機科學家可能會認為編碼器是有效機器學習的一種類型注釋形式。有些產品的名字挺好笑,所以我們會選取它們的前 15 個單詞。

最後,我們的模型通過將它們返回估算器,並從構建的框架中提取數據,來實現深度學習架構的高級屬性。

測試代碼

生成框架時,該模型會自動進行冒煙測試。第一次運行測試需要多花一些時間來下載 200MB 的測試數據集。最好先處理一下中的文件緩存,將其放入 repo 中,以消除網路依賴,加速測試。

訓練模型

訓練模型的數據將緩存在中,並將工件保存在中。

按照第二個終端中的日誌查看 Lore 的耗時情況。

試著添加更多的隱藏圖層,看看是否對模型有幫助。你可以編輯模型文件,或直接通過命令行調用屬性以適應 -。緩存數據集可能需要大約 30 秒。

檢查模型的功能

你可以在你的 Lore 環境中運行 jupyter 筆記本。Lore 將安裝一個自定義 jupyter 內核,並使用你創建的應用程序的虛擬 env,用於和。

瀏覽並「全部運行」以查看模型最後一次適配的可視化效果。

「生產」部門被編碼為「20」

可以看到,針對特定功能時,該模型的預測值和測試集(金色)吻合程度很高。在這個案例中,有 21 個種類都達到了很好的重疊效果,除了「produce」這個類別,因為模型沒有完全計算其有多少異常值。

你還可以看到由腳本生成的深度學習框架。

15 個標記名稱通過左側的 LSTM 運行,種類名稱放入右側的嵌入,然後兩者均通過隱藏層。

為模型提供服務

Lore 應用程序可以作為一個本地模型 HTTP API。默認情況下,模型將通過 HTTP GET 端點公開他們的「預測」方法。

我的結果表明,將「有機」添加到「香蕉」,"農產品"的銷量將提高兩倍。 「綠色香蕉」的銷量預計會比「布朗香蕉」差。

投入生產

Lore 可以通過所有支持 Heroku buildpack 的基礎架構進行部署。 部署容器的和中的 Buildpacks 安裝有具體規範。如果你想在雲端橫向擴展,可以按照 heroku 的入門指南進行操作。

你可以查看每次在

中進行 lore fit 命令的結果。該目錄和默認位於中,因為你的代碼可以隨時重建它們。一個簡單的部署策略,是插入所要發布的模型版本。

Heroku 可以輕鬆發布應用程序。這是他們的入門指南。

https://devcenter.heroku.com/articles/getting-started-with-python#introduction

這是 TLDR:

下一步

我們認為這個框架的 0.5 版本為社區一起構建 1.0 版本奠定了堅實的基礎。發布修補程序版本可以避免重大改動,但次要版本可能會根據社區需求更改功能,棄用舊版本並進行更新升級。

以下是我們計劃在 1.0 版本之前添加的一些功能:

感謝 Jeremy Stanley、Emmanuel Turlay 和 Shrikar Archak 對代碼的貢獻。

https://tech.instacart.com/how-to-build-a-deep-learning-model-in-15-minutes-a3684c6f71e

如果您覺得內容優質,記得給我們「留言」和「點贊」,給編輯鼓勵一下!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI漫遊 的精彩文章:

為什麼我們如此關注可解釋的演算法?為黑盒演算法辯護
AI研究新利器Etymo,媽媽再也不用擔心我找不到論文!

TAG:AI漫遊 |