組織繼續發展他們的機器學習(ML)實踐中,有一個越來越需要健壯和可靠的平台能夠處理整個毫升生命周期。Beplay体育安卓版本MLOps的出現是有前途的,但許多挑戰仍然存在。
現在注冊看磚的最新發展麵向自動化MLOps——包括新的Git和CI / CD集成,自動記錄實驗中,模型explainability和模型。
我們還將討論:
演示將增強演示,以及成功案例和經驗等專家的真實示例部署管道進行預測分析。現場問答和討論將此事件數據科學從業人員和領導人的參與。
MLOps和ML平台狀態的Beplay体育安卓版本行業——馬泰Zaharia首席技術官兼聯合創始人,磚和克萊門斯Mewald,產品管理總監,磚
端到端MLOps PyTorch磚使用MLflow——肖恩·歐文,主要架構師,磚。
馬泰Zaharia
首席技術官兼聯合創始人
磚
凱文王
能力領先,毫升工程師
H&M
韋斯·克拉克
首席架構師、企業分析和人工智能
象J.B.亨特運輸
卡拉菲利普斯
數據科學、MLOps顧問
阿提斯動物園谘詢
演講者1:
數據大,但它的潛力更大。結合人工智能數據時持有的承諾治療疾病,拯救生命,扭轉氣候變化和改變我們的生活方式。我們相信未來取決於數據和釋放其無限的潛力。我們來實現它。
演講者1:
磚是數據和AI公司。我們幫助數據團隊、工程師、分析師和科學家共同努力,找到價值內部數據和解決世界難題。因為我們所麵臨的挑戰的企業,人,作為一個星球,不容易。他們在筒倉無法解決。不能由一個人來解決。我們需要的所有數據,所有的科學,所有的腦力。我們需要甲板上所有的手,在一個地方。隻有開放統一的數據管理平台,業務分析和機器學習,改Beplay体育安卓版本變了一切。擴大我們的理解是可能的。它會讓事情簡單。 It turns weeks into minutes. So data teams can innovate faster, because that’s how innovation should happen. Collaborative and fast.
演講者1:
所以讓我們藐視的假設。打破模具。地圖每一個基因組。治愈癌症。暴觀察宇宙。洞穴研究黑洞。讓每一個聲音。黑客攻擊。(聽不清00:01:33)。承擔更大的月球探測器和土地。
發言人2:
天空已經變成了一個男人的世界的一部分。
演講者1:
從現在開始沒有站在你和你的數據,你的力量和答案,因為數據是知道的力量。現在你知道了。
西爾維婭Simion:
歡迎每一個人。和謝謝你加入我們MLOps虛擬事件。我的名字叫西爾維婭西蒙。我做產品營銷數據磚,我很興奮來到這裏與你今天為您的主機,以及與我們的演講者,因為我們有一個非常激動人心的陣容,他們為你準備了一些很棒的演講和演示討論和展示的最佳實踐和技術如何更好地實施和自動化大規模機器學習。所以我真的希望你會喜歡聽到他們,了解更多關於機器學習實踐一套不同的設置。
西爾維婭Simion:
不久我們將踢東西與我們的開幕主題演講和演示,將隨後從H&M揚聲器,JB狩獵和阿提斯動物園谘詢。然後我們將與現場問答結束戰鬥結束時的事件,但首先一些家務和物流。
西爾維婭Simion:
你的音頻連接將成為整個網絡研討會,柔和的我們聽不到你。這個事件的記錄將是可用的。確保訪問磚博客的細節。會談和提供最好的經驗已經預先錄製好的。說了這麼多,我們設計了這是一個高度交互的事件。我們的揚聲器和幾個工程師從磚領域的問題。如果你有問題在任何時候使用聊天框在這個事件,它是平台的一部分。Beplay体育安卓版本我們也會有一個問答會話結束時的事件。為特定的主持人,如果你有問題請指出它在你的問題,我們會直接給適當的人。
西爾維婭Simion:
對於那些不熟悉磚是誰,我們公司成立了最初的創造者Apache火花七年前。我們的使命是幫助團隊解決世界難題的數據。和我們的業務重點是幫助企業加速創新通過結合數據工程師、科學家和數據分析師整個組織。很多人意識到我們的創造者和創始人的一些最好的開源技術,從火花,而且三角洲湖,MLflow,最近我們也收購了Redash。
西爾維婭Simion:
所以讓我們開始吧。讓我們跳。我們的日程排得很滿。我們的開幕式主題MLOps和ML平台狀態的行業將由馬泰Zaharia和克Beplay体育安卓版本萊門斯Mewald磚。馬泰,克萊門斯將隨後肖恩·歐文,誰將給我們一個演示為端到端MLOps Pytorch使用MLflow磚。
馬泰Zaharia:
大家好,歡迎來到我們的MLOps虛擬事件自動化大規模機器學習。所以我認為每個人都在這個網絡研討會意識到機器學習正在改變所有主要行業在許多從醫療保健到物流,工業物聯網。旅遊公司已經部署成千上萬,在某些情況下的模型管理日常運作。但與此同時,機器學習是非常不同於傳統軟件和開發和操作機器學習應用程序很複雜。讓我們看看一些的方法是不同的。首先,目標。傳統軟件的目的通常是為了滿足某種功能規範。例如,當你按下這個按鈕,你創建一個帳號。基本上這是一個布爾的目標,或者你見過目標,或者你沒有。一旦你做到了,你就是這樣工作的軟件。 It’s going to keep working.
馬泰Zaharia:
另一方麵在機器學習中,目標通常是優化預測精度等指標。所以這是你從未完全完成。總有辦法讓他們更好。而且它也可能隨時間變化,成為世界你的變化。我們的第二個重要的區別是什麼影響了質量。在傳統的軟件,你的軟件的質量隻取決於你所寫的代碼。所以你可以檢查該代碼,您可以調試它,在某種程度上你可以說,好吧,就完成了,然後應用程序將繼續工作很好。
馬泰Zaharia:
相比之下,在機器學習,機器學習的定義是項目推廣從數據集可以給培訓他們。所以質量在很大程度上依賴於訓練數據,這些數據必須改變隨著時間的推移改變你周圍的世界,所以您的應用程序的質量也會改變。此外,當你改變數據,現在你可能也有調優參數的變化對你的算法,這是一個額外的複雜性。困難得多說,好了,一旦我寫的代碼我完成應用程序,你必須保持培訓新數據和調優優化,以獲得最佳性能。
馬泰Zaharia:
最後,讓我們看看你使用什麼樣的軟件來構建應用程序和如何管理。在傳統的軟件,通常隻選擇一個軟件棧。例如,您選擇一個數據庫,你選擇一個web服務器框架,你選擇一個UI框架等等,然後構建應用程序就是這樣。
馬泰Zaharia:
相反,在機器學習,因為你的目標是優化某種度量你總是希望能夠嚐試新的庫,新算法,各個部分的管道,或者把它們以一種新的方式來做同樣的測試,因為如果你能提高預測精度百分之一,百分之一,使潛在的一個很大的影響你的生意。所以你需要基礎設施很容易切換的機器學習和嚐試不同的庫和算法,與傳統的軟件。所以由於這些差異操作機器學習應用程序是非常複雜的,這就是為什麼它引發了整個MLOps領域。
馬泰Zaharia:
首先有很多團隊和係統涉及,因為應用程序不僅包括一些代碼寫的ML工程師,也是一個數據管道喂食,還有一些工作在應用程序中集成模型,然後監視的行為並提供反饋來改善它。所以它涉及至少這三個不同的團隊,有時也許更需要合作。
馬泰Zaharia:
其次應用程序需要不斷更新的數據,你需要不斷地計算和驗算指標看到它是如何做的。所以你不僅需要一個應用程序,該應用程序的運行一整套數據背後管道保持喂養它,再培訓並確保它工作在最高效率。
馬泰Zaharia:
最後,與機器學習,很難從開發到生產環境,因為在開發中,你嚐試很多不同的庫和方法,你需要以某種方式捕獲通過創新的方式和運行它在生產或運行應用程序,確保它產生相同的結果。
馬泰Zaharia:
因為這些複雜性的一個我們發現與業內很多機器學習團隊,他們常常要花一半的時間隻是維持現有的模型,他們已經投入生產。他們沒有很多時間花在開發新的模型。所以想出一個真正重要的MLOps過程自動化盡可能多的這些團隊可以創新,不僅花時間照顧這些模型以及確保他們工作至少今天像昨天。
馬泰Zaharia:
所以他們應對這些挑戰是一個全新的類的軟件稱為機器學習平台、軟件管理毫升開發和操作流程,從數據實驗和投入生產。Beplay体育安卓版本和很多公司建立了內部毫升平台。Beplay体育安卓版本一些例子包括最大的網絡公司如Google, Facebook和乳房,但許多其他企業建設。還有很多工作在開源社區設計,特別是磚,我們開始MLflow這是使用最廣泛的開源項目的空間。通常這些毫升平台提供一係列Beplay体育安卓版本功能。他們可能包括數據管理、實驗管理、降低指標加班、模型管理,讓你分享模型,還可以使它很容易部署模型推理或複製一個或測試監控和應用程序。他們做這一切通過一個一致的接口,以便您的團隊可以采納和使用不同的模型以同樣的方式,不斷的尋找,不斷的提高最好的模型為一個特定的測試。
馬泰Zaharia:
毫升平台有很多不同的組件,但有一件事我想談談是什麼特性,可以使一個毫升頂部平台成功或失敗,真Beplay体育安卓版本正使他們更成功。基於我們的經驗與成千上萬的組織合作,使用毫升,我們發現三個非常重要的功能,你應該想到的。第一個是易於采用ML平台由數據科學家,工程師和用戶模型。Beplay体育安卓版本基本上每個人都會參與這個過程。所以你需要問他們做多少功使用平台,特別是如果他們有現有的代碼或現有的數據管道或現有的應用程序,你想采用這個平台。Beplay体育安卓版本還需要問什麼機器學習庫,部署環境等等所支持。
馬泰Zaharia:
和大多數的這些事情會帶來巨大的不同。如果平台很容易Beplay体育安卓版本采用,那麼數據科學家、工程師、數據等將開始使用它,你就會開始所有這些好處的主要方法來管理和運營數據的應用程序。如果很難接受,這將是一場艱苦的戰鬥,人們可能會認為這是太多的麻煩真正開始使用這個。這是一個主要的事情我們試圖優化,例如MLflow。
馬泰Zaharia:
第二個重要的因素是與您的數據集成的基礎設施。就像我說的,機器學習應用程序所有提要數據非常常見的機器學習團隊想去改變一個數據管道,收集一種新的數據等等或管理自己的數據集,例如,創建版本,這樣他們就可以有一個可再生的模型訓練和實驗。
馬泰Zaharia:
所以它是非常重要的對你MLOps基礎設施與數據集成基礎設施,新功能,如數據示意、監測、治理和API集和用戶接口,方便人們和機器學習數據工程師合作。這是我們花了很多精力,當然。
馬泰Zaharia:
最後我們發現非常有用的東西是協作功能,允許團隊共享代碼,數據、特性,實驗和模型在一個中心位置在一個公司。當然,這樣做安全,這樣你可以控製誰可以訪問。這是因為很多機器學習項目可以受益於建立在以前的項目中。也因為有那麼多不同類型的密鑰和用戶參與,這是非常重要的人能夠找到一個模型的最新版本,或最新版本的數據集等,建立可靠而不僅僅是電子郵件之間自己周圍的具體文件等等。
馬泰Zaharia:
這些教訓激勵的方式,我們也支持MLOps和數據庫,然後在我們的團隊開發的開源項目。基本上我們的哲學在MLOps是雙重的。首先,我們認為每一個組織的內部的需求將略有不同,因為他們的業務,他們的數據,或專業知識等等,它會隨時間變化,因此,我們可能會提供一個通用平台,很容易融入不同的工具你可能會在你的公司。Beplay体育安卓版本,允許您更改的細節你做機器學習隨著時間的推移,還有一個主要的方法來管理和團隊消費的主要方式和運行你的應用程序使用毫升。我們可以通過使用三大支柱。
馬泰Zaharia:
第一個是磚的工作區,這基本上是一個統一的開發環境,數據科學家,毫升工程師,工程師,數據分析師都可以合作工作相同的數據和相同的代碼,以便幫助我保持在一起。然後兩個開源項目,三角洲湖是一個數據管理層雲存儲的文檔,這是Amazon S3提供交易版本控製,和一大堆的豐富的管理功能,讓您輕鬆處理這些團隊的大型數據集。和MLflow機器學習是一個開源的平台,您可以與許多流行的編程語言,集成庫,部署工具等等的很多功能我Beplay体育安卓版本談論如實驗管理、監控、集中共享模式等等。
馬泰Zaharia:
在這個網絡研討會中,我們將討論的要求詳細MLOps和其中的一些技術。我們要談談我們如何和其他組織執行MLOps規模。我們會有一些演示展示以及從我們的兩個大型毫升客戶的經驗,在這個過程中他們學到什麼。beplay体育app下载地址最後我們會有一個問答活動的主持人。我希望你享受網絡研討會。
克萊門斯Mewald:
好吧。謝謝你,馬泰概述。我將帶您親曆在磚我們如何解決其中的一些問題。所以磚提供了很多不同的功能,但是在這個演講,我想從的角度對磚一個毫升平台。Beplay体育安卓版本所以在這個演講,我要通過每一個盒子和描述數據磚地址很多這些挑戰。我們將開始與數據科學的工作區。數據科學工作區是工程師的環境數據,數據科學家,ML工程師和數據分析師可以一起和協作在世界上競爭最激烈的問題。內的核心用戶麵數據科學工作區使用筆記本。和磚有相當獨特的筆記本。
克萊門斯Mewald:
首先,它實際上有多語言支持。這意味著每個筆記本都有一個默認的語言。你可以看到這是一個Python的筆記本。這意味著每個季度的筆記本,它將默認情況下解釋為Python,然後每個細胞可以聲明自己的語言。所以你可以閱讀Scala、SQL、Python或R都在相同的筆記本。這不僅給你一個很大的靈活性,但也促進了合作。所以數據工程師可以使用Scala在同一個筆記本和數據科學家可以使用Python。然後這些筆記本也有原生雲協作功能,你使用其他產品,如評論在一個筆記本上。beplay娱乐ios也當你分享一個筆記本,我們有一個功能叫做Co-Presence有Co-Presence指標也顯示你,別人的筆記本。如果人有編輯的權利,你可以看到他們的遊標和實時編輯。 So you can really in real time collaborate on the same notebook and on the same code.
克萊門斯Mewald:
現在,筆記本電腦非常適合探索和實驗,但我們也要確保我們方便將其投入生產。所以我們引入了一個新功能叫做Git-based項目允許你(聽不清00:17:58)數據成磚,然後檢查你的筆記本電腦,到你最喜歡的Git的供應商的選擇,通過代碼評審過程,運行一些測試,任何你能想到的CSV自動化運行,然後帶他們回磚生產運行工作。所以這真的結合了筆記本的靈活性和CSV和軟件部署係統的嚴密性。
克萊門斯Mewald:
現在,一旦你有了兩個數據科學的工作區,接下來你真正關心的是確保你可以訪問所有數據。所以磚提供了一個非常獨特的產品稱為三角洲湖,這也是一個開源產品,但也集成到平台。Beplay体育安卓版本三角洲湖之上提供了事務層的三角洲湖所以你保持在你的數據的選擇和三角洲湖湖上為您提供額外的好處。
克萊門斯Mewald:
首先,你可以在任何規模攝取任何格式的數據從任何來源。所以不管這是一個CSV文件或像情文件或一個CSV文件,你可以攝取所有和使用三角洲湖的格式。和三角洲湖提供資產交易來保證數據的有效性。所以任何攝入和任何改變你在δ表,實際上創建了一個新的事務,也促進功能將被稱為時間旅行。所以每次交易發生時,我們增加版本,數量寫日誌。然後你可以回到過去,因此,名稱,和看看你的數據在一個特定的版本,因為我們隻是忽略版本的交易發生後,這實際上是一個非常獨特的功能和促進再現性。和整合這個MLflow我們實際上創建了一個自動日誌數據的使用和版本信息。我將更詳細地告訴你,後麵的幻燈片。
克萊門斯Mewald:
所以在磚我們真的想把重點放在訓練的機器學習模型。所以機器學習運行時提供了一個環境的DevOps-free機器運行的配置和優化。我們提供一些不同口味的截圖。你看,我選擇了GPU運行時,所有的司機和配置設置為你,所以你可以走了。當你選擇,你隻需要選擇一個[聽不清00:20:24]類型的雲,你的選擇。然後你可以訓練你的GPU模型。
克萊門斯Mewald:
現在,我們在這些運行時包什麼?我們最受歡迎的ML打包庫。從TensorFlow, Keras, Pytorch, Scikit-learn當然MLflow。預配置和預裝機器學習在運行時。我們釋放機器學習運行時經常以確保這些都是最新的。我們嚴格測試,以確保所有這一切其實很好地協同工作。你不必擔心自己設置這些環境。我們還包括庫更容易分發你的機器學習,深入學習庫。和我有一個幻燈片後這一個。當然,我們也建在圖書館的超參數調優和autoML我會回到一個或兩個幻燈片。
克萊門斯Mewald:
所以對於分布式訓練,我們實際上支持內置機器學習在運行時分配Keras, TensorFlow和PyTorch模型。當然,你總是可以訓練他們和評估模型的分布式火花,但Horovod運行一個特定的用戶庫,幫助您分發Keras, TensorFlow和PyTorch模型。然後我們還介紹了支持TensorFlow原生分布策略,這是在TensorFlow 2.0中引入的。
克萊門斯Mewald:
然後超參數調優,我們整合叫做Hyperopt的一個圖書館,有一個非常簡單的接口。我們配置了搜索空間,然後你調用這個函數管理,然後我們還用這個API稱為SparkTrials擴展它。如果你使用Hyperopt開源庫,它將運行所有這些試驗序列。但SparkTrials,我們使用一個集群並行化試驗,在這裏你可以看到6個試驗並行總共96次試驗。再一次,這並不需要一個火花模型,所以你可以訓練一個Scikit-learn模型指導你通過它。然後我們基本上把Scikit-learn模型和訓練六個不同版本的模型超參數在同一時間不同。你會看到在後麵的幻燈片,但這與MLflow自動集成。得到所有的跟蹤你的免費培訓運行在MLflow超參數。
克萊門斯Mewald:
現在,你的模型是訓練有素的部署選項是什麼?和MLflow真的提供了一個非常靈活和豐富的開箱即用的部署選項。所以這張幻燈片上,你可以看到隻是一個示意圖的一些支持毫升框架,它是如何被記錄為一個MLflow模型,在MLflow追蹤服務器,然後部署被MLflow注冊管理。然後你有很多不同的選擇的部署這些模型,無論是一個碼頭工人容器,火花UDF rest端點或使用一些開源庫。我雙擊其中一個選項來強調對模型的一個重要組成部分與MLflow部署。
克萊門斯Mewald:
這是您將使用的核心方法部署毫升模型記錄作為MLflow模型引發UDF。所以你可以看到,這裏隻是裝載它,你會引用模型在模型中注冊的名稱和生產階段,然後把它應用到一個數據幀。這適用於火花MLLib模型。現在讓我們看看這對Scikit-learn看起來像。這是一行代碼,您將使用Scikit-learn模型,這是一行代碼,您將使用TensorFlow模型。所以為了戲劇性的效果,讓我回去,引發MLLib, Scikit-learn TensorFlow。所以我認為你注意到,是的,他們都是一樣的。這就是MLflow格式的好處之一是,它叫做Pyfunc這種抽象,使任何毫升Pyfunc函數模型。
克萊門斯Mewald:
所以所有的部署選項看起來一樣。所以不管模型是在火花MLLib受訓,Scikit-learn, TensorFlow,它的運作是一樣的。和相同的聲明適用於所有的部署選項。所以建立一個碼頭工人容器MLflow模型,同樣的事情,不論什麼一個MLflow框架,我們使用。這是非常方便,特別是因為我沒有看到一個企業隻使用一種類型的框架。
克萊門斯Mewald:
現在我們討論了完整的整個流程,讓我們看看所有這一切的基礎就是MLflow和給你提供的端到端MLOps和治理能力。所以在MLflow我們介紹這個功能,我們稱之為汽車日誌記錄。所以我們自動跟蹤盡可能多的信息關於你的工作,堆滿了我前麵所說的,這是跟蹤的數據來源和版本控製。如果你使用一個數據表
克萊門斯Mewald:
支持的數據源和版本控製。如果你使用一個數據表,我們跟蹤表本身的使用和版本號如前所述。所以,你可以回去後說,我想看看我的數據用於訓練確切的版本,我用。這信息是自動登錄的。順便說一下,我們做鉤到火花數據源API。這適用於任何火花數據源如果你讀一個CSV文件,它的工作原理。不過,當然,如果你讀一個CSV文件,我們不需要版本控製的時間旅行特性。現在我們也開始捕捉這些模型的模式。
克萊門斯Mewald:
所以你可以看到,我們必須輸入模式的一個例子,然後預測列的類型為模型,以許多不同的方式幫助我們。其中一個是在模式部署。我們可以檢查是否兼容模式的部署時間模型。這就顯示了基本的自動跟蹤的所有Mlflow框架。對於所有這些Mlflow框架,如果你訓練模型,並使用自動登錄Mlflow,你得到的所有參數,指標在百分之一的基礎上,我們可以跟蹤所有的工件自動為您記錄。正如你所看到的,這適用於所有流行的Mlflow框架。
克萊門斯Mewald:
這也是我之前顯示,自動記錄hyperparameter調優搜索,然後我們可以在所謂的平行坐標可視化情節。閱讀的方式這是每一個這些線監測試驗。顏色編碼的優化指標,這是損失。所以你可以看到所有的藍線有一個損失,然後你可以直觀地看到這實際上每個參數的值會導致一個高質量的模型。再一次,這是自動登錄如果您有參數調優磚使用機器學習一次。
克萊門斯Mewald:
我們也開始實現自動跟蹤模型的可解釋性。所以使用一個非常受歡迎的圖書館給世鵬科技電子罩,我們在路上為模型計算功能的重要性你訓練它。然後如果你做類似的訓練圖像模型,我們可以想象未來的基於區域的圖像重要性有助於預測。這是強大的,它給你一個了解你的模型在訓練時間行為。
克萊門斯Mewald:
當然,除了所有男性的具體特性,我們還跟蹤代碼本身。在臨時版本的代碼當你訓練它,經典配置時使用你的電腦運行模型和環境配置庫的使用。
克萊門斯Mewald:
一旦準備好部署模型,我前麵提到的,您可以使用該模型注冊在磚。的模型,所以這是一個截圖在磚注冊的管理模式,在那裏你可以找到模型,他們的版本,這些版本的部署階段。和我們有多餘的控製上實現每個階段水平,促進不同階段之間的切換,我們稍後會看到下一張幻燈片。
克萊門斯Mewald:
所以你可以看到我們有治理的要求條件具體階段模型。如果有人沒有訪問控製過渡,他們隻看到請求的選項。然後我們當然保持審計日誌模型發生了的一切。我們最近的評論在這裏實現,基本上,你可以發表評論,與同事協作管理這些模型的部署過程。
克萊門斯Mewald:
這張截圖是來自某些產品和磚。這是最簡單的方法你可以部署一個Mlflow模型作為終點。單擊一個按鈕,表示啟用服務,我們提出一個集群和終點暴露模型作為休息,它還會自動知道他們所有的版本和部署階段。如果你調用模型名稱減產終點你將永遠得到你的要求總是被路由到的版本將會標誌著生產。這是截圖實際使用火花的一個輸出流實時監測模型。這是計算流AMSE告訴你新預測模型的質量和標簽。
克萊門斯Mewald:
所以你可以猜,當我們走過所有這些信息,我們跟蹤,我們基本上是檢查了他們所有的評論在這再現性清單。我們有使用的代碼所使用的數據,您使用集群配置,環境規範。如果你真的實施了再現性特性,允許您在事後我們生產使用的代碼,如果您使用的數據表,我們知道你使用的數據版本,我們可以為您重新創建集群或具體的配置。我們還可以創建相同的環境和庫配置,你這是非常獨特的,並由這一事實使他們實際上跟蹤所有這些信息端到端從數據模型部署。這是一個快速概述磚一個毫升平台。Beplay体育安卓版本這個,我要把它傳遞給肖恩,我們會給你一個實際產品的演示。
肖恩·歐文:
好,大家好。這是肖恩·歐文。我是主要的解決方案架構師在磚,今天,我在這裏向你們展示一些新特性的MLflow磚。這些人則和服務從注冊表和新汽車Pytorch和世鵬科技電子日誌記錄功能。但是在這個過程中,我也想向您展示如何使用一些有趣的方式我認為可以應用這些工具如Pytorch和世鵬科技電子甚至三角洲湖來解決這個問題。和這裏的問題具體分類圖片,胸部x光檢查。這是國立衛生研究所提供的這個數據集Kaggle實際上成為比賽的一部分。所以隨著圖像,我們有標簽,他們的一個或多個14種不同診斷x射線所示表明也許是什麼,什麼是錯誤的與胸部在這些情況下。這裏的任務是學習,把這些圖片,也許解釋了為什麼他們這樣的標簽。當然,在這個過程中,我們將使用MLflow來幫助我們。
肖恩·歐文:
所以謹慎的話,我不是醫生,你可能不是一個醫生,這裏的模型我們將構建一個簡單的一個。它可能不夠好供臨床使用。這不一定是不夠準確的。所以請不要診斷。不要在家裏嚐試這些,但我希望它表明,這種學習和解釋是完全可能的。和所有的事情一樣,我們從數據開始,我不會花太多時間在這裏的數據,但是我想告訴你如何三角洲湖這樣的技術可以幫助處理所謂的非結構化數據如圖片。所以δ正如你可能知道,支撐Lakehouse架構和磚,這意味著你可以做這樣一個數據倉庫業務規模,但你也可以分析非尖端表格數據圖像在同一個地方和δ可以幫助。
肖恩·歐文:
所以我們要先閱讀了火花,火花就可以輕鬆閱讀的圖像目錄完整的圖像,得到不錯的縮略圖在當我們裝載這些線在磚。然而,我們可能不希望剛讀火花的圖像,但繼續ETL三角洲表。所以為什麼?δ是事務。這意味著我們不需要擔心誰寫的表的圖片為我們閱讀它。它還提供了時間旅行。這讓我們也許回去查詢這個圖像數據集的狀態之前的時間點。也許當我們構建模型三個星期前,我們可以查詢,表的時間。
肖恩·歐文:
但也許更重要的是,深度學習通常涉及某種程度的前處理。我們必須規範化圖片、大小和深度和渠道,也許我們想做的,隻有一次,而不是一遍又一遍,我們通過數據建立一個模型。在雲中,也可以緩慢的反複閱讀一堆小文件保持清單那些存儲桶。也許有速度優勢etl一旦進入一個表和閱讀這些氣泡從一個壓縮像三角洲高效的數據存儲,如果我們必須讀一遍又一遍。
肖恩·歐文:
為此,我們將從一點開始。我們同意的圖像,但也很快ETL成blob和我們還需要加載元數據與這些圖像,標簽,和解析他們一點得到各種標簽的圖片,然後簡單地加入他們的行列。加入了圖像數據和標簽,我們可以簡單地寫出來作為三角洲表,並將它注冊到元商店。我們應該能夠看到的例子,如果我們想要的。好吧,我們好。我們有圖片、列和14種不同的可能的診斷。回筆記本。
肖恩·歐文:
現在讓我們看一下建模問題。最終,在這個例子中,我們將使用MLflow因為我想向您展示如何與Pytorch MLflow集成。實際上MLflow集成了所謂Pytorch閃電。所以對於Pytorch用戶使用Pytorch通常意味著你就會知道,寫了不少樣板代碼來描述培訓循環和手動運行它。Pytorch閃電抽象一些。所以你不必寫的一些樣板你可以寫這裏的關鍵部分。所以我們會在一分鍾內。
肖恩·歐文:
所以要從這裏開始,我們將閱讀此表的圖片。既然不是很大,大約是2.2 gb。我們要把它降低到一個熊貓。DataFrame這裏做一個簡單的訓練測試分裂之前我們開始訓練。現在,我會說,你可以同樣的方式適應更大的數據集。你可以分發培訓的火花稱為Horovod Pytorch和工具。但是為了簡單起見,我們沒有這樣做。我們要培養這個相對較小的數據集在一台機器上。
肖恩·歐文:
我們將定義一些輔助函數。Torchvision同伴包Pytorch,允許您定義一些額外的轉換所需的輸入。例如,在這裏我們需要轉換圖像的通道順序有點和規範化的方式糾正pre-trained層我們會應用到模型中。所以一點細節,但Torchvision有助於將幫助我們。又Pytorch用戶會知道你訪問數據通常定義一個數據集的類定義的數據集有多大,你如何得到單個元素。這裏我們使用這些變形金剛等等,我們說它是如何定義的相對增量表中的原始數據準備的東西在Pytorch這個特殊的模型。這是一個真的,隻是閱讀的圖像,把它和返回轉換後的版本。
肖恩·歐文:
現在,我們進入Pytorch建模之前,我們要讓MLflow的這個新特性。MFflow已經支持自動登錄的流行包像Scikit-learn Keras TensorFlow,現在支持Pytorch。為Pytorch啟用自動登錄,我們甚至不需要編寫MLflow代碼為了得到一些好處為了記錄我們做什麼當我們火車Pytorch模型。
肖恩·歐文:
所以讓我們構建模型。現在這裏是我們要用Pytorch閃電,我希望這是有趣的Pytorch用戶可能還沒有見過它。與Pytorch一樣,我們需要定義一個模塊,定義了網絡我們要培訓和定義我們如何訓練它。但是而不是直接寫訓練循環,我們隻是填補一些空白。例如,我們必須定義如何,網絡是什麼樣子,這裏其實主要是密集的網一個21。所以我們加載這個pre-trained模型。這是轉移學習,我們不會試圖再培訓,並添加一些輟學頂端,並添加一個完全連接致密層之上,為了最終建立一個分類器的預測從這些圖像的一個或多個這些14可能的診斷。
肖恩·歐文:
所以很簡單的東西Pytorch用戶。好處是必須找到所有的關鍵部分。前是通過數據,優化器是什麼,如何驗證,如何訓練。我們隻是讓Pytorch閃電,做下麵的工作。它可以做一些不錯的東西例如,自動調整,我們的批量大小自動調整,我們的學習速率,處理早期停止之類的東西。這是一個很好的框架和Pytorch閃電因為它有所有這些鉤子是MLflow可以鉤到自動日誌。
肖恩·歐文:
所以我不打算運行以來這裏的實時模型訓練需要17或18分鍾GPU。但如果你運行這個,你會發現奇跡般地沒有MLflow代碼,你會得到模型記錄如果你跑細胞MLflow磚MLflow集成到這個實驗側欄可以看到。如果我們流行出來,你會看到這個模型是我們從Pytorch汽車日誌記錄。它有一個相當豐富的信息的模型?我做到了。花了多長時間,是什麼筆記本的具體修改的代碼,使模型?當然,所有的關鍵參數為Pytorch模型定義關鍵指標,史詩是最好的,最後驗證的損失是什麼?當然我們得到模型得到最後一個檢查點。我們得到一個總結的網絡架構,很有用的信息,甚至一些有用的提示我們如何可能會從MLflow裝載這個模型後。
肖恩·歐文:
現在我還想告訴你…好吧,首先,我應該說,這個模型,我不打算給你太多關於它的準確性,但放心它實際上很類似結果的準確性達到你可能會看到在報紙上介紹這個數據集。因此pre-train層和現代工具我們可以做的好。開箱即用的。我相信你可以做得更好一些,一些時間GPU和獨創性。
肖恩·歐文:
現在,下一件事是有趣的。我想向你們展示與MLflow服務模型。一個關鍵MLflow手你回你的模型也許一個更有用的形式。有時這可能是一個引發UTF,然後可以應用函數引發一係列的數據,但它也可以創建一個模型,一個microservice, REST API。你總是能夠部署到Azure服務毫升或亞馬遜SageMaker。MLflow但最近,最新版本,你可以為模型的模型注冊在磚。這就是我要告訴你。這是我為這個筆記本注冊模型。和我目前的工作在三個版本,如果我喜歡我可以啟用服務注冊模型和可用的我突然有一個終點即使在磚,我可以發送圖片給你分類。
肖恩·歐文:
但我想說的更多。那麼這些REST API是公開一個服務,可以接受輸入,並返回的JSON格式化描述分類作為輸出。唯一的問題是輸入在這裏真的是一個形象。這是一個張量和沒有一個很好的方法來描述,在JSON,至少不是形式,MLflow可以自動轉換成JSON。為了使這項工作,我們要定製一點。這在某些方麵我認為說明了MLflow的力量,如果你需要你可以改變它是如何工作的。所以我們要定義一個自定義MLflow模型,將包裝我們Pytorch模型和使我們接受形象base 64編碼字符串的字節將解析圖像,應用轉換,應用Pytorch模型,然後返回結果。
肖恩·歐文:
所以這真的不是太難。如果你需要,你可以這樣做。這現在使我們能夠把這變成一個服務,我們可以接受圖片通過JSON並返回他們的分類。所以在定義這個類,我們需要做的是我們實際Pytorch負荷模型,在這個包裝器和日誌包起來。這個模型我們部署MLflow注冊為現在的磚。所以你可以看到我已經注冊,但僅供參考,你會發現,你可以在這裏注冊模型通過點擊注冊模型和選擇模型你感興趣。但我已經注冊了一個我感興趣的。
肖恩·歐文:
隻是為了證明它的作品,讓我們嚐試一下代碼裝載圖像並將其發送到終點。所以我要加載一個圖像從存儲。再一次,一個三角洲湖的房子建築的優點是你可以處理數據表。你可以處理數據文件和圖像。沒問題。所以我從數據集加載一個圖像。這就是它看起來的樣子。放射科醫生也許可以理解。我沒有看到什麼有趣的東西,但讓我們看看模型認為。為了使用這項服務,我們隻需要編碼,編碼一個適當的JSON請求,將其發送到API和呈現結果。 And we get that back here as a pandas.DataFrame.
肖恩·歐文:
這裏我們可以看到的是它看起來像模型認為這可能是肺不張的一個例子,這是一種肺崩潰或滲透,但可能不是疝氣。這是概率。嘿,這是有用的。我的意思是,如果這是一個更好的模型和審查由專業人士,你可以想象這將是一個有用的助理也許放射科醫生,想要一些正麵向下的他們可能會尋找什麼。也許一個模型可以幫助他們找出甚至可能。
肖恩·歐文:
之前我去更深層次的在這一點上,我想介紹一個新的和其他功能的MLflow最新版本的人。所以模型注冊,您可能已經看到,其作用是管理的一部分的狀態版本的模型。所以你可能有一個當前的生產版本,您將創建一個新版本的模型和分段的候選人,你測試它。和你在某種程度上促進生產如果你測試通過許可。
肖恩·歐文:
這些都是重要的事件,這些事件可能創建一個新的模型,創建一個新的測試候選人需要觸發類似測試工作,CICT工作。這就是為什麼MFflow現在支持人則觸發操作以響應這些事件。很容易注冊。你需要直接訪問REST API,但可以像這樣,傾聽有效地對這些事件。現在,簡單的例子,我要建立一個Webhook觸發消息鬆弛通道隻是一個簡單的演示,但你可以想象比這做得更多,引發λ,引發CICT工作。所以我注冊這Webhook引發萍我鬆弛的頻道,每當發生注冊模式,我們應該看看這個作品。例如,如果我進入一個模型和評論。我應該發現它注冊一個新消息在我們鬆弛的通道。在這裏。好吧。 Pretty good.
肖恩·歐文:
好吧。現在我想進入另一個新特性,即模型解釋。有時,我們想知道為什麼模型做的做的事情。有一個流行的開源工具,稱為世鵬科技電子,可以為你這樣做。這可以解釋在個體預測水平,那麼輸入導致模型做出預測。使用世鵬科技電子不是一件難事,但在MFflow 12,它可以自動做漂亮。一行或兩行代碼,你可以得到MLflow為您創建模型的解釋,甚至日誌的情節。這是一個真正的總結情節說整體模型的重要特征是什麼。一長邊你可能看到的是實際的世鵬科技電子值,模型的解釋,這是可用的。你可以到任何模型。 For this particular model though, I want to take the opportunity to show you something else you can do with SHAP, not through auto logging, but through a little more manual usage of SHAP that may be more interesting for this dataset.
肖恩·歐文:
所以事實證明,世鵬科技電子可以解釋圖像分類在一個有趣的方式。用一點代碼,你可以嚐試覆蓋圖像熱圖顯示的圖像模型分類方式引起的嗎?所以在這種情況下,我實際上加載圖像數據集,絕對是屬於滲透,我從世鵬科技電子創建一個講解員,這個模型可以解釋,問解釋。其實解釋的共振的中間層。真的對不起,密集的網。這是你得到的。所以你可以看到也許在這些x射線有黑點左邊的肩膀,一個黑點在這裏對肺的底部附近。不管出於什麼原因,認為這些都是特別重要的分類模型。及其分類。好的,很好。 92% chance it’s infiltration, maybe edema, maybe atelectasis.
肖恩·歐文:
所以我認為這個擴展,這些模型不僅可以預測黑箱預測,但講解員。也許如果我們建立一個更好的模型,這樣的事情可以讓它更有用的專業人士正在尋找因此,也許你正在尋找去哪裏看整體。也許模型可以更容易地看到一些人眼並不明顯。這些預測,這些解釋可以創建與火花,寫入三角洲表,他們甚至還可以登錄。有的MLflow之內,這都是完整的圓。
肖恩·歐文:
最後我想向大家展示的是一個新特性在磚稱為項目。所以你們知道磚在工作區中知道你的工作的,我們通常使用個人筆記本電腦,但往往我們真正想要的工作的筆記本電腦在一起因為我們需要版本。雖然你總是能夠得到一個修訂曆史的個人筆記本電腦,直到項目過來,你真的不能版本和提交修改組的筆記本。這就是為什麼這就是項目存在的原因。
肖恩·歐文:
所以它不會改變你如何處理事情。我工作在一個筆記本,裏麵是一個項目,在工作區中不僅僅是一個浮動的筆記本。但這基本上意味著這裏得到更深層次的整合。一個,我看看能分支,對不起回購這筆記本,這些支持的幾個筆記本,我可以編輯和提交多個筆記本設置提交消息如果我喜歡。所以這使得人們也許更自然,用於版本控製更大的項目,由多個筆記本使用這些支持的回購,而不是簡單地建在版本控製。隨著時間的推移,我們希望擴大這一特性讓你版本與筆記本電腦,也許小配置文件或小數據文件之類的東西,因為有時那隻是更自然的事情。
肖恩·歐文:
所以我希望你聽說過MLflow在這裏看到了一些新特性,人與Pytorch集成和世鵬科技電子自動記錄。一些三角洲的方法可以用於特定的機器學習問題,模型與服務注冊中心和一個圖像分類器可能是如何工作的。最後,一個快速的注意項目和他們可能意味著您的工作流。
西爾維婭Simion:
謝謝你,馬泰,克萊門斯和肖恩。快速提醒,如果你想嚐試一些你之前看到的股票和演示去www.eheci.com/trial,這些工具是可用的。您還可以繼續通過問答小組提交你的問題,我們進行演講。
西爾維婭Simion:
現在讓我們聽到直接從我們的客戶如何處理日益增長的重要性機器學習在他們的產beplay体育app下载地址品和係統。更重要的是,他們如何管理他們的ML計劃相關資產和整個生命周期內的組織嗎?
西爾維婭Simion:
下一位演講者是凱文H&M的王。凱文將H&M參考體係結構的概述和傑出的堆棧旨在解決一些常見的問題在人工智能和機器學習等產品開發效率,和互操作性,生產速度,等等。凱文也會給生產工作流程的演示。請歡迎凱文。
凱文王:
大家好。我的名字叫凱文。我公司——工作
凱文王:
大家好。我的名字叫凱文。我的工作能力在心房。今天,我將談論MLOps如何在大規模應用它。我工作在一個組織叫人工智能的基礎,心房。在人工智能的基礎,我們工作在不同的用例不同的業務問題從設計采購物流,銷售管理,以及如何參與我們與我們的客戶。幾乎覆蓋了整個心房價值鏈。每一個用例是由一個多學科的敏捷產品團隊。他們開發和部署的產品。在開發不同的機器學習產品他們共同的挑戰,例如,如何自動化大規模機器學習培訓管道,如果我們談論的隻有單一的模型,但它可以解決數以百計的南部模型以及如何提供您的機器模型的再現性嗎?
凱文王:
比方說半年後你希望能夠采取相同的代碼相同的數據,再教育相同的模型,你的模型如何審批程序的樣子,這樣你就可以打開新的模型轉換為生產有足夠的能力的信心。我們試圖解決這些不同的挑戰整體通過利用我們的參考體係結構或策劃。即使他們是解決不同的業務問題,他們共享一個共同的過程。例如,對於模型的訓練,它是關於數據,應用一些變換,訓練模型,最後將模型到模型庫。模型部署,大概也把數據,應用相同的變換,作出預測,然後保存結果,提供給終端用戶。在中間,你有一些共同的關鍵問題。例如,如何加快成和反饋循環,如何監控你的模型性能,數據漂移,同時你的基礎設施。
凱文王:
同時,如何做版本控製不僅您的模型,甚至你的數據,這樣你就可以管理他們在軟件構件一樣。在此基礎上,我們提出了一係列的技術組件,例如,模型訓練、模型管理,以及模型部署。這裏有一些障礙是很重要的所以我們可以接不同的工具和發展他們的獨立,因為機器學習是新興的領域。他們新工具出來每一天,每個星期、每個月。我們希望利用最好的簡化我們的工作。
凱文王:
經過一年的勘探和也偷懶,我們聚集許多工具。例如,對於模型的訓練,我們有三個棧為新用例開始。我們傾向於利用數據打破世紀架構。然後更成熟的用例,我們擴展,也自動化是關鍵。我們傾向於使用氣流或Kubeflow機器學習為主要協調器。模型管理,和其他許多公司一樣,我們喜歡MLflow作為模型的部署,明確網絡模型。對不起,我們愛Kubernetes。同時,開源工具像很少帶來大量的機器使特定的功能。
凱文王:
除此之外,係統可觀測性是相當重要的。我們愛Azure堆棧。所以我們傾向於使用默認的工具像Azure監控和電力BI大多數情況下,和Kubernetes空間應用,Grafana,前提是一個很好的選擇。機器學習產品(聽不清00:53:33)軟件產品,所以我們可以利用的最佳實踐持續集成和持續交付自動化學習過程。最後,看著這些複雜的堆棧,結果我們不能做一個合適的基礎設施自動化。
凱文王:
讓我們來談談模型訓練。新開始用例我們愛互動模型開發或筆記本。然而,筆記本不是一個可伸縮的產品開發,你的代碼庫的生長方式,還有你的團隊的規模增長。你傾向於智慧很多如果做notebook-only開發技術債務。我們現在都處理,基本上在筆記本上提取複雜的邏輯,把它們放在單獨的隔離模型,我們可以在本地開發,然後使用持續集成一起把所有的任務和培訓數據庫。
凱文王:
讓我們來看看它是如何工作的。這是一個項目,我將從互聯網下載一些數據和修剪隨機模型,然後保存模型被迫MLflow。讓我們來看看這個項目結構。證監會文件夾,我有許多python模型和捕獲所有不同的使用功能。例如,配置管理評價方法可以解釋許多策劃和評估方法。準備數據的方法,其中包括一個模型,其中包括許多與聰明的數據(聽不清00:55:11)。
凱文王:
在測試文件夾,我py python測試用例來評估這些模型。在筆記本上文件夾,我有我的筆記本,你會得到一個頂級py文件的數量。而且,你甚至可以看到它的筆記本,我可以利用ID來評估這裏的語法。
凱文王:
現在假設我們所做的所有的地方發展,也像編碼和py測試,我們想上傳這個筆記本磚和寫作。
凱文王:
所以我將調用這個腳本。什麼這個腳本就像過期刊物包我所有的傳遞模型和上傳數據磚,然後也把我的筆記本上傳到磚。現在,讓我們看一看。這是我databriks工作區。在這裏我的筆記本一直放在一個特定的文件夾結構。這是我的項目名稱和分支的名字,我的用戶ID,我的筆記本。所以在第一個說的筆記本,它會嚐試安裝這個蛋文件,上傳的這個腳本。雞蛋文件被放置在一個特定的結構對分支我正在和我的用戶ID,因此我不會覆蓋我的同事的工作。
凱文王:
現在讓我們運行這個筆記本。這裏來初始化隨機種子。現在,準備訓練數據集是一個方法調用。之後我們開始訓練模型。這裏假設我想改變從100年到150年我選擇而不是隨機森林模型。和業務培訓模型,它還將使用MLflow跟蹤以及其他指標的重要參數。這是正確的。
凱文王:
好吧。我們已經看到一些關鍵錯誤指標,最後,它還將評估模型和情節,一些不錯的圖表。看起來像漂亮的圖表。假設我們很滿意這個模型中,參數的變化。現在我們想提交代碼。所以回到ID。在這裏,我將同樣的變化從100年到150年,然後我就把我的代碼。
凱文王:
現在我的代碼。讓我們看看CI管道。CI管道,這是我我的模型,新管道行被觸發。讓我們來詳細看看。這個管道包括兩份工作。的第一份工作,它將研究稱為質量檢查。基本上,它將運行所有py聯係測試單元測試,發布測試結果並發布測試覆蓋率報告。與此同時,我們也包我的筆記本和雞蛋一起上傳我的筆記本文件成磚,磚上運行筆記本。它將監測筆記本運行,直到完成。
凱文王:
現在完成了。讓我們看一看。這是筆記本電腦上運行的結果。讓我們看看所有的打印。而且,MLflow模型注冊表。我們應該看到一個新的模型。好的,12版本。這是一個新的模型,我們隻是訓練和在舞台上仍沒有。
凱文王:
好吧。是第一個演示我們可以看到,作為本地動態與筆記本可以很好地集成開發與磚。同時,通過利用持續集成,我們可以自動化的過程,因此提供了一個很好的方式來跟蹤模型元數據和管理模型一樣LS軟件工件。除了新啟動產品團隊。我們也有許多的產品團隊更加成熟也作為他們的主要擔憂是自動化和可伸縮性,因為你需要訓練許多模型。而不是訓練單一模型,這些產品團隊傾向於特定模型訓練等特定地理區域的國家,特定類型的產品,像一個男人的t恤,以及具體的時間。
凱文王:
然後這些思考我們的規模是一個場景。我們很容易可以設置在不同的場景。這是一些他們每天需要訓練模型。對於這種類型的用例我們傾向於利用氣流或Kubeflow Kubernetes之上的基礎架構,我們可以上下東西集群規模,並利用外部計算能力像磚集群,並運行本地計算集裝箱碼頭工人在同一集群內。
凱文王:
讓我們繼續談論管理模型,模型服務。在高水平,您可以將整個生命周期劃分為五個階段,模型開發,val,批準,模型部署到暫存,然後部署到生產活動。我們已經討論了如何做模型開發自動和結果在MLflow生成一個新的模型。val即將模型部署到開發環境,運行所有的val,然後在模型中批準你的團隊可以批準他們的模型。它將打開模型版本進入開發階段,也將這個新模型部署到登台環境。後來一些係統可以測試,然後又有人可以改善你的模型。提高階段的版本在MLflow刺激,然後模型部署到生產環境中。
凱文王:
讓我們來看看它是如何工作的,你的第二個演示。但是在我們開始演示之前,我還想說幾句關於塞爾登或塞爾登的核心。塞爾登核心是開源庫構建Kubernetes之上。這是引入機器學習功能的一部分特定的任務。例如,它使您能夠輕鬆地打包microservice模型。你可以讓它像gRPC或Rest API。同時,塞爾登介紹一些核心概念稱為[infrasca 01:02:25]。思考你的不僅僅是單步預測模型,包括異常檢測、功能轉換。同時,也許你想要發送一個模型我們壇,選擇你的一個模型。最相關的對這個特定的請求,然後作出預測。
凱文王:
這些步驟可以運行在一個艙或容器,你可以獨立皮膚和使用它。現在回到MLflow,我們可以看到,該模型的版本11。我的模型、版本11日,現在在生產。假設我們是滿意的版本12,想將它部署到生產環境中。所以我們回去打開另一個組件庫,我的模型,在這裏,我有一個元數據文件。我的模型信息雅美族人,我指定我的磚工作區,這就是我MLflow實例,同時我的數據模型的名稱。現在我想改變版本從11到12。
凱文王:
部署它,我隻需要做一個簡單的工具。現在完成了。它會自動觸發模型部署到管道。但在我們調查管道之前,讓我們看一看是一個Rest API。
凱文王:
這是一個郵遞員。我經常用它來運行一些rest調用。這是我的端點模型在開發環境中,我可以打個電話。然後我可以獲得一些反應模型。看起來不錯。而且,塞爾登想出這個模型元數據API,它應該調查來獲得你的模型的元數據信息。這裏你可以看到模型是我的名字,昨天和11版本的創建。而且,在這裏你可以看到一些輸入模式,也在這裏你可以看到輸出。
凱文王:
所以模型部署之後,我們應該看到這個模型版本提高審判。讓我們回頭去CI管道。這是另一個持續集成管道模型的部署。當我得到推動,管道被觸發,這個包括四個階段。在第一階段,它將加快模型的模型,從模型MLflow注冊表根據我們給的版本,它也將文檔圖像然後推在容器注冊表。
凱文王:
之後將其模型部署到開發環境就準備測試。這裏我使用開源工具像執掌學期利用我部署。所以將其部署在開發階段和生產線,我可以使用相同的設置腳本。現在是部署在開發環境中。後來也被部署到最終階段如果我批準它,然後去生產,也需要人工批準。現在讓我們回到郵遞員讓另一個rest調用是否準備好了。我應該植入滾動升級,但現在還沒有。這就是為什麼有一些停機時間。好了,現在你得到答案,因為我們檢查元數據。現在是12版本。 Looks good. And let’s say we have done some tests in dev environment and decide to approve it to the production environment.
凱文王:
審查。批準。現在是部署到一個臨時的環境。假設在舞台環境。我們想要一些係統測試運行,推動負載係統是否執行盡可能好。我要用這個工具稱為Jmeter。在Jmeter,我可以模擬100個客戶,發送請求並返回一個滑。這一個客戶我在兩分鍾內增加。這些客戶將發送相同的rest調用通過我的模型預測服務。是一樣的,然後它將評估結果。 I also deploy some cool feature like auto-scaling in this model. This is my set under current file. Here I specify my [infants scrub 01:08:40] in this caseI only have a single container with a single microservice. And also I specify as a horizontal Potter scaling policy, basically it will monitor my CPU usage. If it’s about 40% is just start to create more replica of my model prediction service up to 500 instances. Let’s watch how many instances there are today.
凱文王:
現在我們有兩個副本。讓我們開始性能測試。現在我們開始,我們可以看到,在延遲是很好的開始,50歲,60歲,70毫秒,但開始加大而的客戶數量開始增加。我還添加了一些很酷的功能,如超時。基本上,我們不想讓客戶端和…我們不希望我們的最終用戶永遠等待。在情況下,模型不能預測它會返回一秒內HB 500。然後我們可以在客戶端輸入一些缺省邏輯顯示一些默認的結果,例如。同時,在這裏,我們可以看到,添加了一個新副本,因為有很多開始增加。好了,添加了實例。同時,我們可以看到超過運行一些毫秒後,我們開始看到一些紅旗和一些箭頭從模型回來。 Also, now we can see there are more replica has been added. I will not wait until it finish. Let’s assume we are happy with this result.
凱文王:
現在最後一步。我回到我們的DevOps和批準這個模型並將其部署到生產中。在第二個演示,我們看到,通過利用Azure DevOps等工具,我們可以很容易的自動化部署過程的模型。而涉及到人類是一個循環,太像塞爾登真的讓模型暴露在預測服務非常容易的。
凱文王:
最終的外賣和MLOps很複雜。之前開始尋求技術堆棧,後退一步是很重要的,思考你想解決什麼樣的問題。如何設計過程的樣子,然後定義體係結構,最終與你的工具。其次,如果你有一個數量的產品團隊所有工作在機器學習產品的生產,也許是時候考慮平台的方法。Beplay体育安卓版本有一個中心團隊發展中一些關鍵組件並提供服務的專業團隊。最後但同樣重要的是,通過利用雲服務,你可以使用它。你可以發展得很快。非常感謝。非常感謝。
發言人3:
謝謝你,凱文。我們的下一個演講者是韋斯·克拉克J.B.亨特和卡拉菲利普王子”谘詢。他們將討論如何實現一個自助服務框架試驗和部署在其他價格規模J.B.亨特。這個文檔將包括核心價值觀、概念和慣例的框架,其次是技術演示如何實現自助服務的自動化數據磚資源,代碼,和工作部署到Azure DevOps, CI / CD管道。請歡迎韋斯利和卡拉。
韋斯·克拉克:
謝謝你加入我們。我們感謝你的時間,我希望你會發現我們的工作有趣,信息,這將幫助你建立你自己的自動化CI / CD管道。我的名字是韋斯·克拉克,我的首席架構師在象J.B.亨特企業分析和人工智能。卡拉菲利普王子”谘詢,我的同事和我在這裏提出的技術演示。象J.B.亨特成立於1961年,已經成為最大的運輸和物流公司在北美。我們目前346號財富500強,和我們的數字經紀市場,360年j·b·亨特,創新技術獲得了廣泛的認可。我們認為機器學習在高級分析我們未來成功的關鍵,我也很榮幸參與建立在象J.B.亨特這些學科。阿提斯動物園谘詢成立於2002年,專注於四個支柱,數據和分析,人工智能,機器學習,物聯網和智能應用程序。他們一直幫助我們的願景變成我們的一個關鍵夥伴buzz生產過程。
韋斯·克拉克:
我想首先你角色定位分析在創造商業價值,強調這部分MLOps生命周期框架關注和討論的指導原則時,我們堅持實現我們的解決方案。然後我們會到你真的是一部分技術演示和實際步驟可以創建您自己的解決方案。
韋斯·克拉克:
我們想要強調的是,我們所做的一切都在分析,數據科學和機器學習應注重創造商業價值和實現組織的目標。作為科學家,我們很容易迷失自己的數字。所以我們有意重新調整自己的人,我們試圖讓我們的解決方案的過程將嵌入。
韋斯·克拉克:
我看過不少神奇的談到數據工程,保濕的數據創建特色商店。
韋斯·克拉克:
是關於數據工程,保濕三角洲湖和創建特色商店。同樣地,有很多演講,專注於集裝箱化,服務和生產性能監視。今天,我想重點放在一個安全的自助服務計算環境的創建和部署自動化框架與具體項目的產品的代碼庫。之前我給你的框架體係結構和實現,我想簡短地說我們的解決方案的指導原則。
韋斯·克拉克:
我們的目標可預測性。我們選擇約定優於配置。我們希望它是自動的,因為這些約定的真正力量是意識到當用戶不必記住規則在訴訟或來實現它。我們想罷工之間的平衡安全、自助服務。我們試圖讓用戶同時提供邊界,以保證孩子的安全。我們想讓這個框架強調重複性通過創建配置工件按照代碼通過整個毫升生命周期,我們確保在環境創建可重複的部署。
韋斯·克拉克:
我們想介紹清晰定義的環境。我們不隻是尋求自動化工作流已經有了,但是通過工具創建新的可能性我們給我們的團隊。我們介紹了我們的分析師、工程師和科學家。一些最強大的概念從企業規模軟件工程開發生命周期。我們想成為平台和雲不可知論者。Beplay体育安卓版本我們不是多重雲當我們開始這個,但是磚。我們選擇很重要,可以隨處運行的解決方案。我沒有時間詳細涵蓋所有我們做出的決定,但我想給你一個高水平的理解框架。
韋斯·克拉克:
我想吸引你的注意的第一件事是一組配置文件存儲在用戶的代碼。環境配置文件是存儲值會改變根據環境中運行的代碼。接下來,在圖書館集群配置允許您定義所需的依賴關係和計算資源運行您的代碼。它還允許您指定誰應該獲得您的項目。最後,工作配置就是將存儲的指令代碼應該如何部署走向生產過程。接下來,我想明確地定義意味著什麼為您的代碼部署到一個特定的環境。
韋斯·克拉克:
這意味著我們的最新副本代碼一直拉到磚項目文件夾的同步和存儲庫橋。這也意味著你的代碼運行在一個專用集群會議配置文件中定義的特定需求你的分支。最後,它意味著集群操作在一個服務主體的權威,隻有獲得適當的資源在相應的基礎設施環境,本地的,開發,測試和刺激。這種權利意味著你使用不同的秘密,將您的數據文件存儲在不同的容器和訪問web服務的不同版本這取決於環境中運行。
韋斯·克拉克:
現在,讓我們談談更多關於CI / CD管道是如何工作和你的產品代碼。我們會走過一個自助服務集群管理場景。假設一個用戶為他們的產品與現有的庫代碼開始首次使用CI / CD框架。值得慶幸的是,CI / CD存儲庫設置管道幫助讓他們開始。第一步說明的第一階段設置管道將把配置文件前麵的圖上我們談論到用戶的產品回購。
韋斯·克拉克:
第二步說明的第二階段設置管道將轉移幾個YAML文件和創建子管道產品回購。其中一個孩子管道是用於啟動工作部署到新環境和其他管道,這是有關這個場景中,監聽提交更改配置文件。一旦完成初始設置管道傳送文件和創建子管道在產品庫中,假設在第三步圖修改集群和圖書館的用戶配置改變節點的最大數量的集群中,添加一個第三方庫的依賴關係列表,修改訪問控製列表添加一個隊友,他們的項目。
韋斯·克拉克:
在第四步中,用戶提交他們更改後集群和庫配置文件,偵聽器管道將觸發和發起一個回調到CI / CD存儲庫。第五步強調生活的絕大多數功能在YAML管道的CI / CD存儲庫將執行一係列PowerShell腳本驗證配置文件更改並將其轉換成三個獨立的JSON文件,然後分別發送到磚集群,圖書館和權限api。
韋斯·克拉克:
最後,在步驟6中,可以看到,幾分鍾後,這些變化將會完成磚api,用戶會看到更新後的集群與新磚UI庫加載到它隻能由團隊成員訪問控製列表中指定。好了,最後一個圖之前的技術演示。我想要強調這種使工作流。不斷創造增強你的產品沒有環境衝突。在這張圖片可以看到兩個不同的分支機構從事同一產品的兩個不同的用戶在本地環境。
韋斯·克拉克:
每個用戶都有一個單獨的副本產品筆記本和配置文件存儲在本地項目文件夾下的用戶名。每個運行在一個專用集群設置根據用戶的配置,每個集群可能具有完全不同的性質和不同版本的運行庫沒有衝突。一旦你過了當地的發展,隻有一個產品的一個分支可以部署在任何給定的時間。在開發環境的一個舊版本產品已經致力於大師正在被productionalized。
韋斯·克拉克:
已經過去的第一質量檢驗關實施CI / CD工作部署管道,它也有一個單獨的筆記本,可以點擊圖文件的副本存儲在開發項目文件夾中。使用舊的庫和運行在一個專用集群工作會議的規格配置文件的舊版本。不幸的是,這段代碼沒有通過嚴格質量檢驗關進入更嚴密保護的測試環境。測試和刺激仍再培訓使用代碼從先前的主版本標記。這兩種環境中有一個單獨的筆記本和配置文件的副本存儲在測試和督促項目文件夾和運行在專用工作集群仍然使用舊版本的庫。
韋斯·克拉克:
在所有環境中,地方、開發、測試和督促每個集群行為的權威下一個適當的環境服務主體。與環境互動的具體實例表、文件存儲、外部web鉤和表麵集成和發布工作事件。這些環境特定的服務原則也被授予權限調用這些部署工作,這樣就可以開始從外部磚使用這項服務的原則的憑證。我知道這是一個很多概念材料覆蓋。謝謝你的軸承與我的背後的抽象和理論框架。現在我要把它交給我的朋友,卡拉,向您展示如何實現這樣的一步一個腳印。
西爾維婭Simion:
謝謝韋斯利。大家好!我的名字叫卡拉菲利普斯和我是一個數據科學和阿提斯動物園MLOps顧問谘詢。韋斯利就說過,我要給你這些管道在行動。讓我們先看看文件結構在CI / CD回購。首先要注意的是這些YAML文件的模板,其中包含的步驟,我們的管道將執行。對以上這些文件我們有一個腳本文件夾。這些都是要運行的腳本在每一步的管道。我們決定使用PowerShell腳本,但是您可以使用任何語言,可以解析JSON文件並將數據發送給數據磚API。
西爾維婭Simion:
在這裏我們有兩個文件夾,一個用於數據科學與數據工程之一。數據科學與數據工程團隊都使用這些管道和這些文件夾包含配置默認值可以設置在團隊層麵。例如,數據科學團隊可以使用這些文件來設置默認值的集群或工作配置,設置默認權限或設置庫總是安裝在他們的集群。最後一個文件夾看這是遠程存儲庫文件夾的文件。
西爾維婭Simion:
這個文件夾包含了我們需要的所有文件複製到產品回購。一旦這些文件被複製在管道可以構建產品回購。複製這些文件和創建管道的過程可以做手動或衛斯理回顧之前另一個管道我們稱為安裝管道。讓我們去產品回購,仔細看看,文件結構。第一個文件夾是筆記本電腦文件夾。這個文件夾包含所有的筆記本與磚工作區。其餘的文件的複製從CI / CD回購。
西爾維婭Simion:
首先,我們有管道定義文件夾,這個文件夾包含YAML文件,將引發管道步驟的執行存儲在CI / CD回購。最後一個文件我們將看看在圖書館集群,配置JSON文件,以及工作配置JSON文件。用戶將使用這兩個文件來創建和管理他們的集群的配置和工作。後用戶需要做的第一步是創建一個新的設置回購用戶從主分支。讓我們仔細看看集群和庫配置JSON文件的第一個用戶配置。
西爾維婭Simion:
一旦他們已經創建了用戶分支可以開始編輯配置文件。讓我們仔細看看圖書館集群配置文件。他們會第一個參數配置是工作區名稱。這個值將確定哪些文件夾CI / CD回購我們的默認配置值將來自以及磚工作空間的管道將被驗證。集群參數包含一個子集的參數,用戶可以設置集群配置。大多數這些值直接相當於結構所需的API的JSON結構,除了火花的版本。
西爾維婭Simion:
在這裏,我們創建了一個結構,用戶隻需要指定版本號,他們是否想要一個毫升運行時包含許多機器學習包默認情況下,他們是否需要GPU計算集群。管道將這些值映射到正確的鍵,所需的API。最後設置的參數在這一節中我想喚起注意的是自定義標簽。這些標簽是很重要的跟蹤和管理你的磚花。除了J。搜尋特定標記你看到,管道自動設置標簽對環境是開發測試或刺激以及回購引發了集群的創建的分支。
西爾維婭Simion:
下一節是訪問控製列表。這裏的用戶列表的電子郵件每個人都工作在他們的代碼分支。管道我們將使用這個列表的電子郵件在集群上設置權限。這將確保創建的集群隻有團隊成員工作分支。最後一部分在這個配置文件的庫。為每個庫類型庫的用戶指定了一個列表他們想要安裝在集群或Python和凹口包如果所需的包回購是不同於默認回購他們可以指定使用的包和回購結構。
西爾維婭Simion:
現在讓我們做一些更改,保存文件並觀看集群創建。我們要改變馬克斯工人7和保存文件。現在讓我們去看一下管道運行。你在這裏看到的管道,我保存的文件,它會自動運行。雖然我們等待完成讓我們講講在幕後發生了什麼。產品回購,有一個文件叫做管道集群。監聽這個文件更改集群和庫配置JSON並調用回CI / CD回購存儲執行管道步驟。
西爾維婭Simion:
讓我們去CI / CD回購現在看看這些步驟。回購我們的底部有一個YAML文件稱為管道集群配置。這個文件包含所有的步驟將創建和管理數據磚集群。前兩個步驟在這裏做一些行政工作設置管道環境。然後我們去這產生集群配置的步驟。這一步解析配置文件的用戶提供的值,結合集群配置默認模板和創建JSON發送到集群API在下一步。
西爾維婭Simion:
造物主編輯集群一步使用解析JSON文件要麼創建一個新的集群如果不存在或編輯現有集群。一旦我們創建集群時,我們所要做的就是添加或更新權限。設置集群步驟需要許可的用戶列表配置文件,解析成適當的JSON結構,並設置使用權限的權限在集群上的API。權限設置後,我們現在有安裝庫。解析請求庫步驟需要的庫配置文件,解析和下一步需要解析JSON和安裝任何新的庫和卸載任何庫,從配置文件中刪除。
西爾維婭Simion:
現在讓我們看一下管道完成。一旦我們進入運行您可以看到,所有的步驟成功完成。這意味著我們應該看到一個新的集群運行在磚與配置中指定的配置文件。讓我們去磚,看那集群。正如你可以看到,我們現在有一個集群中運行數據磚。這個集群的名稱被組織在管道中定義命名約定。你可以看到這裏的配置正是我們中指定的配置文件。
西爾維婭Simion:
同樣,我們的訪問控製列表中指定的用戶權限下列在這裏。最後,當我們進入圖書館,我們看到庫要求安裝了除了幾個庫中指定的默認庫文件。包裝起來,第一步是將管道的配置文件複製到產品回購和創建管道。一旦用戶填寫完整的集群和庫配置文件並保存它。然後管道自動運行,用戶有自己的集群使用幾分鍾後。
西爾維婭Simion:
接下來的管道我們要看的是管道的工作部署。這個管道提供自動化和安全工作部署和編輯。讓我們開始我們的產品回購與用戶的工作流。當用戶準備他們的代碼和工作部署在開發環境中他們會來工作配置JSON文件。在這裏,他們將指定將會創造多少就業崗位和配置。第一個參數他們必須填寫的名字是筆記本。接下來,他們將指定如果他們想要使用一個高並發性集群或就業集群執行他們的工作。
西爾維婭Simion:
使用一個高並發性集群而不是工作集群時我們會減少集群啟動延遲工作的部署和允許工作並行地運行。接下來,他們將指定集群配置和一組庫。如果他們使用高並發集群作為第一個例子,集群配置設置和庫基於集群中配置和庫配置JSON。工作配置這些參數的值將為空。如果工作是運行在集群工作像在第二個和第三個例子,為這兩個參數有幾個選項。
西爾維婭Simion:
如果用戶指定了默認為新的集群或庫參數,相應的配置參數將從集群和庫配置JSON。此外,用戶可以指定庫沒有參數如果不需要庫。在第二個工作,你可以看到默認的投訴是指定集群配置和圖書館周邊設置為none表示不需要圖書館集群這個工作。最後選擇這兩個參數是指定一個新的集群配置或一組庫第三工作如下所示。使用指定的配置是相同的結構用於集群和庫配置。
西爾維婭Simion:
我們這裏有集群配置和以下庫配置。一旦我們救了我們改變回到我們的分支和承諾我們所有教練和主人,我們可以運行工作部署管道。我要做的,現在我要運行開發階段。雖然這跑,讓我們仔細看看管道在做什麼。產品回購,管道工作YAML文件調用管道管道工作的步驟配置YAML文件存儲在CI / CD回購我們現在就得到。我們有三種不同的環境,工作部署,開發,測試和刺激。
西爾維婭Simion:
相同的一般步驟是重複的這些環境所以我們要使用一個構建步驟參數允許我們隻需要編寫的代碼步驟一次然後將在每個環境重複這些步驟。你會發現很多你看到的這些步驟都是一樣的集群中的管道因為大部分代碼之間共享這兩個管道。讓我們仔細看看這些步驟。像集群管道這些前幾個步驟隻是做一些行政工作設置管道環境。然後我們去產生集群配置步驟。
西爾維婭Simion:
這個腳本會做兩件事。首先,它生成默認集群配置的用於當用戶選擇使用高並發性集群或集群定義時指定默認為他們工作。它的第二件事是解析集群配置當用戶提供的新工作。一旦無花果解析集群創建或編輯高並發的步驟要檢查一個高並發性集群所需的工作部署,如果需要創建或更新集群。如果需要一個高並發性集群下一步是將集群設置適當的權限。
西爾維婭Simion:
這包括添加權限開發、測試或促使服務原則要允許集群由其他應用程序如Azure數據工廠或氣流。下一步是解析庫,將安裝在集群。像集群配置解析這一步一步是要解析的缺省設置庫和任何自定義設置由用戶指定。當我們準備好所有這些配置我們可以部署新的工作或編輯現有的下一步工作。
西爾維婭Simion:
最後,一旦我們的工作部署,我們需要設置或更新的權限。您可以定義一個自定義權限的用戶或組的默認值存儲在工作團隊文件夾在CI / CD回購。除了這些權限,開發、測試或促使服務原則將從外部應用程序訪問,這樣他們就可以安排這些工作。一旦我們找到的所有步驟,我們可以執行他們在每一個階段包括以下每個環境部署之間的安全與質量檢驗關。讓我們看一下管道的工作。
西爾維婭Simion:
我們進入運行,我們看到所有的步驟開發階段成功完成這意味著我們會有三個新的就業機會在我們的磚工作區。讓我們看一看這些。你會看到我們有三個工作為我們的開發環境中創建以來我們在我們的工作配置文件配置三份工作。注意這裏的集群定義為每個任務。首要工作是使用高並發集群和第二個工作是使用我們的默認集群配置一到八個工人,第三是使用自定義集群配置4名工人。
西爾維婭Simion:
讓我們進入第二份工作在這裏,看一看配置。在configuration選項卡,你將看到工作的規範創建集群運行。然後下麵提前部分中我們可以看到管道給正確的權限兩個服務原則,管理和開發以及三個ACL組我們默認的訪問控製模板中指定團隊文件夾。總結工作,第一步是為用戶填寫自己的工作配置用戶分支JSON。
西爾維婭Simion:
接下來,他們合並所有的代碼和主代碼一旦準備好了,管道運行的工作,這項工作將創建並運行。今天,我們創建了兩個管道自動創建和管理我們的數據庫集群與一個簡單的工作為用戶自助服務的工作流。謝謝大家聽我的技術演示。我希望你學到了一些有趣的和有用的東西,我要把它回到韋斯利包裝。
韋斯·克拉克:
謝謝你卡拉給這樣一個深思熟慮的技術演示和所有你投入的努力將這個框架的設想變成現實。現在我想簡要總結一下我們今天討論。我們告訴你怎麼象J.B.亨特試圖完成作為一個組織,我們的團隊是如何集中工作,以確保我們的貢獻這一使命的實現。我們吸引了你的注意力的部分MLOps生命周期運作我們的框架,而我們覺得最進步的迭代改進。
韋斯·克拉克:
我們描述了激勵原則,引導我們,我們實現了我們的解決方案。我們直觀地表示與一係列建築圖的框架,幫助你看到大局。然後卡拉給你仔細看看通過循序漸進的技術演示。最後,隻剩下說謝謝你投資你的時間和我們在一起。我希望這是有幫助的和額外的資源和細節將提供給下載演示後幫助你開始。謝謝你!
發言人3:
謝謝你,卡拉和韋斯利,由於之前我們所有的揚聲器。我們現在有幾分鍾問答與揚聲器以及我們馬上回來。