ChatLaw:基于LLaMA微调的法律大模型

文章目录

  • 动机
  • 数据组成
  • 模型框架
  • 模型评估

北大团队发布首个的中文法律大模型落地产品ChatLaw,为大众提供普惠法律服务。模型支持文件、语音输出,同时支持法律文书写作、法律建议、法律援助推荐。
github地址:https://github.com/PKU-YuanGroup/ChatLaw
Chatlaw官网(体验地址):https://www.chatlaw.cloud/
论文地址:ChatLaw: Open-Source Legal Large Language Model with Integrated External Knowledge Bases

动机

ChatGPT带来的LLM浪潮席卷了各个垂直领域,如医疗,金融等领域,各种垂直领域的大模型层出不穷,如BloombergGPT、本草、华佗、ChatMed等,在法律领域也有LawGPT、lawyer-llama两款初步的开源模型。而这些大模型的做法是使用特定领域的数据来对大模型进行微调或二次预训练,但由于在一些具体业务中对准确性的要求,这种做法并不能真正获得令人满意,较为准确结果,也不足以支撑场景落地的需求。在涉及法律问题时,即使是像GPT4这样最先进的模型,也会出现幻觉和胡说八道的现象。因此,LLM+知识库相结合的技术是迫切被需要的,因为有些问题是适合让类似拥有智能的大模型去回答的,但有些问题是需要传统的硬性检索来做的,让“模型做模型的事,检索做检索的事”,共同组成一个大模型产品。

数据组成

数据主要由论坛、新闻、法条、司法解释、法律咨询、法考题、判决文书组成,随后经过清洗、数据增强等来构造对话数据。详细的参考数据在ChatLaw训练数据demo,以下是数据样例:

questionanswerSubject
如果一个人故意驾车向人群冲撞,但没有造成重大损失,会被怎样处罚?依据刑法条文第一百一十四条,如果一个人故意以危险方法危害公共安全,但尚未造成严重后果,将被处三年以上十年以下有期徒刑。因此,如果这个人故意驾车向人群冲撞,但没有造成重大损失,将被处以三年以上十年以下有期徒刑。法律咨询
如果一个邮政工作人员私自开拆了一个邮件,但只是为了查看其中的收件人地址,而并未泄露邮件内容,是否构成什么罪行?构成私自开拆、隐匿、毁弃邮件、电报罪。本罪客观方面有两个特点:一是必须有私自开拆、隐匿、毁弃邮件、电报的行为。所谓私自开拆,是指非法擅自开拆他人邮件、电报,使封缄失效的行为,合法行为不在此限;二是必须有利用职务之便的行为,才能构成本罪。即使只是查看收件人地址也违反了邮政工作人员的职责,属于利用职务之便的行为,因此构成本罪。法律概念
如果某个工人每天工作10小时,那么每周工作时间超过了规定吗?根据《劳动法》第三十六条,每日工作时间不得超过8小时,因此每周工 作时间将超过44小时,超过了规定。法律咨询
甲公司注册资金为120万元,主营建材,乙厂为生产瓷砖的合伙企业。甲公司为稳定货源,决定投资30万元入伙乙厂。对此项投资的效力,下列表述哪一项是正确的? A)须经甲公司股东会全体通过方为有效 B)须经甲公司董事会全体通过方为有效 C)须经乙厂全体合伙人同意方为有效 D)无效按照最新《公司法》的规定,本题无答案。《公司法》第15条规定,公司可以向其他企业投资;但是,除法律另有规定外,不得成为对所投资企业的债务承担连带责任的出资人…法律选择题

数据集构建过程

  1. 从大量原始的法律知识构建数据集。
    主要来自法律新闻、社交媒体内容和法律论坛的讨论。这些数据提供了各式各样的现实世界的法律文本,提供了各种法律话题和讨论的洞见。
  2. 基于法律法规和司法解释构建数据集。
    为了确保法律知识的全面覆盖,将相关法律法规和司法解释纳入数据集中,确保数据集里反映了法律框架并提供准确的消息。
  3. 爬取真实的法律咨询数据。
  4. 从司法考试多项选择题构建数据集。
    作者创建了一套专门为司法考试设计的多项选择题,这些问题涵盖了各种法律主题以及检测用户对法律法规的理解。

