譯者 | 朱先忠
審校 | 梁策 孫淑娟
簡介
本文將介紹把機器學習基礎設施、員工和流程融合的方式,以實現(xiàn)適用于企業(yè)的MLOps(面向人工智能系統(tǒng)的運維管理)。本文希望對旨在以高效人工智能團隊開發(fā)強大的人工智能/機器學習(AI/ML)項目的經理和主管提供啟發(fā)。
本文的經驗來自Provectus公司的人工智能團隊,該團隊在人工智能技術的不同發(fā)展階段先后與多家客戶有過成功的合作。
怎樣才算是一支平衡的人工智能團隊?
幾年前,AI/ML(人工智能/機器學習)項目中相當一部分工作是由數(shù)據(jù)科學家負責完成的。雖然有些團隊依賴更先進的角色與工具的組合來完成任務,但是由數(shù)據(jù)科學家通過自己的筆記本電腦來處理相關模型已經成為行業(yè)常態(tài)。
如今,僅僅雇傭一名數(shù)據(jù)科學家已經不足以快速、高效、大規(guī)模地將一個可行的AI/ML項目交付生產。更現(xiàn)實的方案是,這些項目最好由一個具有多個角色的跨職能、高績效的團隊來協(xié)作完成——每個角色僅負責處理自己的ML基礎設施和MLOps部分。
在現(xiàn)代團隊中,數(shù)據(jù)科學家或公民數(shù)據(jù)科學家仍然是不可或缺的成員。數(shù)據(jù)科學家是負責從整體上理解數(shù)據(jù)及相關業(yè)務的主題專家。他們是數(shù)據(jù)挖掘、數(shù)據(jù)建模和數(shù)據(jù)可視化方面的實際操作人員,此外還關注數(shù)據(jù)質量和數(shù)據(jù)偏差問題、分析實驗和模型輸出、驗證假設并為ML工程路線藍圖出謀劃策。
一支平衡的人工智能團隊還應包括一名ML工程師,但其技能與數(shù)據(jù)科學家不同。他們應該在特定的AI和ML應用程序與案例方面擁有深厚的專業(yè)知識。比如你想要構建一款計算機視覺應用程序,那么ML工程師應該了解計算機視覺方面前沿而廣泛的深度學習模型知識。
理論上講,每個ML工程師都應該具備MLOps專業(yè)知識,但對于ML/MLOps基礎設施本身(包括相關工具和組件)來說,所有這些都交由專門的MLOps專業(yè)人員負責會更好。
項目經理還應接受執(zhí)行ML和AI項目的培訓。傳統(tǒng)的Scrum或Kanban項目工作流已不適用于ML項目。例如,在Provectus公司中,我們采用一種特定的方法來管理ML項目的范圍和時限,并設定公司各業(yè)務利益相關者的期望值。
下文中會更詳細地探討這其中(以及其他)的每一個角色,并解釋它們如何映射到ML基礎設施、MLOps支持流程和ML交付方面。這里要傳達的信息是,人工智能團隊迫切需要一種平衡的組成,以實現(xiàn)MLOps并加速人工智能技術的采用。
有興趣的讀者可參閱“Provectus和GoCheck Kids公司如何在視覺篩查中共同協(xié)作構建ML基礎設施以提高可用性”(原文鏈接https://aws.amazon.com/cn/blogs/apn/how-provectus-and-gocheck-kids-built-ml-infrastructure-for-improved-usability-during-vision-screening/)。
打造人工智能團隊的管理挑戰(zhàn)
除了實際的團隊組成之外,有效的管理對于使AI團隊與ML基礎設施和MLOps基礎同步是至關重要的。
從管理角度來看,一個典型的組織結構應該包括以下成員:
- 負責向工程副總裁匯報的業(yè)務部門和傳統(tǒng)軟件工程師
- 負責向基礎設施副總裁匯報的DevOps專業(yè)人士和基礎設施專家
- 處理數(shù)據(jù)的數(shù)據(jù)科學家,通常直接與商業(yè)利益相關者合作
- 數(shù)據(jù)工程師,他們構建的系統(tǒng)旨在將原始數(shù)據(jù)轉換為數(shù)據(jù)科學家和業(yè)務分析師可用的信息
從上圖不難看出,這種組織結構很容易帶來部門孤島等挑戰(zhàn),例如:
1. 由于公司對ML工作流和AI項目管理的理解有限,上述團隊中沒有人完全理解如何將業(yè)務目標轉化為在生產中推出的AI產品。因此,無法管理項目的界限和KPI(關鍵績效指標),導致無法滿足業(yè)務利益相關者的期望。
2. 一些公司試圖將人工智能項目委托給現(xiàn)有的數(shù)據(jù)科學團隊。然而,這些團隊過去一直在自己的孤島上工作,而且他們依賴于不適用于人工智能/機器學習項目的數(shù)據(jù)科學方法。結果是,他們開發(fā)出的是未成形產品以及根本無法部署到生產中的項目。
3. 其他一些公司則通常選擇將人工智能項目或者分配給傳統(tǒng)的Java和.NET程序員或者利用第三方ML API。這種方法往往也會失敗,因為他們仍然需要深入了解數(shù)據(jù)及其底層算法才能有效地使用這些API。結果,他們最終以數(shù)據(jù)科學代碼的形式背負著越來越大的技術債務,而這些代碼永遠不會投入生產。
其實,解決這些挑戰(zhàn)的辦法在于找到一種人與工具之間的適當?shù)钠胶狻T诒疚乃峁┑姆桨钢?,這意味著需要一個平衡的AI團隊,他們能夠利用端到端的MLOps基礎設施進行協(xié)作和迭代開發(fā)。
切不可簡單地雇傭MLOps專家或購買MLOps平臺,我們需要的是讓一個強大的基礎設施和一個平衡的人工智能團隊兩者結合,只有二者共同努力才能讓你的AI/ML項目最終落地。
一個平衡的人工智能團隊和MLOps基礎設施如何協(xié)同工作
在一支平衡的人工智能團隊和MLOps基礎設施之間,一些具體角色的協(xié)同作用可以通過下面這個三層生態(tài)系統(tǒng)來形象展示:
1. 最底部的第一層是MLOps的基礎設施主干,由云端與安全專家和DevOps支持。這一層承載基本的基礎設施組件,如訪問、網絡、安全和CI/CD管道。
2. 第二層是MLOps的可共享和可重用的資源部分。這一層由ML工程師和MLOps專業(yè)人員管理,包括配備有各種圖像軟件、內核及模板應用的Notebook;包含被視為共享資源的組件和庫組成的管道;實驗;數(shù)據(jù)集和特征數(shù)據(jù);還有模型部分。這一層的每一項資源都可以被不同的團隊使用和重用,從而加快人工智能的開發(fā)和采用。
3. 第三層是人工智能項目,由數(shù)據(jù)科學家、全棧工程師和項目經理負責。這一層獨立于其他兩層,但由這兩層啟用。
請注意,云端與安全、DevOps、ML工程師和MLOps角色位于不同的層之間,并為彼此做出貢獻。例如:
- 云端及安全部分擁有基礎設施主干網,但它們也負責重用資源層,確保所有組件和檢查都到位。
- DevOps專業(yè)人員負責底部兩層的自動化任務,具體包括從自動構建到管理環(huán)境等任務。
- ML工程師擁有MLOps基礎設施和項目專業(yè)知識。他們負責重用資源層的各個組件。
- MLOps專家與ML工程師攜手合作,但他們擁有整個基礎設施(例如亞馬遜的機器學習平臺服務SageMaker以及谷歌發(fā)布的機器學習工具庫Kubeflow等),最終目標是把一切都融合在一起。
與此同時,公民數(shù)據(jù)科學家可以優(yōu)先實施特定的AI/ML項目,主要通過Notebook工作。他們可以擁有ML管道的特定部分,但不會被迫進入MLOps“凌亂”的部分。全棧工程師負責實現(xiàn)AI產品從UI到API的常規(guī)軟件部分,受過ML培訓的項目經理則負責產品的實施。
當然,上面僅是一個抽象的表述。下圖給出的是一個可供參考的基礎設施,其中主要展示了基礎設施中主干部分的組成部件。
在這里,我們看到數(shù)據(jù)科學家可以通過工具來處理原始數(shù)據(jù),在他們的Notebook中進行數(shù)據(jù)分析并完成檢驗假設。他們可以在ML工程師管理的實驗環(huán)境中輕松運行實驗。實驗環(huán)境由共享和重用的組件組成,如特征存儲、數(shù)據(jù)集生成、模型訓練、模型評估和預配置的數(shù)據(jù)訪問模式等。這使得繁瑣、容易出錯的任務能夠自動化,同時又不會把數(shù)據(jù)科學家逼出他們的舒適工作區(qū)。
另一方面,ML工程師負責將ML模型產品化。這意味著,他們能夠開發(fā)出將在生產環(huán)境中使用的算法代碼和數(shù)據(jù)預處理代碼。另外,他們還可以為實驗環(huán)境搭建和運行各種管道。
最后,DevOps專業(yè)人員可以幫助高效地管理所有基礎設施組件。例如,在我們的參考體系架構中,通過從1到4的簡單的幾個數(shù)字即可以演示出由DevOps處理的CI工作流。
結語
真正使MLOps在企業(yè)中落地需要時間和資源。最重要的是,你需要理解MLOps與人和流程的關系,就像它和實際技術的關系一樣。如果你能夠組織特定的角色和功能,并將它們與機器學習基礎設施的相應組件相匹配,問題就不會過于復雜。記住:人員+基礎設施= MLOps。
在Provectus公司,我們已經成功地幫助企業(yè)構建出先進的AI/ML解決方案,同時培養(yǎng)了高效的AI團隊,并為MLOps提供強大的基礎設施支持。
【注】本文作者Stepan Pushkarev是Provectus公司的CEO、CTO和聯(lián)合創(chuàng)始人。Provectus是一家人工智能咨詢和解決方案提供商,目標是幫助企業(yè)加快人工智能技術的采用并促進增長。Pushkarev在Provectus公司率先提出了針對特定行業(yè)的人工智能解決方案的愿景,該解決方案有助于重塑企業(yè)運營、競爭和提供客戶價值的方式。此外,Pushkarev還是一位在機器學習、云計算和分布式數(shù)據(jù)處理系統(tǒng)方面擁有深厚專業(yè)知識的意見領袖,他在開發(fā)專業(yè)的服務業(yè)務和創(chuàng)建SaaS技術方面都有過出色的業(yè)績。
譯者介紹
朱先忠,51CTO社區(qū)編輯,51CTO專家博客、講師,濰坊一所高校計算機教師,自由編程界老兵一枚。早期專注各種微軟技術(編著成ASP.NET AJX、Cocos 2d-X相關三本技術圖書),近十多年投身于開源世界(熟悉流行全棧Web開發(fā)技術),了解基于OneNet/AliOS+Arduino/ESP32/樹莓派等物聯(lián)網開發(fā)技術與Scala+Hadoop+Spark+Flink等大數(shù)據(jù)開發(fā)技術。
原文標題:??People Management for AI: Building High-Velocity AI Teams??,作者:Stepan Pushkarev