1. 程式人生 > >基於華為雲EI ModelArts,體驗從零打造AI應用模型

基於華為雲EI ModelArts,體驗從零打造AI應用模型

都是 軟件 業務定義 混合 社區 預測 易用性 rest 一體化

基於華為雲EI ModelArts,體驗從零打造AI應用模型

現如今 AI 技術、概念火爆、落地應用更是繁多,但開發呢?是否困難?到底有多痛?
據了解,大部分 AI 開發者的工作時間並不長,並且十有八九可能不是“科班出身”。從編寫的教材、錄制的課程中就可以看出,所有的教學都不可避免地帶有很強的的學術性,即便有意避免研究導向,仍然離產業界的需求相去甚遠。
並且隨著新一波人工智能的熱潮,人們發現手裏的數據多了,電腦運算的更快了,但實際上,這些 AI 開發者使用的工具並不順手。
為幫助開發者更深入地了解 AI 開發,快速上手 AI 開發必備技能,12 月 20 日的AIcon活動上,華為雲舉辦了一場以「基於 ModelArts 平臺的 AI 開發實戰」為主題的現場挑戰 Workshop!現場由來自華為雲EI深度學習服務團隊負責人為開發者講解了 ModelArts 的 相關技術與應用,幫助開發者學習如何從 0 到 1 打造一款 AI 應用模型。

ModelArts——更快的普惠 AI 開發平臺
ModelArts 是面向 AI 開發者的一站式開發平臺,提供海量數據預處理及半自動化標註、大規模分布式訓練、自動化模型生成,以及端-邊-雲模型按需部署能力,幫助用戶快速創建和部署模型,管理全周期 AI 工作流。
同時,ModelArts 能夠在 AI 開發全生命周期中,從原始數據、標註數據、訓練作業、算法、模型、推理服務等,提供全流程可視化管理。支持千萬級模型、數據集以及服務等對象的管理,無需人工幹預,自動生成溯源圖,選擇任一模型就可以找到對應的數據集、參數、模型部署在哪裏。其中最實用的訓練斷點接續功能、訓練結果比對功能,在華為內部開發者中也頗受歡迎。
簡單來說,ModelArts 的特點是“四快”:
數據管理快——讓數據準備效率百倍提升
想象一下,如果你的老板給了你 10 萬張無標簽的圖片,並要求你為這些數據打上標簽。你該怎麽辦呢?
許多公司都在數據的大海裏遨遊,不論是交易數據、物聯網傳感器產生的海量數據、安全日誌,還是圖像、語音數據等等,這些都是未標註的數據。
正如華為雲EI深度學習服務團隊負責人所說,“當前做 AI 開發,最讓開發者頭疼的就是數據的采集和數據的處理。曾有開發者吐槽,光是數據準備就要占掉整體開發時間的 70%。”那麽,為什麽數據的處理這麽難?效率為什麽這麽低呢?
人工智能界有一個說法:“有多少人工就有多少智能。”因為目前實現人工智能的主要方法是機器學習(目前火熱的深度學習也是機器學習的一部分),而機器學習中目前大部分應用都是有監督的學習,即需要大量的 標註樣本 去訓練人工智能算法模型。
例如圖像識別任務中,必須有大量已經標註好的圖片,比如一張貓的圖片,狗的圖片等,你必須明確的告訴 AI 算法,這些圖片裏面是什麽東西,它再從中去學習出相應的“知識”。
所以,AI 並不像傳統想象的那樣,丟一堆數據給 AI 算法,AI 算法就能夠從中學習到各種有用的知識。而是背後有大量的人工在標註數據。
而 ModelArts 在數據管理方面,會將數據進行預處理,用 AI 的數據去標註數據,即自動化標註和半自動化標註。ModelArts 可對數據采樣和篩選,預標註,縮減需要標記的數據量,降低工作量。目前, ModelArts 已經在自動駕駛領域有非常多的應用,包括人車模型、信號燈模型等等,這些模型在自動駕駛的場景裏面,可以快速地提升數據處理的效率,實時地處理數據。在未來,ModelArts 也將面向通用計算機的其他領域。
訓練快——模型訓練耗時減低一半
在模型訓練部分,ModelArts 通過硬件、軟件和算法協同優化來實現訓練加速。尤其在深度學習模型訓練方面,華為 將分布式加速層抽象出來,形成一套通用框架——MoXing(“模型”的拼音,意味著一切優化都圍繞模型展開)。

