但愿世间不纷争,何惜法典卷生尘——北大团队开源法律大模型chatLaw助力法律垂直领域研究发展

news2024/10/7 18:21:12

今天看到一个比较热门的项目就是来自于北大研究团队刚刚开源的chatLaw法律领域数据开发构建的大模型,官方项目地址在这里,如下所示:

 目前已经收货2.1k的star量还是很不错的了。

官方提供的学术报告文章地址在这里,如下所示:

 感兴趣的话可以仔细看下。

官方同时也给提供了可以在线体验使用的Demo网站,地址在这里,如下所示:

 使用实例如下所示:

 简单地使用了一下还好,感兴趣的胡也可以体验一下。

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

 数据实例如下所示:

sentence1sentence2score
股权转让合同的双方就转让对价未达成合意,导致已签订的股权转让协议不具有可履行性的,应认定该转让协议不成立。有限责任公司的股东会决议确认了有关股东之间股权转让的相关事宜,但对转让价款规定不明确,当事人不能达成补充协议的,讼争股东之间的股权转让合同是否成立?1
租赁房屋消防要求不达标,能否导致合同目的不能实现,合同是否当然无效的问题。原审认为,二被告作为承租人租赁的是一般房屋,双方对租赁物了解,标的物是符合合同要求的。租赁房屋存在与相邻建筑防火间距不足,疏散通道的宽度不够的问题。该标的物的相邻建筑防火间距和疏散通道宽度均达不到国家标准。承租人取得租赁房屋后从事宾馆经营,提升了消防要求,但阻隔合同目的实现不是必然的,不支持合同无效。 再审认为,该租赁房屋在建成后,一直作为服务性经营场所,本案提及的消防问题,程度不一的存在。但未发现以前有行政管理部门禁止其经营的记录。本次公安消防的通知是整改,并不是禁止经营。公安部2012年颁布的《建设工程消防监督管理规定》强制消防要求达标的范围,是指在50米以下的建筑物。也就是该房屋作为租赁物建立合同关系,不违反国家的强制性规定。参照最高人民法院[2003]民一他字第11号函复《关于未经消防验收合格而订立的房屋租赁合同如何认定其效力》的相关意见,认定双方签订的租赁合同成立并有效。1

数据实例如下所示:

Examples

请问夫妻之间共同财产如何定义?

  1. 最高人民法院关于适用《婚姻法》若干问题的解释(三)(2011-08-09): 第五条 夫妻一方个人财产在婚后产生的收益,除孳息和自然增值外,应认定为夫妻共同财产。
  2. 最高人民法院关于适用《婚姻法》若干问题的解释(二)的补充规定(2017-02-28): 第十九条 由一方婚前承租、婚后用共同财产购买的房屋,房屋权属证书登记在一方名下的,应当认定为夫妻共同财产。
  3. 最高人民法院关于适用《婚姻法》若干问题的解释(二)的补充规定(2017-02-28): 第二十二条 当事人结婚前,父母为双方购置房屋出资的,该出资应当认定为对自己子女的个人赠与,但父母明确表示赠与双方的除外。当事人结婚后,父母为双方购置房屋出资的,该出资应当认定为对夫妻双方的赠与,但父母明确表示赠与一方的除外。

请问民间借贷的利息有什么限制

  1. 合同法(1999-03-15): 第二百零六条 借款人应当按照约定的期限返还借款。对借款期限没有约定或者约定不明确,依照本法第六十一条的规定仍不能确定的,借款人可以随时返还;贷款人可以催告借款人在合理期限内返还。
  2. 合同法(1999-03-15): 第二百零五条 借款人应当按照约定的期限支付利息。对支付利息的期限没有约定或者约定不明确,依照本法第六十一条的规定仍不能确定,借款期间不满一年的,应当在返还借款时一并支付;借款期间一年以上的,应当在每届满一年时支付,剩余期间不满一年的,应当在返还借款时一并支付。
  3. 最高人民法院关于审理民间借贷案件适用法律若干问题的规定(2020-08-19): 第二十六条 出借人请求借款人按照合同约定利率支付利息的,人民法院应予支持,但是双方约定的利率超过合同成立时一年期贷款市场报价利率四倍的除外。前款所称“一年期贷款市场报价利率”,是指中国人民银行授权全国银行间同业拆借中心自2019年8月20日起每月发布的一年期贷款市场报价利率。

代码实现如下所示:

