流水并行 pipeline 推理

环境依赖

大模型推理流水并行运行需要的依赖环境有:

  • openmpi 4.0.5;

  • Enflame TopsRider;

  • python3.8;

  • 安装topsdistinfer_pipeline_infer_*.deb;

  • 安装python依赖包:

    python3.8 -m pip install -r /usr/local/gcu/TopsDistInfer/requirements.txt
    

执行模型推理

切换到安装目录/usr/local/gcu/TopsDistInfer/执行模型推理。

GPT2 xl

在1张gcu210上执行GPT2-xl模型推理:

  1. 将第五章方法生成的onnx和json文件放到gpt2-xl_split_2文件夹中

  2. 使用如下命令生成engine

python3 -m build_scripts.gpt-xl --model_path gpt2-xl_split_2/gpt-xl_1of2-op13-fp32-N.onnx --max_seq=1024 --batchsize 2 
python3 -m build_scripts.gpt-xl --model_path gpt2-xl_split_2/gpt-xl_2of2-op13-fp32-N.onnx --max_seq=1024 --batchsize 2 
  1. 下载GPT2-XL官方的tokenizer文件到/usr/local/gcu/TopsDistInfer/src/pre_process_python_GPT2/,包括:config.json, tokenizer.json, vocab.json, merges.txt

  2. 通过如下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 2 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_gpt2-xl_split_2_max_1024_bs2.json --model_path <path/to/gpt-xl_split_2>

ChatGLM 6b 手动切分版本

在两张gcu210上执行ChatGLM-6B模型推理:

  1. 将onnx模型放置在chatglm_models文件夹中,onnx文件可咨询燧原商务团队获取

  2. 使用如下命令生成engine,并把生成的bin文件放到文件夹chatglm_6b_manual中

  python3 -m build_scripts.chatglm_manual --stage=0 --max_seq=2048 --batch_size=2
  python3 -m build_scripts.chatglm_manual --stage=1 --max_seq=2048 --batch_size=2
  python3 -m build_scripts.chatglm_manual --stage=2 --max_seq=2048 --batch_size=2
  python3 -m build_scripts.chatglm_manual --stage=3 --max_seq=2048 --batch_size=2
  1. 下载ChatGLM-6B官方的config和tokenizer文件到./src/pre_process_chatglm/model/,包括:config.json, configuration_chatglm.py, ice_text.model, tokenization_chatglm.py, tokenizer_config.json

  2. 通过如下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 4 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_chatglm_split_4_bs2.json --model_path <path/to/chatglm_6b_manual>

在1张gcu210上执行ChatGLM-6B模型推理:

  1. 将onnx模型放置在chatglm_models文件夹中,onnx文件可咨询燧原商务团队获取

  2. 使用如下命令生成engine,并把生成的bin文件放到文件夹chatglm_6b_manual中

  python3 -m build_scripts.chatglm_manual --num_stages=2 --stage=0 --max_seq=2048 --batch_size=1
  python3 -m build_scripts.chatglm_manual --num_stages=2 --stage=1 --max_seq=2048 --batch_size=1
  1. 下载ChatGLM-6B官方的config和tokenizer文件到./src/pre_process_chatglm/model/,包括:config.json, configuration_chatglm.py, ice_text.model, tokenization_chatglm.py, tokenizer_config.json

  2. 执行以下命令

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 2 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_chatglm_split_2.json --model_path <path/to/chatglm_6b_manual>

LLAMA 7b

在两张gcu210上执行LLAMA-7B模型推理:

  1. 将第五章方法生成的onnx和weights文件放到将onnx模型放置在llama_7b_split_4文件夹中

  2. 使用如下命令生成engine,并把生成的bin文件放到文件夹llama_7b_split_4中

  python3 -m build_scripts.llama_7b --json_path /usr/local/gcu/TopsDistInfer/build_configs/llama_7b_split_4 --onnx_path ./llama_7b_split_4
  1. 下载llama-7b-hf官方的tokenizer文件到/usr/local/gcu/TopsDistInfer/src/pre_process_LLAMA/,包括:tokenizer.model

  2. 通过如下命令安装 requirements.txt

