日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

5分鐘操作EAS一鍵部署通義千問模型

本文為您介紹如何通過EAS一鍵部署基于開源模型通義千問的WebUI應用,以及使用WebUIAPI進行模型推理。

背景信息

通義千問-7B(Qwen-7B)是阿里云研發的通義千問大模型系列的70億參數規模的模型。Qwen-7B是基于Transformer的大語言模型, 在超大規模的預訓練數據上進行訓練得到。預訓練數據類型多樣,覆蓋廣泛,包括大量網絡文本、專業書籍、代碼等。同時,在Qwen-7B的基礎上,我們使用對齊機制開發了基于大語言模型的AI助手Qwen-7B-Chat。

前提條件

已開通PAI(EAS)后付費,并創建默認工作空間。具體操作,請參見開通PAI并創建默認工作空間

部署通義千問模型

將通義千問模型部署為AI-Web應用服務,具體操作步驟如下。

  1. 登錄PAI控制臺,在頁面上方選擇目標地域,并在右側選擇目標工作空間,然后單擊進入EAS

  2. 單擊部署服務,然后在自定義模型部署區域,單擊自定義部署

  3. 自定義部署頁面,配置以下關鍵參數。

    參數

    描述

    服務名稱

    自定義服務名稱。本案例使用的示例值為:qwen_demo

    部署方式

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

    鏡像配置

    選擇官方鏡像 > modelscope-inference > modelscope-inference:1.8.1

    運行命令

    python app.py

    端口號

    8000

    環境變量

    單擊添加,配置以下環境變量:

    • MODEL_ID輸入:qwen/Qwen-7B-Chat

    • TASK輸入:chat

    • REVISION輸入:v1.0.5

    相關配置可參考modelscope上的模型介紹。

    資源類型

    選擇公共資源

    部署資源

    資源規格選擇GPU > ml.gu7i.c16m60.1-gu30

    說明

    本文模型推理服務需要選擇GPU類型,且內存至少20G,從性價比角度推薦使用ml.gu7i.c16m60.1-gu30

    額外系統盤

    輸入系統盤大小(GB):100

  4. 單擊部署,進入模型在線服務(EAS),等待服務狀態變更為運行中,表示模型部署完成。

    說明

    一般在5分鐘能夠完成部署,具體與資源緊缺程度、服務負載以及配置有關。

進行模型推理

模型部署完成后,可以使用多種方式進行模型推理。

使用WebUI進行模型推理

  1. 單擊目標服務的服務方式 > 查看Web應用,打開WebUI頁面。

  2. WebUI頁面,進行模型推理驗證。

    image.png

使用在線調試進行模型推理

  1. 單擊目標服務的操作列下的在線調試,打開在線調試頁面。

  2. 在請求的body輸入框中輸入相應的請求json,點擊發送請求,在右側調試信息窗格中查看調試結果。

    說明

    本文模型調試信息格式為list,input字段是輸入內容;history字段是歷史對話,每個item是長度為2list,第一個元素是問題,第二個元素是當時的回答。

    1. 開始可以輸入沒有history的請求:

      {"input": "浙江的省會在哪里?"}

      服務會返回結果,并給出history字段,示例如下。

      Status Code: 200
      Content-Type: application/json
      Date: Mon, 14 Aug 2023 12:01:45 GMT
      Server: envoy
      Vary: Accept-Encoding
      X-Envoy-Upstream-Service-Time: 511
      Body: {"response":"浙江的省會是杭州。","history":[["浙江的省會在哪里?","浙江的省會是杭州。"]]}
    2. 可以將history直接帶入下次請求中,實現連續對話。

      {"input": "江蘇呢?", "history": [["浙江的省會在哪里?", "浙江的省會是杭州。"]]}

      服務返回結果示例:

      Status Code: 200
      Content-Type: application/json
      Date: Mon, 14 Aug 2023 12:01:23 GMT
      Server: envoy
      Vary: Accept-Encoding
      X-Envoy-Upstream-Service-Time: 522
      Body: {"response":"江蘇的省會是南京。","history":[["浙江的省會在哪里?","浙江的省會是杭州。"],["江蘇呢?","江蘇的省會是南京。"]]}

使用API進行模型推理

您可以選擇直接使用API進行調用。

  1. 在服務概覽頁面,單擊基本信息區塊中查看調用信息,得到調用的公網地址和Token

    image.png

  2. 在終端中,根據上面信息進行調用。

    curl -d '{"input": "江蘇呢?", "history": [["浙江的省會在哪里?", "浙江的省會是杭州。"]]}' -H "Authorization: xxx" http://xxxx.com

    得到返回結果,示例如下:

    {"response":"江蘇的省會是南京。","history":[["浙江的省會在哪里?","浙江的省會是杭州。"],["江蘇呢?","江蘇的省會是南京。"]]}

實際使用中,可以根據需求向服務發送HTTP請求,也可以參考PAI提供的SDK進行調試。Python代碼調用示例:

import requests
import json

data = {"input": "你是誰?"}
response = requests.post(url='http://qwen-demo.16623xxxxx.cn-hangzhou.pai-eas.aliyuncs.com/',
              headers={"Authorization": "yourtoken"},
              data=json.dumps(data))

print(response.text)

data = {"input": "你能做什么?", "history": json.loads(response.text)["history"]}


response = requests.post(url='http://qwen-demo.16623xxxxx.cn-hangzhou.pai-eas.aliyuncs.com/',
              headers={"Authorization": "yourtoken"},
              data=json.dumps(data))

print(response.text)

使用流式方式進行模型推理

  1. 在服務概覽頁面,單擊基本信息區塊中查看調用信息,得到調用的公網地址和Token

    image.png

  2. 在終端中,根據上面信息執行以下Python代碼發送流式請求。

    #encoding=utf-8
    from websockets.sync.client import connect
    import os
    import platform
    
    def clear_screen():
        if platform.system() == "Windows":
            os.system("cls")
        else:
            os.system("clear")
    
    
    def print_history(history):
        print("歡迎使用 Qwen-7B 模型,輸入內容即可進行對話,clear 清空對話歷史,stop 終止程序")
        for pair in history:
            print(f"\nUser: {pair[0]}\nQwen-7B: {pair[1]}")
    
    
    def main():
        history, response = [], ''
        clear_screen()
        print_history(history)
        with connect("<service_url>", additional_headers={"Authorization": "<token>"}) as websocket:
    
            while True:
                query = input("\nUser: ")
                if query.strip() == "stop":
                    break
                websocket.send(query)
                while True:
                    msg = websocket.recv()
                    
                    if msg == '<EOS>':
                        break
                    clear_screen()
                    print_history(history)
                    print(f"\nUser: {query}")
                    print("\nQwen-7B: ", end="")
                    print(msg)
                    response = msg
                    
                history.append((query, response))
    
    
    if __name__ == "__main__":
        main()

    其中:

    • <service_url>:需要替換為步驟1中獲取的服務訪問地址,并將訪問地址中前端的http替換為ws

    • <token>:需要替換為步驟1中獲取的服務Token。

相關文檔

更多關于EAS產品的內容介紹,請參見模型在線服務(EAS)