配套工具

MindIE中有配套的MindIE Benchmark工具,用来计算推理性能和精度,调用方式如下:

  1. 启动Server服务,具体请参见1
  2. 使用MindIE Benchmark计算精度。

    # 环境变量设置
    source /usr/local/Ascend/mindie/set_env.sh
    
    # 通信掩盖,确保精度一致性
    export LCCL_DETERMINISTIC=1
    export HCCL_DETERMINISTIC=true
    export ATB_MATMUL_SHUFFLE_K_ENABLE=0
    export ATB_LLM_LCOC_ENABLE=1
    
    # 后处理采样参数,若不指定MindIE Benchmark会用默认值
    SMPL_PARAM="{\"temperature\":1.0,\"top_k\":0,\"top_p\":1.0,\"typical_p\":1.0,\"do_sample\":false,\"seed\":0,\"repetition_penalty\":1.0,\"frequency_penalty\":0,\"presence_penalty\":0,\"watermark\":false}"
    
    #启动MindIE Benchmark
    benchmark \
    --DatasetPath "/path/to/dataset/CEval" \
    --DatasetType "ceval" \
    --ModelName "llama3_70b" \
    --ModelPath "/path/to/weights/llama3-70b" \
    --TestType triton_client \
    --Concurrency 1 \
    --Tokenizer True \
    --Http http://127.0.0.1:8111 \
    --TestAccuracy True \
    --SamplingParams=$SMPL_PARAM

    在使用MindIE Benchmark进行性能测试时,需将DatasetPath及DatasetType换成对应性能数据集,并将TestAccuracy设为False。

    表1 参数说明

    参数名

    参数解释

    DatasetPath

    数据集路径。

    DatasetType

    数据集名称。

    ModelName

    模型名。

    ModelPath

    模型权重路径。

    TestType

    指定MindIE Benchmark运行模式为Triton服务框架。

    Concurrency

    并发数。

    Tokenizer

    使用分词器。

    Http

    用户设置的推理服务侦听IP和Port。

    TestAccuracy

    “True”为精度测试,“False”为性能测试。

    MaxOutputLen

    指定输出长度。

    SamplingParams

    后处理采样参数。

  3. 精度计算结果如下图所示。

    MindIE Benchmark详细使用方法以及参数的介绍详情请参见《MindIE Service开发指南》的“MindIE Service组件 > MindIE Service Tools > MindIE Benchmark > 功能介绍”章节