pip3 install -r /usr/local/gcu/TopsDistInfer/src/pre_process_LLAMA/requirements.txt
  1. 通过如下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 4 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_llama_7b_split_4.json --model_path <path/to/llama_7b_split_4>

ALPACA 7b

在两张gcu210上执行ALPACA-7B模型推理:

  1. 将第五章方法生成的onnx和weights放到alpaca_7b文件夹中

  2. 使用如下命令生成engine,并把生成的bin文件放到文件夹alpaca_7b中

python3 -m build_engine.gcu --json_path /usr/local/gcu/TopsDistInfer/build_configs/alpaca_7b_split_4_max_1024_miax16_3pg --onnx_path alpaca_7b/
  1. 下载ALPACA-7b官方的tokenizer文件到/usr/local/gcu/TopsDistInfer/src/pre_process_Alpaca_7B/,包括:added_tokens.json,special_tokens_map.json,tokenizer_config.json,tokenizer.model

  2. 通过如下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 4 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_alpaca_7b_split_4_max_1024_mix16_3pg.json --model_path <path/to/alpaca_7b>

VICUNA 13b

在四张gcu210上执行VICUNA-13B模型推理:

  1. 将第五章方法生成的onnx和weights放到vicuna_13b文件夹中

  2. 使用如下命令生成engine,并把生成的bin文件放到文件夹vicuna_13b中

python3 -m build_engine.gcu --json_path /usr/local/gcu/TopsDistInfer/build_configs/vicuna_13b_split_8_max_1024_mix16_3pg --onnx_path ./vicuna_13b/
  1. 下载VICUNA-13b官方的tokenizer文件到/usr/local/gcu/TopsDistInfer/src/pre_process_Vicuna_13B/,包括:special_tokens_map.json,tokenizer_config.json,tokenizer.model

  2. 通过如下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 8 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_vicuna_13b_split_8_max_1024_mix16_3pg.json --model_path <path/to/vicuna_13b>

ChatGLM 6b 自动切分版本

在两卡gcu210上执行CHATGLM_AUTO模型推理:

  1. 将第五章方法生成的onnx和weights放到chatglm_6b文件夹中

  2. 使用如下命令生成engine,并把生成的bin文件放到文件夹chatglm_6b中

python3 -m build_engine.gcu --json_path /usr/local/gcu/TopsDistInfer/build_configs/chatglm_auto_split_4_max_1024_mix16_3pg --onnx_path ./chatglm_6b/
  1. 下载ChatGLM-6b官方的tokenizer文件到/usr/local/gcu/TopsDistInfer/src/pre_process_ChatGLM_AUTO_6B/,包括:ice_text.model,tokenization_chatglm.py,tokenizer_config.json

  2. 通过如下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 4 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_chatglm_auto_split_4_max_1024_mix16_3pg.json --model_path <path/to/chatglm_6b>

LLAMA2 7b

在两张gcu210上执行LLAMA2-7B模型推理:

  1. 将第五章方法生成的onnx和weights文件放到llama2_7b_split_4文件夹中

  2. 使用如下命令生成engine,并把生成的bin放到llama2_7b_split_4中

python3 -m build_scripts.llama_7b --json_path /usr/local/gcu/TopsDistInfer/build_configs/llama2_7b_split_4 --onnx_path ./llama2_7b_split_4
  1. 下载Llama-2-7b-hf官方的tokenizer文件到/usr/local/gcu/TopsDistInfer/src/pre_process_LLAMA/,包括:tokenizer.json, tokenizer_config.json, special_tokens_map.json, tokenizer.model

  2. 通过如下命令安装 requirements.txt

pip3 install -r /usr/local/gcu/TopsDistInfer/src/pre_process_LLAMA/requirements.txt
  1. 通过如下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 4 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_llama2_7b_split_4.json --model_path <path/to/llama2_7b_split_4>

