解读Lawyer LLaMA,延申专业领域大模型微调:数据集构建,模型训练

这篇具有很好参考价值的文章主要介绍了解读Lawyer LLaMA,延申专业领域大模型微调:数据集构建,模型训练。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

解读Lawyer LLaMA,延申自己领域大模型微调:数据集构建,模型训练

项目地址link

自己领域的大模型微调,实现思路大都和这篇文章是一样的,有的是基于LLaMA,或者有的是基于Chinese-LLaMA,或者是其他开源的大模型,本文基于自己训练过程和参考了老刘说NLP中的《也读Lawyer LLaMA法律领域微调大模型:从训练数据、模型训练到实验效果研读》,从模型要达到的结果出发,倒推介绍整个流程,供大家参考,

欢迎大家点赞关注,一起交流

一、模型重点关注的能力

解读Lawyer LLaMA,延申专业领域大模型微调:数据集构建,模型训练

专业领域的大模型应用需要具备三种能力,

1.生成回答精确,没有歧义,在任何一个专业领域,有些仅仅替换一个词就可以影响其中表达的含义,有可能会导致巨大的不同的结果,例如,定金和订金在中文只有一字之差,但它们在合同法中的含义和法律效力却完全不同,
2.理解和区分专业术语,很多概念只出现在对应的专业领域,例如台区,即使是广泛使用的词汇,其含义在不同的专业领域也是不同的,因此要在具体的句子情景中表达出不同的含义,
3.能够识别分析专业场景的实际事件,现实世界中情景总是复杂多样的,模型需要具备法律术语和应用专业领域数据来分析具体问答能力,

为了能够实现这些能力,可以使用LLaMa模型来具体实现这些功能,

1.注入专业领域的知识,收集大量的专业领域原始文本,来让模型进行无监督训练学习。
2.训练学习特定领域的技能,有监督微调模型,教模型如何用适当的知识来解决特定领域的任务。
3.用外部知识进行增强,为了使模型能够更准确和精准回答,另外引入一个信息检索模块,在生成每个回复前,首先利用用户的查询和上下文信息来检索相关的标准信息,然后在这些专业领域的文章基础上做出回答。

二、数据准备

1.预训练语料库

为提升模型在中文专业领域的回答表现,防止模型在学习专业领域数据后灾难性遗忘问题,该工作采用两种语料对LLaMA模型进行持续性训练,

首先在一个普通的多语言语料库上训练模型,以提升模型的中文能力,然后使用另一个专业领域的语料库来增强模型。

(1)多语言通用语料库

由于LLaMA主要是在英语和其他语言语料库进行训练,因此它在理解和生成中文语句方面并不完美,
为了解决这个问题,同时收集中文预训练英文语料库进行记忆重放,以避免灾难性遗忘,
具体的,为构建中文通用语料库,可以从WuDaoCorpora、CLUECorpus2020和维基百科的简体中文版本中抽取文章。
对于英文通用语料,从C4语料库中抽取文章,

(2)中文专业领域语料库

各种途径获取专业领域的数据,并按照专业和来源分类,然后解析专业数据,生成各种专业数据有没有什么比例,解析的格式是按照段落进行分段学习,问答和文本生成有没有什么区别的对待

2.专业领域指令微调数据

(1)通用能力问答公开数据集地址

https://github.com/chaoswork/sft_datasets/tree/master

(2)将专业领域数据进行数据分类构建微调数据集,再细分为多轮对话和单论对话,并使用使用ChatGPT生成回复

为了保证单轮和多轮能力,同时收集单轮和多轮对话能力,同时为了提高生成式的回答准确性,将检索文章添加到提示词中,帮助ChatGPT生成准确的回复,

1)单论问答数据的构造

让chatgpt扮演回答者,回应客户的问题,并在输入提示中,生成的回答应该满足以下要求。
1.正确引用制度条文;
2.正确理解问句含义和制度条文给出有根据的分析;
3.全面回答并分析潜在的可能性;
4.提出适当为问题来挖掘事实以帮助进一步的回答;
5.使用平实的语言;
6.给出初步意见和咨询结论。
输入ChatGPT格式例如:

{
    "instruction": "阅读以下文章:[],请回答:[]",
    "input": "",
    "output": "[答案]"
  }

生成格式如下:
解读Lawyer LLaMA,延申专业领域大模型微调:数据集构建,模型训练

2)多轮问答数据的构造

生成多轮对话,需要设计两个不同的提示词,让ChatGPT分别扮演两个对话着角色,交替使用两个提示,连同对话历史作为ChatGPT的输入
下面是github具体开放的数据例子:
解读Lawyer LLaMA,延申专业领域大模型微调:数据集构建,模型训练
最后收集大约16000个单论和5000个2或3轮对话。

3.外部知识进行检索增强

