AI开发平台MODELARTS-推理性能测试:静态benchmark

时间:2024-12-09 20:36:11

静态benchmark

运行静态benchmark验证脚本benchmark_parallel.py,具体操作命令如下,可以根据参数说明修改参数。

Notebook中进行测试:
conda activate python-3.9.10
cd benchmark_tools 
python benchmark_parallel.py --backend vllm --host 127.0.0.1 --port 8080 --tokenizer /path/to/tokenizer --epochs 10 --parallel-num 1 2 4 8  --output-tokens 256 256 --prompt-tokens 1024 2048 --benchmark-csv benchmark_parallel.csv

生产环境中进行测试:

python benchmark_parallel.py --backend vllm --url xxx --app-code xxx --tokenizer /path/to/tokenizer --epochs 10 --parallel-num 1 2 4 8  --output-tokens 256 256 --prompt-tokens 1024 2048 --benchmark-csv benchmark_parallel.csv

参数说明:

  • --backend:服务类型,支持tgi、vllm、mindspore、openai等。本文档使用的推理接口是vllm。
  • --host:服务IP地址,如127.0.0.1。
  • --port:服务端口,和推理服务端口8080。
  • --url:若以vllm接口方式启动服务,API接口公网地址与"/generate"拼接而成;若以openai接口方式启动服务,API接口公网地址与"/v1/completions"拼接而成。部署成功后的在线服务详情页中可查看API接口公网地址。
    图1 API接口公网地址
  • --app-code:获取方式见访问在线服务(APP认证)
  • --tokenizer:tokenizer路径,HuggingFace的权重路径。若服务部署在Notebook中,该参数为Notebook中权重路径;若服务部署在生产环境中,该参数为本地模型权重路径。
  • --served-model-name:仅在以openai接口启动服务时需要该参数。若服务部署在Notebook中,该参数为Notebook中权重路径;若服务部署在生产环境中,该参数为服务启动脚本run_vllm.sh中的${model_path}。
  • --epochs:测试轮数,默认取值为5。
  • --parallel-num:每轮并发数,支持多个,如 1 4 8 16 32。
  • --prompt-tokens:输入长度,支持多个,如 128 128 2048 2048,数量需和--output-tokens的数量对应。
  • --output-tokens:输出长度,支持多个,如 128 2048 128 2048,数量需和--prompt-tokens的数量对应。
脚本运行完成后,测试结果保存在benchmark_parallel.csv中,示例如下图所示。
图2 静态benchmark测试结果(示意图)
support.huaweicloud.com/bestpractice-modelarts/modelarts_10_01991.html