人工智能之华为云ModelArts的深度使用体验与AI Gallery应用开发实践
生活随笔
收集整理的這篇文章主要介紹了
人工智能之华为云ModelArts的深度使用体验与AI Gallery应用开发实践
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、ModelArts 簡(jiǎn)介
① 什么是 ModelArts?
- ModelArts 是面向 AI 開(kāi)發(fā)者的一站式開(kāi)發(fā)平臺(tái),提供海量數(shù)據(jù)預(yù)處理及半自動(dòng)化標(biāo)注、大規(guī)模分布式訓(xùn)練、自動(dòng)化模型生成及端-邊-云模型按需部署能力,幫助用戶快速創(chuàng)建和部署模型,管理全周期 AI 工作流。
- “一站式”是指 AI 開(kāi)發(fā)的各個(gè)環(huán)節(jié),包括數(shù)據(jù)處理、算法開(kāi)發(fā)、模型訓(xùn)練、模型部署都可以在 ModelArts 上完成。從技術(shù)上看,ModelArts 底層支持各種異構(gòu)計(jì)算資源,開(kāi)發(fā)者可以根據(jù)需要靈活選擇使用,而不需要關(guān)心底層的技術(shù)。同時(shí),ModelArts 支持 Tensorflow、PyTorch、MXNet 等主流開(kāi)源的 AI 開(kāi)發(fā)框架,也支持開(kāi)發(fā)者使用自研的算法框架,匹配您的使用習(xí)慣。
- ModelArts 的理念就是讓 AI 開(kāi)發(fā)變得更簡(jiǎn)單、更方便,它是面向 AI 開(kāi)發(fā)者的一站式開(kāi)發(fā)平臺(tái),通過(guò) AI 開(kāi)發(fā)全流程管理助您智能、高效地創(chuàng)建 AI 模型和一鍵模型部署到云、邊、端。
- 面向不同經(jīng)驗(yàn)的 AI 開(kāi)發(fā)者,提供便捷易用的使用流程。例如,面向業(yè)務(wù)開(kāi)發(fā)者,不需關(guān)注模型或編碼,可使用自動(dòng)學(xué)習(xí)流程快速構(gòu)建 AI 應(yīng)用;面向 AI 初學(xué)者,不需關(guān)注模型開(kāi)發(fā),使用預(yù)置算法構(gòu)建 AI 應(yīng)用;面向 AI 工程師,提供多種開(kāi)發(fā)環(huán)境,多種操作流程和模式,方便開(kāi)發(fā)者編碼擴(kuò)展,快速構(gòu)建模型及應(yīng)用。
- ModelArts 的 AIGallery 中預(yù)置了大量的模型、算法、數(shù)據(jù)和 Notebook 等資產(chǎn),供初學(xué)者快速上手使用;ModelArts 的自動(dòng)學(xué)習(xí)功能,可以幫助用戶零代碼構(gòu)建 AI 模型;ModelArts 同時(shí)也提供了開(kāi)發(fā)環(huán)境,用戶可以在云上的 JupyterLab 或者本地 IDE 中編寫(xiě)訓(xùn)練代碼,進(jìn)行 AI 模型開(kāi)發(fā)。
② ModelArts 架構(gòu)
- ModelArts 是一個(gè)一站式的開(kāi)發(fā)平臺(tái),能夠支撐開(kāi)發(fā)者從數(shù)據(jù)到 AI 應(yīng)用的全流程開(kāi)發(fā)過(guò)程。包含數(shù)據(jù)處理、模型訓(xùn)練、模型管理、模型部署等操作,并且提供 AI Gallery 功能,能夠在市場(chǎng)內(nèi)與其他開(kāi)發(fā)者分享模型。
- ModelArts 支持應(yīng)用到圖像分類、物體檢測(cè)、視頻分析、語(yǔ)音識(shí)別、產(chǎn)品推薦、異常檢測(cè)等多種 AI 應(yīng)用場(chǎng)景。
- ModelArts 架構(gòu)如下所示:
③ ModelArts 產(chǎn)品優(yōu)勢(shì)
- 一站式:開(kāi)“箱”即用,涵蓋AI開(kāi)發(fā)全流程,包含數(shù)據(jù)處理、模型開(kāi)發(fā)、訓(xùn)練、管理、部署功能,可靈活使用其中一個(gè)或多個(gè)功能。
- 易上手:
-
- 提供多種預(yù)置模型,開(kāi)源模型想用就用。
-
- 模型超參自動(dòng)優(yōu)化,簡(jiǎn)單快速。
-
- 零代碼開(kāi)發(fā),簡(jiǎn)單操作訓(xùn)練出自己的模型。
-
- 支持模型一鍵部署到云、邊、端。
- 高性能:
-
- 自研 MoXing 深度學(xué)習(xí)框架,提升算法開(kāi)發(fā)效率和訓(xùn)練速度。
-
- 優(yōu)化深度模型推理中 GPU 的利用率,加速云端在線推理。
-
- 可生成在 Ascend 芯片上運(yùn)行的模型,實(shí)現(xiàn)高效端邊推理。
- 靈活:
-
- 支持多種主流開(kāi)源框架(TensorFlow、Spark_MLlib、MXNet、Caffe、PyTorch、XGBoost-Sklearn、MindSpore)。
-
- 支持主流 GPU 和自研 Ascend 芯片。
-
- 支持專屬資源獨(dú)享使用。
-
- 支持自定義鏡像滿足自定義框架及算子需求。
④ ModelArts 功能
- 繁多的 AI 工具安裝配置、數(shù)據(jù)準(zhǔn)備、模型訓(xùn)練慢等是困擾 AI 工程師的諸多難題。為解決這個(gè)難題,將一站式的 AI 開(kāi)發(fā)平臺(tái)(ModelArts)提供給開(kāi)發(fā)者,從數(shù)據(jù)準(zhǔn)備到算法開(kāi)發(fā)、模型訓(xùn)練,最后把模型部署起來(lái),集成到生產(chǎn)環(huán)境,一站式完成所有任務(wù)。
- ModelArts 的特色功能如下所示:
-
- 數(shù)據(jù)治理:支持?jǐn)?shù)據(jù)篩選、標(biāo)注等數(shù)據(jù)處理,提供數(shù)據(jù)集版本管理,特別是深度學(xué)習(xí)的大數(shù)據(jù)集,讓訓(xùn)練結(jié)果可重現(xiàn)。
-
- 極“快”致“簡(jiǎn)”模型訓(xùn)練:自研的 MoXing 深度學(xué)習(xí)框架,更高效更易用,大大提升訓(xùn)練速度。
-
- 云邊端多場(chǎng)景部署:支持模型部署到多種生產(chǎn)環(huán)境,可部署為云端在線推理和批量推理,也可以直接部署到端和邊。
-
- 自動(dòng)學(xué)習(xí):支持多種自動(dòng)學(xué)習(xí)能力,通過(guò)“自動(dòng)學(xué)習(xí)”訓(xùn)練模型,用戶不需編寫(xiě)代碼即可完成自動(dòng)建模、一鍵部署。
-
- AI Gallery:預(yù)置常用算法和常用數(shù)據(jù)集,支持模型在企業(yè)內(nèi)部共享或者公開(kāi)共享。
⑤ 如何訪問(wèn) ModelArts?
- 云服務(wù)平臺(tái)提供了 Web 化的服務(wù)管理平臺(tái),即管理控制臺(tái)和基于 HTTPS 請(qǐng)求的 API(Application programming interface)管理方式。
- 管理控制臺(tái)方式:
-
- ModelArts 提供了簡(jiǎn)潔易用的管理控制臺(tái),包含自動(dòng)學(xué)習(xí)、數(shù)據(jù)管理、開(kāi)發(fā)環(huán)境、模型訓(xùn)練、AI 應(yīng)用管理、部署上線、AI Gallery 等功能,您可以在管理控制臺(tái)端到端完成您的 AI 開(kāi)發(fā)。
-
- 使用 ModelArts 管理控制臺(tái),需先注冊(cè)華為云。如果您已注冊(cè)華為云,可從主頁(yè)選擇“EI 企業(yè)智能 > 人工智能>AI 基礎(chǔ)平臺(tái) > AI 開(kāi)發(fā)平臺(tái) ModelArts”直接登錄管理控制臺(tái)。
- SDK 方式:
-
- 如果需要將 ModelArts 集成到第三方系統(tǒng),用于二次開(kāi)發(fā),可選擇調(diào)用 SDK 方式完成目的。ModelArts 的 SDK 是對(duì) ModelArts 服務(wù)提供的 REST API 進(jìn)行的 Python 封裝,簡(jiǎn)化用戶的開(kāi)發(fā)工作。
-
- 除此之外,在管理控制臺(tái)的 Notebook 中編寫(xiě)代碼時(shí),也可直接調(diào)用 ModelArts SDK。
- API 方式:如果您需要將 ModelArts 集成到第三方系統(tǒng),用于二次開(kāi)發(fā),請(qǐng)使用 API 方式訪問(wèn) ModelArts。
二、環(huán)境配置和準(zhǔn)備工作
① 注冊(cè)華為云帳號(hào)
- 進(jìn)入華為云官網(wǎng),單擊頁(yè)面右上角的“注冊(cè)”:
- 注冊(cè)華為帳號(hào):
-
- 輸入手機(jī)號(hào):
-
-
- 請(qǐng)使用中國(guó)大陸的手機(jī)號(hào)碼;
-
-
-
- 一個(gè)手機(jī)號(hào)可以注冊(cè) 3 個(gè)華為帳號(hào),如帳號(hào)數(shù)量已達(dá)到 3 個(gè),將不支持使用該手機(jī)號(hào)注冊(cè)新的華為帳號(hào)。
-
-
- 獲取并輸入手機(jī)收到的驗(yàn)證碼;
-
- 設(shè)置帳號(hào)密碼:
-
-
- 至少包含 8 個(gè)字符;
-
-
-
- 包含字母和數(shù)字,不能包含空格;
-
-
- 單擊“注冊(cè)”。
- 查看授權(quán)信息,確認(rèn)無(wú)誤后,單擊“授權(quán)并登錄”。
- 勾選服務(wù)條款, 單擊“開(kāi)通”,系統(tǒng)提示開(kāi)通成功。
② 登錄華為云
- 華為帳號(hào)登錄:
- 通過(guò)華為云 App 掃碼登錄方法如下:
- 華為云帳號(hào)登錄:
- 其他帳號(hào)登錄:
③ 配置訪問(wèn)授權(quán)(全局配置)
- ModelArts 使用過(guò)程中涉及到 OBS、SWR、IEF 等服務(wù)交互,需要用戶配置委托授權(quán),允許 Modelarts 訪問(wèn)這些依賴服務(wù)。若沒(méi)有授權(quán),ModelArts 的部分功能將不能正常使用。
- 使用華為云帳號(hào)登錄ModelArts管理控制臺(tái),在左側(cè)導(dǎo)航欄單擊“全局配置”,進(jìn)入“全局配置”頁(yè)面,單擊“添加授權(quán)”:
- 在彈出的“訪問(wèn)授權(quán)”窗口中,選擇需要授權(quán)的“用戶名”及其對(duì)應(yīng)的“委托”(默認(rèn) modelarts_agency 即可),勾選“我已經(jīng)詳細(xì)閱讀并同意《ModelArts 服務(wù)聲明》”,然后單擊“同意授權(quán)”,如下所示,使用委托授權(quán):
-
- 用戶名:在右側(cè)下拉框中選擇帳號(hào),默認(rèn)選擇“所有用戶”,該選項(xiàng)表示會(huì)給下拉框中所有子用戶包含當(dāng)前帳號(hào)進(jìn)行授權(quán),在下拉框中,將顯示當(dāng)前帳號(hào)下的所有 IAM 用戶,您也可以選擇為其中某一IAM用戶配置委托;
-
- 委托:
-
-
- 自動(dòng)創(chuàng)建(推薦使用此方式):默認(rèn) modelarts_agency 即可,若暫無(wú)可用委托,此時(shí)您可以單擊“自動(dòng)創(chuàng)建”,系統(tǒng)自動(dòng)為用戶名中選擇的用戶創(chuàng)建一個(gè)可用的委托,自動(dòng)創(chuàng)建的委托;
-
-
-
- 選擇已有委托:如果您已在 IAM 中創(chuàng)建委托,則可以在下拉框中選擇一個(gè)可用的委托為上述選擇的用戶授權(quán);
-
-
-
- 到 IAM 手動(dòng)創(chuàng)建:如果自動(dòng)創(chuàng)建的委托無(wú)法滿足您的需求,需要為某一用戶配置更多或更少的權(quán)限,也可單擊“到 IAM 手動(dòng)創(chuàng)建”,跳轉(zhuǎn)至 IAM 管理控制臺(tái),重新創(chuàng)建一個(gè)委托。
-
- 完成配置后,在全局配置列表,可查看到某一帳號(hào)或 IAM 用戶的委托配置信息:
- 自動(dòng)創(chuàng)建的委托詳細(xì)信息:
- 刪除授權(quán):
-
- 刪除某一用戶的授權(quán):在“全局配置”頁(yè)面,展示當(dāng)前帳號(hào)下為其 IAM 用戶配置的授權(quán)列表,針對(duì)某一用戶,您可以單擊“操作”列的“刪除”,刪除此用戶的授權(quán),刪除生效后,此用戶將無(wú)法繼續(xù)使用 ModelArts 的相關(guān)功能;
-
- 批量清空所有授權(quán):在“全局配置”頁(yè)面,單擊授權(quán)列表上方的“清空授權(quán)”,可刪除當(dāng)前帳號(hào)下的所有授權(quán),刪除生效后,此帳號(hào)及其所有 IAM 子用戶將無(wú)法繼續(xù)使用 ModelArts 的相關(guān)功能:
③ 創(chuàng)建 OBS 桶
- ModelArts 使用對(duì)象存儲(chǔ)服務(wù)(Object Storage Service,簡(jiǎn)稱 OBS)進(jìn)行數(shù)據(jù)存儲(chǔ)以及模型的備份和快照,實(shí)現(xiàn)安全、高可靠和低成本的存儲(chǔ)需求。因此,建議您在使用 ModelArts 之前先創(chuàng)建一個(gè) OBS 桶,然后在 OBS 桶中創(chuàng)建文件夾用于存放數(shù)據(jù)。
- 登錄OBS管理控制臺(tái),在桶列表頁(yè)面右上角單擊“創(chuàng)建桶”,創(chuàng)建 OBS 桶。例如,創(chuàng)建名稱為“c-flowers”的 OBS 桶:
- 在桶列表頁(yè)面,單擊桶名稱,進(jìn)入該桶的概覽頁(yè)面:
- 單擊左側(cè)導(dǎo)航的“對(duì)象”,在對(duì)象頁(yè)面單擊新建文件夾,創(chuàng)建 OBS 文件夾。例如,在已創(chuàng)建的 OBS 桶“c-flowers”中新建一個(gè)文件夾“flowers”:
三、開(kāi)發(fā)工具
① ModelArts Notebook 云上云下,無(wú)縫協(xié)同
- 代碼開(kāi)發(fā)與調(diào)測(cè),云化 JupyterLab 使用,本地 IDE+ModelArts 插件遠(yuǎn)程開(kāi)發(fā)能力,貼近開(kāi)發(fā)人員使用習(xí)慣;
- 云上開(kāi)發(fā)環(huán)境,包含AI計(jì)算資源,云上存儲(chǔ),預(yù)置 AI 引擎;
- 運(yùn)行環(huán)境自定義,將開(kāi)發(fā)環(huán)境直接保存成為鏡像,供訓(xùn)練、推理使用;
- ModelArts CodeLab(JupyterLab),讓 AI 探索&教學(xué)更簡(jiǎn)單;
- 云原生Notebook,案例內(nèi)容秒級(jí)接入與分享;
- Serverless 化實(shí)例管理,資源自動(dòng)回收;
- 免費(fèi)算力,規(guī)格按需切換。
② 遠(yuǎn)程開(kāi)發(fā) - 支持本地 IDE 遠(yuǎn)程訪問(wèn) Notebook
- 新版 Notebook 提供了遠(yuǎn)程開(kāi)發(fā)功能,通過(guò)開(kāi)啟 SSH 連接,用戶本地 IDE 可以遠(yuǎn)程連接到 ModelArts 的 Notebook 開(kāi)發(fā)環(huán)境中,調(diào)試和運(yùn)行代碼。
- 對(duì)于使用本地 IDE 的開(kāi)發(fā)者,由于本地資源限制,運(yùn)行和調(diào)試環(huán)境大多使用團(tuán)隊(duì)公共搭建的 CPU 或 GPU 服務(wù)器,并且是多人共用,這帶來(lái)一定的環(huán)境搭建和維護(hù)成本。
- 而 ModelArts 的 Notebook 的優(yōu)勢(shì)是即開(kāi)即用,它預(yù)先裝好了不同的框架,并且提供了非常多的可選規(guī)格,用戶可以獨(dú)占一個(gè)容器環(huán)境,不受其他人的干擾。只需簡(jiǎn)單配置,用戶即可通過(guò)本地 IDE 連接到該環(huán)境進(jìn)行運(yùn)行和調(diào)試。
- 本地 IDE 遠(yuǎn)程訪問(wèn) Notebook 開(kāi)發(fā)環(huán)境:
- ModelArts 的 Notebook 可以視作是本地 PC 的延伸,均視作本地開(kāi)發(fā)環(huán)境,其讀取數(shù)據(jù)、訓(xùn)練、保存文件等操作與常規(guī)的本地訓(xùn)練一致。
- 對(duì)于習(xí)慣使用本地 IDE 的開(kāi)發(fā)者,使用遠(yuǎn)程開(kāi)發(fā)方式,不影響用戶的編碼習(xí)慣,并且可以方便快捷的使用云上的 Notebook 開(kāi)發(fā)環(huán)境。
- 本地 IDE 當(dāng)前支持 VSCode、PyCharm,還有專門(mén)的插件 PyCharm ToolKit 和 VSCode ToolKit,更方便將云上資源作為本地的一個(gè)擴(kuò)展。
③ 預(yù)置鏡像 - 即開(kāi)即用,優(yōu)化配置,支持主流 AI 引擎
- 每個(gè)鏡像預(yù)置的 AI 引擎和版本是固定的,在創(chuàng)建 Notebook 實(shí)例時(shí)明確 AI 引擎和版本,包括適配的芯片。
- 為了簡(jiǎn)化操作,ModelArts 的新版 Notebook,同一個(gè) Notebook 實(shí)例中不支持不同引擎之間的切換。
- 不同 Region 支持的 AI 引擎不一樣,請(qǐng)以控制臺(tái)實(shí)際界面為準(zhǔn)。
④ 提供在線的交互式開(kāi)發(fā)調(diào)試工具 JupyterLab
- ModelArts 集成了基于開(kāi)源的 JupyterLab,可為您提供在線的交互式開(kāi)發(fā)調(diào)試工具。您無(wú)需關(guān)注安裝配置,在 ModelArts 管理控制臺(tái)直接使用 Notebook,編寫(xiě)和調(diào)測(cè)模型訓(xùn)練代碼,然后基于該代碼進(jìn)行模型的訓(xùn)練。
- JupyterLab 是一個(gè)交互式的開(kāi)發(fā)環(huán)境,是 Jupyter Notebook 的下一代產(chǎn)品,可以使用它編寫(xiě) Notebook、操作終端、編輯 MarkDown 文本、打開(kāi)交互模式、查看 csv 文件及圖片等功能。
⑤ 管理 Notebook 實(shí)例
- 創(chuàng)建 Notebook 實(shí)例:
-
- 登錄 ModelArts 管理控制臺(tái),在左側(cè)導(dǎo)航欄中選擇“開(kāi)發(fā)環(huán)境 > Notebook”,進(jìn)入“Notebook”新版管理頁(yè)面:
-
- 單擊“創(chuàng)建”,進(jìn)入“創(chuàng)建Notebook”頁(yè)面,填寫(xiě) Notebook 的基本信息,包含名稱、描述、是否自動(dòng)停止:
-
- 填寫(xiě) Notebook 詳細(xì)參數(shù),如工作環(huán)境、資源規(guī)格等:
-
- 參數(shù)填寫(xiě)完成后,單擊“立即創(chuàng)建”進(jìn)行規(guī)格確認(rèn)。
-
- 參數(shù)確認(rèn)無(wú)誤后,單擊“提交”,完成 Notebook 的創(chuàng)建操作,進(jìn)入 Notebook 列表,正在創(chuàng)建中的 Notebook 狀態(tài)為“創(chuàng)建中”,創(chuàng)建過(guò)程需要幾分鐘,請(qǐng)耐心等待。當(dāng) Notebook 狀態(tài)變?yōu)椤斑\(yùn)行中”時(shí),表示 Notebook 已創(chuàng)建并啟動(dòng)完成。
-
- 在 Notebook 列表,單擊實(shí)例名稱,進(jìn)入實(shí)例詳情頁(yè),查看 Notebook 實(shí)例配置信息,包括Notebook實(shí)例名稱、規(guī)格、狀態(tài)、鏡像類型、用戶ID、存儲(chǔ)路徑、存儲(chǔ)容量、Notebook地址和端口號(hào)、允許遠(yuǎn)程訪問(wèn)的白名單IP地址、認(rèn)證密鑰文件名。
-
- 在白名單右側(cè)單擊修改,可以修改允許遠(yuǎn)程訪問(wèn)的白名單 IP 地址,單擊“添加數(shù)據(jù)存儲(chǔ)”,可以掛載 OBS 并行文件系統(tǒng),方便讀取數(shù)據(jù)。
- 啟動(dòng)/停止/刪除實(shí)例:
-
- 啟動(dòng)/停止實(shí)例
-
-
- 由于運(yùn)行中的 Notebook 將一直耗費(fèi)資源,您可以通過(guò)停止操作,停止資源消耗。對(duì)于停止?fàn)顟B(tài)的 Notebook,可通過(guò)啟動(dòng)操作重新使用 Notebook。
-
-
-
- 登錄 ModelArts 管理控制臺(tái),在左側(cè)菜單欄中選擇“開(kāi)發(fā)環(huán)境 > Notebook”,進(jìn)入新版 Notebook 管理頁(yè)面。
-
-
-
- 執(zhí)行如下操作啟動(dòng)或停止 Notebook:
-
-
-
-
- 啟動(dòng) Notebook:單擊“操作”列的“啟動(dòng)”。只有處于“停止”狀態(tài)的 Notebook 可以執(zhí)行啟動(dòng)操作。
-
-
-
-
-
- 停止 Notebook:單擊“操作”列的“停止”。只有處于“運(yùn)行中”狀態(tài)的 Notebook 可以執(zhí)行停止操作。
-
-
-
- 刪除實(shí)例:
-
-
- 針對(duì)不再使用的 Notebook 實(shí)例,可以刪除以釋放資源。
-
-
-
- 登錄 ModelArts 管理控制臺(tái),在左側(cè)菜單欄中選擇“開(kāi)發(fā)環(huán)境>Notebook”,進(jìn)入新版 Notebook 管理頁(yè)面。
-
-
-
- 在 Notebook 列表中,單擊操作列的“刪除”,在彈出的確認(rèn)對(duì)話框中,確認(rèn)信息無(wú)誤,然后單擊“確定”,完成刪除操作。
-
- 變更 Notebook 實(shí)例運(yùn)行規(guī)格:
-
- 登錄 ModelArts 管理控制臺(tái),在左側(cè)菜單欄中選擇“開(kāi)發(fā)環(huán)境 > Notebook”,進(jìn)入新版 Notebook 管理頁(yè)面。
-
- 在 Notebook 列表,單擊某個(gè) Notebook 實(shí)例規(guī)格欄的,在下拉框中選擇對(duì)應(yīng)規(guī)格資源。
⑥ 安裝 VSCode 軟件及插件
1. 安裝 VSCode
- 下載并安裝 VSCode:
-
- Windows 用戶直接單擊此處下載:VSCode;
-
- 其他系統(tǒng)用戶的下載地址: VSCode。
- 用戶本地 PC 或服務(wù)器的操作系統(tǒng)中建議先安裝 Python 環(huán)境,詳見(jiàn)VSCode官方指導(dǎo)。
- 設(shè)置禁止自動(dòng)升級(jí) VSCode 版本:
-
- 執(zhí)行 Ctrl+Shift+P;
-
- 搜 Open Settings(JSON)
-
- 在配置文件settings.json中添加如下參數(shù) “update.mode”: “manual”。
- 設(shè)置禁止自動(dòng)升級(jí) VSCode 的插件版本:
-
- 執(zhí)行 Ctrl+Shift+P;
-
- 搜 Open Settings(JSON);
-
- 在配置文件 settings.json 中添加如下參數(shù):“extensions.autoUpdate”: false
- 注意:如果不禁止 VSCode 自動(dòng)更新,關(guān)閉打開(kāi)后會(huì)默認(rèn)更新至最新版 VSCode。
2. 下載并安裝 VSCode 插件
- VSCode 的插件工具包 VSCode-ToolKit 集成在 ModelArts 管理控制臺(tái)中,請(qǐng)先下載并安裝 VSCode 插件工具包。
- 在本地的 VSCode 開(kāi)發(fā)環(huán)境中,如下圖所示,選擇本地的 VSCode 插件并單擊“安裝”:
- 安裝過(guò)程預(yù)計(jì)1~2分鐘,請(qǐng)耐心等待。
- 安裝完成后,系統(tǒng)右下角提示安裝完成,導(dǎo)航左側(cè)出現(xiàn) ModelArts 圖標(biāo)和 SSH 遠(yuǎn)程連接圖標(biāo),表示 VSCode 插件安裝完成:
3. 登錄 VSCode 插件
- 在本地的 VSCode 開(kāi)發(fā)環(huán)境中,單擊 ModelArts 圖標(biāo),單擊“User Settings”,配置用戶登錄信息:
- 輸入如下用戶登錄信息,單擊“登錄”:
-
- Name:自定義用戶名,僅用于VSCode頁(yè)面展示,不與任何華為云用戶關(guān)聯(lián);
-
- AK:在華為云“帳號(hào)中心 > 我的憑證 > 訪問(wèn)密鑰”中創(chuàng)建訪問(wèn)密鑰,獲取 AK;
-
- SK:在華為云“帳號(hào)中心 > 我的憑證 > 訪問(wèn)密鑰”中創(chuàng)建訪問(wèn)密鑰,獲取SK。
-
- 選擇區(qū)域:例如“上海一”,此處的區(qū)域必須和遠(yuǎn)程連接的 Notebook 在同一個(gè)區(qū)域,否則插件無(wú)法顯示需要連接的實(shí)例列表。
- 登錄成功后顯示 Notebook 實(shí)例列表。
四、第一個(gè) AI 應(yīng)用
① 創(chuàng)建應(yīng)用工程
- 使用 VSCode 連接到云上開(kāi)發(fā)環(huán)境后,需要先創(chuàng)建應(yīng)用工程。
- 單擊 VSCode 左側(cè)導(dǎo)航欄的ModelArts圖標(biāo),單擊“Create Project”創(chuàng)建工程:
- 輸入項(xiàng)目名稱,不輸入直接按下回車則默認(rèn)項(xiàng)目名稱為“my_project”:
- 輸入項(xiàng)目路徑,不輸入直接按回車鍵則會(huì)創(chuàng)建在默認(rèn)路徑下:
- 創(chuàng)建完成后右下角會(huì)彈出信息,單擊“是”打開(kāi)工程:
- 工程打開(kāi)后,VSCode 彈出的確認(rèn)信息框選擇“Yes”選項(xiàng):
- 此時(shí)左側(cè) Explorer 欄可以看到創(chuàng)建好的工程結(jié)構(gòu):
- 工程中的目錄作用介紹如下:
-
- manage.py:工程套件命令行入口;
-
- src:工程開(kāi)發(fā)代碼主目錄,可包含多個(gè) AI 應(yīng)用,每個(gè)AI應(yīng)用單獨(dú)為一個(gè)目錄,例如traffic;
-
- .vscode:vscode 配置文件,包含工程設(shè)置和運(yùn)行的配置文件
-
- tools:項(xiàng)目構(gòu)建依賴工具;
-
- test:測(cè)試代碼及測(cè)試數(shù)據(jù):該工程包含已經(jīng)配置好的 CMakeList 文件,開(kāi)發(fā)者在 src 目錄下進(jìn)行 AI 應(yīng)用開(kāi)發(fā)后,不修改或少量修改 CMakeList 即可直接編譯運(yùn)行,開(kāi)發(fā)者也可以將該工程目錄直接上傳至自己的 git 代碼倉(cāng)庫(kù)。
② 應(yīng)用樣例:視頻車輛檢測(cè)
- 工程的“src/traffic”目錄下預(yù)置了視頻車輛檢測(cè)的應(yīng)用樣例,它包含“flowunit”和“graph”兩個(gè)目錄,分別代表功能單元和圖。
- 在基于 ModelBox 框架的AI應(yīng)用開(kāi)發(fā)中,AI 應(yīng)用是由圖構(gòu)成的。其中,功能單元可以理解為一段相對(duì)獨(dú)立的數(shù)據(jù)處理功能,所有功能單元編排連線后構(gòu)成圖,代表一個(gè) AI 應(yīng)用,在 ModelBox 中的呈現(xiàn)形式為 toml 文件,在該樣例中位于如下路徑:
- 該 toml 文件代表的數(shù)據(jù)處理流程如下:
- 流程圖中的各個(gè)功能單元的實(shí)現(xiàn),一部分是直接使用 ModelBox 框架預(yù)置的功能單元,預(yù)置功能單元位于“/usr/local/lib64/”目錄下,以二進(jìn)制so文件的形式提供;另一部分是自己開(kāi)發(fā)的功能單元,位于“src/traffic/flowunit”目錄下:
- 每一個(gè)功能單元中即為該單元模塊的實(shí)現(xiàn)代碼,功能單元有三種類型,分別為“cpp”、“python”和“infer”,即c++ 功能單元、python 功能單元以及推理功能單元如下所示是一個(gè) C++ 功能單元的樣例,Process 函數(shù)為數(shù)據(jù)處理主函數(shù):
③ 運(yùn)行 AI 應(yīng)用
- 首先下載并本地安裝PotPlayer 播放器,用于播放 AI 應(yīng)用運(yùn)行結(jié)果視頻流。
- 在 VSCode 中配置端口轉(zhuǎn)發(fā), 操作方法:執(zhí)行“Ctrl+Shift+P”,輸入“Forward a Port”,輸入“1554”端口。
- 編譯運(yùn)行 AI 應(yīng)用:
-
- 在“.vscode/task.json”中配置編譯的工程名稱,這里預(yù)置為樣例目錄名稱“traffic”:
-
- 在“.vscode/launch.json”配置運(yùn)行的圖路徑,預(yù)置為樣例:
-
- 在“.vscode/launch.json”配置日志級(jí)別,默認(rèn)為“debug”:
-
- 單擊“Run>Run Without Debugging”或者使用快捷鍵 Ctrl+F5 運(yùn)行程序:
-
- 查看運(yùn)行結(jié)果:命令執(zhí)行后,會(huì)自動(dòng)進(jìn)行項(xiàng)目的編譯構(gòu)建和運(yùn)行,單擊“Terminal”控制臺(tái),可以查看實(shí)時(shí)運(yùn)行日志:
-
- 運(yùn)行時(shí),modelbox 框架會(huì)先加載和解析圖,然后運(yùn)行視頻流推理,運(yùn)行視頻推理時(shí)日志會(huì)很快速的打印,此時(shí)在瀏覽器中輸入如下地址可打開(kāi) rtsp 流播放:
-
- 視頻播放推理結(jié)果:
- 如果無(wú)視頻播輸出可能是播放早了或者已經(jīng)播放完了,可以再運(yùn)行一次圖,待控制臺(tái)開(kāi)始快速輸出大量推理日志后,在瀏覽器輸入地址查看結(jié)果。如果運(yùn)行圖時(shí)看到如下日志,代表當(dāng)前樣例使用的模型和開(kāi)發(fā)環(huán)境帶的 GPU 類型不符,例如創(chuàng)建開(kāi)發(fā)環(huán)境時(shí)選擇的 V100 GPU,樣例的 TensorRT 模型是適配T4 GPU,則會(huì)報(bào)如下錯(cuò)誤:
- 此時(shí)需要重新將 TensorRT 模型轉(zhuǎn)換成當(dāng)前開(kāi)發(fā)環(huán)境的模型,或者重新創(chuàng)建和模型對(duì)應(yīng)的開(kāi)發(fā)環(huán)境。
- 結(jié)束運(yùn)行:在 VSCode 上方單擊停止按鈕,或者在 Terminal 命令行窗口執(zhí)行“Ctrl + c”,即可結(jié)束運(yùn)行:
五、自動(dòng)學(xué)習(xí)“聲音分類”實(shí)例分析
① 聲音分類的數(shù)據(jù)準(zhǔn)備
- 音頻只支持 16bit 的 WAV 格式,支持 WAV 的所有子格式;
- 單條音頻時(shí)長(zhǎng)應(yīng)大于 1s,大小不能超過(guò) 4MB。
- 適當(dāng)增加訓(xùn)練數(shù)據(jù),會(huì)提升模型的精度,聲音分類建議每類音頻至少 50 條,每類音頻總時(shí)長(zhǎng)至少 5 分鐘;
- 建議訓(xùn)練數(shù)據(jù)和真實(shí)識(shí)別場(chǎng)景的聲音保持一致并且每類的音頻盡量覆蓋真實(shí)環(huán)境的所有場(chǎng)景;
- 訓(xùn)練集的數(shù)據(jù)質(zhì)量對(duì)于模型的精度有很大影響,建議訓(xùn)練集音頻的采樣率和采樣精度保持一致;
- 標(biāo)注質(zhì)量對(duì)于最終的模型精度有極大的影響,標(biāo)注過(guò)程中盡量不要出現(xiàn)誤標(biāo)情況。
② 創(chuàng)建聲音分類的項(xiàng)目
- 登錄 ModelArts 管理控制臺(tái),在左側(cè)導(dǎo)航欄單擊“自動(dòng)學(xué)習(xí)”,進(jìn)入“自動(dòng)學(xué)習(xí)”頁(yè)面:
- 在您需要的自動(dòng)學(xué)習(xí)項(xiàng)目列表中,單擊“創(chuàng)建項(xiàng)目”,進(jìn)入創(chuàng)建自動(dòng)學(xué)習(xí)項(xiàng)目界面:
- 在創(chuàng)建自動(dòng)學(xué)習(xí)項(xiàng)目頁(yè)面,計(jì)費(fèi)模式默認(rèn)“按需計(jì)費(fèi)”,設(shè)置相應(yīng)參數(shù),然后單擊“創(chuàng)建項(xiàng)目”,待頁(yè)面提示“創(chuàng)建項(xiàng)目成功”完成創(chuàng)建,創(chuàng)建成功后頁(yè)面自動(dòng)跳轉(zhuǎn)到“數(shù)據(jù)標(biāo)注”,也可以在“自動(dòng)學(xué)習(xí)”頁(yè)面查看創(chuàng)建成功的項(xiàng)目,單擊項(xiàng)目名稱進(jìn)入“數(shù)據(jù)標(biāo)注”。
③ 標(biāo)注數(shù)據(jù)
- 音頻標(biāo)注:
-
- 選擇未標(biāo)注音頻,在“數(shù)據(jù)標(biāo)注”頁(yè)面單擊“未標(biāo)注”頁(yè)簽,此頁(yè)面展示所有未標(biāo)注的音頻數(shù)據(jù),依次單擊選中待標(biāo)注的音頻,或勾選“選擇當(dāng)前頁(yè)”選中該頁(yè)面所有音頻,在頁(yè)面右側(cè)進(jìn)行標(biāo)注:
-
- 添加標(biāo)注:先對(duì)音頻進(jìn)行播放識(shí)別,然后選中音頻文件,在右側(cè)“標(biāo)簽”區(qū)域,輸入“標(biāo)簽名”或從下拉列表中選擇已添加的標(biāo)簽,同時(shí)可在下拉菜單中選擇標(biāo)簽“快捷鍵”,單擊“確定”,完成選中音頻的標(biāo)注操作:
-
- 當(dāng)目錄中所有音頻都完成標(biāo)注后,可以在“已標(biāo)注”頁(yè)簽下查看已完成標(biāo)注的音頻,或者通過(guò)右側(cè)的“全部標(biāo)簽”列表,了解當(dāng)前已完成的標(biāo)簽名稱和標(biāo)簽數(shù)量。
- 同步或添加音頻:
-
- 在“自動(dòng)學(xué)習(xí)”頁(yè)面,單擊項(xiàng)目名稱,進(jìn)入自動(dòng)學(xué)習(xí)“數(shù)據(jù)標(biāo)注”頁(yè)面,聲音分類項(xiàng)目創(chuàng)建時(shí),音頻來(lái)源有兩種,通過(guò)本地添加或同步 OBS 中的數(shù)據(jù);
-
- 添加音頻:可以將本地音頻快速添加到 ModelArts,同時(shí)自動(dòng)上傳至創(chuàng)建項(xiàng)目時(shí)所選擇的 OBS 路徑中,單擊“添加音頻”,在彈出的對(duì)話框中單擊“添加音頻”并添加(僅支持 16bit WAV 格式音頻文件,單個(gè)音頻文件不能超過(guò) 4MB,且單次上傳的音頻文件總大小不能超過(guò) 8MB);
-
- 數(shù)據(jù)源同步:為了快速獲取用戶 OBS 桶中最新音頻,單擊“數(shù)據(jù)源同步”,快速將通過(guò) OBS 上傳的音頻數(shù)據(jù)添加到 ModelArts。
-
- 刪除音頻:可以依次單擊選中音頻,或勾選“選擇當(dāng)前頁(yè)”選中該頁(yè)面所有音頻進(jìn)行刪除操作(所有的刪除操作均不可恢復(fù))。
- 修改標(biāo)注:
-
- 當(dāng)數(shù)據(jù)完成標(biāo)注后,還可以進(jìn)入“已標(biāo)注”頁(yè)簽,對(duì)已標(biāo)注的數(shù)據(jù)進(jìn)行修改;
-
- 基于音頻修改:在數(shù)據(jù)集詳情頁(yè),單擊“已標(biāo)注”頁(yè)簽,然后在音頻列表中選中待修改的音頻(選擇一個(gè)或多個(gè)),在右側(cè)標(biāo)簽信息區(qū)域中對(duì)標(biāo)簽進(jìn)行修改。
-
-
- 修改標(biāo)簽:在“選中文件標(biāo)簽”區(qū)域中,單擊操作列的編輯圖標(biāo),然后在文本框中輸入正確的標(biāo)簽名,然后單擊確定圖標(biāo)完成修改。
-
-
-
- 刪除標(biāo)簽:在“選中文件標(biāo)簽”區(qū)域中,單擊操作列的刪除圖標(biāo),在彈出的對(duì)話框中單擊“確定”刪除該標(biāo)簽。
-
-
- 基于標(biāo)簽修改:在數(shù)據(jù)標(biāo)注頁(yè)面,單擊“已標(biāo)注”頁(yè)簽,在音頻列表右側(cè),顯示全部標(biāo)簽的信息。
-
-
- 修改標(biāo)簽:單擊操作列的編輯圖標(biāo),在彈出的對(duì)話框中輸入修改后的標(biāo)簽名、選擇修改后的快捷鍵,然后單擊“確定”完成修改。修改后,之前添加了此標(biāo)簽的音頻,都將被標(biāo)注為新的標(biāo)簽名稱。
-
-
-
- 刪除標(biāo)簽:單擊操作列的刪除圖標(biāo),在彈出的對(duì)話框中,根據(jù)提示選擇刪除對(duì)象,然后單擊“確定”。
-
④ 模型訓(xùn)練
- 模型訓(xùn)練的目的是得到滿足需求的聲音分類模型,由于用于訓(xùn)練的音頻,至少有 2 種以上的分類,每種分類的音頻數(shù)不少于 5 個(gè),因此在發(fā)布訓(xùn)練之前,請(qǐng)確保已標(biāo)注的音頻符合要求,否則下方“開(kāi)始訓(xùn)練”按鈕會(huì)處于灰色狀態(tài)。
- 在自動(dòng)學(xué)習(xí)頁(yè)面,單擊創(chuàng)建成功的項(xiàng)目名稱,進(jìn)入“數(shù)據(jù)標(biāo)注”頁(yè)面,完成數(shù)據(jù)標(biāo)注:
- 在“數(shù)據(jù)標(biāo)注”頁(yè)面,單擊右上角“開(kāi)始訓(xùn)練”,然后在彈出的“訓(xùn)練設(shè)置”對(duì)話框中,填寫(xiě)相關(guān)參數(shù),然后單擊“確定”,開(kāi)始進(jìn)行模型訓(xùn)練:
- 訓(xùn)練參數(shù)設(shè)置完成后,單擊“下一步”進(jìn)入配置頁(yè),確認(rèn)規(guī)格后單擊“提交”進(jìn)行模型的自動(dòng)訓(xùn)練,訓(xùn)練時(shí)間相對(duì)較長(zhǎng),建議您耐心等待。如果關(guān)閉或退出此頁(yè)面,系統(tǒng)仍然在執(zhí)行訓(xùn)練操作。
- 在“模型訓(xùn)練”頁(yè)簽中,待訓(xùn)練狀態(tài)由“運(yùn)行中”變?yōu)椤耙淹瓿伞?#xff0c;即完成模型的自動(dòng)訓(xùn)練。
- 訓(xùn)練完成后,可以在界面中查看訓(xùn)練詳情,如“準(zhǔn)確率”、“評(píng)估結(jié)果”、“訓(xùn)練參數(shù)”、“分類統(tǒng)計(jì)表”等。
總結(jié)
以上是生活随笔為你收集整理的人工智能之华为云ModelArts的深度使用体验与AI Gallery应用开发实践的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【数据结构与算法】之深入解析“两数相除”
- 下一篇: [论文阅读] (04) 人工智能真的安全