BLOOMZ 7b

在两张gcu210上执行BLOOMZ-7B1模型推理:

  1. 将第五章方法生成的onnx和weights文件放到bloomz-7b1文件夹中

  2. 使用如下命令生成engine,并把生成的bin放到bloomz-7b1文件夹中

python3 -m build_scripts.bloomz_7b1 --model_path ./bloomz-7b1/ --stage_id 0 --max_bs 1 --max_seq 2048 --kvcache_dtype fp16
python3 -m build_scripts.bloomz_7b1 --model_path ./bloomz-7b1/ --stage_id 1 --max_bs 1 --max_seq 2048 --kvcache_dtype fp16
python3 -m build_scripts.bloomz_7b1 --model_path ./bloomz-7b1/ --stage_id 2 --max_bs 1 --max_seq 2048 --kvcache_dtype fp16
python3 -m build_scripts.bloomz_7b1 --model_path ./bloomz-7b1/ --stage_id 3 --max_bs 1 --max_seq 2048 --kvcache_dtype fp16
  1. 下载BLOOMZ-7B1官方的tokenizer文件到/usr/local/gcu/TopsDistInfer/src/pre_process_bloomz_7b1/,包括:special_tokens_map.json , tokenizer.json,tokenizer_config.json

  2. 通过以下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 4 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_bloomz_7b1_split_4_max_2048_mix16_3pg.json --model_path <path/to/bloomz-7b1>

Baichuan 7b

在两张gcu210上执行BAICHUAN-7B模型推理:

  1. 将第五章方法生成的onnx和weights文件放到/usr/local/gcu/TopsDistInfer/baichuan_7b_models文件夹中

  2. 下载baichuan-7b官方的tokenizer相关文件到/usr/local/gcu/TopsDistInfer/src/pre_process_Baichuan_7B/,其中包括tokenizer.model, tokenizer_config.json, special_tokens_map.json

  3. 使用如下命令生成engine,并把生成的bin放到baichuan_7b_split_4_max_2048_mix16_3pg文件夹中

python3 -m  build_scripts.baichuan_7b --model_path=/usr/local/gcu/TopsDistInfer/baichuan_7b_models/ --json_path=/usr/local/gcu/TopsDistInfer/build_configs/baichuan_7b_split_4_max_2048_mix16_3pg --max_seq=2048 --batch_size=1
  1. 通过以下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 4 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_baichuan_7b_split_4_max_2048_mix16_3pg.json --model_path <path/to/baichuan_7b_models>

Chatglm2-6b

在两张gcu210上执行Chatglm2-6b模型推理:

  1. 将第五章方法生成的onnx和json文件放到chatglm2_models文件夹中

  2. 使用如下命令生成engine,并把生成的bin放到chatglm2_models文件夹中

python3.8 -m  build_engine.gcu --json_path /usr/local/gcu/TopsDistInfer/build_configs/chatglm2_6b_split_4/ --onnx_path ./chatglm2_models
  1. 下载ChatGLM2-6B官方的config和tokenizer文件到./src/pre_process_chatglm2/tokenizer/,包括:config.json, configuration_chatglm.py, tokenizer.model, tokenization_chatglm.py, tokenizer_config.json

  2. 通过以下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 4 Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_chatglm2_split_4.json --model_path <path/to/chatglm2_models>

OPT 13b

在四张gcu210上执行OPT-13B模型推理:

  1. 将第五章方法生成的onnx和weights文件放到opt_13b_models文件夹中

  2. 使用如下命令生成engine,并把生成的bin放到opt_13b_models文件夹中

python3 -m build_engine.gcu --json_path /usr/local/gcu/TopsDistInfer/build_configs/opt_13b_split_8_max_1024_mix16_3pg/ --onnx_path ./opt_13b_models
  1. 下载OPT-13b官方的tokenizer文件到/usr/local/gcu/TopsDistInfer/src/pre_process_OPT_13B/,包括:special_tokens_map.json,tokenizer_config.json,vocab.json,merges.txt

  2. 通过以下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 8 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_opt_13b_split_8_max_1024_mix16_3pg.json --model_path=opt_13b_models

