File size: 11,072 Bytes
484b605
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
---

title: LawGPT
app_file: webui.py
sdk: gradio
sdk_version: 4.37.2
---

# LaWGPT:基于中文法律知识的大语言模型

<p align="center">
  <a href="assets/logo/lawgpt.jpeg">
    <img src="./assets/logo/lawgpt.jpeg" width="80%" >

  </a>

</p>


<p align="center">
    <a href="https://github.com/pengxiao-song/LaWGPT/wiki"><img src="https://img.shields.io/badge/docs-Wiki-brightgreen"></a>

    <a href="https://huggingface.co/entity303"><img src="https://img.shields.io/badge/Hugging%20Face-entity303-green"></a>

    <a href=""><img src="https://img.shields.io/badge/version-beta1.1-blue"></a>

    <a href=""><img src="https://img.shields.io/badge/os-Linux-9cf"></a>

    <a href=""><img src="https://img.shields.io/github/last-commit/pengxiao-song/lawgpt"></a>

    <a href="https://star-history.com/#pengxiao-song/LaWGPT&Timeline"><img src="https://img.shields.io/github/stars/pengxiao-song/lawgpt?color=yellow"></a> 

    <!-- <a href="https://www.lamda.nju.edu.cn/"><img src="https://img.shields.io/badge/support-NJU--LAMDA-9cf.svg"></a> -->

</p>


LaWGPT 是一系列基于中文法律知识的开源大语言模型。

该系列模型在通用中文基座模型(如 Chinese-LLaMA、ChatGLM 等)的基础上扩充法律领域专有词表、**大规模中文法律语料预训练**,增强了大模型在法律领域的基础语义理解能力。在此基础上,**构造法律领域对话问答数据集、中国司法考试数据集进行指令精调**,提升了模型对法律内容的理解和执行能力。