上述数据经过严格的清洗过程,例如过滤短文本以及不连贯的回复,确保数据集中只含有高质量文本。除此之外,还使用了ChatGPT进行辅助构造,能基于现有的数据生成一些补充说明。

模型框架

  • ChatLaw:LLaMA模型 + LoRA微调。
  • 关键词LLM:微调一个关键词LLM模型,使模型能根据用户查询获取合适的若干关键词。
  • Law LLM:使用了93w个国家法律判例训练数据训练模型,利用embedding信息,根据算法1(下图)获取与用户查询匹配相应的法律条文和司法解释。

为什么要先找关键词,再进行匹配?

根据用户询问,从垂直领域的文档中抽取相关信息/文本是非常重要的,最初尝试了传统的Mysql/Elasticsearch做索引,效果不行;又尝试了Bert-Embedding+Faiss做向量cosine相似度,取top-k个相关法规,但这一套往往抽不准,尤其用户输入是模糊的时候。

因此提出先找关键字,再用关键字的向量Vector,微调LLM来抽取关键词。

关键词LLM

具体流程如下:
在这里插入图片描述
输入:法规数据库,用户问题

  1. 使用关键字LLM从用户询问中抽取关键字,把每个关键字通过Bert得到K个vector;将用户的输入送到Bert模型,得到整个句子的Query向量

  2. 对每个关键字得到关键字+用户Query的组合vector
    v i = k i ∥ k i ∥ + α s ∥ s ∥ v_i=\frac{k_i}{\left\|k_i\right\|}+\alpha \frac{s}{\|s\|} vi=kiki+αss

  3. 除以 ∣ ∣ k i ∣ ∣ ||k_i|| ∣∣ki∣∣应该代表对向量进行归一化, α \alpha α 对应关键词的超参权重;

  4. 对每个法规,计算法规 l j l_j lj 与刚刚得到的 v i v_i vi 的相似性 s j s_j sj

  5. 最后选择top-k个相似法规。

Law LLM

用937k个国家法律案例来训练Bert,使得能够通过用户query,找到相应到法规与判决解释,结果如下。
在这里插入图片描述

流程总结:首先利用关键词LLM从用户查询中输出若干法律相关的关键词。基于 LawLLM 和 算法1,找到与这些关键词语义向量topk个最相近的法律条文作为领域知识。将用户查询和领域知识投入到微调过的法律语言大模型中,获取最终输出。
在这里插入图片描述
ChatLaw法律大模型目前开源的仅供学术参考的版本底座为姜子牙-13B、Anima-33B,使用大量法律新闻、法律论坛、法条、司法解释、法律咨询、法考题、判决文书等原始文本来构造对话数据。

LLM模型

ChatLaw-13B,此版本为学术demo版,基于姜子牙Ziya-LLaMA-13B-v1训练而来。

  • 优点:得益于姜子牙的优秀中文能力以及对数据清洗、数据增强过程的严格要求,在逻辑简单的法律任务上表现优异。
  • 缺点:对逻辑复杂的法律问答效果不佳,需要用更大参数的模型来解决。

ChatLaw-33B,此版本为学术demo版,增加了训练数据,且基于Anima-33B训练而来。

  • 优点:逻辑推理能力大幅提升。
  • 缺点:因为Anima的中文语料过少,导致问答时常会出现英文数据。

匹配模型

ChatLaw-Text2Vec,使用93w条判决案例做成的数据集基于BERT训练了一个相似度匹配模型,可将用户提问信息和对应的法条相匹配,例如:

“请问如果借款没还怎么办。”