STARCODERBASE 15B

在四张gcu210上执行STARCODERBASE-15B模型推理:

  1. 将第五章方法生成的onnx和weights文件放到starcoderbase_15b_split_8文件夹中

  2. 使用如下命令生成engine,并把生成的bin放到starcoderbase_15b_split_8文件夹中

python3 -m build_scripts.starcoderbase_15b --model_path ./starcoderbase_15b_split_8/ --stage_id 0 --max_bs 1 --max_seq 1024 --kvcache_dtype fp16
python3 -m build_scripts.starcoderbase_15b --model_path ./starcoderbase_15b_split_8/ --stage_id 1 --max_bs 1 --max_seq 1024 --kvcache_dtype fp16
python3 -m build_scripts.starcoderbase_15b --model_path ./starcoderbase_15b_split_8/ --stage_id 2 --max_bs 1 --max_seq 1024 --kvcache_dtype fp16
python3 -m build_scripts.starcoderbase_15b --model_path ./starcoderbase_15b_split_8/ --stage_id 3 --max_bs 1 --max_seq 1024 --kvcache_dtype fp16
python3 -m build_scripts.starcoderbase_15b --model_path ./starcoderbase_15b_split_8/ --stage_id 4 --max_bs 1 --max_seq 1024 --kvcache_dtype fp16
python3 -m build_scripts.starcoderbase_15b --model_path ./starcoderbase_15b_split_8/ --stage_id 5 --max_bs 1 --max_seq 1024 --kvcache_dtype fp16
python3 -m build_scripts.starcoderbase_15b --model_path ./starcoderbase_15b_split_8/ --stage_id 6 --max_bs 1 --max_seq 1024 --kvcache_dtype fp16
python3 -m build_scripts.starcoderbase_15b --model_path ./starcoderbase_15b_split_8/ --stage_id 7 --max_bs 1 --max_seq 1024 --kvcache_dtype fp16
  1. 下载STARCODERBASE-15B官方的tokenizer文件到/usr/local/gcu/TopsDistInfer/src/pre_process_starcoderbase_15b/,包括:tokenizer.json, tokenizer_config.json

  2. 通过以下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 8 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_starcoderbase_15b_split_8_max_1024_mix16_3pg.json --model_path=<path/to/starcoderbase_15b_split_8>

Aquila-7b

在2张gcu210上执行Aquila-7b模型推理:

  1. 将第五章方法生成的onnx和json文件放到aquila_7b_split_4文件夹中

  2. 使用如下命令生成engine

python3 -m build_scripts.aquila_7b --model_path /usr/local/gcu/TopsDistInfer/aquila_7b_split_4/aquila1of4-op13-fp32-N.onnx --max_seq=2048 --batchsize 1
python3 -m build_scripts.aquila_7b --model_path /usr/local/gcu/TopsDistInfer/aquila_7b_split_4/aquila2of4-op13-fp32-N.onnx --max_seq=2048 --batchsize 1
python3 -m build_scripts.aquila_7b --model_path /usr/local/gcu/TopsDistInfer/aquila_7b_split_4/aquila3of4-op13-fp32-N.onnx --max_seq=2048 --batchsize 1
python3 -m build_scripts.aquila_7b --model_path /usr/local/gcu/TopsDistInfer/aquila_7b_split_4/aquila4of4-op13-fp32-N.onnx --max_seq=2048 --batchsize 1
  1. 下载Aquila-7B官方的tokenizer文件到/usr/local/gcu/TopsDistInfer/src/pre_process_python_Aquila_7B/,包括:tokenizer.json, vocab.json, tokenizer_config.json

  2. 通过如下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 4 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_aquila_split_4_bs1.json

Internlm-7b

