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

使用AMD CPU實例部署ChatGLM-6B

更新時間:
一鍵部署
我的部署

本文以搭建AI對話機器人為例,介紹如何使用阿里云AMD CPU云服務器(g8a)部署ChatGLM-6B語言模型。

背景信息

ChatGLM-6B模型基于General Language Model(GLM)架構,具有62億參數,支持中英文,并針對中文問答和對話進行了優化,可以生成符合人類偏好的回答。廣泛應用于自我認知、提綱寫作、文案寫作、郵件助手、信息抽取、角色扮演、評論比較以及旅游向導等場景。

    重要
    • 阿里云不對第三方模型“ChatGLM-6B”的合法性、安全性、準確性進行任何保證,阿里云不對由此引發的任何損害承擔責任。

    • ChatGLM-6B的代碼依照Apache-2.0協議開源,ChatGLM-6B模型權重的使用遵循Model License。您應自覺遵守第三方模型的用戶協議、使用規范和相關法律法規,并就使用第三方模型的合法性、合規性自行承擔相關責任。

    • ChatGLM-6B模型權重對學術研究完全開放,免費商用請需填寫商業授權申請。本文所示的模型下載僅作為演示,阿里云不對由此引發的任何損害承擔責任。

創建ECS實例

  1. 前往實例創建頁。

  2. 按照界面提示完成參數配置,創建一臺ECS實例。

    需要注意的參數如下,其他參數的配置,請參見自定義購買實例

    • 實例:ChatGLM-6B大概需要32 GiB內存,為了保證模型運行的穩定,實例規格至少需要選擇ecs.g8a.4xlarge(64 GiB內存)。

    • 鏡像:Alibaba Cloud Linux 3.2104 LTS 64位。

    • 公網IP:選中分配公網IPv4地址,帶寬計費模式選擇按使用流量,帶寬峰值設置為100 Mbps。以加快模型下載速度。

      image..png

    • 數據盤:ChatGLM-6B模型需要占用26 GiB的存儲空間,為了保證模型順利運行,建議數據盤設置為100 GiB。

  3. 添加安全組規則。

    在ECS實例安全組的入方向添加安全組規則并放行7860端口(用于訪問WebUI服務)。具體操作,請參見添加安全組規則。

  4. 創建完成后,在ECS實例頁面,獲取公網IP地址。

    說明

    公網IP地址用于進行AI對話時訪問WebUI服務。

    image

部署ChatGLM-6B

手動部署

安裝配置模型所需軟件

  1. 遠程連接該ECS實例。

    具體操作,請參見通過密碼或密鑰認證登錄Linux實例,

  2. 安裝部署ChatGLM-6B所必需的軟件。

    sudo yum install tmux git git-lfs wget curl gcc gcc-c++ tar unzip hwloc python38
  3. 安裝Python 3.8。

    系統自帶的Python版本為3.6,不滿足部署ChatGLM-6B的最低版本要求,因此需要安裝Python 3.8。

    sudo update-alternatives --config python

    運行過程中,請輸入4,安裝Python 3.8。

    image.png

  4. 更新Python對應的pip版本。

    sudo python -m ensurepip --upgrade
    sudo python -m pip install --upgrade pip
  5. 啟用Git LFS。

    下載預訓練模型需要Git LFS的支持。

    git lfs install

下載源碼與模型

  1. 創建一個tmux session。

    tmux
    重要

    下載預訓練模型耗時較長,且成功率受網絡情況影響較大,建議在tmux session中下載,以免ECS斷開連接導致下載模型中斷。

  2. 下載ChatGLM-6B項目源碼,以及chatglm-6b預訓練模型。

    git clone https://github.com/THUDM/ChatGLM-6B.git
    git clone https://huggingface.co/THUDM/chatglm-6b
    說明

    如果chatglm-6b模型下載失敗,可以執行如下命令,從ModelScope中下載預訓練模型。

    git clone https://www.modelscope.cn/ZhipuAI/ChatGLM-6B.git chatglm-6b
    git -C chatglm-6b checkout v1.0.16
    sed -i '33c from .configuration_chatglm import ChatGLMConfig' chatglm-6b/modeling_chatglm.py
  3. 查看當前目錄。

    ls -l 

    下載完成后,當前目錄顯示如下。

    image.png

