Title: ChatLaw: Open-Source Legal Large Language Model with Integrated External Knowledge BasesPDF: https://arxiv.org/pdf/2306.16092v1.pdfCode: https://github.com/pku-yuangroup/chatlaw
导读 本文介绍了一种名为Chat-Law的开源法律领域大语言模型。相较于像BloombergGPT和FinGPT这样利用其独特数据积累在金融领域取得进展的专有模型,中国法律领域缺乏类似的大型语言模型来推动数字化转型。鉴于数据质量的重要性,本文精心设计了一个法律领域的微调数据集。
此外,为了克服法律数据筛选中的模型幻觉问题,在参考数据检索中,引入了一种将向量数据库检索与关键词检索相结合的方法,以有效减少仅依赖于向量数据库检索的不准确性。
最后,本文提出了一种自注意力方法,以增强大模型克服参考数据中的错误的能力,进一步优化模型层面的幻觉问题,并提高大型模型的问题解决能力。
引言 人工智能的不断扩展和发展为大规模语言模型的蓬勃发展提供了肥沃的土壤。诸如ChatGPT、GPT4、LLaMA、Falcon、Vicuna和ChatGLM等模型在各种传统任务中展示了卓越的性能,为法律领域释放了巨大的潜力。然而,显而易见的是,获取高质量、相关和最新的数据对于大语言模型的发展至关重要。 因此,开发有效和高效的开源法律语言模型变得至关重要。
在人工智能领域,大规模模型的发展已经渗透到医疗、教育和金融等各个领域:BloombergGPT、FinGPT、Huatuo、ChatMed。这些模型展示了它们在解决复杂任务和生成有价值的见解方面的实用性和影响力。然而,法律领域以其固有的重要性和对准确性的需求而成为需要专门的法律模型进行研究和开发的领域。
在涉及法律问题时,即使是像GPT4这样最先进的模型也经常出现幻觉和毫无意义的输出现象。人们倾向于认为,使用特定领域知识对模型进行微调将产生满意的结果。然而,事实上,在早期的法律LLM(LawGPT)中并非如此,仍然存在许多幻觉和不可靠的输出。
我们最初意识到需要一个中国法律LLM。然而,在当时,没有商业可用的中国模型超过130亿参数的规模。因此,我们在OpenLLAMA的基础上进行了扩展,该模型是一个商业上可行的模型,通过扩展中文词汇表并纳入MOSS等数据源的训练数据,我们创建了一个基础的中文语言模型。随后,我们加入了专门的法律数据来训练我们的法律模型——ChatLaw。
本文的主要贡献如下:
有效的幻觉缓解方法:本文提出了一种方法来解决幻觉问题,通过增强模型的训练过程并在推理过程中引入四个模块:“咨询”、“参考”、“自我建议”和“回应”。通过引入参考模块,将垂直模型和知识库整合在一起,将领域特定知识注入模型,并利用知识库中的准确信息,减少幻觉的发生。 基于LLM的法律特征词提取模型:我们训练了一个模型,从用户的日常语言中提取法律特征词。该模型能够识别具有法律意义的词语,从而有效识别和分析用户输入中的法律语境。 基于BERT的法律文本相似度计算模型:我们训练了一个模型,用于衡量用户的日常语言与由93万个相关法律案例文本组成的数据集之间的相似度。这使得可以创建一个向量数据库,用于高效检索相似的法律文本,进一步促进分析和参考。 构建中国法律考试测试数据集:我们精心设计了一个专门用于测试中国法律领域知识的数据集。此外,我们设计了一个ELO竞技场评分机制,用于比较不同模型在法律多项选择题中的性能。 此外,我们观察到在该领域中,一个单一的通用法律LLM可能无法在所有任务中表现最佳。因此,我们针对不同的场景(如多项选择题、关键词提取和问答)训练了不同的模型。 为了处理这些模型的选择和部署,我们使用一个大型LLM作为控制器, 采用HuggingGPT提供的方法。该控制器模型根据每个用户的请求动态确定要调用的特定模型,确保针对给定任务使用最合适的模型。
数据集 构建数据集时,我们采用了多种方法,以确保其全面性和多样性。数据集的构成方法如下:
收集大量原始法律数据:包括搜集法律新闻、社交媒体内容和来自法律行业论坛的讨论。这些来源提供了多样化的真实法律文本,提供了对各种法律主题和讨论的洞察。 基于法律法规和司法解释的构建:为了确保对法律知识的全面覆盖,我们将相关法律法规和司法解释纳入数据集。这确保了数据集反映了法律框架,并提供准确和最新的信息。 爬取真实的法律咨询数据:我们利用现有的法律咨询数据集检索真实的法律咨询数据。这使得数据集包含了用户常见遇到的真实法律场景和问题,丰富了数据集的实际法律示例。 构建针对司法考试的多项选择题:我们创建了一套专门针对司法考试设计的多项选择题。这些问题涵盖了各种法律主题,测试用户对法律原则的理解和应用。 通过整合这些不同来源和构建方法的数据,我们的数据集涵盖了广泛的法律语境,确保所开发的模型能够有效地理解和处理各种法律场景。
一旦收集到这些数据组成部分,数据集将经过严格的清洗过程。这包括过滤掉短小和不连贯的回答,确保只包含高质量和有意义的文本。 此外,为了增强数据集,我们利用ChatGPT API进行辅助构建,根据现有数据生成补充数据。
训练过程 ChatLAM整体框架 Key LLM是一种语言模型,用于从用户提出的咨询问题中提取关键词。而Law LLM则提取可能涉及用户咨询的法律术语。最终的ChatLaw LLM是一个输出用户回答的终极语言模型。它涉及相关法律条款,并利用自身的摘要和问答功能为用户生成咨询建议。
ChatLAW LLM 为了训练ChatLaw LLM,我们基于Ziya-LLaMA-13B进行了微调,使用了低秩适应(LoRA)方法。此外还引入了Self-Suggestion角色(与知识库结合),进一步减轻了模型产生虚构结果的问题。训练过程使用了多个A100 GPU,并通过deepspeed来进一步降低训练成本。
Key LLM 关于Key LLM,我们将垂直特定的LLM与知识库相结合来创建ChatLaw产品,从知识库中根据用户查询检索相关信息非常关键。我们最初尝试了传统的软件开发方法,如MySQL和Elasticsearch进行检索,但结果不理想。因此,我们尝试使用预训练的BERT模型进行嵌入表示,使用Faiss等方法计算余弦相似度,并提取与用户查询相关的前k个法律法规。
然而,当用户的问题模糊不清时,这种方法往往产生的结果不够理想。因此,我们的目标是从用户查询中提取关键信息,并利用该信息的向量表示来设计一个算法以提高匹配准确性。
由于大模型在理解用户查询方面具有显著优势,我们对一个LLM进行了微调,以从用户查询中提取关键词。在获取多个关键词之后,我们采用上述Algorithm 1来检索相关的法律条款。
Law LLM 我们使用包含937,000个国家案例法律示例的数据集训练了一个BERT模型,以从用户查询中提取相应的法律条款和司法解释。这个法律LLM模型是ChatLaw产品的一个重要组成部分。
下图2显示了Key LLM和Law LLM的结果。
实验结果 评估大型语言模型(LLM)的性能一直是一个挑战。为此,我们收集了十年来的国家司法考试问题,并编制了一个包含2000个问题及其标准答案的测试数据集,以评估模型处理法律多项选择题的能力。
然而,我们发现模型的准确率普遍较低。在这种情况下,仅仅比较准确率似乎没有太大意义。因此,我们建立了一个模型竞赛的评估机制,采用Elo积分制,灵感来自电子竞技的配对机制和Chatbot Arena的设计,以更有效地评估模型处理法律多项选择题的能力。
在法律相关问答测试中,ChatLaw优于GPT4 通过对上述实验结果的分析,我们可以得出以下观察结果:
引入法律相关的问答和法规数据在一定程度上可以提高模型在多项选择题上的表现。 针对具体任务类型进行训练的添加显著提高了模型在这些任务上的性能。例如,ChatLaw模型优于GPT-4的原因是我们使用了大量的多项选择题作为训练数据。 法律多项选择题需要复杂的逻辑推理,因此参数较多的模型通常表现更好。 结论 本文提出了一种使用法律领域知识开发的法律大型语言模型ChatLaw。ChatLaw将LLM与向量知识数据库相结合,显著缓解了LLM常见的幻觉问题。 本文稳定模型处理策略使得ChatLaw能够解决各种法律领域的问题。此外,本文还发布了一个用于法律多项选择题的数据集,并设计了一个ELO模型排名机制。然而由于基础模型的规模,ChatLaw在逻辑推理和演绎等任务中,其表现并不理想。此外,在加入大量领域特定数据后,还需要进一步研究提高ChatLaw在通用任务中的泛化能力。
关于 ChatLaw 的更多介绍和用法,网上已经有非常多的教程,可自行搜索查看即可。说句题外话,相较于直接训练基础模型而言,做垂直领域应用未来必定是一个非常热门的趋势,CVHub 也会持续跟进,欢迎关注!