在2张gcu210上执行Internlm-7b模型推理:

  1. 将第五章方法生成的onnx和json文件放到internlm_7b_split_4文件夹中

  2. 使用如下命令生成engine

python3 -m build_scripts.internlm_7b --model_path /usr/local/gcu/TopsDistInfer/internlm_7b_split_4/internlm1of4-op13-fp32-N.onnx --max_seq=2048 --batchsize 1
python3 -m build_scripts.internlm_7b --model_path /usr/local/gcu/TopsDistInfer/internlm_7b_split_4/internlm2of4-op13-fp32-N.onnx --max_seq=2048 --batchsize 1
python3 -m build_scripts.internlm_7b --model_path /usr/local/gcu/TopsDistInfer/internlm_7b_split_4/internlm3of4-op13-fp32-N.onnx --max_seq=2048 --batchsize 1
python3 -m build_scripts.internlm_7b --model_path /usr/local/gcu/TopsDistInfer/internlm_7b_split_4/internlm4of4-op13-fp32-N.onnx --max_seq=2048 --batchsize 1
  1. 下载internlm-7B官方的tokenizer文件到/usr/local/gcu/TopsDistInfer/src/pre_process_python_InternLM_7B/,包括:special_tokens_map.json,tokenization_internlm.py,tokenizer_config.json,tokenizer.model

  2. 通过如下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 4 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_internlm_7b_split_4_bs1.json

LLAMA 13b

在四张gcu210上执行LLAMA-13B模型推理:

  1. 将第五章方法生成的onnx和weights文件放到llama_13b_split_8文件夹中

  2. 使用如下命令生成engine,并把生成的bin放到llama_13b_split_8中

python3 -m build_scripts.llama_13b --json_path /usr/local/gcu/TopsDistInfer/build_configs/llama_13b_split_8 --onnx_path ./llama_13b_split_8
  1. 下载Llama-13b-hf官方的tokenizer文件到/usr/local/gcu/TopsDistInfer/src/pre_process_LLAMA_13B/,包括:special_tokens_map.json, tokenizer.model

  2. 通过如下命令安装 requirements.txt

pip3 install -r /usr/local/gcu/TopsDistInfer/src/pre_process_LLAMA_13B/requirements.txt
  1. 通过如下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 8 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_llama_13b_split_8.json --model_path <path/to/llama_13b_split_8>

LLAMA2 13b

在四张gcu210上执行LLAMA2-13B模型推理:

  1. 将第五章方法生成的onnx和weights文件放到llama2_13b_split_8文件夹中

  2. 使用如下命令生成engine,并把生成的bin放到llama2_13b_split_8中

python3 -m build_scripts.llama_13b --json_path /usr/local/gcu/TopsDistInfer/build_configs/llama2_13b_split_8 --onnx_path ./llama2_13b_split_8
  1. 下载Llama-2-13b-hf官方的tokenizer文件到/usr/local/gcu/TopsDistInfer/src/pre_process_LLAMA_13B/,包括:tokenizer.json, tokenizer_config.json, special_tokens_map.json, tokenizer.model

  2. 通过如下命令安装 requirements.txt

pip3 install -r /usr/local/gcu/TopsDistInfer/src/pre_process_LLAMA_13B/requirements.txt
  1. 通过如下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 8 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_llama2_13b_split_8.json --model_path <path/to/llama2_13b_split_8>

LLAMA2 13b chat

在四张gcu210上执行LLAMA2-13B-Chat模型推理:

  1. 将第五章方法生成的onnx和weights文件放到llama2_13b_chat_split_8文件夹中

  2. 使用如下命令生成engine,并把生成的bin放到llama2_13b_chat_split_8中

python3 -m build_scripts.llama_13b --json_path /usr/local/gcu/TopsDistInfer/build_configs/llama2_13b_chat_split_8 --onnx_path ./llama2_13b_chat_split_8
  1. 下载Llama-2-13b-chat-hf官方的tokenizer文件到/usr/local/gcu/TopsDistInfer/src/pre_process_LLAMA_13B/,包括:tokenizer.json, tokenizer_config.json, special_tokens_map.json, tokenizer.model

  2. 通过如下命令安装 requirements.txt

