任务书:
将法律领域的结构化知识(如罪名构成要件、量刑情节、证据规则等)融入到LLM的训练与推理过程中,设计一种有效的知识注入机制,将上述领域知识构建成可计算的提示模板或软提示,进而对某个开源预训练语言模型进行提示微调,使其能够提取关键词、生成案例摘要,克服通用摘要模型在法律专业领域可能出现的事实偏差与逻辑谬误。
关键词:提示模板、软提示、关键词提取、生成案例摘要
模型:Qwen3-8B
模型任务:
任务一:关键词提取
任务二:生成案例摘要
论文任务:
对比基线模型、提示模板+基线模型、软提示+基线模型、Qlora+基线模型对不同任务的完成情况。
评价机制:
任务一:与基线模型对比F1参数
任务二:与基线模型对比ROUGE-1 / ROUGE-2 / ROUGE-L等自动指标
bash
ROUGE-1
定义:计算生成文本与参考文本之间单个词(unigram)的重叠率。
计算方式:
召回率 (Recall):生成文本中与参考文本匹配的词数 / 参考文本总词数
精确率 (Precision):生成文本中与参考文本匹配的词数 / 生成文本总词数
F1-score:精确率和召回率的调和平均数
用途:衡量生成文本是否包含参考文本中的关键词。
ROUGE-2
定义:计算生成文本与参考文本之间连续两个词(二元组 bigram)的重叠率。
计算方式:
同 ROUGE-1,但匹配的是连续两个词的组合。
用途:衡量生成文本是否保留了参考文本中的短语或局部句法结构,比 ROUGE-1 更严格。
ROUGE-L
定义:计算生成文本与参考文本之间的最长公共子序列(Longest Common Subsequence, LCS)。
特点:
不要求连续的词,但顺序必须一致
可反映文本的整体顺序和语义连贯性
计算方式:
召回率 = LCS 长度 / 参考文本长度
精确率 = LCS 长度 / 生成文本长度
F1-score = 精确率和召回率的调和平均数
用途:衡量生成文本与参考文本在整体结构和逻辑上的一致性。
项目结构:
bash
LawLLM_Project/ # 项目根目录
├─ data/ # 原始和处理后的数据
│ ├─ raw/ # 原始裁判文书、案例文本
│ │ ├─ criminal_cases/ # 刑事判决书样本
│ │ ├─ civil_cases/ # 可选:民事案例样本
│ │ └─ metadata.json # 数据集说明
│ ├─ processed/ # 清洗/标注后的数据
│ │ ├─ keyword_cases.jsonl # 用于关键词提取的样本
│ │ └─ summary_cases.jsonl # 用于摘要生成的样本
│ └─ prompts/ # 统一存放 Prompt 模板
│ ├─ keyword_prompt.txt
│ ├─ summary_prompt.txt
│ └─ legal_constraint_prompt.txt
│
├─ models/ # 模型存放
│ └─ Qwen3-8B/ # 本地下载的模型
│
├─ src/ # 实验代码
│ ├─ __init__.py
│ ├─ download_model.py # HuggingFace 模型下载脚本
│ ├─ inference.py # 推理函数(generate_text, keyword_extraction, summarize_case)
│ ├─ evaluate.py # 实验评测函数(人工打分/自动指标)
│ └─ run_experiments.py # 对照实验执行脚本
│
├─ results/ # 实验结果
│ ├─ keyword_extraction/ # 关键词提取输出
│ │ ├─ baseline.jsonl
│ │ └─ legal_prompt.jsonl
│ └─ summary/ # 案例摘要输出
│ ├─ baseline.txt
│ └─ legal_prompt.txt
│
├─ notebooks/ # 可选:Jupyter笔记本
│ └─ analysis.ipynb # 可视化对比、统计图表
│
├─ requirements.txt # Python依赖
├─ README.md # 项目说明
今日完成任务:
建立项目框架、下载模型、初步构建模型评价体系、将任务上传到github