部署運行環境

  1. 更換pip下載源。

    在安裝依賴包之前,建議您更換pip下載源以加速安裝。

    1. 創建pip文件夾。

      mkdir -p ~/.config/pip
    2. 配置pip安裝鏡像源。

      cat > ~/.config/pip/pip.conf <<EOF
      [global]
      index-url=http://mirrors.cloud.aliyuncs.com/pypi/simple/
      
      [install]
      trusted-host=mirrors.cloud.aliyuncs.com
      EOF
  2. 安裝ZenDNN所需依賴。

    后續安裝的ZenDNN要求使用CPU版本的PyTorch,因此需要手動安裝所需依賴。

    pip install protobuf transformers==4.27.1 cpm_kernels gradio mdtex2html sentencepiece accelerate streamlit streamlit-chat
    pip install torch==1.12.0+cpu torchvision==0.13.0+cpu --extra-index-url https://download.pytorch.org/whl/cpu
  3. 下載并安裝ZenDNN。

    ZenDNN運行庫包括為AMD CPU架構優化的基本神經網絡構建塊的API,使深度學習應用程序和框架開發人員能夠提高AMD CPU上的深度學習推理性能。

    wget https://download.amd.com/developer/eula/zendnn/zendnn-4-0/pytorch-end-user-license/PT_v1.12_ZenDNN_v4.0_Python_v3.8.zip
    unzip PT_v1.12_ZenDNN_v4.0_Python_v3.8.zip
    cd PT_v1.12_ZenDNN_v4.0_Python_v3.8/
    source scripts/PT_ZenDNN_setup_release.sh

    當系統返回如下所示時,表示ZenDNN已安裝完成。

    image.png

  4. 設置環境變量OMP_NUM_THREADSGOMP_CPU_AFFINITY

    ZenDNN運行庫需要針對硬件平臺顯式設置環境變量OMP_NUM_THREADSGOMP_CPU_AFFINITY。

    sudo bash -c 'cat > /etc/profile.d/env.sh' << EOF
    export OMP_NUM_THREADS=\$(nproc --all)
    export GOMP_CPU_AFFINITY=0-\$(( \$(nproc --all) - 1 ))
    EOF
    source /etc/profile

進行AI對話

  1. 執行如下命令,開啟WebUI服務。

    cd ChatGLM-6B
    sed -i 's?THUDM/chatglm-6b?../chatglm-6b?g' web_demo2.py
    sed -i 's/.half().cuda()/.float()/g' web_demo2.py
    streamlit run web_demo2.py --server.port 7860

    當出現如下信息時,表示WebUI服務啟動成功。

    image.png

  2. 在瀏覽器地址欄輸入http://<ECS公網IP地址>:7860,進入Web頁面。

  3. 用戶命令輸入對話框中,輸入對話內容,單擊發送,即可開始AI對話。

    image.png

自動化部署

阿里云提供了自動部署腳本,可以一鍵部署運行ChatGLM-6B模型。

  1. 以root用戶登錄該ECS實例。

    具體操作,請參見通過密碼或密鑰認證登錄Linux實例。

  2. 下載tmux并創建一個tmux session。

    yum install -y tmux
    tmux
    說明

    該腳本運行中會下載模型文件,耗時較長,建議在tmux session中啟動部署,以免ECS斷開連接導致部署中斷。

  3. 下載自動部署腳本。

    wget https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20230920/afjx/deploy_chatglm-6b.sh
  4. 為自動化部署腳本添加執行權限。

    chmod +x deploy_chatglm-6b.sh
  5. 運行自動化部署腳本。

    ./deploy_chatglm-6b.sh

    當顯示結果如下所示時,說明自動部署腳本已完成。

    image.png

    說明

    該腳本運行時間較長,在tmux session中進行部署的過程中,如果斷開了ECS連接,重新登錄ECS實例后執行tmux attach命令即可恢復tmux session,查看腳本運行進度。

  6. 在瀏覽器地址欄輸入http://<ECS公網IP地址>:7860,進入Web頁面。

  7. 用戶命令輸入對話框中,輸入對話內容,單擊發送,即可開始AI對話。

    image.png