from sentence_transformers import SentenceTransformer,  LoggingHandler, losses, models, util
from sentence_transformers.util import cos_sim


model_path = "your_model_path"
model = SentenceTransformer(model_path).cuda()

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

sentence2 = "请问如果借款没还怎么办。"

encoded_sentence1 = model.encode(sentence1)

encoded_sentence2 = model.encode(sentence2)

print(cos_sim(encoded_sentence1, encoded_sentence2))

# tensor([[0.9960]])

模型权重文件如下所示:

 官方一共开发构建了ChatLaw-13B和ChatLaw-33B两款模型。

其中:

ChatLaw-13B,此版本为学术demo版,基于姜子牙Ziya-LLaMA-13B-v1训练而来,中文各项表现很好,但是逻辑复杂的法律问答效果不佳,需要用更大参数的模型来解决。

Ziya-LLaMA-13B-v1项目地址在这里,如下所示:

 可以看到:有不同参数量级的开源。可以根据自己的实际需要自行选择下载即可。

 ChatLaw-33B,此版本为学术demo版,基于Anima-33B训练而来,逻辑推理能力大幅提升,但是因为Anima的中文语料过少,导致问答时常会出现英文数据。

Anima官方项目地址在这里,如下所示:

 第一个开源的基于QLoRA的33B中文大语言模型 the First QLoRA based 33B fully open-source Chinese LLM
为什么33B模型很重要?QLoRA是个Game Changer?
之前大部分开源可finetune的模型大都是比较小的模型7B或者13B,虽然可以在一些简单的chatbot评测集上,通过finetune训练有不错的表现。但是由于这些模型规模还是有限,LLM核心的reasoning的能力还是相对比较弱。这就是为什么很多这种小规模的模型在实际应用的场景表现像是个玩具。如这个工作中的论述:chatbot评测集比较简单,真正比较考验模型能力的复杂逻辑推理及数学问题上小模型和大模型差距还是很明显的。
因此我们认为QLoRA 的工作很重要,重要到可能是个Game Changer。通过QLoRA的优化方法,第一次让33B规模的模型可以比较民主化的,比较低成本的finetune训练,并且普及使用。我们认为33B模型既可以发挥大规模模型的比较强的reasoning能力,又可以针对私有业务领域数据进行灵活的finetune训练提升对于LLM的控制力。

官方readme也给了详细的使用介绍,如下所示:

Backbone模型选择
Anima模型基于QLoRA开源的33B guanaco训练了10000 steps。训练使用一个H100 GPU。

思考逻辑:本工作主要为了验证QLoRA训练方法的有效性,因此选择了基于QLoRA的Guanaco 33B finetune训练,这个训练更多的是增强模型的中文能力。Assume模型的基础logical reasoning和Knowledge能力已经足够。
训练数据选择
使用Chinese-Vicuna项目开放的训练数据集guanaco_belle_merge_v1.0进行finetune训练。

思考逻辑:按照QLoRA Appendix B.4和Table 9中的Grid Search的结论:对于QLoRA finetune,training sample量不一定越大越好。10000个steps是一个ROI比较优的size。因此我们希望选择一个不小于10000个steps的数据集。Belle 10M数据集似乎太大了,不确定数据质量如何。时间有限,先选择guanaco_belle_merge_v1.0。后边会进一步更系统性的测试更多的数据集和数据质量筛选的效果。
感谢:Chinese-Vicuna项目、Belle项目、GuanacoDataset的贡献。
超参选择
基于成本ROI平衡的考虑,没有做太多的grid search,基本的思路是follow QLoRA paper 的结论,因为QLoRA做了相对比较详尽的超参Grid Search实验:

Batch size: 16 (QLoRA Appendix B.4和Table 9)
Max steps: 10000 (QLoRA Appendix B.4和Table 9),更多的steps和更大的数据集的训练在进一步实验中,后续会持续更新。
Learning rate: 1e-4 (QLoRA Appendix B.4和Table 9)
LoRA r=64, alpha=16 (QLoRA Appendix B.2)
source_max_len=512, target_max_len=512,需要保证大部分的training sample没有truncate,能完整的把信息训练到模型中,根据脚本中的估计,512大概可以覆盖大部分的样本长度。
如何训练
重现Anima的模型训练过程:使用以下步骤可以重现Anima 33B模型(单卡80GB H100或双卡 40GB A100均测试过可运行):

