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>
143 lines
10 KiB
Markdown
143 lines
10 KiB
Markdown
# PLawBench
|
||
|
||
|
||
## 概述
|
||
|
||
PLawBench 是一个基于评分标准(rubric)的基准测试,用于评估大语言模型在真实中文法律实务场景中的表现。
|
||
该基准模拟执业律师的工作流程,涵盖三个层级的任务:在公共法律咨询中梳理事实、通过结构化法律推理分析案件,以及起草专业法律文书。
|
||
每个样本均附有法律专家标注的评分标准,评分由 LLM 评判模型依据该标准进行,而非与单一参考答案比对。
|
||
|
||
## 任务描述
|
||
|
||
- **任务类型**:基于专家评分标准的开放式中文法律生成任务
|
||
- **输入**:客户陈述,或案件描述加法律问题
|
||
- **输出**:问题清单、结构化案件分析,或完整的法律文书
|
||
- **领域**:中文法律实务(个人事务、婚姻家庭、公司治理、知识产权、刑事与民事诉讼、跨境事务、劳动法、环境安全等)
|
||
|
||
## 核心特性
|
||
|
||
- 共 280 个样本,划分为四个子集,对应 PLawBench 的四项任务:
|
||
- `case_analysis`(250 个):案件分析,从四个维度评分——结论、案件事实、推理过程、引用法条。回答必须严格遵循【结论】/【案件事实】/【推理过程】/【法条依据】的结构。
|
||
- `legal_consultation`(18 个):模型扮演律师,需提出 10–25 个可验证的后续问题,以揭示客户遗漏或歪曲的事实。
|
||
- `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,500–3,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)
|
||
```
|