详细内容请参考[技术报告](https://arxiv.org/pdf/2406.04614)。

---

本项目持续开展,法律领域数据集及系列模型后续相继开源,敬请关注。

## 更新

- 🌟 2023/05/30:公开发布
  <a href="https://huggingface.co/entity303/lawgpt-lora-7b-v2"><img src="https://img.shields.io/badge/Model-LaWGPT--7B--beta1.1-yellow"></a>
 
  - **LaWGPT-7B-beta1.1**:法律对话模型,构造 35w 高质量法律问答数据集基于 Chinese-alpaca-plus-7B 指令精调

- 📣 2023/05/26:开放 [Discussions 讨论区](https://github.com/pengxiao-song/LaWGPT/discussions),欢迎朋友们交流探讨、提出意见、分享观点!

- 🛠️ 2023/05/22:项目主分支结构调整,详见[项目结构](https://github.com/pengxiao-song/LaWGPT#项目结构);支持[命令行批量推理](https://github.com/pengxiao-song/LaWGPT/blob/main/scripts/infer.sh)

- 🪴 2023/05/15:发布 [中文法律数据源汇总(Awesome Chinese Legal Resources)](https://github.com/pengxiao-song/awesome-chinese-legal-resources) 和 [法律领域词表](https://github.com/pengxiao-song/LaWGPT/blob/main/resources/legal_vocab.txt)

- 🌟 2023/05/13:公开发布
  <a href="https://huggingface.co/entity303/legal-lora-7b"><img src="https://img.shields.io/badge/Model-Legal--Base--7B-blue"></a> 
  <a href="https://huggingface.co/entity303/lawgpt-legal-lora-7b"><img src="https://img.shields.io/badge/Model-LaWGPT--7B--beta1.0-yellow"></a>
  
  - **Legal-Base-7B**:法律基座模型,使用 50w 中文裁判文书数据二次预训练
  
  - **LaWGPT-7B-beta1.0**:法律对话模型,构造 30w 高质量法律问答数据集基于 Legal-Base-7B 指令精调
  
- 🌟 2023/04/12:内部测试
  <a href="https://huggingface.co/entity303/lawgpt-lora-7b"><img src="https://img.shields.io/badge/Model-Lawgpt--7B--alpha-yellow"></a>
  - **LaWGPT-7B-alpha**:在 Chinese-LLaMA-7B 的基础上直接构造 30w 法律问答数据集指令精调

## 快速开始

1. 准备代码,创建环境

   ```bash

   # 下载代码

   git clone [email protected]:pengxiao-song/LaWGPT.git

   cd LaWGPT



   # 创建环境

   conda create -n lawgpt python=3.10 -y

   conda activate lawgpt

   pip install -r requirements.txt

   ```
2. **启动 web ui(可选,易于调节参数)**

   - 首先,执行服务启动脚本:`bash scripts/webui.sh`

   - 其次,访问 http://127.0.0.1:7860 :

   <p align="center">
      <img style="border-radius: 50%; box-shadow: 0 0 10px rgba(0,0,0,0.5); width: 80%;", src="./assets/demo/example-03.jpeg">

   </p>

   

3. **命令行推理(可选,支持批量测试)**


   - 首先,参考 `resources/example_infer_data.json` 文件内容构造测试样本集;
   
   - 其次,执行推理脚本:`bash scripts/infer.sh`。其中 `--infer_data_path` 参数为测试样本集路径,如果为空或者路径出错,则以交互模式运行。

注意,以上步骤的默认模型为 LaWGPT-7B-alpha ,如果您想使用 LaWGPT-7B-beta1.0 模型:

- 由于 [LLaMA](https://github.com/facebookresearch/llama) 和 [Chinese-LLaMA](https://github.com/ymcui/Chinese-LLaMA-Alpaca) 均未开源模型权重。根据相应开源许可,**本项目只能发布 LoRA 权重**,无法发布完整的模型权重,请各位谅解。

- 本项目给出[合并方式](https://github.com/pengxiao-song/LaWGPT/wiki/%E6%A8%A1%E5%9E%8B%E5%90%88%E5%B9%B6),请各位获取原版权重后自行重构模型。


## 项目结构

```bash    

LaWGPT

├── assets    # 静态资源

├── resources # 项目资源

├── models    # 基座模型及 lora 权重

│   ├── base_models

│   └── lora_weights

├── outputs   # 指令微调的输出权重

├── data      # 实验数据

├── scripts   # 脚本目录

│   ├── finetune.sh # 指令微调脚本

│   └── webui.sh    # 启动服务脚本

├── templates # prompt 模板

├── tools     # 工具包

├── utils

├── train_clm.py  # 二次训练

├── finetune.py   # 指令微调

├── webui.py      # 启动服务

├── README.md

└── requirements.txt

```


## 数据构建

本项目基于中文裁判文书网公开法律文书数据、司法考试数据等数据集展开,详情参考[中文法律数据源汇总(Awesome Chinese Legal Resources)](https://github.com/pengxiao-song/awesome-chinese-legal-resources)。

1. 初级数据生成:根据 [Stanford_alpaca](https://github.com/tatsu-lab/stanford_alpaca#data-generation-process) 和 [self-instruct](https://github.com/yizhongw/self-instruct) 方式生成对话问答数据
2. 知识引导的数据生成:通过 Knowledge-based Self-Instruct 方式基于中文法律结构化知识生成数据。
3. 引入 ChatGPT 清洗数据,辅助构造高质量数据集。

## 模型训练

LawGPT 系列模型的训练过程分为两个阶段:

1.  第一阶段:扩充法律领域词表,在大规模法律文书及法典数据上预训练 Chinese-LLaMA
2.  第二阶段:构造法律领域对话问答数据集,在预训练模型基础上指令精调

### 二次训练流程

1. 参考 `resources/example_instruction_train.json` 构造二次训练数据集
2. 运行 `scripts/train_clm.sh` 

### 指令精调步骤

1. 参考 `resources/example_instruction_tune.json` 构造指令微调数据集
2. 运行 `scripts/finetune.sh` 

### 计算资源

8 张 Tesla V100-SXM2-32GB :二次训练阶段耗时约 24h / epoch,微调阶段耗时约 12h / epoch

## 模型评估

### 输出示例

<details><summary>问题:酒驾撞人怎么判刑?</summary>

![](assets/demo/demo07.jpeg)

</details>

<details><summary>问题:请给出判决意见。</summary>

![](assets/demo/example-05.jpeg)

</details>

<details><summary>问题:请介绍赌博罪的定义。</summary>

![](assets/demo/example-06.jpeg)

</details>

<details><summary>问题:请问加班工资怎么算?</summary>

![](assets/demo/example-04.jpeg)

</details>

<details><summary>问题:民间借贷受国家保护的合法利息是多少?</summary>

![](assets/demo/example-02.jpeg)

</details>

<details><summary>问题:欠了信用卡的钱还不上要坐牢吗?</summary>

![](assets/demo/example-01.jpeg)

</details>

<details><summary>问题:你能否写一段抢劫罪罪名的案情描述?</summary>

![](assets/demo/example-03.jpeg)

</details>


### 局限性

由于计算资源、数据规模等因素限制,当前阶段 LawGPT 存在诸多局限性:

1. 数据资源有限、模型容量较小,导致其相对较弱的模型记忆和语言能力。因此,在面对事实性知识任务时,可能会生成不正确的结果。
2. 该系列模型只进行了初步的人类意图对齐。因此,可能产生不可预测的有害内容以及不符合人类偏好和价值观的内容。
3. 自我认知能力存在问题,中文理解能力有待增强。

请诸君在使用前了解上述问题,以免造成误解和不必要的麻烦。


## 协作者

如下各位合作开展(按字母序排列):[@cainiao](https://github.com/herobrine19)、[@njuyxw](https://github.com/njuyxw)、[@pengxiao-song](https://github.com/pengxiao-song)、[@WNJXYK](https://github.com/WNJXYK)

指导老师:李宇峰、郭兰哲、涂威威(<img src="https://github.com/pengxiao-song/LaWGPT/assets/47233927/3ae2cfac-f2b0-4383-8a7e-0252d8558aed" width="10%" >),由南京大学机器学习与数据挖掘研究组(
<img src="assets/logo/lamda.png" width="8%"> &nbsp;
)支持


## 免责声明

请各位严格遵守如下约定:

1. 本项目任何资源**仅供学术研究使用,严禁任何商业用途**2. 模型输出受多种不确定性因素影响,本项目当前无法保证其准确性,**严禁用于真实法律场景**3. 本项目不承担任何法律责任,亦不对因使用相关资源和输出结果而可能产生的任何损失承担责任。


## 问题反馈

如有问题,请在 GitHub Issue 中提交。

- 提交问题之前,建议查阅 FAQ 及以往的 issue 看是否能解决您的问题。
- 请礼貌讨论,构建和谐社区。

协作者科研之余推进项目进展,由于人力有限难以实时反馈,给诸君带来不便,敬请谅解!


## 致谢

本项目基于如下开源项目展开,在此对相关项目和开发人员表示诚挚的感谢:

- Chinese-LLaMA-Alpaca: https://github.com/ymcui/Chinese-LLaMA-Alpaca
- LLaMA: https://github.com/facebookresearch/llama
- Alpaca: https://github.com/tatsu-lab/stanford_alpaca

- alpaca-lora: https://github.com/tloen/alpaca-lora

- ChatGLM-6B: https://github.com/THUDM/ChatGLM-6B



此外,本项目基于开放数据资源,详见 [Awesome Chinese Legal Resources](https://github.com/pengxiao-song/awesome-chinese-legal-resources),一并表示感谢。





## 引用



如果您觉得我们的工作对您有所帮助,请考虑引用该项目。



```plain

@misc{lawgpt,

      title={LawGPT: A Chinese Legal Knowledge-Enhanced Large Language Model}, 

      author={Zhi Zhou and Jiang-Xin Shi and Peng-Xiao Song and Xiao-Wen Yang and Yi-Xuan Jin and Lan-Zhe Guo and Yu-Feng Li},

      year={2024},

      eprint={2406.04614},

      archivePrefix={arXiv},

      primaryClass={cs.CL}

}

```