EAS提供了預置鏡像以部署社區模型,并針對模型分發和鏡像拉起做了加速機制。您只需配置幾個參數就可以將社區模型一鍵快捷的部署到EAS模型在線服務平臺。本文為您介紹如何部署HuggingFace和ModelScope的社區模型。
背景信息
當前,開放的模型社區(例如 huggingface、modelscope )提供了大量的機器學習模型和代碼實現,其對應庫的接口將模型、框架以及相關的處理邏輯進行了封裝,您僅需使用幾行代碼即可直接端到端進行模型訓練和調用等操作,無需考慮復雜的環境依賴、預處理后處理邏輯、框架類型等一系列使用和部署落地模型時的問題。這種生態也是對以Tensorflow、Pytorch為代表的框架-模型形態的升級。
EAS也對該形態進行了優化支持,支持您一鍵部署社區模型。
部署HuggingFace模型
PAI支持將HuggingFace社區官方庫中的tasks對應的模型快速部署為EAS模型在線服務,具體操作步驟如下:
在官方庫tasks中選擇要部署的模型,本文以文本分類模型為例,進入distilbert-base-uncased-finetuned-sst-2-english模型頁面,分別獲取下圖中的MODEL_ID(模型ID)、TASK(模型對應的TASK)、REVISION(模型版本)的值,并保存到本地。
您可以根據下表中的對應關系找到部署EAS服務時所需的TASK:
HuggingFace頁面展示的TASK
部署EAS服務時填寫的TASK
Audio Classification
audio-classification
Automatic Speech Recognition(ASR)
automatic-speech-recognition
Feature Extraction
feature-extraction
Fill Mask
fill-mask
Image Classification
image-classification
Question Answering
question-answering
Summarization
summarization
Text Classification
text-classification
Sentiment Analysis
sentiment-analysis
Text Generation
text-generation
Translation
translation
Translation (xx-to-yy)
translation_xx_to_yy
Text-to-Text Generation
text2text-generation
Zero-Shot Classification
zero-shot-classification
Document Question Answering
document-question-answering
Visual Question Answering
visual-question-answering
Image-to-Text
image-to-text
在EAS模型在線服務頁面,部署HuggingFace模型。
登錄PAI控制臺,在頁面上方選擇目標地域,并在右側選擇目標工作空間,然后單擊進入EAS。
單擊部署服務,然后在自定義模型部署區域,單擊自定義部署。
在自定義部署頁面,配置以下關鍵參數,其他參數配置詳情,請參見服務部署:控制臺。
參數
描述
基本信息
服務名稱
參照界面提示自定義配置服務名稱。
環境信息
部署方式
選擇鏡像部署,并選中開啟Web應用。
鏡像配置
在官方鏡像列表中選擇huggingface-inference;并根據版本選擇對應的鏡像名稱。
環境變量
單擊添加,配置以下參數為步驟1中查詢的結果:
MODEL_ID:distilbert-base-uncased-finetuned-sst-2-english。
TASK:text-classification。
REVISION:main。
運行命令
選擇鏡像后,系統會自動配置運行命令,您無需修改配置。
資源部署
額外系統盤
在資源部署區域,將額外系統盤配置為100 GB。
單擊部署。當服務狀態變為運行中時,表明服務已部署成功。
調用已部署成功的模型服務。
通過控制臺調用服務
在模型在線服務(EAS)頁面,單擊服務方式列下的查看Web應用,在WebUI頁面驗證模型推理效果。
單擊目標服務操作列下的在線調試,在Body頁簽輸入請求數據,例如:
{"data": ["hello"]}
,單擊發送請求。說明文本分類模型輸入的數據格式(
{"data": ["XXX"]}
)是Gradio框架的/api/predict
定義的,如果您使用其他類型的模型,例如圖片分類或語音數據處理等,可以參考/api/predict
的定義來構造請求數據。
通過API調用服務
單擊服務名稱進入服務詳情頁面,在該頁面單擊查看調用信息。
在調用信息對話框公網地址調用頁簽,查看訪問地址和Token,并保存到本地。
通過如下代碼使用API調用服務。
import requests resp = requests.post(url="<service_url>", headers={"Authorization": "<token>"}, json={"data": ["hello"]}) print(resp) # resp: {"data":[{"label":"POSITIVE","confidences":[{"label":"POSITIVE","confidence":0.9995185136795044}]}],"is_generating":false,"duration":0.280987024307251,"average_duration":0.280987024307251}
其中:<service_url>和<token>均需要替換為步驟b中獲取的訪問地址和Token。
部署ModelScope模型
PAI支持將Modelscope官方庫中模型快速部署為EAS模型在線服務,具體操作步驟如下:
在官方庫中選擇要部署的模型,本文以機器翻譯模型為例,進入damo/nlp_csanmt_translation_en2zh模型頁面,分別獲取MODEL_ID、TASK、REVISION的值并保存到本地。
MODEL_ID:模型ID。
TASK:模型對應的TASK。
REVISION:模型版本。
說明需要配置為一個確定的模型版本,例如:v1.0.1或v1.0.0,不能配置為master。
在EAS模型在線服務頁面,部署ModelScope模型。
登錄PAI控制臺,在頁面上方選擇目標地域,并在右側選擇目標工作空間,然后單擊進入EAS。
單擊部署服務,然后在自定義模型部署區域,單擊自定義部署。
在自定義部署頁面,配置以下關鍵參數,其他參數配置詳情,請參見服務部署:控制臺。
參數
描述
基本信息
服務名稱
參照界面提示自定義配置服務名稱。
環境信息
部署方式
選擇鏡像部署,并選中開啟Web應用。
鏡像配置
在官方鏡像列表中選擇modelscope-inference;并根據鏡像版本選擇對應的鏡像名稱。
環境變量
單擊添加,配置以下參數為步驟1中查詢的結果:
MODEL_ID:
iic/nlp_csanmt_translation_en2zh
。TASK:
translation
。REVISION:
v1.0.1
。
運行命令
配置鏡像后,系統會自動配置運行命令,您無需修改配置。
資源部署
部署資源
您選擇的資源規格的內存不能小于8 GB。
單擊部署。當服務狀態變為運行中時,表明服務已部署成功。
調用已部署成功的模型服務。
啟動WebUI調用模型服務
服務部署成功后,單擊服務方式列下的查看Web應用。
在WebUI頁面左側測試內容文本框中輸入請求數據,單擊執行測試,在測試結果文本框中返回結果。
WebUI頁面右側為輸入數據的Schema,如果發送了請求之后,會顯示輸入輸出的真實數據內容。您可以根據Schema和JSON內容,構造請求數據,來調用模型服務。
通過在線調試調用模型服務
您可以在服務詳情頁面中單擊查看調用信息,在公網地址調用頁簽獲取訪問地址和Token。再使用PAI提供的SDK或自主發送POST請求,詳情請參見服務調用SDK。本文為了方便演示,以在線調試為例為您說明如何調用模型服務。具體操作步驟如下:
在模型在線服務(EAS)頁面,單擊目標服務操作列下的在線調試。如果您不清楚該模型對應的數據格式,可以直接在在線調試頁面單擊發送請求,獲得如下圖所示的請求數據格式。
您可以參考實際返回結果中Body后的請求數據格式自行構造請求數據。以上圖為例,您可以在左側Body下的文本框中輸入
{"input": {"text": "Deploying ModelScope models on PAI-EAS is simple and easy to use"}}
,單擊發送請求,獲得如下預測結果。
后續,您可以參照上述步驟部署語音類和圖像類模型,以及調用模型來驗證模型效果。
語音合成tts模型:damo/speech_sambert-hifigan_tts_zh-cn_16k。示例效果如下圖所示:
圖像相關的人像美膚模型:damo/cv_unet_skin-retouching。示例效果如下圖所示:
圖像人臉融合模型:damo/cv_unet-image-face-fusion_damo。示例效果如下圖所示: