一、总览
自动评测支持三种评测模式,分别为“仅评测”、“推理及评测”以及“自定义模式”:
| 评测模式 | 模式说明 | 指标配置及结果输出 |
| 仅评测 | 用户上传带模型推理结果的评测集,在自动评测模块完成打分功能。 | 支持自定义评测指标、调试指标、整体结果查看和单条评测结果查看:自定义指标:在自定义的评测指标时,需要对每个指标的打分方式进行配置。例如使用裁判模型打分时,需要设置裁判模型、打分 Prompt、以及支持自定义前后脚本对输入输出进行处理,以获得指标结果。调试指标:支持在正式发起评测任务前对评测样本进行少量评测,调试时,通过调整打分 Prompt 和前后处理脚本以获得预期的评测效果。整体结果查看:支持各模型在各评测集的评测结果查看。单条评测结果查看:支持对每条评测数据进行各打分步骤的结果进行查看。 |
| 推理及评测 | 用户上传只有 query(问题)的评测集,在自动评测模块完成推理结果输出和打分。 | |
| 自定义评测 | 支持用户通过自定义评测镜像进行评测。可将评测集、自定义镜像以及存储挂载等内容合并为一个“任务配置”,每一组配置包含评测集、选择镜像、选择版本、挂载路径设置、启动命令、参数设置、环境变量。用户可通过仅选择镜像和版本,或者选择镜像和版本后再设置挂载路径,以实现镜像或者镜像+挂载路径的方式进行评测。 | 用户可在镜像中或者另外挂载评测脚本自定义评测指标、输出评测结果。 |
本实践采用“自定义”模式,选择 DeepSeek-V3.2 为示例的待评测模型在 BFCL_v4_simple_python 通过自定义镜像进行评测。
BFCL(Berkeley Function Calling Leaderboard)是首个针对大语言模型(LLM)函数调用与工具使用能力的系统性评估体系。本次选用其中的 BFCL_v4_simple_python 进行评测,评测 DeepSeek-V3.2 在此评测集的基础函数调用能力,包含指定函数调用和函数选择调用。
二、前置准备条件
在创建自动评测任务前,你需要做好以下准备:
三、1. 制作评测任务镜像
本实践需要使用自定义镜像进行评测,需要进行镜像制作。镜像制作指南可参考 创建开发机。
四、1.1 配置开发机信息
单击 训练工坊-新建开发机,镜像选择内置通用镜像/py3.10-cpu,如果你需要 torch 的环境也可根据需求选择其他版本内置镜像
机器来源可选自有的资源组 或者 通过从 TIONE 平台购买,由于仅制作镜像不需要太多的资源,选择 2c4g 及以上资源即可。
启动后,打开 WebIDE,可根据个人喜好进行选择,这里选择 vscode:
五、1.2 配置评测集环境
开发机启动之后,打开 terminal,以 clone 评测集源码:
git clone https://github.com/ShishirPatil/gorilla.git
配置评测集所需环境,配置步骤需按照评测集对应的 README 进行:
cd gorilla/berkeley-function-call-leaderboardpip install -e .
为支持更多且灵活的模型进行评测,可在 model_config.py 的文件最后加上如下代码:
# 在最后补充这段代码import os# add custom modelCUSTOM_MODEL_NAME = os.getenv("MODEL_NAME", "")if CUSTOM_MODEL_NAME: MODEL_CONFIG_MAPPING.update({ CUSTOM_MODEL_NAME: ModelConfig( model_name=CUSTOM_MODEL_NAME, display_name=CUSTOM_MODEL_NAME, url="", org="Custom", license="apache-2.0", model_handler=OpenAICompletionsHandler, input_price=None, output_price=None, is_fc_model=True, underscore_to_dot=True, ) })
六、1.3 新建启动代码文件、评测代码、指标保存文件
·启动代码文件
评测模块支持四个基本的环境变量,需要按照 四个基本的环境变量 要求调整对应的代码
四个环境变量及要求如下:
| 环境变量 | 说明 | 备注 | 示例 |
| EVAL_OUTPUT_DIR | 结果输出目录 | 镜像中需要将评测结果保存至此目录,以用于结果展示/可视化对比 | /opt/ml/output |
| EVAL_INFERENCE_URL | 模型 API 地址 | 由于一个任务配置可能会对多个模型服务进行评测,平台通过该环境变量传递模型服务的调用信息 | https://api.openai.com/v1/chat/completions |
| EVAL_AUTHORIZATION_HEADER_KEY | 鉴权头名称 | | Authorization |
| EVAL_AUTHORIZATION_HEADER_VALUE | 鉴权头值 | | sk-xxx… |
启动代码(run.sh):
TEST_CATEGORY="simple_python"export MODEL_NAME=$MODEL_NAMEexport OPENAI_BASE_URL=${EVAL_INFERENCE_URL%/chat/completions}export OPENAI_API_KEY="${EVAL_AUTHORIZATION_HEADER_VALUE#Bearer* }"python openfunctions_evaluation.py –model $MODEL_NAME –test-category $TEST_CATEGORY –num-threads 16
·评测代码(evaluate.sh):
TEST_CATEGORY="simple_python"export MODEL_NAME=$MODEL_NAMEexport OPENAI_BASE_URL=${EVAL_INFERENCE_URL%/chat/completions}export OPENAI_API_KEY="${EVAL_AUTHORIZATION_HEADER_VALUE#Bearer* }"python -m bfcl_eval.eval_checker.eval_runner –model $MODEL_NAME –test-category $TEST_CATEGORY
·保存指标代码(save_metric.py):
# save_metric.pyimport jsonimport os # 获取输出目录output_dir = os.getenv("EVAL_OUTPUT_DIR")model_name = os.getenv("MODEL_NAME") # 构造结果数据original_result_file = os.path.join("score", model_name, "non_live", "BFCL_v4_simple_python_score.json")with open(original_result_file) as f: first_line = f.readline().strip() original_result = json.loads(first_line) result = { "metrics": [ {"name": "accuracy", "value": original_result["accuracy"]}, ] }# 写入结果文件result_file = os.path.join(output_dir, 'metrics.json')with open(result_file, 'w', encoding='utf-8') as f: json.dump(result, f, indent=2, ensure_ascii=False)
七、1.4 进行任务调试
准备调试代码文件:
# 模拟由平台注入的环境变量export MODEL_NAME={YOUR_MODEL_NAME}export EVAL_INFERENCE_URL={YOUR_MODEL_BASE_URL}export EVAL_AUTHORIZATION_HEADER_VALUE={YOUR_API_KEY}export EVAL_OUTPUT_DIR="/opt/ml/output"mkdir -p $EVAL_OUTPUT_DIRbash run.shbash evaluate.shpython save_metric.py
单击运行后,结果如下:
八、1.5 保存镜像
选择对应的开发机任务,单击保存镜像。
通过以上步骤完成评测镜像制作,并且将评测依赖、评测代码等都内置在了镜像中。在接下来的自动评测-自定义评测任务中,可直接选择待评测模型以及此镜像直接运行评测任务。
九、2. 准备待评测的模型服务
准备待评测的模型服务:本模块支持待评测的模型为服务并直接对模型服务进行评测,本次实践需提前将 DeepSeek-V3.2 部署成服务,模型部署指南可参考文档 模型服务部署。
十、1. 配置基本信息
配置任务名称等基本信息。
十一、2. 配置任务
进行任务配置。支持用户通过自定义评测镜像进行评测时,可将评测集、自定义镜像以及存储挂载等内容合并为一个“任务配置”,每一组配置包含评测集、选择镜像、选择版本、挂载路径设置、启动命令、参数设置、环境变量。用户可通过仅选择镜像和版本,或者选择镜像和版本后再设置挂载路径,以实现镜像或者镜像+挂载路径的方式进行评测。本实践中由于制作镜像时,已将依赖、评测文件等安装在镜像中,可直接通过镜像进行评测,不需要进行文件挂载。
单击 +添加配置,输入评测集名称。选择上述已准备完成的镜像和版本,填写启动命令。
在环境变量中增加“MODEL_NAME”指定待评测的模型名称。
可单击右上角的“保存”图标,将此配置保存至配置列表,以便成员和个人下次直接选择此配置进行复用。
单击 +从已有配置中选择 可看到配置列表,勾选对应的配置可直接添加。
十二、3. 配置待评测的模型
待评测的模型支持选择模型和模型服务,这里填入事先准备好的运行中的模型服务地址。
十三、4. 配置任务资源
配置资源时,需要申请任务资源和模型资源,任务资源用于运行评测镜像,模型资源用于将模型部署成服务。由于待评测的模型为模型服务,所以本次只需申请任务资源。
单击提交任务 ,开始正式进行评测。
十四、5. 查看评测结果
单击 整体评测结果 查看评测结果。