pip3 install -r /usr/local/gcu/TopsDistInfer/src/pre_process_LLAMA_13B/requirements.txt
  1. 通过如下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 8 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_llama2_13b_chat_split_8.json --model_path <path/to/llama2_13b_chat_split_8>

BLOOM 7b1

在两张gcu210上执行BLOOM-7B1模型推理:

  1. 将第五章方法生成的onnx和weights文件放到bloom-7b1文件夹中

  2. 使用如下命令生成engine,并把生成的bin放到bloom-7b1文件夹中

python3 -m build_scripts.bloom_7b1 --model_path ./bloom-7b1/ --stage_id 0 --max_bs 1 --max_seq 2048 --kvcache_dtype fp16
python3 -m build_scripts.bloom_7b1 --model_path ./bloom-7b1/ --stage_id 1 --max_bs 1 --max_seq 2048 --kvcache_dtype fp16
python3 -m build_scripts.bloom_7b1 --model_path ./bloom-7b1/ --stage_id 2 --max_bs 1 --max_seq 2048 --kvcache_dtype fp16
python3 -m build_scripts.bloom_7b1 --model_path ./bloom-7b1/ --stage_id 3 --max_bs 1 --max_seq 2048 --kvcache_dtype fp16
  1. 下载BLOOM-7B1官方的tokenizer文件到/usr/local/gcu/TopsDistInfer/src/pre_process_bloom_7b1/,包括:special_tokens_map.json , tokenizer.json,tokenizer_config.json

  2. 通过以下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 4 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_bloom_7b1_split_4_max_2048_mix16_3pg.json --model_path <path/to/bloom-7b1>

Baichuan2 7b

在两张gcu210上执行BAICHUAN2-7B模型推理:

  1. 将第五章方法生成的onnx和weights文件放到/usr/local/gcu/TopsDistInfer/baichuan2_7b_models文件夹中

  2. 下载baichuan2-7b官方的tokenizer相关文件到/usr/local/gcu/TopsDistInfer/src/pre_process_Baichuan2_7B/,其中包括tokenizer.model, tokenizer_config.json, special_tokens_map.json, tokenization_baichuan.py

  3. 使用如下命令生成engine,并把生成的bin放到baichuan2_7b_split_4_max_2048_mix16_3pg文件夹中

python3 -m  build_scripts.baichuan_7b --model_path=/usr/local/gcu/TopsDistInfer/baichuan2_7b_models/ --json_path=/usr/local/gcu/TopsDistInfer/build_configs/baichuan2_7b_split_4_max_2048_mix16_3pg --max_seq=2048 --batch_size=1
  1. 通过以下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 4 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_baichuan2_7b_split_4_max_2048_mix16_3pg.json --model_path=<path/to/baichuan2_7b_models>

Baichuan2 13b base

在四张gcu210上执行BAICHUAN2-13B-Base模型推理:

  1. 将第五章方法生成的onnx和weights文件放到/usr/local/gcu/TopsDistInfer/baichuan2_13b_models文件夹中

  2. 下载baichuan2-13b官方的tokenizer相关文件到/usr/local/gcu/TopsDistInfer/src/pre_process_Baichuan2_13B/,其中包括tokenizer.model, tokenizer_config.json, special_tokens_map.json, tokenization_baichuan.py

  3. 使用如下命令生成engine,并把生成的bin放到baichuan2_13b_split_8_max_1024_mix16_3pg文件夹中

python3 -m  build_scripts.baichuan2_13b --model_path=/usr/local/gcu/TopsDistInfer/baichuan2_13b_models/ --json_path=/usr/local/gcu/TopsDistInfer/build_configs/baichuan2_13b_split_8_max_1024_mix16_3pg --max_seq=1024 --batch_size=1
  1. 通过以下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 8 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_baichuan2_13b_split_8_max_1024_mix16_3pg.json --model_path=<path/to/baichuan2_13b_models>