采用與 fast.ai 一樣的硬件、模型和訓練數據,ModelArts 可將訓練時長可縮短到 10 分鐘,創造了新的紀錄,為用戶節省 44% 的時間。
技術分享圖片
MoXing 是華為雲 ModelArts 團隊自研的分布式訓練加速框架,它構建於開源的深度學習引擎 TensorFlow、MXNet、PyTorch、Keras 之上,使得這些計算引擎分布式性能更高,同時易用性更好。
MoXing 內置了多種模型參數切分和聚合策略、分布式 SGD 優化算法、級聯式混合並行技術、超參數自動調優算法,並且在分布式訓練數據切分策略、數據讀取和預處理、分布式通信等多個方面做了優化,結合華為雲 Atlas 高性能服務器,實現了硬件、軟件和算法協同優化的分布式深度學習加速。
有了 MoXing 後,上層開發者可以聚焦業務模型,無需關註下層分布式相關的 API,只用根據實際業務定義輸入數據、模型以及相應的優化器即可,訓練腳本與運行環境(單機或者分布式)無關,上層業務代碼和分布式訓練引擎可以做到完全解耦。
另外,衡量分布式深度學習框架加速性能時,主要看吞吐量和收斂時間。在與吞吐量和收斂時間相關的幾個關鍵指標上,華為雲 ModelArts 都做了精心處理:
在數據讀取和預處理方面,MoXing 通過利用多級並發輸入流水線使得數據 IO 不會成為瓶頸;
在模型計算方面,MoXing 對上層模型提供半精度和單精度組成的混合精度計算,通過自適應的尺度縮放減小由於精度計算帶來的損失;
在超參調優方面,采用動態超參策略(如 momentum、batch size 等)使得模型收斂所需 epoch 個數降到最低;
在底層優化方面,MoXing 與底層華為自研服務器和通信計算庫相結合,使得分布式加速進一步提升
那麽,在 MoXing 一系列的優化之後,實際效果如何?以國際權威成績來參考:
在斯坦福大學發布 DAWNBenchmark 最新成績中,在圖像識別(ResNet50-on-ImageNet,93% 以上精度)的總訓練時間上,華為雲 ModelArts 排名第一,僅需 10 分 28 秒,比第二名提升近 40%。
在這個匯聚谷歌、亞馬遜 AWS、fast.ai 等高水平隊伍的國際權威深度學習模型基準平臺上,華為雲 ModelArts 第一次參加國際排名,便實現了低成本、快速又極致的 AI 開發體驗,其海量數據預處理及半自動化標註、大規模分布式訓練、自動化模型生成以及端 - 邊 - 雲模型按需部署能力,更是體現了當前中國業界深度學習平臺技術的領先性。
上線快——一鍵部署到雲、端、邊,支持各種上線場景
現如今,縱觀整個 AI 產業,不僅僅是雲,還會有邊和端都需要部署的場景。然而,在 AI 規模化落地的場景下,模型部署會非常復雜,需要寫代碼集成到應用系統,維護、更新。例如在智慧交通領域,更新後的模型,需要一次性同時部署到各種不同規格、不同廠商的攝像頭上,這是一項非常耗時、費力的巨大工程。
對於此類場景,ModelArts 可以一鍵推送模型到所有邊緣、端的設備上,雲上的部署還支持在線和批量推理,滿足大並發和分布式等多種場景需求。
開發者可以在 ModelArts 上獲得一些高並發、自動彈性伸縮的特性。能夠根據用戶制定的策略,自動調整雲服務器的計算資源,跟隨用戶的業務需求變化。在業務需求下降時自動減少雲服務器,節約資源和成本;在業務需求高峰時自動增加雲服務器,保證業務平穩健康運行。
上手快——自動學習,零 AI 基礎構建模型
ModelArts 具備自動學習功能,支持模型的自動設計與自動調參等,能夠幫助開發者提升開發效率、快速上手。
為什麽需要自動學習?
AI 開發有兩大類,第一類為 AI 認知服務,比如圖像識別和 OCR 等,這一類門檻很低,但靈活性差,只支持特定類型。當不滿足需求時,只能定制一個模型,周期非常長費用也比較高。第二類就是找 AI 的算法工程師、算法專家,去做自己的模型;還有一類就是那些直接用 AI 的框架自己寫代碼以及自己訓練數據,這一類的門檻較高,靈活度也很高。而自動學習就是希望能夠打破這兩者,既有一定的定制化的能力,又能夠降低 AI 定制化模型的門檻,不需要寫代碼,用戶可以定制化自己的模型的特點。
在自動深度學習裏面,關鍵的技術是能夠做到多維度下的模型的架構自動設計,包含模型的元學習,涉及一些訓練指標,還有推動網絡涉及的推理速度和監控等。另外還包括一些元學習的訓練參數的自動配置、模型訓練的參數配置及搜索等。
另外,由於深度學習向計算機視覺輸入原始數據,整個特征工程是在神經網絡裏面做的,而機器學習需要很多算法工程師去識別哪些特征是對業務是起正向作用的,所以自動機器學習的關鍵技術,就是高效自動特征工程和自動調參。
除此之外,據華為雲EI深度學習服務團隊負責人介紹,華為雲 ModelArts 還有一個特色,就是面向應用開發者。對於有經驗的開發者,可以在 ModelArts上自行編寫並導入算法代碼,核心組件 MoXing SDK 支持豐富的模型庫、優化算法和各類工具庫;支持自動超參數調優;包含訓練 - 驗證 - 預測 - 模型導出的整套框架;開發者只需要編寫一套代碼就能自動實現單機及分布式化。
對於編程苦手卻想快速生成模型的 AI 初學者,ModelArts 也預置了能夠覆蓋大部分常用應用場景的算法模型(如 RestNet_50、Faster_RCNN、SegNet_VGG_16 等,未來還將上線更多算法模型),所有預置模型的基於開源數據集訓練,模型精度領先。只需配置數據路徑 / 日誌輸出路徑和 Hyper Parameter 自動選擇設置就可以一鍵啟動訓練。
ModelArts 應用實例:金融票據 OCR 識別
金融票據,包括銀行承兌票據和商業承兌票據,目前銀行承兌票據占了 90% 以上的票據市場份額,金融票據 OCR 識別工作重點在於銀行票據的識別。
對於業界普通 OCR 軟件,在金融票據領域識別準確率不高,對於現有一些針對金融票據做過優化的 OCR,識別準確率也算達到 90%。由於金融票據金額不低,對於 OCR 識別要求很高,而金融票據難點在於票據格式多樣且差別細微等。
另外,票據模型開發訓練難點包括數據標註、模型訓練、調參和部署上都有較多難點,對於 AI 開發水平要求很高,需要非常資深的 AI 專家進行繁瑣和長時間對於票據 AI 進行不斷訓練。
通過 ModelArts 助力金融票據 OCR 識別的實戰。多位 ATN 社區使用者使用後認為:ModelArts 適合 AI 的初學者,通過數據集的分類,可自動學習,無需調參等操作;適用於遷移學習;線上部署便利,逐步集成更多的數據標註工具,擴大應用範圍。
後續,華為雲 ModelArts 將進一步整合軟硬一體化的優勢,提供從芯片(Ascend)、服務器(Atlas Server)、計算通信庫(CANN)到深度學習引擎(MindSpore)和分布式優化框架(MoXing)全棧優化的深度學習訓練平臺。
華為雲 ModelArts 會逐步集成更多的數據標註工具,擴大應用範圍,將繼續服務於智慧城市、智能制造、自動駕駛及其它新興業務場景,在公有雲上為用戶提供更普惠的 AI 服務

基於華為雲EI ModelArts,體驗從零打造AI應用模型