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.rhkb.cn/news/251289.html

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

相关文章

红黑树(RBTree)

文章目录 红黑树的概念红黑树的性质红黑树结点定义红黑树的插入红黑树的验证参考源码 除了AVL树,红黑树也是被广泛使用的平衡二叉树。两者都解决了二叉搜索树的平衡问题。 关于AVL树,之前博客有介绍: AVL树 红黑树的概念 红黑树&#xff0c…

【c++】vector用法详解

vector用法详解 vector定义vector容器的构造函数vector容器内元素的访问1.通过下标 [ ]来访问2.通过迭代器来访问3.通过范围for来访问 vector常用函数的用法解析1.size()2.clear()3.capacity()4.reserve()5.resize()6.shrink_to_fit()7.pop_back()8.push_back()9.erase()10.in…

使用潜在向量进行检测、屏蔽和重建以进行遮挡的面部表情识别

Latent-OFER: Detect, Mask, and Reconstruct with Latent Vectors for Occluded Facial Expression Recognition 一、创新点 (1)提出了一种与表情相关的特征提取器,它使用空间注意力为特定的面部特征分配更高的权重,从而使我们能…

【Linux】统信服务器操作系统V20 1060a-AMD64 Vmware安装

目录 ​编辑 一、概述 1.1 简介 1.2 产品特性 1.3 镜像下载 二、虚拟机安装 一、概述 1.1 简介 官网:统信软件 – 打造操作系统创新生态 统信服务器操作系统V20是统信操作系统(UOS)产品家族中面向服务器端运行环境的,是一款…

Python 轻量级定时任务调度:APScheduler

简述 APscheduler (Advanced Python Scheduler),作用为按指定的时间规则执行指定的作业。提供了基于日期date、固定时间间隔interval 、以及类似于Linux上的定时任务crontab类型的定时任务。该框架不仅可以添加、删除定时任务,还可以将任务存储到数据库…

【Docker】WSL(Windows Subsystem for Linux)常见命令解释说明以及简单使用

欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是《Docker容器》序列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对…

使用gcc/g++查看C语言预处理,编译,汇编,连接,以及动静态库的区分

文章目录 使用gcc/ggcc如何完成编译后生成可执行文件?预处理(进行宏替换)编译(生成汇编)汇编(生成机器可识别代码)连接(生成可执行文件或库文件)最后记忆小技巧 在这里涉及到一个重要的概念&…

Pandas.DataFrame.cumsum() 累积和 详解 含代码 含测试数据集 随Pandas版本持续更新

关于Pandas版本: 本文基于 pandas2.2.0 编写。 关于本文内容更新: 随着pandas的stable版本更迭,本文持续更新,不断完善补充。 传送门: Pandas API参考目录 传送门: Pandas 版本更新及新特性 传送门&…

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

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

智能决策的艺术:探索商业分析的最佳工具和方法

文章目录 一、引言二、商业分析思维概述三、数据分析在商业实践中的应用四、如何培养商业分析思维与实践能力五、结论《商业分析思维与实践:用数据分析解决商业问题》亮点内容简介作者简介目录获取方式 一、引言 随着大数据时代的来临,商业分析思维与实…

C语言指针的几种用途

先看题目,写一个fun函数,统计一个字符串中某个字符出现的次数,以及这个字符第一次出现的位置。 看起来很简单,似乎几行就可以搞定,但是写出来之后,才发现代码怎么这么长!程序里多处使用了指针&…

Elasticsearch(ES) 简述请求操作索引下文档 增删查改操作

上文 Elasticsearch(ES) 创建带有分词器规则的索引 带着大家创建了一个带有分词功能的索引 老规矩 我们启动一下ES服务 本文 我们就来说说 关于文档的操作 我们先来添加一个文档 就像数据库加一条数据一样 这里 并不需要指定什么表结构和数据结构 它的文档结构是无模式的 添…

PyTorch 2.2 中文官方教程(十七)

(Beta)使用缩放点积注意力(SDPA)实现高性能 Transformer 原文:pytorch.org/tutorials/intermediate/scaled_dot_product_attention_tutorial.html 译者:飞龙 协议:CC BY-NC-SA 4.0 注意 点击这…

从领域外到领域内:LLM在Text-to-SQL任务中的演进之路

导语 本文介绍了ODIS框架,这是一种新颖的Text-to-SQL方法,它结合了领域外示例和合成生成的领域内示例,以提升大型语言模型在In-context Learning中的性能。 标题:Selective Demonstrations for Cross-domain Text-to-SQL会议&am…

Jenkins任意文件读取漏洞(CVE-2024-23897)复现

Jenkins 有一个内置的命令行界面CLI,在处理 CLI 命令时Jenkins 使用args4j 库解析 Jenkins 控制器上的命令参数和选项。此命令解析器具有一个功能,可以将参数中后跟文件路径的字符替换为文件内容 ( expandAtFiles)。具有Overall/Read权限的攻击者可以读取…

成都爱尔林江院长解读儿童青少年为什么一定要进行医学验光配镜

根据国家卫健委数据显示:我国青少年儿童总体近视率为52.7%、高度近视人口超3000万。近视学生中,有10%为高度近视,且占比随年级升高而增长。 近视孩子之多,孩子视力发展备受关注。戴镜进行近视防控十分必要,且眼镜不可随意验配! 成…

PAT-Apat甲级题1007(python和c++实现)

PTA | 1007 Maximum Subsequence Sum 1007 Maximum Subsequence Sum 作者 CHEN, Yue 单位 浙江大学 Given a sequence of K integers { N1​, N2​, ..., NK​ }. A continuous subsequence is defined to be { Ni​, Ni1​, ..., Nj​ } where 1≤i≤j≤K. The Maximum Su…

论文阅读-MapReduce

论文名称:MapReduce: Simplified Data Processing on Large Clusters 翻译的效果不是很好,有空再看一遍,参照一下别人翻译的。 MapReduce:Simplified Data Processing on Large Clusters 中文翻译版(转) - 阿洒 - 博客园 (cnblogs.com) 概…

仰暮计划|“如果你想看到世界上最完美的笑容,你就要多一点儿时间跟老人在一起,老人笑了,你就看到了。”

敬老从心开始,助老从我做起 时值假期,我们有了时间,决定好好践行孝亲敬老的传统美德。会计学院红心使者敬老院访问团在7月6日上午在河南省郑州市新郑市“华信老年公寓”进行实践活动。 一早来到敬老院,老人们都已经开始择菜&…

某赛通电子文档安全管理系统 PolicyAjax SQL注入漏洞复现

0x01 产品简介 某赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产,对电子文档进行全生命周期防护,系统具有透明加密、主动加密、智能…