全部產品
Search
文件中心

Platform For AI:EAS一鍵部署HuggingFace服務應用

更新時間:Dec 05, 2024

EAS提供了預置鏡像以部署社區模型,並針對模型分發和鏡像拉起做了加速機制。您只需配置幾個參數就可以將社區模型一鍵快捷的部署到EAS模型線上服務平台。本文為您介紹如何部署HuggingFace的社區模型。

背景資訊

當前,開放的模型社區(例如 huggingface)提供了大量的機器學習模型和代碼實現,其對應庫的介面將模型、架構以及相關的處理邏輯進行了封裝,您僅需使用幾行代碼即可直接端到端進行模型訓練和調用等操作,無需考慮複雜的環境依賴、預先處理後處理邏輯、架構類型等一系列使用和部署落地模型時的問題。這種生態也是對以Tensorflow、Pytorch為代表的架構-模型形態的升級。

EAS也對該形態進行了最佳化支援,支援您一鍵部署社區模型。

部署HuggingFace模型

PAI支援將HuggingFace社區官方庫中的tasks對應的模型快速部署為EAS模型線上服務,具體操作步驟如下:

  1. 在官方庫tasks中選擇要部署的模型,本文以文本分類模型為例,進入distilbert-base-uncased-finetuned-sst-2-english模型頁面,分別擷取下圖中的MODEL_ID(模型ID)、TASK(模型對應的TASK)、REVISION(模型版本)的值,並儲存到本地。0ec0f57fcd2cee6a6c91b53d67616f26.png

    您可以根據下表中的對應關係找到部署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

  2. EAS模型線上服務頁面,部署HuggingFace模型。

    1. 登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS

    2. 單擊部署服務,然後在自訂模型部署地區,單擊自訂部署

    3. 自訂部署頁面,配置以下關鍵參數,其他參數配置詳情,請參見服務部署:控制台

      參數

      描述

      基本資料

      服務名稱

      參照介面提示自訂佈建服務名稱。

      環境資訊

      部署方式

      選擇鏡像部署,並選中開啟Web應用

      鏡像配置

      官方鏡像列表中選擇huggingface-inference;並根據版本選擇對應的鏡像名稱。

      環境變數

      單擊添加,配置以下參數為步驟1中查詢的結果:

      • MODEL_ID:distilbert-base-uncased-finetuned-sst-2-english。

      • TASK:text-classification。

      • REVISION:main。

      運行命令

      選擇鏡像後,系統會自動設定運行命令,您無需修改配置。

      資源部署

      額外系統硬碟

      在資源部署地區,將額外系統硬碟配置為100 GB。

    4. 單擊部署。當服務狀態變為運行中時,表明服務已部署成功。

  3. 調用已部署成功的模型服務。

    通過控制台調用服務

    • 模型線上服務(EAS)頁面,單擊服務方式列下的查看Web應用,在WebUI頁面驗證模型推理效果。image.png

    • 單擊目標服務作業列下的線上調試,在Body頁簽輸入請求資料,例如:{"data": ["hello"]},單擊發送請求image

      說明

      文本分類模型輸入的資料格式({"data": ["XXX"]})是Gradio架構/api/predict定義的,如果您使用其他類型的模型,例如圖片分類或語音資料處理等,可以參考/api/predict的定義來構造請求資料。

    通過API調用服務

    1. 單擊服務名稱進入服務詳情頁面,在該頁面單擊查看調用資訊

    2. 調用資訊對話方塊公網地址調用頁簽,查看訪問地址Token,並儲存到本地。

    3. 通過如下代碼使用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。