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

通義千問Qwen全托管靈駿最佳實踐

本方案旨在幫助大模型開發者快速上手靈駿智算平臺,實現大語言模型(Qwen-7B、Qwen-14B和Qwen-72B)的高效分布式訓練、三階段指令微調、模型離線推理和在線服務部署等完整的開發流程。以Qwen-7B模型為例,為您詳細介紹該方案的開發流程。

前提條件

本方案以Qwen-7B v1.1.4版本的模型為例,在開始執行操作前,請確認您已經完成以下準備工作:

  • 已開通PAI(DSW、DLC、EAS)并創建了默認的工作空間。具體操作,請參見開通PAI并創建默認工作空間

  • 已購買靈駿智算資源并創建資源配額。不同的模型參數量支持的資源規格列表如下,請根據您實際使用的模型參數量選擇合適的資源,關于靈駿智算資源的節點規格詳情,請參見靈駿Serverless版機型定價詳情。具體操作,請參見新建資源組并購買靈駿智算資源靈駿智算資源配額

    模型參數量

    全參數訓練資源

    推理資源(最低)

    Megatron訓練模型切片

    7B

    8卡*gu7xf、8卡*gu7ef

    1*V100(32 GB顯存)、1*A10(24 GB顯存)

    TP1、PP1

    14B

    8卡*gu7xf、8卡*gu7ef

    2*V100(32 GB顯存)、2*A10(24 GB顯存)

    TP2、PP1

    72B

    4*8卡*gu7xf、4*8卡*gu7ef

    6*V100(32 GB顯存)、2卡*gu7xf

    TP8、PP2

  • 已創建阿里云文件存儲(通用型NAS)類型的數據集,用于存儲訓練所需的文件和結果文件。默認掛載路徑配置為/mnt/data/nas。具體操作,請參見創建及管理數據集

  • 已創建DSW實例,其中關鍵參數配置如下。具體操作,請參見創建DSW實例

    • 資源配額:選擇已創建的靈駿智算資源的資源配額。

    • 資源規格:配置以下資源規格。

      • CPU(核數):90。

      • 內存(GiB):1024。

      • 共享內存(GiB):1024。

      • GPU(卡數):至少為8。

    • 掛載配置:單擊添加,選擇已創建的數據集,并使用默認掛載路徑。

    • 鏡像:在鏡像地址頁簽,配置鏡像為pai-image-manage-registry.cn-wulanchabu.cr.aliyuncs.com/pai/pytorch-training:1.12-ubuntu20.04-py3.10-cuda11.3-megatron-patch-llm

  • 如果使用RAM用戶完成以下相關操作,需要為RAM用戶授予DSW、DLC或EAS的操作權限。具體操作,請參見云產品依賴與授權:DSW云產品依賴與授權:DLC云產品依賴與授權:EAS

使用限制

僅支持在華北6(烏蘭察布)地域使用該最佳實踐。

步驟一:準備通義千問模型

