AI开发平台MODELARTS-推理精度测试:Step2 配置精度测试环境

时间:2024-09-14 22:29:31

Step2 配置精度测试环境

  1. 获取精度测试代码。精度测试代码存放在代码包AscendCloud-3rdLLM-x.x.x的/llm_evaluation目录中,代码目录结构如下:
    benchmark_eval
    ├──apig_sdk       # ma校验包
    ├──cpu_npu        # 检测资源消耗
    ├── config        
    │   ├── config.json  # 服务的配置模板,已配置了ma-standard,tgi示例
    │   ├── mmlu_subject_mapping.json  # mmlu数据集学科信息
    │   ├── ceval_subject_mapping.json  # ceval数据集学科信息
    ├── evaluators
    │   ├── evaluator.py # 数据集数据预处理方法集
    │   ├── chatglm.py  # 处理请求相应模块, 一般和chatglm的官方评测数据集ceval搭配
    │   ├── llama.py  # 处理请求相应模块, 一般和llama的评测数据集mmlu搭配
    ├── mmlu-exam, mmlu数据集
    ├── ceval-exam, ceval数据集
    ├── eval_test.py  # 启动脚本,建立线程池发送请求,并汇总结果
    ├── readme.md      # 说明文档
    ├── requirements.txt   # 第三方依赖
    ├── service_predict.py  # 发送请求的服务
  2. 上传精度测试代码到推理容器中。
  3. 执行精度测试启动脚本eval_test.py,具体操作命令如下,可以根据参数说明修改参数。
    python eval_test.py \
      --max_workers=1 \
      --service_name=llama2-13b-chat-test \
      --eval_dataset=ceval \
      --service_url=http://${docker_ip}:8080/v1/completions \
      --few_shot=3 \
      --is_devserver=True \  
      --model_name=llama2 \
      --deploy_method=vllm \
      --vllm_model=${model}

    参数说明:

    • max_workers:请求的最大线程数,默认为1。
    • service_name:服务名称,保存评测结果时创建目录,示例为:llama2-13b-chat-test。
    • eval_dataset:评测使用的评测集(枚举值),目前仅支持mmlu、ceval。
    • service_url:成功部署推理服务后的服务预测地址,示例:http://${docker_ip}:8080/generate。此处的${docker_ip}替换为宿主机实际的IP地址,端口号8080来自前面配置的服务端口。
    • few_shot:开启少量样本测试后添加示例样本的个数。默认为3,取值范围为0~5整数。
    • is_devserver: 是否devserver部署方式,True表示DevServer模式。False表示ModelArts Standard模式。
    • model_name:评测模型名称,llama2。
    • deploy_method:部署方法,不同的部署方式api参数输入、输出解析方式不同,目前支持tgi、ma_standard、vllm等方式。
    • vllm_model:deploy_method为vllm时,服务以openai的方式启动,vllm_model为启动服务时传入的model。
support.huaweicloud.com/bestpractice-modelarts/modelarts_10_1944.html