模型包規(guī)范介紹
適用范圍
ModelArts創(chuàng)建AI應(yīng)用時,元模型來源選擇“從對象存儲服務(wù)OBS從選擇”,選擇的元模型需要符合模型包規(guī)范。
模型包規(guī)范
ModelArts推理部署,模型包里面必需包含“model”文件夾,“model”文件夾下面放置模型文件,模型配置文件,模型推理代碼文件。
? 模型文件:在不同模型包結(jié)構(gòu)中模型文件的要求不同,具體請參見模型包結(jié)構(gòu)示例。
? 模型配置文件:模型配置文件必需存在,文件名固定為“config.json”,有且只有一個,模型配置文件編寫請參見模型配置文件編寫說明。
? 模型推理代碼文件:模型推理代碼文件是必選的。文件名固定為“customize_service.py”,此文件有且只能有一個,模型推理代碼編寫請參見模型推理代碼編寫說明。
· customize_service.py依賴的py文件可以直接放model目錄下,推薦采用相對導(dǎo)入方式導(dǎo)入自定義包。
· customize_service.py依賴的其他文件可以直接放model目錄下,需要采用絕對路徑方式訪問。
模型包結(jié)構(gòu)示例
TensorFlow模型包結(jié)構(gòu)
發(fā)布該模型時只需要指定到“ocr”目錄。
PyTorch模型包結(jié)構(gòu)
發(fā)布該模型時只需要指定到“resnet”目錄。
XGBoost模型包結(jié)構(gòu)
用戶發(fā)布該模型時只需要指定到“resnet”目錄
Scikit_Learn模型包結(jié)構(gòu)
用戶發(fā)布該模型時只需要指定到“resnet”目錄
更多ModelArts模型包結(jié)構(gòu)示例代碼請參考幫助文檔。
模型配置文件編寫說明
模型開發(fā)者發(fā)布模型時需要編寫配置文件config.json。模型配置文件描述模型用途、模型計算框架、模型精度、推理代碼依賴包以及模型對外API接口。
配置文件格式說明
配置文件為JSON格式,參數(shù)包括:model_algorithm、model_type、runtime、swr_location、metrics、apis、dependencies、health,具體的參數(shù)說明請參見ModelArts官網(wǎng)文檔,模型配置文件編寫說明章節(jié)中的配置文件格式說明。
model_algorithm:模型算法,表示該模型的用途,由模型開發(fā)者填寫,以便使用者理解該模型的用途。只能以英文字母開頭,不能包含中文以及&!'\"<>=,不超過36個字符。常見的模型算法有image_classification(圖像分類)、object_detection(物體檢測)、predict_analysis(預(yù)測分析)等。
model_type:模型AI引擎,表明模型使用的計算框架,支持常用AI框架和“Image”。
runtime:模型運行時環(huán)境,系統(tǒng)默認(rèn)使用python2.7。runtime可選值與model_type相關(guān),當(dāng)model_type設(shè)置為Image時,不需要設(shè)置runtime,當(dāng)model_type設(shè)置為其他常用框架時,請選擇您使用的引擎所對應(yīng)的運行時環(huán)境。目前支持的運行時環(huán)境列表請參見推理支持的AI引擎。
swr_location:model_type設(shè)置為Image時,“swr_location”參數(shù)必填。“swr_location”為docker鏡像在SWR上的地址,表示直接使用SWR的docker鏡像發(fā)布模型。
metrics:模型的精度信息,包括平均數(shù)、召回率、精確率、準(zhǔn)確率。
apis:表示模型接收和返回的請求樣式,為結(jié)構(gòu)體數(shù)據(jù)。即模型可對外提供的Restful API數(shù)組。????????
dependencies:表示模型推理代碼需要依賴的包,為結(jié)構(gòu)體數(shù)據(jù)。模型開發(fā)者需要提供包名、安裝方式、版本約束。目前只支持pip安裝方式。如果模型包內(nèi)沒有推理代碼customize_service.py文件,則該字段可不填。自定義鏡像模型不支持安裝依賴包。
health:鏡像健康接口配置信息,只有“model_type”為“Image”時才需填寫。如果在滾動升級時要求不中斷業(yè)務(wù),那么必需提供健康檢查的接口供ModelArts調(diào)用。
配置文件示例代碼
? 目標(biāo)檢測模型配置文件示例
請參見ModelArts官網(wǎng)文檔,模型配置文件編寫說明章節(jié)中的目標(biāo)檢測模型配置文件示例。
? 圖像分類模型配置文件示例
請參見ModelArts官網(wǎng)文檔,模型配置文件編寫說明章節(jié)中的圖像分類模型配置文件示例。
? 預(yù)測分析模型配置文件示例
請參見ModelArts官網(wǎng)文檔,模型配置文件編寫說明章節(jié)中的預(yù)測分析模型配置文件示例。
? 自定義鏡像類型的模型配置文件示例
請參見ModelArts官網(wǎng)文檔,模型配置文件編寫說明章節(jié)中的自定義鏡像類型的模型配置文件示例。
? 機(jī)器學(xué)習(xí)類型的模型配置文件示例
請參見ModelArts官網(wǎng)文檔,模型配置文件編寫說明章節(jié)中的機(jī)器學(xué)習(xí)類型的模型配置文件示例。
? 使用自定義依賴包的模型配置文件示例
請參見ModelArts官網(wǎng)文檔,模型配置文件編寫說明章節(jié)中的使用自定義依賴包的模型配置文件示例。
模型推理代碼編寫說明
本章節(jié)介紹在ModelArts中模型推理代碼編寫的通用方法及說明。
推理代碼編寫指導(dǎo)
1、在模型代碼推理文件“customize_service.py”中,需要添加一個子類,該子類繼承對應(yīng)模型類型的父類,各模型類型的父類名稱和導(dǎo)入語句如下表所示。
2、可以重寫的方法有以下幾種。
3、可以使用的屬性為模型所在的本地路徑,屬性名為“self.model_path”。另外pyspark模型在“customize_service.py”中可以使用“self.spark”獲取SparkSession對象。
推理代碼中,需要通過絕對路徑讀取文件。模型所在的本地路徑可以通過self.model_path屬性獲得。
4、預(yù)處理方法、實際推理請求方法和后處理方法中的接口傳入“data”當(dāng)前支持兩種content-type,即“multipart/form-data”和“application/json”。
推理腳本示例
? TensorFlow的推理腳本示例
請參考ModelArts官網(wǎng)文檔模型推理代碼編寫說明TensorFlow的推理腳本示例。
? XGBoost的推理腳本示例
請參考ModelArts官網(wǎng)文檔模型推理代碼編寫說明XGBoost的推理腳本示例。
? 自定義推理邏輯的推理腳本示例
請參考ModelArts官網(wǎng)文檔模型推理代碼編寫說明自定義推理邏輯的推理腳本示例。
模型包規(guī)范常見問題
模型包規(guī)范常見問題
精選文章推薦
更多相關(guān)文章精選推薦,帶您了解更多華為云產(chǎn)品