“合同法(1999-03-15): 第二百零六条 借款人应当按照约定的期限返还借款。对借款期限没有约定或者约定不明确,依照本法第六十一条的规定仍不能确定的,借款人可以随时返还;贷款人可以催告借款人在合理期限内返还。”

两段文本的相似度计算为0.9960

基于可商用的模型训练而成的版本会作为后续产品内部接入的版本,对外不开源,可以在这里进行开源版本模型的试用。

模型评估

收集了十年来的全国司法考试题目,并编制了一个测试数据集,包含2000个问题及其标准答案,以衡量模型处理法律多项选择题的能力。 然而,发现模型的准确率普遍较低。在这种情况下,仅仅比较准确率似乎没有什么意义。
因此,建立了一个基于Elo积分的模型竞赛评估机制,受到电子竞技比赛匹配机制和Chatbot Arena设计的启发,以更有效地评估模型处理法律多项选择题的能力。
在这里插入图片描述
结论:
(1)引入与法律相关的问答和法规数据可以在一定程度上提高模型在多项选择题上的性能;
(2)添加特定任务类型的训练可以显著提高模型在该类型任务上的性能。例如,ChatLaw模型表现优于GPT-4的原因是我们使用了大量的多项选择题作为训练数据;
(3)法律多项选择题需要复杂的逻辑推理,因此具有更多参数的模型通常表现更好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/666458.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

备份RK35XX 设备的ubuntu根文件系统的方法

简介 我们使用 RK35XX 提供的SDK包制作了一个完整的 ubuntu 镜像,烧录到设备中,会在设备中安装很多我们需要的软件,运行的一些自己写的脚本和业务程序,当我们有很多台设备时,不可能每台都一个个去安装,此时我们就需要一个工具来备份当前设备的根文件系统,然后再放到 SD…

2023年上-未来几年我要做什么

1月份,离职。 2月份,春节休假回来,中旬去参加了一个月的瑜伽培训,学会了倒立、鹤蝉。。。。 3月份,瑜伽培训结束,开始收拾房子,并调研各类项目。 4月份,参与了朋友的区块链项目 …

Leetcode—203. 移除链表元素【简单】