WIZARDCODER 15B

在四张gcu210上执行WIZARDCODER-15B模型推理:

  1. 将第五章方法生成的onnx和weights文件放到wizardcoder_15b_split_8文件夹中

  2. 使用如下命令生成engine,并把生成的bin放到wizardcoder_15b_split_8文件夹中

python3 -m build_scripts.wizardcoder_15b --model_path ./wizardcoder_15b_split_8/ --stage_id 0 --max_bs 1 --max_seq 1024 --kvcache_dtype fp16
python3 -m build_scripts.wizardcoder_15b --model_path ./wizardcoder_15b_split_8/ --stage_id 1 --max_bs 1 --max_seq 1024 --kvcache_dtype fp16
python3 -m build_scripts.wizardcoder_15b --model_path ./wizardcoder_15b_split_8/ --stage_id 2 --max_bs 1 --max_seq 1024 --kvcache_dtype fp16
python3 -m build_scripts.wizardcoder_15b --model_path ./wizardcoder_15b_split_8/ --stage_id 3 --max_bs 1 --max_seq 1024 --kvcache_dtype fp16
python3 -m build_scripts.wizardcoder_15b --model_path ./wizardcoder_15b_split_8/ --stage_id 4 --max_bs 1 --max_seq 1024 --kvcache_dtype fp16
python3 -m build_scripts.wizardcoder_15b --model_path ./wizardcoder_15b_split_8/ --stage_id 5 --max_bs 1 --max_seq 1024 --kvcache_dtype fp16
python3 -m build_scripts.wizardcoder_15b --model_path ./wizardcoder_15b_split_8/ --stage_id 6 --max_bs 1 --max_seq 1024 --kvcache_dtype fp16
python3 -m build_scripts.wizardcoder_15b --model_path ./wizardcoder_15b_split_8/ --stage_id 7 --max_bs 1 --max_seq 1024 --kvcache_dtype fp16
  1. 下载WIZARDCODER-15B官方的tokenizer文件到/usr/local/gcu/TopsDistInfer/src/pre_process_wizardcoder_15b/,包括:tokenizer.json, tokenizer_config.json,added_tokens.json,special_tokens_map.json

  2. 通过以下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 8 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_wizardcoder_15b_split_8_max_1024.json --model_path=<path/to/wizardcoder_15b_split_8>

Baichuan2 13b chat

在四张gcu210上执行BAICHUAN2-13B-Chat模型推理:

  1. 将第五章方法生成的onnx和weights文件放到/usr/local/gcu/TopsDistInfer/baichuan2_13b_chat_models文件夹中

  2. 下载baichuan2-13b官方的tokenizer相关文件到/usr/local/gcu/TopsDistInfer/src/pre_process_Baichuan2_13B/,其中包括tokenizer.model, tokenizer_config.json, special_tokens_map.json, tokenization_baichuan.py

  3. 使用如下命令生成engine,并把生成的bin放到baichuan2_13b_chat_split_8_max_1024_mix16_3pg文件夹中

python3 -m  build_scripts.baichuan2_13b --model_path=/usr/local/gcu/TopsDistInfer/baichuan2_13b_chat_models/ --json_path=/usr/local/gcu/TopsDistInfer/build_configs/baichuan2_13b_chat_split_8_max_1024_mix16_3pg --max_seq=1024 --batch_size=1
  1. 通过以下命令执行推理

export EFRT_CLUSTER_AS_DEVICE=true
export ECCL_RUNTIME_3_0_ENABLE=true
mpirun -n 8 --allow-run-as-root Pipeline_Text_Generate_micro_batch --run_config_file=run_configs/run_config_baichuan2_13b_chat_split_8_max_1024_mix16_3pg.json --model_path=<path/to/baichuan2_13b_chat_models>