对于单轮问答,使用文本检索工具选择前3篇相关文章输入到提示词中,
对于多轮问答,假设对话的主题不变,继续使用相同的3篇相关文章
解读Lawyer LLaMA,延申专业领域大模型微调:数据集构建,模型训练
或者不用训练模型,直接使用现成的文本检索框架,请参考我的另一篇博文
文本检索系统
或者使用LangChain地址

三、模型训练

微调开源模型LLaMA的步骤,如下图从S1逐步到S12
解读Lawyer LLaMA,延申专业领域大模型微调:数据集构建,模型训练

可以看到,训练是逐步进行的,并做了系列对比实验
解读Lawyer LLaMA,延申专业领域大模型微调:数据集构建,模型训练

表中显示了模型再不同阶段对NLP任务的表现,其中每个阶段的细节,可以参考上图,(1)~(6)代表不同阶段用于训练LLaMAd的预训练语料或监督微调数据集,(1)为多语言通用语料库,(2)为中文法律语料库,(3)为通用SFT数据集,(4)为司法考试和法律咨询,(5)为多轮法律对话,(6)为多轮法律对话中增加了检索的法律文章。勾号意味着相应的语料库/数据集已在前一阶段使用,而花号意味着该语料库/数据集在当前阶段被用于训练。

1、提高LLaMA的中文表达能力,S0-S1

为提升LLaMA的中文理解和生成能力,在中文通用语料库对LLaMA进行持续的预训练,Chinese-LLaMA采用的是使用汉字扩充词表的方式,
使用英文和中文的混合语料,模型很多复杂的推理能力可能来自于英文的训练,希望模型在持续的预训练中保持这些能力。

2、加入专业领域的知识S4

加入专业领域文本进行预训练,学习专业领域的能力

3、学习推理能力S7

收集专业领域真实场景的问答对,并要求ChatGPT为提供详细的解释,在训练过程中,QA对被视为指令,模型要求给出解释。

4、学习真实回复能力S9

让模型学习到单轮问答和多轮问答数据的能力,为用户的特定查询生成合适的回复。

5、提高模型回复可靠性S12

引入法律条文检索模块,使得模型能够产生可信的回复
这里初步的实验结果表明,即使模型在持续的训练阶段反复学习这些文章,它也不能在生成时正确的使用他们,它也可能引用不相关的法律条文,或者使用语句相似的词来代替一个术语,而这个词在法律领域中的含义是截然不同的意思

这时候,我们需要一个可靠的模型来召回和用户搜索词相关的三条文档,具体的,训练一个检索模型,数据集构成方面,收集一些用户的咨询问题,并要求专业人士为每个问题标注最多3篇必要文章回复,然后训练一个基于RoBERTa或者双塔模型的文本检索模型,该模型在被保留的测试集上可以达到0.85的召recall@1和0.94的recall@5。

并且,该工作还发现,直接将检索的文章和用户的问题串联起来作为新的输入,该模型会倾向于在其响应中引用所提供的文章,而不区分它们是否与当前情景正在相关

四、实验效果

收集不同领域的英文和中文通用任务,包括自然语言推理,情感分析,常识推理,对话问题回答等,测试模型在不同阶段推理表现
解读Lawyer LLaMA,延申专业领域大模型微调:数据集构建,模型训练

首先,比较s0和s1的结果,可以发现LLaMA在C3上获得了+5.3%的准确率;英语常识推理方面,s1在SciQ和PIQA的时的表现也不比s0差。这表明对多语种语料库的预训练可以增强模型对中文的表达能力,而不会牺牲其对英文的表达能力。

其次,比较s2和s3,s7和s9/s8/s6的CMNLI的结果,可以发现s3/s9/s8/s6的模型,经过司法考试的例子和法律咨询的微调,可以更好地处理中文NLI任务,准确率提高到+9.3%。

最后,该模型不能处理英语NLI和情感分析任务。在所有阶段,该模型只能对所有的MRPC实例输出Yes,而当不断地训练LLaMA时,它对SST-2也不能获得明显的改善,猜测这是因为没有足够的英语NLI和情感分析的SFT例子。那么该模型就不能理解这种任务的提示中的指令。

五、总结

大模型微调思路和数据集构建方式大致是如此,实操中发现项目最难的一点在于怎么构建自己的数据,无监督数据量太大,解析起来很费功夫,有监督的数据怎么完美构建等,因此需要数据梳理之处将数据有效分类很重要,
提高模型识别其最核心的结论在于,通过加入检索模块,可以提升问答的可靠性,并且通过引入垂直领域的预巡数据和微调数据,都可以提升其领域性能。但在具体实践中,还需要考虑到领域数据和通用数据的组成情况,以及与下游任务之间的对齐情况。文章来源地址https://www.toymoban.com/news/detail-494991.html

