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

143 lines
10 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.

# PLawBench
## 概述
PLawBench 是一个基于评分标准rubric的基准测试用于评估大语言模型在真实中文法律实务场景中的表现。
该基准模拟执业律师的工作流程,涵盖三个层级的任务:在公共法律咨询中梳理事实、通过结构化法律推理分析案件,以及起草专业法律文书。
每个样本均附有法律专家标注的评分标准,评分由 LLM 评判模型依据该标准进行,而非与单一参考答案比对。
## 任务描述
- **任务类型**:基于专家评分标准的开放式中文法律生成任务
- **输入**:客户陈述,或案件描述加法律问题
- **输出**:问题清单、结构化案件分析,或完整的法律文书
- **领域**:中文法律实务(个人事务、婚姻家庭、公司治理、知识产权、刑事与民事诉讼、跨境事务、劳动法、环境安全等)
## 核心特性
- 共 280 个样本,划分为四个子集,对应 PLawBench 的四项任务:
- `case_analysis`250 个):案件分析,从四个维度评分——结论、案件事实、推理过程、引用法条。回答必须严格遵循【结论】/【案件事实】/【推理过程】/【法条依据】的结构。
- `legal_consultation`18 个):模型扮演律师,需提出 1025 个可验证的后续问题,以揭示客户遗漏或歪曲的事实。
- `plaintiff_statement`6 个):根据客户陈述起草起诉状。
- `defendant_statement`6 个):根据客户陈述及对方起诉状起草答辩状。
- 客户陈述故意设计得模糊、情绪化或具有误导性,因此模型必须识别陷阱,而非简单复述客户主张。
- 任务提示词和评判提示词均直接采用官方发布版本,`case_analysis` 子集的评分标准保留了各维度的原始分值分配。
## 评估说明
- **必须使用 LLM 评判模型**:需设置 `judge.strategy='llm'`(或 `'auto'`,该选项会为此基准自动启用评判模型),并提供 `judge.models`。不支持 `judge.strategy='rule'`
- **指标为 [0, 1] 区间内的得分比例**。所有子集均报告 `acc``case_analysis` 额外报告 `conclusion_acc``fact_acc``reasoning_acc``law_acc`。这些指标与官方排行榜列一一对应:`legal_consultation` 对应 Task1`case_analysis` 对应 Task2-Avg 及其四个维度,两个文书起草子集分别对应 Task3-Plaintiff 和 Task3-Defendant。
- **应比较各子集得分,而非 `OVERALL` 行**。`OVERALL` 是按样本数量计算的平均值,因此被 `case_analysis` 主导250/280。论文中的 `Overall` 列是三项任务得分的等权重平均值,与官方公布表格更吻合(在官方排名的 24 个模型上拟合,平均绝对误差为 0.72,而样本加权平均的误差为 2.87)。
- **评分标准的总分来自数据集本身,而非评判模型输出**,且实际得分会被限制在 `[0, max_points]` 范围内,因此即使评判模型错误报告分母,也不会扭曲最终分数。
- `case_analysis` 的评判输出模板已修复。官方脚本存在格式错误的 JSON并将结论部分固定为零分本实现中每个部分均按其评分标准独立打分。
- 评判模型的重试策略通过其 `generation_config` 配置。若回复仍不符合输出格式要求,则视为无效并排除,而非静默记为零分。
- 案件分析评判会返回详细的逐项分解结果。建议为评判模型设置较大的 `max_tokens`(例如 8192配置于 `judge.models[].generation_config`
- 文书起草子集要求生成 2,5003,000 字符的法律文书,因此被评估模型也需要较大的 `generation_config.max_tokens`。若生成内容被截断,将被视为不完整文书,得分接近零,从而因非法律能力原因拉低 Task3 得分。
资源:[GitHub](https://github.com/skylenage/PLawbench) |
[数据集](https://modelscope.cn/datasets/evalscope/PLawBench)
## 属性
| 属性 | 值 |
|----------|-------|
| **基准测试名称** | `plawbench` |
| **数据集ID** | [evalscope/PLawBench](https://modelscope.cn/datasets/evalscope/PLawBench/summary) |
| **论文** | [Paper](https://github.com/skylenage/PLawbench) |
| **标签** | `Chinese`, `Knowledge`, `QA`, `Reasoning` |
| **指标** | `accuracy`, `conclusion_acc`, `fact_acc`, `reasoning_acc`, `law_acc` |
| **默认示例数** | 0-shot |
| **评估分割** | `test` |
## 数据统计
| 指标 | 值 |
|--------|-------|
| 总样本数 | 280 |
| 提示词长度(平均) | 2669.88 字符 |
| 提示词长度(最小/最大) | 1267 / 5890 字符 |
**各子集统计信息:**
| 子集 | 样本数 | 提示词平均长度 | 提示词最小长度 | 提示词最大长度 |
|--------|---------|-------------|------------|------------|
| `case_analysis` | 250 | 2720.18 | 2137 | 4873 |
| `legal_consultation` | 18 | 1851.94 | 1512 | 2611 |
| `plaintiff_statement` | 6 | 1494.67 | 1267 | 2050 |
| `defendant_statement` | 6 | 4203 | 2794 | 5890 |
## 样例示例
**子集**: `case_analysis`
```json
{
"input": [
{
"id": "06c8a1d7",
"content": "\n## 角色\n\n你是一名具有十年以上执业经验的法律实务专家精通中国现行法律法规与司法实践。你擅长将复杂的法律问题分解为清晰的逻辑模块并严格依据“结论先行、事实为重、推理严密、依据支撑”的专业风格进行解答。\n\n## 核心要求\n\n1. 严格顺序:回答必须按照以下四部分顺序展开,并使用对应标题:\n【结论】\n【案件事实】\n【推理过程】\n【法条依据】\n2. 内容规范:\n结论直接、明确针对提问的核心争议点给出肯定或否定的判断。\n案件事实基于用户提供的案情简明、客观地摘录与法律判断 ... [TRUNCATED 1912 chars] ... 并赔偿精神损害抚慰金。庭审中查明,某摄影服务公司已完成除摄像外的其他服务项目;某文化传媒公司系独立法人,其工作人员在操作设备时存在重大过失。另查,某甲在签订合同时未特别声明婚礼录像的重要性,但合同附件中列有\"全程跟拍记录\"服务项目。某摄影服务公司辩称其仅需承担合同违约责任,精神损害赔偿缺乏依据。某文化传媒公司以非合同相对方为由拒绝承担责任。\n\n## 问题\n以【结论 + 案情简述 + 分析过程+依据法条】的逻辑回答以下问题:在上述案例中,某甲能否向某摄影服务公司主张精神损害赔偿?\n"
}
],
"target": "",
"id": 0,
"group_id": 0,
"subset_key": "case_analysis",
"metadata": {
"id": "case_analysis-1",
"task": "case_analysis",
"judge_type": "case_analysis",
"category": "个人生活",
"rubrics": "[{\"criterion\": \"【结论得分】\\n(+5分) 某甲有权向某摄影服务公司主张精神损害赔偿。\", \"points\": \"5\", \"tags\": \"结论得分\"}, {\"criterion\": \"【案情简述得分】\\n(+5分) 某甲与某摄影服务公司签订《婚庆服务合同》,并支付全款,合同附件明确包含\\\"全程跟拍记录\\\"服务项目。\\n(+5分) 婚礼当日,某摄影服务公司未经告知将摄像服务转包给文化传媒公司。\\n(+5分) 文化传媒公司工作室将录像全部丢失,未能交付原告。\\n(+ ... [TRUNCATED 762 chars] ... 人具有人身意义的特定物造成严重精神损害的,被侵权人有权请求精神损害赔偿。\\n+5分《最高人民法院关于确定民事侵权精神损害赔偿责任若干问题的解释》第五条\\n精神损害的赔偿数额根据以下因素确定(一)侵权人的过错程度,但是法律另有规定的除外;(二)侵权行为的目的、方式、场合等具体情节;(三)侵权行为所造成的后果;(四)侵权人的获利情况;(五)侵权人承担责任的经济能力;(六)受理诉讼法院所在地的平均生活水平。\", \"points\": \"15\", \"tags\": \"法条依据得分\"}]",
"max_points": 60,
"prompt": "\n## 角色\n\n你是一名具有十年以上执业经验的法律实务专家精通中国现行法律法规与司法实践。你擅长将复杂的法律问题分解为清晰的逻辑模块并严格依据“结论先行、事实为重、推理严密、依据支撑”的专业风格进行解答。\n\n## 核心要求\n\n1. 严格顺序:回答必须按照以下四部分顺序展开,并使用对应标题:\n【结论】\n【案件事实】\n【推理过程】\n【法条依据】\n2. 内容规范:\n结论直接、明确针对提问的核心争议点给出肯定或否定的判断。\n案件事实基于用户提供的案情简明、客观地摘录与法律判断 ... [TRUNCATED 1912 chars] ... 并赔偿精神损害抚慰金。庭审中查明,某摄影服务公司已完成除摄像外的其他服务项目;某文化传媒公司系独立法人,其工作人员在操作设备时存在重大过失。另查,某甲在签订合同时未特别声明婚礼录像的重要性,但合同附件中列有\"全程跟拍记录\"服务项目。某摄影服务公司辩称其仅需承担合同违约责任,精神损害赔偿缺乏依据。某文化传媒公司以非合同相对方为由拒绝承担责任。\n\n## 问题\n以【结论 + 案情简述 + 分析过程+依据法条】的逻辑回答以下问题:在上述案例中,某甲能否向某摄影服务公司主张精神损害赔偿?\n"
}
}
```
*注:部分内容因展示需要已被截断。*
## 提示模板
**提示模板:**
```text
{question}
```
## 使用方法
### 使用 CLI
```bash
evalscope eval \
--model YOUR_MODEL \
--api-url OPENAI_API_COMPAT_URL \
--api-key EMPTY_TOKEN \
--datasets plawbench \
--limit 10 # 正式评估时请删除此行
```
### 使用 Python
```python
from evalscope import run_task
from evalscope.config import TaskConfig
task_cfg = TaskConfig(
model='YOUR_MODEL',
api_url='OPENAI_API_COMPAT_URL',
api_key='EMPTY_TOKEN',
datasets=['plawbench'],
dataset_args={
'plawbench': {
# subset_list: ['case_analysis', 'legal_consultation', 'plaintiff_statement'] # 可选,用于评估特定子集
}
},
limit=10, # 正式评估时请删除此行
)
run_task(task_cfg=task_cfg)
```