本案例提供了以下三種下載模型的方式,您可以根據需要選擇其中一種。具體操作步驟如下:

  1. 進入PAI-DSW開發環境。

    1. 登錄PAI控制臺

    2. 在頁面左上方,選擇使用服務的地域:華北6(烏蘭察布)。

    3. 在左側導航欄單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進入對應工作空間內。

    4. 在左側導航欄,選擇模型開發與訓練 > 交互式建模(DSW)

    5. 單擊目標實例操作列下的打開

  2. 在頂部菜單欄單擊Terminal,在該頁簽中單擊創建terminal

  3. 下載通義千問模型。

    從ModelScope社區下載模型

    1. 在Terminal中執行以下命令安裝ModelScope。

    2. pip install modelscope

      單擊此處查看回顯信息,結果中出現的WARNING信息可以忽略。

      Looking in indexes: https://mirrors.cloud.aliyuncs.com/pypi/simple
      Collecting modelscope
        Downloading https://mirrors.cloud.aliyuncs.com/pypi/packages/ac/05/75b5d750608d7354dc3dd023dca7101e5f3b4645cb3e5b816536d472a058/modelscope-1.9.5-py3-none-any.whl (5.4 MB)
           ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.4/5.4 MB 104.7 MB/s eta 0:00:00
      Requirement already satisfied: pyyaml in /opt/*/lib/python3.8/site-packages (from modelscope) (5.4.1)
      Requirement already satisfied: pandas in /opt/*/lib/python3.8/site-packages (from modelscope) (1.5.3)
      Requirement already satisfied: addict in /opt/*/lib/python3.8/site-packages (from modelscope) (2.4.0)
      Requirement already satisfied: numpy in /opt/*/lib/python3.8/site-packages (from modelscope) (1.22.2)
      Collecting simplejson>=3.3.0
        Downloading https://mirrors.cloud.aliyuncs.com/pypi/packages/33/5f/b9506e323ea89737b34c97a6eda9d22ad6b771190df93f6eb72657a3b996/simplejson-3.19.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (136 kB)
           ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 136.6/136.6 kB 70.2 MB/s eta 0:00:00
      Collecting gast>=0.2.2
        Downloading https://mirrors.cloud.aliyuncs.com/pypi/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl (19 kB)
      Requirement already satisfied: Pillow>=6.2.0 in /opt/*/lib/python3.8/site-packages (from modelscope) (9.3.0)
      Requirement already satisfied: oss2 in /opt/*/lib/python3.8/site-packages (from modelscope) (2.17.0)
      Requirement already satisfied: filelock>=3.3.0 in /opt/*/lib/python3.8/site-packages (from modelscope) (3.11.0)
      Requirement already satisfied: urllib3>=1.26 in /opt/*/lib/python3.8/site-packages (from modelscope) (1.26.12)
      Requirement already satisfied: datasets<=2.13.0,>=2.8.0 in /opt/*/lib/python3.8/site-packages (from modelscope) (2.11.0)
      Requirement already satisfied: attrs in /opt/*/lib/python3.8/site-packages (from modelscope) (22.2.0)
      Requirement already satisfied: scipy in /opt/*/lib/python3.8/site-packages (from modelscope) (1.9.3)
      Requirement already satisfied: yapf in /opt/*/lib/python3.8/site-packages (from modelscope) (0.32.0)
      Requirement already satisfied: pyarrow!=9.0.0,>=6.0.0 in /opt/*/lib/python3.8/site-packages (from modelscope) (11.0.0)
      Requirement already satisfied: setuptools in /opt/*/lib/python3.8/site-packages (from modelscope) (65.5.0)
      Requirement already satisfied: requests>=2.25 in /opt/*/lib/python3.8/site-packages (from modelscope) (2.28.1)
      Requirement already satisfied: einops in /opt/*/lib/python3.8/site-packages (from modelscope) (0.6.0)
      Requirement already satisfied: python-dateutil>=2.1 in /opt/*/lib/python3.8/site-packages (from modelscope) (2.8.2)
      Collecting sortedcontainers>=1.5.9
        Downloading https://mirrors.cloud.aliyuncs.com/pypi/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl (29 kB)
      Requirement already satisfied: tqdm>=4.64.0 in /opt/*/lib/python3.8/site-packages (from modelscope) (4.65.0)
      Requirement already satisfied: dill<0.3.7,>=0.3.0 in /opt/*/lib/python3.8/site-packages (from datasets<=2.13.0,>=2.8.0->modelscope) (0.3.6)
      Requirement already satisfied: multiprocess in /opt/*/lib/python3.8/site-packages (from datasets<=2.13.0,>=2.8.0->modelscope) (0.70.14)
      Requirement already satisfied: aiohttp in /opt/*/lib/python3.8/site-packages (from datasets<=2.13.0,>=2.8.0->modelscope) (3.8.4)
      Requirement already satisfied: responses<0.19 in /opt/*/lib/python3.8/site-packages (from datasets<=2.13.0,>=2.8.0->modelscope) (0.18.0)
      Requirement already satisfied: huggingface-hub<1.0.0,>=0.11.0 in /opt/*/lib/python3.8/site-packages (from datasets<=2.13.0,>=2.8.0->modelscope) (0.16.4)
      Requirement already satisfied: fsspec[http]>=2021.11.1 in /opt/*/lib/python3.8/site-packages (from datasets<=2.13.0,>=2.8.0->modelscope) (2023.4.0)
      Requirement already satisfied: packaging in /opt/*/lib/python3.8/site-packages (from datasets<=2.13.0,>=2.8.0->modelscope) (21.3)
      Requirement already satisfied: xxhash in /opt/*/lib/python3.8/site-packages (from datasets<=2.13.0,>=2.8.0->modelscope) (3.2.0)
      Requirement already satisfied: six>=1.5 in /opt/*/lib/python3.8/site-packages (from python-dateutil>=2.1->modelscope) (1.16.0)
      Requirement already satisfied: certifi>=2017.4.17 in /opt/*/lib/python3.8/site-packages (from requests>=2.25->modelscope) (2022.9.24)
      Requirement already satisfied: charset-normalizer<3,>=2 in /opt/*/lib/python3.8/site-packages (from requests>=2.25->modelscope) (2.0.4)
      Requirement already satisfied: idna<4,>=2.5 in /opt/*/lib/python3.8/site-packages (from requests>=2.25->modelscope) (3.4)
      Requirement already satisfied: aliyun-python-sdk-kms>=2.4.1 in /opt/*/lib/python3.8/site-packages (from oss2->modelscope) (2.16.0)
      Requirement already satisfied: aliyun-python-sdk-core>=2.13.12 in /opt/*/lib/python3.8/site-packages (from oss2->modelscope) (2.13.36)
      Requirement already satisfied: crcmod>=1.7 in /opt/*/lib/python3.8/site-packages (from oss2->modelscope) (1.7)
      Requirement already satisfied: pycryptodome>=3.4.7 in /opt/*/lib/python3.8/site-packages (from oss2->modelscope) (3.15.0)
      Requirement already satisfied: pytz>=2020.1 in /opt/*/lib/python3.8/site-packages (from pandas->modelscope) (2022.7.1)
      Requirement already satisfied: cryptography>=2.6.0 in /opt/*/lib/python3.8/site-packages (from aliyun-python-sdk-core>=2.13.12->oss2->modelscope) (38.0.3)
      Requirement already satisfied: jmespath<1.0.0,>=0.9.3 in /opt/*/lib/python3.8/site-packages (from aliyun-python-sdk-core>=2.13.12->oss2->modelscope) (0.10.0)
      Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in /opt/*/lib/python3.8/site-packages (from aiohttp->datasets<=2.13.0,>=2.8.0->modelscope) (4.0.2)
      Requirement already satisfied: yarl<2.0,>=1.0 in /opt/*/lib/python3.8/site-packages (from aiohttp->datasets<=2.13.0,>=2.8.0->modelscope) (1.8.2)
      Requirement already satisfied: frozenlist>=1.1.1 in /opt/*/lib/python3.8/site-packages (from aiohttp->datasets<=2.13.0,>=2.8.0->modelscope) (1.3.3)
      Requirement already satisfied: multidict<7.0,>=4.5 in /opt/*/lib/python3.8/site-packages (from aiohttp->datasets<=2.13.0,>=2.8.0->modelscope) (6.0.4)
      Requirement already satisfied: aiosignal>=1.1.2 in /opt/*/lib/python3.8/site-packages (from aiohttp->datasets<=2.13.0,>=2.8.0->modelscope) (1.3.1)
      Requirement already satisfied: typing-extensions>=3.7.*.* in /opt/*/lib/python3.8/site-packages (from huggingface-hub<1.0.0,>=0.11.0->datasets<=2.13.0,>=2.8.0->modelscope) (4.4.0)
      Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/*/lib/python3.8/site-packages (from packaging->datasets<=2.13.0,>=2.8.0->modelscope) (3.0.9)
      Requirement already satisfied: cffi>=1.12 in /opt/*/lib/python3.8/site-packages (from cryptography>=2.6.0->aliyun-python-sdk-core>=2.13.12->oss2->modelscope) (1.15.1)
      Requirement already satisfied: pycparser in /opt/*/lib/python3.8/site-packages (from cffi>=1.12->cryptography>=2.6.0->aliyun-python-sdk-core>=2.13.12->oss2->modelscope) (2.21)
      Installing collected packages: sortedcontainers, simplejson, gast, modelscope
      Successfully installed gast-0.5.4 modelscope-1.9.5 simplejson-3.19.2 sortedcontainers-2.4.0
      WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
    3. 執行以下命令進入Python環境。

    4. python
    5. 以Qwen-7B模型為例,下載模型文件的代碼示例如下。如果您需要下載Qwen-14B或Qwen-72B模型文件,請單擊下述表格中相應的模型鏈接,并查看相應的代碼。

    6. # ### Loading Model and Tokenizer
      from modelscope.hub.snapshot_download import snapshot_download
      model_dir = snapshot_download('qwen/Qwen-7B', 'v1.1.4')
      # model_dir = snapshot_download('qwen/Qwen-14B', 'v1.0.4')
      # model_dir = snapshot_download('qwen/Qwen-72B')
      # 獲取下載路徑
      print(model_dir)
      # /root/.cache/modelscope/hub/qwen/Qwen-7B

      模型類型

      模型鏈接

      模型名稱

      版本

      Qwen-7B

      ModelScope魔搭社區

      qwen/Qwen-7B

      v1.1.4

      Qwen-7B-chat

      ModelScope魔搭社區

      qwen/Qwen-7B-Chat

      Qwen-14B

      ModelScope魔搭社區

      qwen/Qwen-14B

      v1.0.4

      Qwen-14B-chat

      ModelScope魔搭社區

      qwen/Qwen-14B-Chat

      Qwen-72B

      ModelScope魔搭社區

      qwen/Qwen-72B

      master

      Qwen-72B-chat

      ModelScope魔搭社區

      qwen/Qwen-72B-Chat

    7. Ctrl+D,退出Python環境。

    8. 執行以下命令將已下載的通義千問模型移動到對應文件夾中。

    9. # mkdir -p /mnt/workspace/qwen-ckpts/${后綴為hf的ckpt文件夾}
      mkdir -p /mnt/workspace/qwen-ckpts/qwen-7b-hf
      # cp -r ${在此處填寫已下載的模型路徑}/* /mnt/workspace/qwen-ckpts/${后綴為hf的ckpt文件夾}
      cp -r /root/.cache/modelscope/hub/qwen/Qwen-7B/* /mnt/workspace/qwen-ckpts/qwen-7b-hf

    從HuggingFace社區下載模型

    在DSW的Terminal中執行以下命令下載模型文件。本方案以下載Qwen-7B模型為例,如果您需要下載Qwen-14B或Qwen-72B的模型文件,請參照下方代碼進行修改。

    mkdir /mnt/workspace/qwen-ckpts
    cd /mnt/workspace/qwen-ckpts
    git clone https://huggingface.co/Qwen/Qwen-7B
    # git clone https://huggingface.co/Qwen/Qwen-7B-Chat
    # git clone https://huggingface.co/Qwen/Qwen-14B
    # git clone https://huggingface.co/Qwen/Qwen-14B-Chat
    # git clone https://huggingface.co/Qwen/Qwen-72B
    # git clone https://huggingface.co/Qwen/Qwen-72B-Chat

步驟二:準備預訓練數據

建議您在DSW實例中準備預訓練數據。本案例以WuDaoCorpora2.0數據集(該數據集僅供研究使用)為例,介紹Megatron訓練數據的預處理流程。您可以直接下載PAI已準備好的小規模樣本數據,也可以按照以下操作步驟自行準備預訓練數據。

使用PAI處理好的小規模樣本數據

為了方便您試用該案例,PAI也提供了已經處理好的小規模樣本數據,您可以在DSW的Terminal中執行以下命令下載樣本數據。

mkdir /mnt/workspace/qwen-datasets/
cd /mnt/workspace/qwen-datasets
wget https://atp-modelzoo-wlcb-pai.oss-cn-wulanchabu.aliyuncs.com/release/models/pai-megatron-patch/qwen-datasets/alpaca_zh-qwen-train.json
wget https://atp-modelzoo-wlcb-pai.oss-cn-wulanchabu.aliyuncs.com/release/models/pai-megatron-patch/qwen-datasets/alpaca_zh-qwen-valid.json
mkdir -p /mnt/workspace/qwen-datasets/wudao
cd /mnt/workspace/qwen-datasets/wudao
wget https://atp-modelzoo-wlcb-pai.oss-cn-wulanchabu.aliyuncs.com/release/models/pai-megatron-patch/qwen-datasets/wudao_qwenbpe_content_document.bin
wget https://atp-modelzoo-wlcb-pai.oss-cn-wulanchabu.aliyuncs.com/release/models/pai-megatron-patch/qwen-datasets/wudao_qwenbpe_content_document.idx

自行處理數據

  1. 下載WuDaoCorpora2.0開源數據集到/mnt/workspace/qwen-datasets工作目錄下。本案例將解壓后的文件夾命名為wudao_200g。

    PAI提供了部分樣例數據作為示例,您可以在DSW的Terminal中執行以下命令下載并解壓數據集。

    mkdir /mnt/workspace/qwen-datasets
    cd /mnt/workspace/qwen-datasets
    wget https://atp-modelzoo.oss-cn-hangzhou.aliyuncs.com/release/datasets/WuDaoCorpus2.0_base_sample.tgz
    tar zxvf WuDaoCorpus2.0_base_sample.tgz 
    mv WuDaoCorpus2.0_base_sample wudao_200g
  2. 在Terminal中執行以下命令,對Wudao數據執行數據集清洗并進行文件格式轉換,最終生成匯總的merged_wudao_cleaned.json文件。

    #! /bin/bash
    set -ex
    # 請在此處設置原始數據所在路徑。
    data_dir=/mnt/workspace/qwen-datasets/wudao_200g
    
    # 開始數據清洗流程。
    dataset_dir=$(dirname $data_dir)
    mkdir -p ${dataset_dir}/cleaned_wudao_dataset
    cd ${dataset_dir}/cleaned_wudao_dataset
    wget https://atp-modelzoo-wlcb-pai.oss-cn-wulanchabu.aliyuncs.com/release/models/pai-megatron-patch/llama2-codes/preprocess_wudao2.py
    # 此處與上一節不同,增加了key參數設為text。
    python preprocess_wudao2.py -i ${data_dir} -o ${dataset_dir}/cleaned_wudao_dataset -k text -p 32
    
    # 合并清洗后的數據。
    mkdir ${dataset_dir}/wudao
    cd ${dataset_dir}/wudao
    find ${dataset_dir}/cleaned_wudao_dataset -name "*.json" -exec cat {} + > ${dataset_dir}/wudao/merged_wudao_cleaned.json
    rm -rf ${dataset_dir}/cleaned_wudao_dataset
    

    命令執行完成后,qwen-datasets目錄的文件結構如下,新增了一個wudao文件夾。

    qwen-datasets
    ├── wudao_200g 
    └── wudao
        └── merged_wudao_cleaned.json
  3. 在Terminal中執行以下命令,利用生成的merged_wudao_cleaned.json文件將數據拆分成若干組并進行壓縮,以便于后續實現多線程處理。

    apt-get update
    apt-get install zstd
    
    # 此處設置分塊數為10,如數據處理慢可設置稍大。
    NUM_PIECE=10
    
    # 對merged_wudao_cleaned.json文件進行處理。
    mkdir -p ${dataset_dir}/cleaned_zst/
    # 查詢數據總長度,對數據進行拆分。
    NUM=$(sed -n '$=' ${dataset_dir}/wudao/merged_wudao_cleaned.json)
    echo "total line of dataset is $NUM, data will be split into $NUM_PIECE pieces for processing"
    NUM=`expr $NUM / $NUM_PIECE`
    echo "each group is processing $NUM sample"
    split_dir=${dataset_dir}/split
    mkdir $split_dir
    split -l $NUM --numeric-suffixes --additional-suffix=.jsonl ${dataset_dir}/wudao/merged_wudao_cleaned.json $split_dir/
    
    # 數據壓縮。
    o_path=${dataset_dir}/cleaned_zst/
    mkdir -p $o_path
    files=$(ls $split_dir/*.jsonl)
    for filename in $files
    do
       f=$(basename $filename)
       zstd -z $filename -o $o_path/$f.zst &
    done
    rm -rf $split_dir
    rm ${dataset_dir}/wudao/merged_wudao_cleaned.json
    

    命令執行完成后,qwen-datasets目錄的文件結構如下。新增了一個cleaned_zst文件夾,該文件夾中有10個壓縮文件。

    qwen-datasets
    ├── wudao_200g
    ├── wudao
    └── cleaned_zst
        ├── 00.jsonl.zst
    		│   ...
        └── 09.jsonl.zst
  4. 制作MMAP格式的預訓練數據集。

    MMAP數據是一種預先執行tokenize的數據格式,可以減少訓練微調過程中等待數據讀入的時間,尤其在處理大規模數據時優勢更為突出。具體操作步驟如下:

    1. 在DSW的Terminal中執行以下命令,將Megatron格式的模型訓練工具源代碼PAI-Megatron-Patch拷貝至DSW的工作目錄/mnt/workspace/下。

      cd /mnt/workspace/
      # 方式一:通過開源網站獲取訓練代碼。
      git clone --recurse-submodules https://github.com/alibaba/Pai-Megatron-Patch.git
      # 方式二:通過wget方式獲取訓練代碼,需要執行tar zxvf Pai-Megatron-Patch.tgz進行解壓。
      wget https://atp-modelzoo.oss-cn-hangzhou.aliyuncs.com/release/models/Pai-Megatron-Patch.tgz
    2. 在Terminal中執行以下命令將數據轉換成MMAP格式。

      命令執行成功后,在/mnt/workspace/qwen-datasets/wudao目錄下生成.bin.idx文件。

      # 安裝Qwen依賴的tokenizer庫包。
      pip install tiktoken
      # 請在此處設置數據集路徑和工作路徑。
      export dataset_dir=/mnt/workspace/qwen-datasets
      export WORK_DIR=/mnt/workspace
      
      # 分別為訓練集、驗證集生成mmap格式預訓練數據集。
      cd ${WORK_DIR}/Pai-Megatron-Patch/toolkits/pretrain_data_preprocessing
      bash run_make_pretraining_dataset.sh \
      ../../Megatron-LM-23.04 \
      ${WORK_DIR}/Pai-Megatron-Patch/ \
      ${dataset_dir}/cleaned_zst/ \
      qwenbpe \
      ${dataset_dir}/wudao/ \
      ${WORK_DIR}/qwen-ckpts/qwen-7b-hf
      rm -rf ${dataset_dir}/cleaned_zst

      其中運行run_make_pretraining_dataset.sh輸入的六個啟動參數說明如下:

      參數

      描述

      MEGATRON_PATH=$1

      設置開源Megatron的代碼路徑。

      MEGATRON_PATCH_PATH=$2

      設置Megatron Patch的代碼路徑。

      input_data_dir=$3

      打包后的Wudao數據集的文件夾路徑。

      tokenizer=$4

      指定分詞器的類型為qwenbpe

      output_data_dir=$5

      指定輸出的.bin.idx文件的保存路徑。

      load_dir=$6

      生成的tokenizer_config.json文件的路徑。

      腳本執行完成后,qwen-datasets目錄的文件結構如下。

      qwen-datasets
      ├── wudao_200g
      └── wudao
         ├── wudao_qwenbpe_content_document.bin
         └── wudao_qwenbpe_content_document.idx

步驟三:Megatron訓練

您可以按照以下流程進行Megatron訓練。

模型格式轉換

將HuggingFace格式的模型文件轉換為Megatron格式。

下載轉換好的Megatron模型

為方便您試用該案例,PAI提供了已經轉換好格式的模型。您可以在Terminal中執行以下命令下載模型。

cd /mnt/workspace/
mkdir qwen-ckpts
cd qwen-ckpts
wget https://atp-modelzoo-wlcb-pai.oss-cn-wulanchabu.aliyuncs.com/release/models/pai-megatron-patch/qwen-ckpts/qwen-7b-hf-to-mg-tp1-pp1.tgz
tar -zxf qwen-7b-hf-to-mg-tp1-pp1.tgz
mv qwen-7b-hf-to-mg-tp1-pp1 qwen-7b-hf-to-megatron-tp1-pp1

自行將HuggingFace格式的模型轉換成Megatron格式

在Terminal中執行以下命令,使用PAI提供的模型轉換工具,將HuggingFace格式的模型文件轉換為Megatron格式:

# 轉換模型。
cd /mnt/workspace/Pai-Megatron-Patch/toolkits/model_checkpoints_convertor/qwen
sh model_convertor.sh \
../../../Megatron-LM-main        \
/mnt/workspace/qwen-ckpts/qwen-7b-hf         \
/mnt/workspace/qwen-ckpts/qwen-7b-hf-to-megatron-tp1-pp1  \
1  \
1  \
qwen-7b \
0 \
false

其中運行model_convertor.sh需要傳入的參數說明如下:

參數

描述

MEGATRON_PATH=$1

設置開源Megatron的代碼路徑。

SOURCE_CKPT_PATH=$2

HuggingFace格式的模型文件路徑。

TARGET_CKPT_PATH=$3

轉換為Megatron格式模型后保存的路徑。

TP=$4

張量切片數量,與訓練保持一致。不同參數量下的切片數量不同,在轉換模型時需進行針對性修改:

  • Qwen-7B:1。

  • Qwen-14B:2。

  • Qwen-72B:8。

PP=$5

流水切片數量,與訓練保持一致。不同參數量下的切片數量不同,在轉換模型時需進行針對性修改:

  • Qwen-7B:1。

  • Qwen-14B:1。

  • Qwen-72B:2。

MN=$6

模型名稱:qwen-7b、qwen-14b或qwen-72b。

EXTRA_VOCAB_SIZE=$7

額外詞表大小。

mg2hf=$8

是否為Megatron格式轉HuggingFace格式。

預訓練模型

您可以在DSW單機環境中訓練模型,也可以在DLC環境中提交多機多卡分布式訓練任務,訓練過程大約持續2個小時。任務執行成功后,模型文件將輸出到/mnt/workspace/output_megatron_qwen/目錄下。

DSW單機預訓練模型

以Qwen-7B模型為例,在Terminal中運行的代碼示例如下:

export WORK_DIR=/mnt/workspace
cd ${WORK_DIR}/Pai-Megatron-Patch/examples/qwen
sh run_pretrain_megatron_qwen.sh  \
dsw  \
${WORK_DIR}/Pai-Megatron-Patch  \
7B   \
1    \
8 \
1e-5   \
1e-6   \
2048  \
2048  \
85   \
fp16  \
1   \
1  \
sel  \
true   \
false  \
false   \
false  \
100000  \
${WORK_DIR}/qwen-datasets/wudao/wudao_qwenbpe_content_document   \
${WORK_DIR}/qwen-ckpts/qwen-7b-hf-to-megatron-tp1-pp1   \
100000000   \
10000   \
${WORK_DIR}/output_megatron_qwen/   

其中運行run_pretrain_megatron_qwen.sh需要傳入的參數說明如下:

參數

描述

ENV=$1

配置運行環境:

  • dsw

  • dlc

MEGATRON_PATH=$2

設置開源Megatron的代碼路徑。

MODEL_SIZE=$3

模型結構參數量級:7B、14B或72B。

BATCH_SIZE=$4

每卡訓練一次迭代樣本數:4或8。

GLOBAL_BATCH_SIZE=$5

訓練總迭代樣本數。

LR=$6

學習率:1e-5或5e-5。

MIN_LR=$7

最小學習率:1e-6或5e-6。

SEQ_LEN=$8

序列長度。

PAD_LEN=${9}

Padding長度。

EXTRA_VOCAB_SIZE=${10}

詞表擴充大小:

  • Qwen-7B:85。

  • Qwen-14B:213。

  • Qwen-72B:213。

PR=${11}

訓練精度:fp16或bf16。

TP=${12}

模型并行度。

PP=${13}

流水并行度。

AC=${14}

激活檢查點模式:

  • full

  • sel

DO=${15}

是否使用Megatron版Zero-1降顯存優化器:

  • true

  • false

FL=${16}

是否打開Flash Attention:

  • true

  • false

SP=${17}

是否使用序列并行:

  • true

  • false

TE=${18}

是否開啟Transformer-engine加速技術,需gu8xf顯卡。

SAVE_INTERVAL=${19}

保存CheckPoint文件的間隔。

DATASET_PATH=${20}

訓練數據集路徑。

PRETRAIN_CHECKPOINT_PATH=${21}

預訓練模型路徑。

TRAIN_TOKENS=${22}

訓練Tokens。

WARMUP_TOKENS=${23}

預熱Token數。

OUTPUT_BASEPATH=${24}

訓練輸出模型文件的路徑。

DLC分布式預訓練模型

在單機開發調試完成后,您可以在DLC環境中配置多機多卡的分布式任務。具體操作步驟如下:

  1. 進入新建任務頁面。

    1. 登錄PAI控制臺

    2. 在左側導航欄單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進入對應工作空間內。

    3. 在工作空間頁面的左側導航欄選擇模型開發與訓練 > 分布式訓練(DLC),在分布式訓練(DLC)頁面中單擊新建任務,進入新建任務頁面。

  2. 新建任務頁面,配置以下關鍵參數,其他參數取默認配置即可。更多詳細內容,請參見創建訓練任務

    參數

    描述

    基本信息

    任務名稱

    自定義任務名稱。本方案配置為:test_qwen_dlc。

    環境信息

    節點鏡像

    選中鏡像地址并在文本框中輸入pai-image-manage-registry.cn-wulanchabu.cr.aliyuncs.com/pai/pytorch-training:1.12-ubuntu20.04-py3.10-cuda11.3-megatron-patch-llm

    掛載配置

    單擊添加按鈕,掛載類型選擇自定義數據集

    • 數據集:選擇已創建的NAS類型的數據集。

    • 掛載路徑:配置為/mnt/workspace/

    啟動命令

    配置以下命令,其中run_pretrain_megatron_qwen.sh腳本輸入的啟動參數與DSW單機預訓練模型一致。

    export WORK_DIR=/mnt/workspace
    cd ${WORK_DIR}/Pai-Megatron-Patch/examples/qwen
    sh run_pretrain_megatron_qwen.sh  \
    dlc  \
    ${WORK_DIR}/PAI-Megatron-Patch  \
    7B   \
    1    \
    8 \
    1e-5   \
    1e-6   \
    2048  \
    2048  \
    85   \
    fp16  \
    1   \
    1  \
    sel  \
    true   \
    false  \
    false   \
    false \
    100000  \
    ${WORK_DIR}/qwen-datasets/wudao/wudao_qwenbpe_content_document   \
    ${WORK_DIR}/qwen-ckpts/qwen-7b-hf-to-megatron-tp1-pp1   \
    100000000   \
    10000   \
    ${WORK_DIR}/output_megatron_qwen/    

    資源信息

    資源類型

    選擇靈駿智算

    資源來源

    選擇資源配額

    資源配額

    本方案選擇已創建的靈駿智算資源的資源配額。

    框架

    選擇PyTorch

    任務資源

    在Worker節點配置以下參數:

    • 節點數量:2,如果需要多機訓練,配置節點數量為需要的機器數即可。

    • GPU(卡數):8

    • CPU(核數):90

      說明

      CPU核數不能大于96。

    • 內存(GiB):1024

    • 共享內存(GiB):1024

  3. 單擊確定,頁面自動跳轉到分布式訓練(DLC)頁面。當狀態變為已成功時,表明訓練任務執行成功。

有監督微調模型

您可以在DSW單機環境中微調模型,也可以在DLC環境中提交多機多卡分布式任務,訓練過程大約持續2個小時。任務執行成功后,模型文件將輸出到/mnt/workspace/output_megatron_qwen/目錄下。

  1. 在微調模型前,請前往步驟二:準備預訓練數據章節,在使用PAI處理好的小規模樣本數據頁簽中,按照代碼下載JSON文件。

  2. 微調模型。

    DSW單機微調模型

    以Qwen-7B模型為例,在Terminal中運行的代碼示例如下:

    export WORK_DIR=/mnt/workspace
    cd ${WORK_DIR}/Pai-Megatron-Patch/examples/qwen
    sh run_finetune_megatron_qwen_withGA.sh  \
    dsw  \
    ${WORK_DIR}/Pai-Megatron-Patch  \
    7B     \
    1      \
    96 \
    1e-5   \
    1e-6   \
    2048   \
    2048     \
    85      \
    bf16   \
    1      \
    1      \
    sel    \
    true   \
    false  \
    false  \
    false \
    1000 \
    ${WORK_DIR}/qwen-datasets/alpaca_zh-qwen-train.json   \
    ${WORK_DIR}/qwen-datasets/alpaca_zh-qwen-valid.json   \
    ${WORK_DIR}/qwen-ckpts/qwen-7b-hf-to-megatron-tp1-pp1   \
    2000   \
    10 \
    ${WORK_DIR}/output_megatron_qwen/

    其中運行run_finetune_megatron_qwen_withGA.sh需要傳入的參數說明如下:

    參數

    描述

    ENV=$1

    運行環境:

    • dlc

    • dsw

    MEGATRON_PATH=$2

    設置開源Megatron的代碼路徑。

    MODEL_SIZE=$3

    模型結構參數量級:7B、14B或72B。

    BATCH_SIZE=$4

    每卡訓練一次迭代樣本數:1、2、4、8。

    GLOBAL_BATCH_SIZE=$5

    微調總迭代樣本數:64、96、128。

    LR=$6

    學習率:1e-5、5e-5。

    MIN_LR=$7

    最小學習率:1e-6、5e-6。

    SEQ_LEN=$8

    序列長度。

    PAD_LEN=$9

    Padding序列長度。

    EXTRA_VOCAB_SIZE=${10}

    詞表擴充大小:

    • Qwen-7B:85。

    • Qwen-14B:213。

    • Qwen-72B:213。

    PR=${11}

    訓練精度:fp16、bf16。

    TP=${12}

    模型并行度。

    PP=${13}

    流水并行度。

    AC=${14}

    激活檢查點模式:full或sel。

    DO=${15}

    是否使用Megatron版Zero-1降顯存優化器:

    • true

    • false

    FL=${16}

    是否打開Flash Attention:

    • true

    • false

    SP=${17}

    是否使用序列并行:

    • true

    • false

    TE=${18}

    是否開啟Transformer-engine加速技術,需gu8xf顯卡。

    SAVE_INTERVAL=${19}

    保存模型的步數。

    DATASET_PATH=${20}

    訓練數據集路徑。

    VALID_DATASET_PATH=${21}

    驗證數據集路徑。

    PRETRAIN_CHECKPOINT_PATH=${22}

    預訓練模型路徑。

    TRAIN_ITERS=${23}

    訓練迭代輪次。

    LR_WARMUP_ITERS=${24}

    學習率增加值最大的步數。

    OUTPUT_BASEPATH=${25}

    訓練輸出模型文件的路徑。

    DLC分布式微調模型

    在DSW單機環境調試完成后,您可以在DLC環境中配置多機多卡分布式任務。提交DLC訓練任務時,啟動命令配置如下,其他參數配置詳情,請參見步驟2:預訓練模型

    export WORK_DIR=/mnt/workspace
    cd ${WORK_DIR}/Pai-Megatron-Patch/examples/qwen
    sh run_finetune_megatron_qwen_withGA.sh  \
    dlc  \
    ${WORK_DIR}/Pai-Megatron-Patch  \
    7B     \
    1      \
    96 \
    1e-5   \
    1e-6   \
    2048   \
    2048     \
    85      \
    bf16   \
    1      \
    1      \
    sel    \
    true   \
    false  \
    false  \
    false \
    1000 \
    ${WORK_DIR}/qwen-datasets/alpaca_zh-qwen-train.json   \
    ${WORK_DIR}/qwen-datasets/alpaca_zh-qwen-valid.json   \
    ${WORK_DIR}/qwen-ckpts/qwen-7b-hf-to-megatron-tp1-pp1   \
    2000   \
    10 \
    ${WORK_DIR}/output_megatron_qwen/

    其中運行run_finetune_megatron_qwen_withGA.sh需要傳入的參數與DSW單機微調模型相同。

步驟四:離線推理模型

在模型訓練完成后,您可以使用Megatron推理鏈路進行離線推理,以評估模型效果。具體操作步驟如下:

  1. 下載測試樣本pred_input.jsonl,并上傳到DSW的/mnt/workspace目錄下。具體操作,請參見上傳與下載數據文件

    說明

    推理的數據組織形式需要與微調時保持一致。

  2. 將訓練前模型路徑下的所有JSON文件和tokenizer.model文件拷貝到訓練生成的模型路徑(位于{OUTPUT_BASEPATH }/checkpoint的下一級目錄下,與latest_checkpointed_iteration.txt同級)。

    說明

    命令中的路徑需替換為您的實際路徑。

    cd /mnt/workspace/qwen-ckpts/qwen-7b-hf-to-megatron-tp1-pp1
    cp *.json /mnt/workspace/output_megatron_qwen/checkpoint/dswXXX/
    cp tokenizer.model /mnt/workspace/output_megatron_qwen/checkpoint/dswXXX/
  3. 在Terminal中執行以下命令完成模型離線推理,推理結果輸出到/mnt/workspace/qwen_pred.txt文件,您可以根據推理結果來評估模型效果。

    說明

    執行命令前,您需要將run_text_generation_megatron_qwen.sh腳本中的參數CUDA_VISIBLE_DEVICES設置為0;參數GPUS_PER_NODE設置為1。

    export WORK_DIR=/mnt/workspace
    cd ${WORK_DIR}/Pai-Megatron-Patch/examples/qwen
    bash run_text_generation_megatron_qwen.sh \
    dsw \
    ${WORK_DIR}/PAI-Megatron-Patch \
    /mnt/workspace/output_megatron_qwen/checkpoint/dswXXX \
    7B \
    1 \
    1 \
    1024 \
    1024 \
    85 \
    fp16 \
    10 \
    512 \
    512 \
    ${WORK_DIR}/pred_input.jsonl \
    ${WORK_DIR}/qwen_pred.txt \
    0 \
    1.0 \
    1.2

    其中運行run_text_generation_megatron_qwen.sh腳本輸入的啟動參數說明如下:

    參數

    描述

    ENV=$1

    運行環境:

    • dlc

    • dsw

    MEGATRON_PATCH_PATH=$2

    設置Megatron Patch的代碼路徑。

    CHECKPOINT_PATH=$3

    模型訓練階段的模型保存路徑。

    重要

    該路徑需要替換為您自己的模型路徑。

    MODEL_SIZE=$4

    模型結構參數量級:7B、14B或72B。

    TP=$5

    模型并行度。

    重要
    • 該參數配置為1,可以使用單卡進行推理。

    • 該參數值大于1,則需要使用相應的卡數進行推理。

    BS=$6

    每卡推理一次迭代樣本數:1、4、8。

    SEQ_LEN=$7

    序列長度:256、512、1024。

    PAD_LEN=$8

    PAD長度:需要將文本拼接的長度。

    EXTRA_VOCAB_SIZE=${9}

    模型轉換時增加的token數量:

    • Qwen-7B:85。

    • Qwen-14B:213。

    • Qwen-72B:213。

    PR=${10}

    推理采用的精度:fp16、bf16。

    TOP_K=${11}

    采樣策略中選擇排在前面的候選詞數量(0-n): 0、5、10、20。

    INPUT_SEQ_LEN=${12}

    輸入序列長度:512。

    OUTPUT_SEQ_LEN=${13}

    輸出序列長度:256。

    INPUT_FILE=${14}

    需要推理的文本文件:pred_input.jsonl,每行為一個樣本。

    OUTPUT_FILE=${15}

    推理輸出的文件:qwen_pred.txt。

    TOP_P=${16}

    采樣策略中選擇排在前面的候選詞百分比(0,1):0、0.85、0.95。

    說明

    TOP_K和TOP_P必須有一個為0。

    TEMPERATURE=${17}

    采樣策略中溫度懲罰:1-n。

    REPETITION_PENALTY=${18}

    避免生成時產生大量重復,可以設置為(1-2)。默認為1.2。

步驟五:模型格式轉換

離線推理完成后,如果模型效果符合您的預期,您可以將訓練獲得的Megatron格式的模型轉換為HuggingFace格式,具體操作步驟如下。后續您可以使用轉換后的HuggingFace格式的模型進行服務在線部署。

  1. 在Terminal中執行以下命令,將訓練生成的Megatron格式的模型轉換為HuggingFace格式的模型。

    export WORK_DIR=/mnt/workspace
    cd /mnt/workspace/Pai-Megatron-Patch/toolkits/model_checkpoints_convertor/qwen
    sh model_convertor.sh \
    ../../../Megatron-LM-main        \
    ${WORK_DIR}/output_megatron_qwen/checkpoint/${路徑}/iter_*******         \
    /mnt/workspace/qwen-ckpts/qwen-7b-mg-to-hf-tp1-pp1/  \
    1  \
    1  \
    qwen-7b \
    0 \
    true

    其中運行model_convertor.sh腳本需要傳入的參數說明如下:

    參數

    描述

    MEGATRON_PATH=$1

    設置開源Megatron的代碼路徑。

    SOURCE_CKPT_PATH=$2

    配置為訓練獲得的Megatron格式的模型路徑,具體到iter_*。例如:${WORK_DIR}/output_megatron_qwen/checkpoint/dsw-pretrain-megatron-qwen-7B-lr-1e-5-bs-1-seqlen-2048-pr-bf16-tp-1-pp-1-ac-sel-do-true-sp-false-tt--wt-/iter_*******

    重要
    • 請替換為您自己的模型路徑。

    • 如果使用預訓練模型進行轉換,需要刪除模型路徑下所有的distrib_optim.pt文件。

    TARGET_CKPT_PATH=$3

    轉換為HuggingFace格式的模型后保存的路徑。

    TP=$4

    張量切片數量,與訓練保持一致。

    PP=$5

    流水切片數量,與訓練保持一致。

    MN=$6

    模型名稱:qwen-7b、qwen-14b或qwen-72b。

    EXTRA_VOCAB_SIZE=$7

    額外詞表大小。

    mg2hf=$8

    是否為Megatron格式轉HuggingFace格式。

  2. 將開源HuggingFace模型文件夾路徑/mnt/workspace/qwen-ckpts/qwen-7b-hf下的.json.py.tiktoken類型的文件,拷貝至/mnt/workspace/qwen-ckpts/qwen-7b-mg-to-hf-tp1-pp1目錄下,以保證模型可以正常使用。

    重要

    請注意,無需復制pytorch_model.bin.index.json文件。

離線推理HuggingFace格式的模型

您可以使用HuggingFace & DeepSpeed格式的推理鏈路,對轉換后的HuggingFace格式的模型文件進行離線推理。以Qwen-7B模型為例,在Terminal中的任意目錄下創建infer.py文件,文件內容如下。執行infer.py文件進行模型離線推理,根據推理結果來評估模型效果。

#!/usr/bin/env python
#encoding=utf-8
from transformers import AutoTokenizer, LlamaTokenizer
from transformers import LlamaForCausalLM
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
 
checkpoint = '/mnt/workspace/qwen-ckpts/qwen-7b-mg-to-hf-tp1-pp1'
print(checkpoint)
device = "cuda"
tokenizer = AutoTokenizer.from_pretrained(checkpoint, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(checkpoint,device_map="auto", trust_remote_code=True)
 
prompts= '寫一個快速排序算法'
p = f"Human:{prompts}"
print(p)
inputs = tokenizer.encode(p, return_tensors="pt").to(model.device)
outputs = model.generate(inputs,max_new_tokens=512)
print(tokenizer.decode(outputs[0]))

其中checkpoint替換為轉換成HuggingFace格式模型文件所在的路徑。本案例配置為/mnt/workspace/qwen-ckpts/qwen-7b-mg-to-hf-tp1-pp1

代碼執行成功后,返回如下結果。

Setting ds_accelerator to cuda (auto detect)
/mnt/workspace/latest/qianwen/qwen-7b-hf
The model is automatically converting to bf16 for faster inference. If you want to disable the automatic precision, please manually add bf16/fp16/fp32=True to "AutoModelForCausalLM.from_pretrained".
Try importing flash-attention for faster inference...
Warning: import flash_attn rotary fail, please install FlashAttention rotary to get higher efficiency https://github.com/Dao-AILab/flash-attention/tree/main/csrc/rotary
Warning: import flash_attn rms_norm fail, please install FlashAttention layer_norm to get higher efficiency https://github.com/Dao-AILab/flash-attention/tree/main/csrc/layer_norm
Loading checkpoint shards: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:07<00:00,  3.78s/it]
Human:寫一個快速排序算法
The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results.
Setting `pad_token_id` to `eos_token_id`:151643 for open-end generation.
Human:寫一個快速排序算法的偽代碼吧!
Assistant:
 
好的,以下是快速排序算法的偽代碼實現示例,供您參考:
1. 選擇一個基準元素 pivot,通常選擇第一個元素或者最后一個元素。將小于等于基準元素的元素放在其左邊,大于基準元素的元素放在其右邊。這個過程稱為分區 partition。 2. 對左右兩個分區遞歸地進行快速排序。 3. 當左右兩個分區的元素個數為0或1時,排序完成。<|endoftext|>

您可以參考以下鏈接了解更多關于推理的詳細內容:

步驟六:部署及調用模型服務

完成離線推理并評估完成模型效果后,您可以將轉換為HuggingFace格式的模型部署為在線服務,并在實際的生產環境中調用,從而進行推理實踐。具體操作步驟如下:

部署模型服務

  1. 進入模型在線服務頁面。

    1. 登錄PAI控制臺

    2. 在左側導航欄單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進入對應工作空間內。

    3. 在工作空間頁面的左側導航欄選擇模型部署>模型在線服務(EAS),進入模型在線服務(EAS)頁面。image

  2. 模型在線服務(EAS)頁面,單擊部署服務,在自定義模型部署區域,單擊自定義部署

  3. 部署服務頁面配置以下關鍵參數,其他參數取默認配置即可。

    參數

    描述

    模型服務信息

    服務名稱

    自定義模型服務名稱,同地域內唯一。本方案配置為:test_qwen。

    部署方式

    本方案選擇:鏡像部署AI-Web應用

    鏡像選擇

    選擇鏡像地址,在本文框中配置鏡像地址pai-image-manage-registry.cn-wulanchabu.cr.aliyuncs.com/pai/llm-inference:vllm-0.2.1-v4,并選中閱讀并同意PAI服務專用協議

    模型配置

    單擊填寫模型配置,配置模型地址。

    • 選擇NAS掛載,并配置以下參數:

      • NAS掛載點:選擇創建數據集使用的NAS文件系統和掛載點。

      • NAS源路徑:配置為存放在NAS中的轉換后的HuggingFace格式模型的路徑。本方案配置為/qwen-ckpts/qwen-7b-mg-to-hf-tp1-pp1

      • 掛載路徑:指定掛載后的路徑,本方案配置為:/qwen-7b

    運行命令

    • 運行命令配置為nohup python -m fastchat.serve.controller > tmp1.log 2>&1 & python -m fastchat.serve.gradio_web_server_pai --model-list-mode reload > tmp2.log 2>&1 & python -m fastchat.serve.vllm_worker --model-path /qwen-7b --tensor-parallel-size 1 --trust-remote-code

      其中:

      • --model-path:需要與模型配置中的掛載路徑一致。

      • --tensor-parallel-size:模型張量切分的數量,需要根據GPU的卡數進行調整。7B模型配置為1;72B模型配置為2。

    • 端口號配置為:7860。

    資源部署信息

    資源組種類

    本方案選擇靈駿智算資源

    Quota選擇

    選擇已創建的靈駿智算資源的資源配額。

    實例數

    根據模型和選擇的資源情況進行配置。以7b模型為例,實例數配置為1,每個實例使用的資源配置為:

    • CPU:16。

    • 內存(MB):64000。

    • GPU:1。

    專有網絡配置

    VPC

    配置好NAS掛載點后,系統將自動匹配與預設的NAS文件系統一致的VPC、交換機和安全組。

    交換機

    安全組名稱

  4. 單擊部署

    服務狀態變為運行中時,表明服務部署成功。

調用服務

服務部署成功后,您可以調用服務進行推理實踐,具體操作步驟如下:

  1. 在服務列表中,單擊目標服務的服務方式列下的查看Web應用image.png

  2. 在WebUI頁面中,進行推理模型推理。image.png