# 1. install dependencies
pip install -r requirements.txt
# 2. 
cd training
./run_Amina_training.sh
基于Anima finetune训练其他model:

# 1. install dependencies
pip install -r requirements.txt
# 2. 
cd training
./run_finetune_raining_based_on_Anima.sh
注:可以修改run_finetune_raining_based_on_Anima.sh中的--dataset和--dataset_format参数使用其他训练数据dataset。

多卡训练
由于使用Hugging Face Accelerate,天然支持多卡训练。 我们测试过双卡40GB的A100,可以直接运行。

使用代码如下所示:

# imports
from peft import PeftModel
from transformers import GenerationConfig, LlamaForCausalLM, LlamaTokenizer
import torch

# create tokenizer
base_model = "timdettmers/guanaco-33b-merged"
tokenizer = LlamaTokenizer.from_pretrained(base_model)
	
# base model
model = LlamaForCausalLM.from_pretrained(
        base_model,
        torch_dtype=torch.float16,
        device_map="auto",
    )
    
# LORA PEFT adapters
adapter_model = "lyogavin/Anima33B"

model = PeftModel.from_pretrained(
        model,
        adapter_model,
        #torch_dtype=torch.float16,
    )
model.eval()
	
# prompt
prompt = "中国的首都是哪里?"
inputs = tokenizer(prompt, return_tensors="pt")
	
# Generate
generate_ids = model.generate(**inputs, max_new_tokens=30)
print(tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0])
	
# output: '中国的首都是哪里?\n中国的首都是北京。\n北京位于中国北部,是中国历史悠'

chatLaw整体流程如下所示:

 作者发现增加了训练数据,做成了ChatLaw-33B,逻辑推理能力大幅提升。说明大模型的突破点还是在于增加模型的参数量才是最关键的。

后面有时间再继续仔细研究下。

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

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

相关文章

API接口设计不合理?个人和公司都有问题

前言 在软件产品或项目开发过程中,往往涉及到大量API接口的开发任务。而一个接口的诞生如果是令人费解的、痛苦折磨的以及有严重后遗症的,究其根本原因还在于设计API接口的时候不够清晰、合理以及缺乏长远考虑。我依据多位同事的问答、实际工作的经验和…

【rsync】远程同步,快速增量备份

rsync远程同步 1.rsync远程同步1.1 rsync概述1.2 下行同步1.3 远程文件同步总结 2. 搭建rsync远程文件同步2.1 搭建rsync远程下行同步2.1.1 配置rsync服务器端(同步源)2.1.2 配置rsync客户机(发起端) 2.2 免交互配置2.3 rysnc认证…

水电站运行数据3D可视化展示方便管理运维

水电站是现代能源体系中的重要组成部分,对于保障国家能源安全和经济发展具有重要的意义。然而,由于水电站的建设和管理涉及到大量的技术和专业知识,许多人对水电站的运行和维护存在许多疑惑和困惑。为了解决这些问题,我们引入了全…

OpenShift 4 - 可观测性之 OpenShift Logging - Loki(附视频)

《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在支持 OpenShift 4.12 OpenShift Logging Operator 5.7.2 Loki Operator 5.7.2 的环境中验证 文章目录 OpenShift 基于 Loki 的日志架构安装配置基于 Loki 的日志环境安装 OpenShift Logging Operator 和…

工地能耗监测系统

随着全球气候变化的影响日益严重,环保意识逐渐深入人心,绿色建筑和节能减排成为了建筑行业的热门话题。而在建筑工地中,能耗监测成为了一项不可或缺的任务。为了更好地实现能耗监测,工地能耗监测系统应运而生。本文将从以下几个方…

每日一练 | 华为认证真题练习Day72

1、Eth-Trunk两端的负载分担模式可以不一致。 A. 对 B. 错 2、如下图所示的网络,交换机使用机接口和路由器的子接口对,则以下哪个配置可以实现这种需求? A. interface Vlanif10 ip address 10.0.12.1 255.255.255.0 # interface Gigabit…

在Rust中使用torch------day1环境配置Yolov8推理

现在不管什么专业,貌似多多少少都得和深度学习扯上点关系才好写文章(水文章).其中最常用的深度学习框架应该是tensorflow,pytorch这些python的三方库,既然最近在学Rust那就来借机讲讲torch的Rust绑定—tch-rs 其实tch实际上是基于libtorch的封装,而不是pytorch.因此使用起来如…

