sora 13274243a0 Bump vendored EvalScope and add K3-ready DPV4 configs.
Keep K3 suite selection and report-schema scoring in bash, merge K3/vision dataset_args into dpv4 yamls, and pin EvalScope at 735d920ee911 with local patches.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 07:30:48 +00:00

154 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# JobBench
## 概述
JobBench 评估智能体系统在真实专业工作场景中的表现,这些任务要求阅读参考文件、生成交付物,并整合多源信息。本适配器使用 ModelScope 数据集 `evalscope/job-bench`
## 任务描述
- **任务类型**:智能体专业工作 / 交付物生成
- **输入**:职场风格的任务提示,可选包含 `reference_files/` 目录下的参考文件
- **输出**:最终交付物文件写入 `jobbench_output/` 目录
- **数据集**ModelScope `evalscope/job-bench`
- **评估指标**:加权 LLM 评分标准得分(`normalized_score`
## 评估说明
- 默认评估划分是 `main`
- 配置 `judge.models` 用于评分标准打分。
- `normalized_score` 是主要的加权得分(原始总分 / 满分);`pass_rate` 是完全通过评分项的未加权比例;`judge_score` 是通过评分项权重的原始总和,仅作为诊断指标报告。
- Docker 运行默认使用 `python:3.11-slim-bookworm` 镜像。正式评估时,请提供包含任务所需 Office、PDF 和电子表格工具的镜像。
## 属性
| 属性 | 值 |
|----------|-------|
| **基准测试名称** | `job_bench` |
| **数据集ID** | [evalscope/job-bench](https://modelscope.cn/datasets/evalscope/job-bench/summary) |
| **论文** | 无 |
| **标签** | `Agent`, `Knowledge`, `MultiTurn` |
| **指标** | `normalized_score`, `pass_rate`, `judge_score` |
| **默认示例数** | 0-shot |
| **评估划分** | `main` |
## 数据统计
| 指标 | 值 |
|--------|-------|
| 总样本数 | 65 |
| 提示词长度(平均) | 3344.32 字符 |
| 提示词长度(最小/最大) | 2000 / 4920 字符 |
## 样例示例
**子集**: `default`
```json
{
"input": [
{
"id": "9cdb8ee0",
"content": "You are preparing the Statistical Analysis Plan for Phase III trial XR-2847 evaluating cardiovascular disease prevention. The sponsor requires validation of statistical assumptions against empirical data and regulatory alignment before protoc ... [TRUNCATED 2026 chars] ... erables.\n\nWrite every final deliverable file under `jobbench_output`. Do not put intermediate scratch files there.\nYour final message may summarize what you produced, but files requested by the task must be actual files in\n`jobbench_output`.\n"
}
],
"id": 0,
"group_id": 0,
"tools": [
{
"name": "bash",
"description": "Execute a bash command inside the sandbox environment. Returns the combined stdout / stderr output of the command.",
"parameters": {
"properties": {
"command": {
"type": "string",
"description": "The bash command to execute."
},
"timeout": {
"type": "number",
"description": "Maximum execution time in seconds (default: 60).",
"default": 60
}
},
"required": [
"command"
]
}
},
{
"name": "python_exec",
"description": "Execute Python source code inside the sandbox environment. Returns stdout and stderr output.",
"parameters": {
"properties": {
"code": {
"type": "string",
"description": "Python source code to execute."
},
"timeout": {
"type": "number",
"description": "Maximum execution time in seconds (default: 60).",
"default": 60
}
},
"required": [
"code"
]
}
}
],
"metadata": {
"task_id": "biostatisticians__task1",
"reference_files": [
"dataset/biostatisticians/task1/task_folder/Clinical_Study_Proposal_CVD_Prevention.csv",
"dataset/biostatisticians/task1/task_folder/framingham.csv"
],
"rubric_json": "{\n \"rubrics\": [\n {\n \"rubric\": \"Does the analysis calculate the observed 10-year CHD event rate in the eligible population as 20.2% (236/1166) and identify this as higher than the assumed 15% control group rate?\",\n \"weight\": 10,\n ... [TRUNCATED 4642 chars] ... ge criterion and by the sysBP criterion separately\",\n \"The flow shows the final eligible population count (1,166)\",\n \"The flow enables verification of the filtering process and assessment of generalizability\"\n ]\n }\n ]\n}"
}
}
```
*注:部分内容因展示需要已被截断。*
## 提示模板
**提示模板:**
```text
{question}
```
## 使用方法
### 使用 CLI
```bash
evalscope eval \
--model YOUR_MODEL \
--api-url OPENAI_API_COMPAT_URL \
--api-key EMPTY_TOKEN \
--datasets job_bench \
--agent-config '{"mode":"native","strategy":"function_calling","max_steps":250}' \
--limit 10 # 正式评估时请删除此行
```
### 使用 Python
```python
from evalscope import TaskConfig, run_task
from evalscope.api.agent import NativeAgentConfig
task_cfg = TaskConfig(
model='YOUR_MODEL',
api_url='OPENAI_API_COMPAT_URL',
api_key='EMPTY_TOKEN',
datasets=['job_bench'],
agent_config=NativeAgentConfig(
strategy='function_calling',
max_steps=250,
),
limit=10, # 正式评估时请删除此行
)
run_task(task_cfg=task_cfg)
```