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