关注我们 - 数字罗塞塔计划 -
# 大比武2024
本篇是参加“华夏伟业”杯第二届档案信息化公司业务与技术实力大比武(简称“大比武 2024”)的投稿文章,来自燕山大学档案馆(校史馆)的实际项目,由河北科怡科技开发有限公司联合南京兰征信息科技有限公司与燕山大学共同研究实施。除了河北科怡的宁飞之外,燕山大学档案馆的柯铁军对本文也有重要贡献。
在数字化时代背景下,随着ChatGPT的出现,档案管理正经历着一场由数字化到智能化的革命。RAG(Retrieval-Augmented Generation,检索增强生成)技术和LLM(Large Language Model,大语言模型)的结合,为档案领域的智慧应用场景开拓提供了新的动力。
一、RAG技术概述
Retrieval-Augmented Generation
RAG技术的提出是为了解决预训练语言模型在处理知识密集型NLP(Natural Language Processing,自然语言处理)任务时面临的几个关键挑战:
1、知识存储有限
尽管LLM能够存储大量知识,但毕竟样本数据依然有限,只能记住训练数据中的信息。如果遇到模型训练时未见过的知识点,模型可能无法准确回答。
2、知识更新困难
随着时间推移,外部知识在不断更新和变化。但预训练模型完成训练,它的知识就固定了,无法轻易更新。要更新这些模型的知识,通常需要重新进行大规模的预训练,既耗时又耗资源。
3、事实性和准确度
在生成式任务中,如问答或文章生成,模型可能会生成看似流畅但实际上不准确或不真实的内容即幻觉问题,因为它们缺乏对特定事实的直接访问。
4、解释性和透明度
用户通常希望理解模型的决策过程,特别是在涉及事实信息时。纯粹的预训练模型通常很难提供生成决策的依据或解释。
RAG技术需要解决的核心问题
RAG+LLM的核心思想是将LLM的生成能力与信息检索技术相结合,以此提高模型在处理各种问答任务时的准确性和可靠性。其核心组成通常包括三个阶段:检索(Retrieval)、生成(Generation)和增强(Augmentation),具体包括:
检索(Retrieval)
在用户提出问题或执行任务时,RAG系统首先从一个外部的知识库中检索与问题相关的信息。这一步骤涉及到将问题转化为查询,然后使用一个检索模型(如向量空间模型)来查找最相关的文档或信息片段。
生成(Generation)
检索到的信息会与原始问题一起作为输入提供给LLM。这些信息为LLM提供了额外的上下文,帮助模型更好地理解问题,并生成更准确、更丰富的回答或内容。
增强(Augmentation)
RAG框架还包括对检索和生成过程的优化和调整,以提高整个系统的性能。这可能包括对检索结果的重排序、上下文的压缩、模型的微调等。
总的来说,RAG利用外部知识库来补充和增强LLM的内在知识,使模型能够处理那些超出其训练数据范围或需要最新信息的任务。
以上可视作基于端到端训练方法的朴素RAG,后续又发展出高级RAG,以及基于模块化架构的模块化RAG。
朴素RAG由于检索源与知识库文本信息不匹配以及检索结果中含有无关知识等问题,在知识密集型任务上的表现不佳;为此,学界提出了包括检索预处理、检索、检索后处理和生成的四阶段高级RAG,通过信息对齐和过滤两个维度改进检索增强架构;模块化RAG将整个RAG流程分解为多个独立的模块,包括但不限于检索、生成、增强和适配器等模块,每个模块负责处理特定的子任务。
LLM通过RAG得到了领域知识扩展,提高了在特定领域的任务表现,领域化落地难度和成本也进一步降低,这也为档案领域落地LLM应用提供了契机。
二、档案智能问答系统的构建
Composition
RAG技术可以帮助LLM更好地理解和回应查档用户的问询,提供更加准确和相关的信息,使得用户既能享用LLM的生成能力,又能保证档案知识的本地安全。
基于RAG+LLM来构建档案智能问答系统是档案智能化应用的重要方向之一。基于RAG+LLM的档案智能问答系统原理图如下所示:
上述原理图可以分为三大模块,一共15个步骤(step1-step15)。
1、档案知识库的构建(step1-step6)
数据收集
数据收集是构建档案知识库的第一步。在收集数据阶段,RAG系统需要注意以下问题:确保收集的数据是高质量的,没有错误、偏见或不准确的信息。数据质量直接影响系统生成答案结果的准确性。
数据预处理
收集到的原始数据往往包含噪声和不规范性,需要进行预处理以提高数据质量。数据清洗工作量大,需要借助数据处理工具和大量人工参与。同样,数据预处理质量非常关键,严重影响后续大模型的问答效果。
文本切分
将档案长文本切分成适合模型处理的小块,同时保证每个文本块的语义独立性和完整性。在处理档案数据时,根据文本的结构和内容特性来制定切分规则尤为重要。切分点应当尽可能地尊重自然语言中的语义单位,如句子、段落或意群。确保每个片段在语义上是完整的,避免将一个意群切割成两个部分,造成档案信息的丢失或不连贯。
2、检索模块的构建(step7-step11)
检索模块是连接档案知识库与用户查询的关键环节。向量数据库的构建、检索算法的选择和优化是确保高效准确检索的核心技术。
向量数据库构建
向量数据库的构建是检索模块的基础。在这个过程中,我们需要将档案知识库中的所有文本块转换为向量表示。这一步通常需要选择一个合适的向量化模型,例如bge-large、bce或text2vec等,用来将文本块转换为固定维度的向量表示,再将其存储在向量数据库中,以便后续的检索操作。
检索算法选择
检索算法的选择是决定检索模块性能的关键。常见的检索算法包括BM25、TF-IDF和混合检索算法等。这些算法各有特点,例如BM25算法能够根据文档的长度对检索结果进行加权,TF-IDF算法则能够根据词频和文档频率对检索结果进行加权。
3、生成答案(step13-step15)
生成答案模块负责将检索到的档案信息整合成用户可理解的回答。查询重构、结果重排序和语义理解是生成答案的关键步骤。
查询重构
查询重构旨在提升检索效果。用户提出的原始查询可能包含一些模糊或不精确的信息,查询重构的目的就是通过扩展用户问题的语义,使其更加精确,或者与知识库中切分的文本长度对齐,从而提高检索的相关性。
结果重排序
向量数据库与向量化的查询文本进行相似度计算匹配,可能会返回多个候选答案,需要将这些候选答案按照相似度进行重排序,以选出最靠前的几个答案。
内容生成
将排序后最靠前的几个结果输入给LLM,让其利用生成能力根据用户问题生成答案。可能涉及多种优化方法,如端到端微调或对比学习等。
除了上述三大模块,特别要提一下的是安全访问控制。在档案系统设计过程中,需要根据用户角色分配不同的访问权限,并通过身份认证确保数据访问安全。同样,在档案智能问答系统构建过程中,我们利用RAG技术结合原有的档案系统角色权限,限定某个角色所能访问的知识库范围,从而实现了基于角色权限访问控制的RAG+LLM技术应用。
三、实施效果
Effects
在燕山大学档案馆(校史馆)的实际项目开发过程中,我们构建了基于RAG+LLM的档案智能问答系统,取得了良好的应用效果。
硬件配置
CPU:Intel Xeon Gold 6271C *2
GPU:Nvidia Geforce RTX 4090*4
内存:256G
软件配置
基座大模型:零一万物Yi-34b-chat
向量化模型:bge-large
开发框架:LangChain
系统测试结果(3倍速录屏):
请在公众号 数字罗塞塔计划 中观看
四、结 语
Epilogue
档案智能问答系统是我们尝试大模型融入档案智能化应用的一次初步尝试,它涉及档案知识库的构建、检索模块的开发、答案的生成以及安全访问控制等多个方面。从实际测试的效果来看,RAG技术和大模型的结合为档案问答系统的智能化提供了强大的支持。由于文章篇幅所限,我们只能对一些基本原理和系统框架进行粗浅的介绍,实际开发过程中碰到的困难和挑战远远不止这些,希望以后有机会再分享给大家。同时我们也在不断探索和优化解决方案,以期实现更好的应用效果。
数字罗塞塔计划公众号致力于成为全国领先的档案信息化知识分享与交流平台。独木难成林,众创力量大!作为中立的第三方平台,我们将努力为广大档案信息化从业企业提供一个展示自身业务与技术专业水平的舞台,共同推动档案行业的进步与发展。
关注我们 - 数字罗塞塔计划 -