参数说明#

执行 evalscope eval --help 可获取全部参数说明。

模型参数#

  • --model: 被评测的模型名称。

    • 指定为模型在ModelScope中的id,将自动下载模型,例如Qwen/Qwen2.5-0.5B-Instruct

    • 指定为模型的本地路径,例如/path/to/model,将从本地加载模型;

    • 评测目标为模型API服务时,需要指定为服务对应的模型id,例如Qwen2.5-0.5B-Instruct

  • --model-id: 被评测的模型的别名,用于报告展示。默认为model的最后一部分,例如Qwen/Qwen2.5-0.5B-Instructmodel-idQwen2.5-0.5B-Instruct

  • --api-url: (仅在eval-type=service时有效) 模型API端点,默认为None;支持传入本地或远端的OpenAI API格式端点,例如http://127.0.0.1:8000/v1/chat/completions

  • --api-key: (仅在eval-type=service时有效) 模型API端点密钥,默认为EMPTY

  • --model-args: 模型加载参数,以逗号分隔,key=value形式,,将解析为字典,默认参数:

    • revision: 模型版本,默认为master

    • precision: 模型精度,默认为torch.float16

    • device_map: 模型分配设备,默认为auto

  • --generation-config: 生成参数,以逗号分隔,key=value形式,将解析为字典:

    • 若使用本地模型推理(基于Transformers)包括如下参数(全部参数指南):

      • do_sample: 是否使用采样,默认为false

      • max_length: 最大长度,默认为2048

      • max_new_tokens: 生成最大长度,默认为512

      • num_return_sequences: 生成序列数量,默认为1;设置大于1时,将生成多个序列,需要设置do_sample=True

      • temperature: 生成温度

      • top_k: 生成top-k

      • top_p: 生成top-p

    • 若使用模型API服务推理(eval-type设置为service),包括如下参数(具体请参考部署的模型服务):

      • max_tokens: 生成最大长度,默认为512

      • temperature: 生成温度, 默认为0.0

      • n: 生成序列数量,默认为1(注意:lmdeploy目前仅支持n=1)

    # 例如
    --model-args revision=master,precision=torch.float16,device_map=auto
    --generation-config do_sample=true,temperature=0.5
    
  • --chat-template: 模型推理模板,默认为None,表示使用transformers的apply_chat_template;支持传入jinjia模版字符串,来自定义推理模板

  • --template-type: 模型推理模板,已弃用,参考--chat-template

数据集参数#

  • --datasets: 数据集名称,支持输入多个数据集,使用空格分开,数据集将自动从modelscope下载,支持的数据集参考数据集列表

  • --dataset-args: 评测数据集的设置参数,以json字符串格式传入,将解析为字典,注意需要跟--datasets参数中的值对应:

    • dataset_id (或local_path): 可指定数据集本地路径,指定后将尝试从本地加载数据

    • prompt_template: 评测数据集的prompt模板,指定后将拼接在每个评测数据内容之前

    • system_prompt: 评测数据集的系统prompt

    • subset_list: 评测数据子集列表,指定后将只使用子集数据

    • few_shot_num: few-shot的数量

    • few_shot_random: 是否随机采样few-shot数据,默认为False

    # 例如
    --datasets gsm8k arc
    --dataset-args '{"gsm8k": {"few_shot_num": 4, "few_shot_random": false}, "arc": {"dataset_id": "/path/to/arc"}}'
    
  • --dataset-dir: 数据集下载路径,默认为~/.cache/modelscope/datasets

  • --dataset-hub: 数据集下载源,默认为modelscope,可选huggingface

  • --limit: 每个数据集最大评测数据量,不填写则默认为全部评测,可用于快速验证

评测参数#

  • --eval-batch-size: 评测批量大小,默认为1

  • --eval-stage: 评测阶段,可选all, infer, review, 默认为all

    • all: 完整评测,包含推理和评测

    • infer: 仅进行推理,不进行评测

    • review: 仅进行数据评测,不进行推理

  • --eval-type: 评测类型,可选checkpoint, custom, service;默认为checkpoint

  • --eval-backend: 评测后端,可选Native, OpenCompass, VLMEvalKit, RAGEval, ThirdParty,默认为Native

    • OpenCompass用于评测大语言模型

    • VLMEvalKit用于评测多模态模型

    • RAGEval用于评测RAG流程、Embedding模型、Reranker模型、CLIP模型

      参见

      其他评测后端使用指南

    • ThirdParty 用于其他特殊任务评测,例如ToolBench, LongBench

  • --eval-config: 使用非Native评测后端时,需要传入该参数

其他参数#

  • --work-dir: 模型评测输出路径,默认为./outputs/{timestamp}

  • --use-cache: 使用本地缓存的路径,默认为None;如果为指定路径,例如outputs/20241210_194434,将重用路径下的模型推理结果,若未完成推理则会继续推理,之后进行评测。

  • --seed: 随机种子,默认为42

  • --debug: 是否开启调试模式,默认为false

  • --dry-run: 预检参数,不进行推理,只打印参数,默认为false