到了这里,关于解读Lawyer LLaMA,延申专业领域大模型微调:数据集构建,模型训练的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 类ChatGPT模型LLaMA的解读与其微调:Alpaca-LoRA/Vicuna/BELLE

    近期,除了研究ChatGPT背后的各种技术细节 不断看论文(至少100篇,100篇目录见此:ChatGPT相关技术必读论文100篇),还开始研究一系列开源模型(包括各自对应的模型架构、训练方法、训练数据、本地私有化部署、硬件配置要求、微调等细节)  本文一开始是作为此文《ChatGPT技术

    2024年02月08日
    浏览(58)
  • 自定义数据集使用llama_factory微调模型并导入ollama

    本文所有操作均在linux系统下完成 参考github的安装命令 参考github,使用以下命令启动LLaMA Factory web页面:(web ui界面只支持单卡运行,如需多卡微调请参考github相关部分) 此外可以选择模型下载源,这里推荐国内用户使用魔搭社区下载渠道。  成功启动后会进入web操作界面:

    2024年04月26日
    浏览(50)
  • Koala:加州大学BAIR团队使用ChatGPT蒸馏数据和公开数据集微调LLaMA模型得到

    自从Meta发布LLaMA以来,围绕它开发的模型与日俱增,比如Alpaca、llama.cpp、ChatLLaMA以及Vicuna等等,相关的博客可以参考如下: 【Alpaca】斯坦福发布了一个由LLaMA 7B微调的模型Alpaca(羊驼),训练3小时,性能比肩GPT-3.5 【llama.cpp】量化130亿参数LLaMA模型的llama.cpp,推理仅需4GB内存

    2024年02月11日
    浏览(46)
  • 部署lawyer-llama

    Git - Downloading PackageGit - Downloading PackageGit - Downloading Package 下载git,wget需要下载一下 (GNU Wget 1.21.4 for Windows), Windows中git bash完全可以替代原生的cmd,但是对于git bash会有一些Linux下广泛使用的命令的缺失,比如wget命令。 在此,以安装wget命令为例,其他命令可以采用相同的

    2024年02月12日
    浏览(37)
  • LLaMA的解读与其微调:Alpaca-LoRA/Vicuna/BELLE/中文LLaMA/姜子牙/LLaMA 2

    近期,除了研究ChatGPT背后的各种技术细节 不断看论文(至少100篇,100篇目录见此:ChatGPT相关技术必读论文100篇),还开始研究一系列开源模型(包括各自对应的模型架构、训练方法、训练数据、本地私有化部署、硬件配置要求、微调等细节)  本文一开始是作为此文《ChatGPT技术

    2024年02月17日
    浏览(44)
  • 大模型LLaMA和微调LLaMA

    LLaMA的模型架构:RMSNorm/SwiGLU/RoPE/Transformer/1-1.4T tokens,和GPT一样都是基于Transformer这个架构。 1.1对transformer子层的输入归一化 与Transformer在每个子层输出后LayerNorm不同的是,LLaMA是对每个子层的输入使用RMSNorm进行归一化,计算如下: 1.2使用SwiGLU替换ReLU 【 Relu激活函数 】Relu(x)

    2024年02月07日
    浏览(39)
  • 基于中文金融知识的 LLaMA 系微调模型的智能问答系统:LLaMA大模型训练微调推理等详细教学

    项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域) :汇总有意义的项目设计集合,助力新人快速实战掌握技能,助力用户更好利用 CSDN 平台,自主完成项目设计升级,提升自

    2024年02月14日
    浏览(46)
  • 类ChatGPT大模型LLaMA及其微调模型

    LLaMA的模型架构:RMSNorm/SwiGLU/RoPE/Transformer/1-1.4T tokens,和GPT一样都是基于Transformer这个架构。 1.1对transformer子层的输入归一化 与Transformer在每个子层输出后LayerNorm不同的是,LLaMA是对每个子层的输入使用RMSNorm进行归一化,计算如下: 1.2使用SwiGLU替换ReLU 【 Relu激活函数 】Relu(x)

    2024年02月09日
    浏览(37)
  • 卷起来!Dr. LLaMA:通过生成数据增强改进特定领域 QA 中的小型语言模型,重点关注医学问答任务...

    大家好,最近突然发现了一篇在专门应用于医学领域的LLaMA,名为Dr.LLaMA(太卷了太卷了),就此来分享下该语言模型的构建方法和最终的性能情况。 论文 :Dr. LLaMA: Improving Small Language Models in Domain-Specific QA via Generative Data Augmentation 地址 :https://arxiv.org/pdf/2305.07804.pdf 代码 :

    2024年02月11日
    浏览(48)
  • LLM:LLaMA模型和微调的Alpaca模型

    简单了解[LeCun狂赞:600刀GPT-3.5平替! 斯坦福70亿参数「羊驼」爆火,LLaMA杀疯了] 论文原文:https://arxiv.org/abs/2302.13971v1 模型就是用的transformer的decoder,模型设计的不同点在于: 1 Position Embedding :RoPE旋转位置编码rotary-embedding 删除了绝对位置嵌入,而是在网络的每一层添加了

    2024年02月10日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包