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

2024/03 作者:ihunter 0 0

快速开始

  1. 准备代码,创建环境

    # 下载代码
    git clone git@github.com: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(可选,易于调节参数)


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

    • 首先,参考 resources/example_infer_data.json 文件内容构造测试样本集;

    • 其次,执行推理脚本:bash scripts/infer.sh。其中 --infer_data_path 参数为测试样本集路径,如果为空或者路径出错,则以交互模式运行。

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

  • 由于 LLaMA 和 Chinese-LLaMA 均未开源模型权重。根据相应开源许可,本项目只能发布 LoRA 权重,无法发布完整的模型权重,请各位谅解。

  • 本项目给出合并方式,请各位获取原版权重后自行重构模型。

 

项目结构

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)。

  1. 初级数据生成:根据 Stanford_alpaca和 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


赞(0) 更多分享

上篇: 零一万物Yi-34B-Chat 微调模型及量化版开源
下篇: Apache SeaTunnel 及 Web 功能部署指南