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

发布时间:

LaWGPT 是一系列基于中文法律知识的开源大语言模型。 该系列模型在通用中文基座模型(如 Chinese-LLaMA、ChatGLM 等)的基础上扩充法律领域专有词表、大规模中文法律语料预训练,增强了大模型在法律领域的基础语义理解能力。在此基础上,构造法律领域对话问答数据集、中国司法考试数据集进行指令精调,提升了模型对法律内容的理解和执行能力。 这是一个本地模型,不同于知识库中法律小助手(因为法律小助手调用的是gpt3.5) 这个大模型使用的是指令精调(Instructional Fine-Tuning)是一种用于改进GPT模型的技术,它与Prompt-tuning(提示精调)有一些相似之处,但两者并不完全相同。 Prompt-tuning是一种在训练GPT模型时引入人类编写的提示(prompt)来指导生成结果的方法。通过给定一个明确的提示,模型可以更好地理解任务要求,并生成相关的响应。这种方法可以用于各种任务,如问答、翻译、摘要等。 而指令精调是在Prompt-tuning的基础上进一步改进的技术。指令精调通过将人类编写的指令(instructions)嵌入到模型中,提供更加详细和具体的指导,以指导模型生成更准确和有针对性的输出。这些指令可以是对输入数据的特定解释,或者是对期望输出的详细描述。通过引入指令,模型可以更好地理解任务上下文和要求,并生成更符合预期的结果。 因此,指令精调可以被视为Prompt-tuning的一种进一步改进,它通过提供更具体的指令来增强模型的能力。这些指令可以在模型训练过程中作为辅助输入,或者在生成时与原始输入一起使用,以帮助模型更好地理解和执行任务。

快速开始

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(可选,易于调节参数)

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

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

  • 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

        模型评估

        输出示例

        问题:酒驾撞人怎么判刑?
        问题:请给出判决意见。
        问题:请介绍赌博罪的定义。
        问题:请问加班工资怎么算?
        问题:民间借贷受国家保护的合法利息是多少?
        问题:欠了信用卡的钱还不上要坐牢吗?
        问题:你能否写一段抢劫罪罪名的案情描述?

        局限性

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

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

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

         

        免责声明:

        本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail: adcenter77@163.com

最后更新时间: 2024-10-11 02:33:30

评论