更新时间:2024-11-21 GMT+08:00
分享

多模态模型推理性能测试

benchmark方法介绍

静态性能测试:评估在固定输入、固定输出和固定并发下,模型的吞吐与首token延迟。该方式实现简单,能比较清楚的看出模型的性能和输入输出长度、以及并发的关系。

性能benchmark验证使用到的脚本存放在代码包AscendCloud-LLM-xxx.zip的llm_tools/llm_evaluation目录下。

代码目录如下:

benchmark_tools 
|--- modal_benchmark
    |--- modal_benchmark_parallel.py  # modal 评测静态性能脚本
    |--- utils.py
├── benchmark_parallel.py  # 评测静态性能脚本
├── benchmark_serving.py  # 评测动态性能脚本
├── generate_dataset.py   # 生成自定义数据集的脚本
├── benchmark_utils.py   # 工具函数集
├── benchmark.py         # 执行静态、动态性能评测脚本
├── requirements.txt       # 第三方依赖

静态benchmark验证

本章节介绍如何进行静态benchmark验证。

  1. 已经上传benchmark验证脚本到推理容器中。如果在步骤四 制作推理镜像步骤中已经上传过AscendCloud-LLM-x.x.x.zip并解压,无需重复执行。
  2. 进入benchmark_tools目录下,运行静态benchmark验证。
    cd benchmark_tools 
  3. 多模态模型脚本相对路径是llm_tools/llm_evaluation/benchmark_tools/modal_benchmark/modal_benchmark_parallel.py,具体操作命令如下,可以根据参数说明修改参数。
    python modal_benchmark_parallel.py \
    --host ${docker_ip} \
    --port ${port} \
    --tokenizer /path/to/tokenizer  \
    --epochs 5 \ 
    --parallel-num 1 4 8 16 32 \
    --prompt-tokens 1024 2048 \
    --output-tokens 128 256 \
    --height ${height} \
    --width ${width} \
    --benchmark-csv benchmark_parallel.csv

    参数说明

    • --host:服务部署的IP,${docker_ip}替换为宿主机实 际的IP地址。
    • --port:推理服务端口。
    • --tokenizer:tokenizer路径,HuggingFace的权重路径。
    • --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-csv:结果保存文件,如benchmark_parallel.csv。
    • --height: 图片长度(分辨率相关参数)。
    • --width: 图片宽度(分辨率相关参数)。
    • --served-model-name: 选择性添加,在接口中使用的模型名;如果没有配置,则默认为tokenizer。

    备注:当前版本仅支持语言+图片多模态性能测试。

  4. 脚本运行完成后,测试结果保存在benchmark_parallel.csv中。

相关文档