全部產品
Search
文件中心

Platform For AI:常見問題

更新時間:Jul 13, 2024

本文為您介紹自訂Processor的相關問題。

自訂Processor壓縮包太大,如何提高上傳效率?

EAS推薦使用Docker鏡像上傳運行環境和大檔案。如果業務代碼產生變動,則只需要累加式更新改動部分即可,可以大幅度提升開發效率,詳情請參見使用Python開發自訂Processor

如何解決匯入cv2報錯libSM.so.6: cannot open shared object file: No such file or directory的問題?

常見的pip install opencv方法依賴於libXext、libSM及libXrender庫。因為EAS線上環境沒有預裝libXext、libSM及libXrender庫,所以使用該命令安裝的cv2在離線測試環境中可能正常運行,但是線上上環境可能運行失敗。您可以通過以下任何一種方式解決該報錯:

  • 使用pip install openv-python-headless安裝cv2,該方法不依賴於額外安裝的libXext、libSM及libXrender庫。

  • 尋找系統中已安裝的libXext、libSM及libXrender的二進位庫ISO檔案,將其拷貝至ENV/lib並隨Proccessor上傳。(這種方法可能出現其他依賴庫,需要根據實際情況解決。)

在EAS Python Processor中,如何配置環境變數?

因為EAS Python Processor會自動將Processor目錄下的所有目錄添加至LD_LIBRARY_PATH環境變數,所以將額外的依賴庫存放至Processor目錄的任意位置即可。如果是其他環境變數,則推薦在Python程式中使用os.environ['key'] = 'val'進行配置。

EAS Processor如何避免代碼異常造成進程退出?

在開發商務服務邏輯過程中,在重要的地方增加異常檢測機制(try-catch),以保證業務代碼不會因為異常而退出。即使由於某些特殊原因導致進程退出,EAS可以自動重啟退出的進程,從而保證服務的穩定性。

如何配置AccessKey和Endpoint?

預測服務使用阿里雲AccessKey進行身份認證,提交任務時需要使用AccessKey ID和AccessKey Secret。Endpoint預設地區為華東2(上海),如果需要將模型部署至其它地區,可以使用-e參數指定地區對應的Endpoint,樣本如下。

./eascmd64 config -i <yourAccessKey ID> -k <yourAccessKey Secret> -e pai-eas.cn-beijing.aliyuncs.com

使用EASCMD建立任務,為什麼一直處於[OK] Waiting [Total: 1, Pending: 1, Running: 0]狀態?

建立任務所需的資源可能不足或無法找到。首先需要確認配置的資源地區及資源名稱是否正確,然後確認是否有足夠的可用資源。如下的EAS資訊描述檔案可以查看相關配置。

{
  "name": "service",
  "token": "[Authorization-token]",
  "data_image":"[your-public-docker-image-repo]",
  "processor_entry": "app.py",
  "processor_type": "python",
  "processor_path": "[oss://eas-model-shenzhen/xxxxxxxxx/codes.tar.gz]",
  "metadata": {
    "region": "cn-shenzhen", # 確保資源群組所在的地區正確。
    "resource": "resource-name", # 確保資源群組名稱(類似:EAS-LsFlrwBP56)正確且與地區對應。
    "gpu": 1,
    "cpu": 6,
    "memory": 2000,
    "instance": 2, # 每個執行個體佔用(gpu=1, cpu=6, memory=2000B)的資源。
                # 如果可用資源不足,則該任務一直處於waiting狀態。
    "cuda": "10.0"
  }
}

EAS服務內部訪問公網失敗,如何解決?

使用自訂Processor部署EAS服務,由於代碼裡配置了從公網下載檔案,導致部署服務時報錯:負載檔案失敗。因為EAS服務內部預設與公網不通,您可以嘗試為EAS服務配置公網串連,詳情請參見公網串連及白名單配置