2024每日刷题(一零九) Leetcode—203. 移除链表元素 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(n…

嵌入式linux移植篇之kernel

Linux的启动过程概述 Linux内核的启动过程是一个复杂而又有序的流程,涉及到硬件初始化、引导加载、内核初始化等多个步骤。以下是Linux内核的典型启动流程: BIOS/UEFI阶段: 电源启动:计算机通电后,BIOS(…

#从零开始# 在深度学习环境中,如何用 pycharm配置使用 pipenv 虚拟环境

为Python项目创建虚拟环境 在深度学习环境和一般python环境中安装pipenv基本一致,只需要确认好pipenv指定的python版本即可,安装pipenv前,可以通过python --version来确认安装版本 快捷键:crtl alt S 查看interpreter,查看所有…

聊聊比特币----比特币地址

⽐特币地址是⼀个标识符(帐号),包含27-34个字母数字拉丁字符(0,O,I除外)。地址可以以QR码形式表⽰,是匿名的,不包含关于所有者的信息。 地址⽰例:14qViLJfdG…

【51单片机】开发板和单片机的介绍(2)

前言 大家好吖,欢迎来到 YY 滴单片机系列 ,热烈欢迎! 本章主要内容面向接触过单片机的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的…

[Python] 什么是KMeans聚类算法以及scikit-learn中的KMeans使用案例

什么是无监督学习? 无监督学习是机器学习中的一种方法,其主要目的是从无标签的数据集中发现隐藏的模式、结构或者规律。在无监督学习中,算法不依赖于任何先验的标签信息,而是根据数据本身的特征和规律进行学习和推断。无监督学习…

论文分享:利用对象存储进行高性能数据分析

本次分享的是慕尼黑工业大学(TUM) Dominik Durner,Viktor Leis,和 Thomas Neumann 于 2023 年 7 月发表在 PVLDB(Volume 16 No.11) 的论文: Exploiting Cloud Object Storage for High-Performance Analyt…

PyQT——蓝牙收发数据(上位机案例-小车控制器)

实现功能 由于本人水平有限,仅用了最简单的进行实现,主要功能: 蓝牙设备扫描以及刷新蓝牙连接蓝牙数据发送蓝牙数据接收 页面实现效果 代码目录结构 代码案例 代码已经全部添加注释,故不再做单独解释。 Main.py ble_contr…

大数据信用报告在线查询平台哪个好?

随着大数据技术在金融风控的运用,大数据信用越来越被人熟知,由于线下没有查询大数据信用的地方,想要查询大数据信用报告只有在线上查询,那大数据信用报告在线查询平台哪个好呢?本文贷你一起去了解市面上比较好的三个平台。 大数据…

【Springcloud篇】学习笔记九(十五、十六章):Cloud Alibaba介绍、Nacos服务注册、服务配置中心

第十五章_Cloud Alibaba简介 1.出现SpringCloud Alibaba的原因 SpringCloud Netflix项目进入维护模式 技术的发展 2.SpringCloud Alibaba简介 2.1是什么 2.2能干嘛 2.3去哪下 阿里巴巴中文文档下载网站: spring-cloud-alibaba/README-zh.md at 2022.x alibaba…

学成在线:采用XXL-JOB任务调度方案使用FFmpeg处理视频转码业务

分片技术方案 概述 XXL-JOB并不直接提供数据处理的功能,它只会给所有注册的执行器分配好分片序号,在向执行器下发任务调度的同时携带分片总数和当前分片序号等参数 设计作业分片方案保证多个执行器之间不会查询到重复的任务,保证任务不会重复执行 任…

由于误删了node依赖,导致这后面的一系列操作

文章目录 1. 事发原因:Delete select files2. Delete select files引起的cross-env报错3. cross-env是node_modules的依赖工具4. 那么Delete selected files到底是什么操作5. 重装node_modules依赖包,也报错6. 报错:cb() never called!7. 算了…

JSR303参数校验-SpringMVC

文章目录 JSR303技术标准简介JSR303标准几个具体实现框架validation-apijakarta.validation-apihibernate-validatorspring-boot-starter-validation Spring Validationjavax.validation.constraints包下提供的注解org.hibernate.validator.constraints包扩展的注解校验注解默认…

内衣洗衣机是不是鸡肋?好用的小型洗衣机全自动推荐

随着大家工作的压力越来越大,下了班之后只能想躺平,在洗完澡之后看着还需要手洗的内衣裤真的很头疼。有些小伙伴还有会攒几天再丢进去洗衣机里面一起,而且这样子是非常不好的,用过的内衣裤长时间不清洗容易滋生细菌,而…

无人机遥感技术在地质灾害监测应用分析,多旋翼无人机应急救援技术探讨

地质灾害是指在地球的发展演变过程中, 由各种自然地质作用和人类活动所形成的灾害性地质事件。给人民的生命和财产安全带来严重威胁,因此有必要开展地质灾害预测预报、灾害应急和风险区划 遥感技术的快速发展为我们提供了一种获取实时灾害信息的可靠手段…

陪女朋友学习计算机二级之数据库笛卡尔积和自然连接

数据库中的基本关系运算 交 和数学中的交集类似,但是需要相同的表模式 如果俩个表有相同的关系模式如表1为(ID,姓名,学号)表2为ID,姓名,学号) 表1 表2 交之后就可以变成 并 和数…

水面漂浮物监测识别摄像机

水面漂浮物监测识别摄像机是一种用于监测水域表面上漂浮物的设备,可以帮助环保部门或海洋研究机构快速发现和识别水中的浮游物,有助于保护水质和生态环境。这种摄像机通常具有以下功能和特点: 高分辨率摄像头:配备高清晰度摄像头&…