云原生——什么是云原生数据库?

❄️作者介绍:奇妙的大歪❄️ 🎀个人名言:但行前路,不负韶华!🎀 🐽个人简介:云计算网络运维专业人员🐽 前言 突然间,云原生数据库就火了。根据IDC《2021年下半…

WinForm中使用AnyCAD控件

一、添加DLL程序集 AnyCAD.Foundation.Net.dll AnyCAD.Presentation.Net.dll AnyCAD.Exchange.Net.dll 二、初始化控件 1.首先创建一个窗体 2.在窗体上放置一个Panel用来放置三维控件 3.初始化控件 完整代码如下: using AnyCAD.Presentation; using System; …

Generalized Category Discovery(论文翻译)

Generalized Category Discovery 摘要1.导言2.相关工作3.广义类发现3.1 我们的方法 图1.我们提出一个新的设置:“广义类别发现”及其解决方法。我们的设置可以简洁地描述为:给定一个子集具有类标签的数据集,对数据集中所有未标记的图像进行分…

【嵌入式Qt开发入门】如何使用Qt进行绘图——QPainter 绘图

绘图与图表在嵌入式里有的比较多,尤其是图表,我们常在股票里看到的“图表折线/曲线 图/饼状图等”都可以用 Qt 的图表来实现。绘图和图表的内容本章主要介绍绘图和图表的基本操作,以简单的例子呈现绘图与图表的用法,目的就是快速入…

抖音怎么私信发名片

抖音怎么私信发名片,抖音私信卡片制作教程来了,视频版教程#新媒体运营工具#软件#抖音消息卡片 hello,大家,我是百收网SEO,今天给大家说一下个人号自动回复卡片,相比企业号自动回复卡片,它的优势…

MATLAB | 终于找到了修改图例图标的方法(可以自己设计图例啦?)

讲一点扒MATLAB底裤的事情叭,就是之前写的有一些绘图函数,比如阴影柱状图,想要把图例里的图标进行修改让其也带着阴影,我采取的是直接绘制一些会检测图例框移动的阴影图标来冒充图例的图标,那么有没有办法真正的自定义…

如何轻松应对广泛存在开源“0Day”

跟不少安全人员讨论过一个很通俗的话题 作为网安从业者最讨厌的是什么? 不同的人给了很多不同的答案 有的人说: 但更多的人都在说: “零日漏洞”(zero-day)又叫零时差攻击,是指被发现后立即被恶意利用的安全漏洞。通俗地讲&…

QScintilla自制代码编辑器系列(1)编译库文件与运行测试例子

1.下载工程源码 我本人机器上的QT是6.4 可以下载最新的代码 https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.14.0/QScintilla_src-2.14.0.zip 2. 编译生成文件 无需改动可以顺利生成库文件 3. 运行例子 1)拷贝头文件 将整个Qsci文件夹拷…

面试官:你的项目有什么亮点?我:解决了JS脚本加载失败的问题!

前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 web前端面试题库 VS java后端面试题库大全 面试官:你的项目有什么亮点?解决了什么问题? 你:嗯...... 面试官&#…

7.3 【Linux】磁盘的分区、格式化、检验与挂载

想在系统中新增一颗磁盘时,需要做: 1.对磁盘进行分区,以创建可用的partition; 2.对该partition进行格式化(format),以创建系统可用的filesystem; 3.可对刚刚创建好的filesystem进行检验; 4.…

Acrel-5000重点用能单位能耗在线监测系统在湖南三立集团的案例分析

安科瑞 崔丽洁 摘要:根据《重点用能节能办法》(国家发展改革委等第七部委2018年15号令)、《重点用能单位能耗在线监测系统推广建设工作方案》(发改环资[2017]1711号)和《关于加速推进重点用能单位能耗在线监测系统建设…

介绍几种OPTIONS检测的方法

概述 日常的VOIP开发中,OPTIONS检测是常用的网络状态检测工具。 OPTIONS原本是作为获取对方能力的消息,也可以检测当前服务状态。正常情况下,UAS收到OPTIONS心跳,直接回复200即可。 与ping不同的是,OPTIONS检测不仅…

前后端分离开发

目录 前后合开发(不推荐) 前后端分离开发(主流) 项目开发的基本步骤 接口文档的管理平台--YApi 前后合开发(不推荐) 沟通成本高分工不明确不便于管理不便于扩展 前后端分离开发(主流&…