2.3检索增强生成技术
RAG(Retrieval-AugmentedGeneration)技术是一种结合了信息检索(Retrieval)和文本生
成(Generation)的自然语言处理(NLP)方法。核心思想是将传统的检索技术与现代的自然语言
生成技术相结合,以提高文本生成的准确性和相关性。它旨在通过从外部知识库中检索相关信息来
辅助大型语言模型(如GPT系列)生成更准确、可靠的回答。
在RAG技术中,整个过程主要分为三个步骤如图2.2所示:索引(Indexing)、检索
(Retrieval)和生成(Generation)。首先,索引步骤是将大量的文档或数据集合进行预处理,将
其分割成较小的块(chunk)并进行编码,然后存储在向量数据库中。这个过程的关键在于将非结
构化的文本数据转化为结构化的向量表示,以便于后续的检索和生成步骤。接下来是检索步骤,它
根据输入的查询或问题,从向量数据库中检索出与查询最相关的前k个chunk。这一步依赖于高效
的语义相似度计算方法,以确保检索到的chunk与查询具有高度的相关性。最后是生成步骤,它将
原始查询和检索到的chunk一起输入到预训练的Transformer模型(如GPT或BERT)中,生成最
终的答案或文本。这个模型结合了原始查询的语义信息和检索到的相关上下文,以生成准确、连贯
且相关的文本。
RAG的概念和初步实现是由DouweKie、PatrickLewis和EthanPere等人在2020年首次
提出的。他们在论文《Retrieval-augmentedgenerationforknowledge-intensivenlptasks》
中详细介绍了RAG的原理和应用,随后谷歌等搜索引擎公司已经开始探索如何将RAG技术应用到搜
索结果的生成中,以提高搜索结果的准确性和相关性。在医疗领域,RAG技术可以帮助医生快速检
索医学知识,生成准确的诊断建议和治疗方案。
2.4文本相似度计算
文本相似度计算是自然语言处理(NLP)领域的一个重要研究方向,它旨在衡量两个或多个文
本之间的相似程度。文本相似度计算的原理基于两个主要概念:共性和差异。共性指的是两个文本
之间共同拥有的信息或特征,而差异则是指它们之间的不同之处。当两个文本的共性越大、差异越
小,它们之间的相似度就越高。
文本相似度计算可以根据不同的分类标准进行分类。首先基于统计的方法分类,这种方法主要
关注文本中词语的出现频率和分布,通过统计信息来计算文本之间的相似度。常见的基于统计的方
法有余弦相似度、Jaard相似度等。其次是基于语义的方法分类,这种方法试图理解文本的含义
和上下文,通过比较文本的语义信息来计算相似度。常见的基于语义的方法有基于词向量的方法
(如Word2Vec、GloVe等)和基于主题模型的方法(如LDA、PLSA等)。最后是基于机器学习的方
法分类,这种方法利用机器学习算法来训练模型,通过模型来预测文本之间的相似度。常见的基于
机器学习的方法有支持向量机(SVM)、神经网络等。
目前,在国内外,文本相似度计算已经取得了丰富的成果。国内方面,清华大学等机构的研究
者提出了基于深度学习的文本相似度计算方法,利用神经网络模型来捕捉文本的深层语义信息,实
现了较高的相似度计算精度。江苏师范大学的研究者提出了利用《新华字典》构建向量空间来做中
文文本语义相似度分析的方法,该方法在中文文本相似度计算方面取得了显著的效果。放眼国外,
Google的研究者提出了Word2Vec算法,该算法将词语表示为高维向量空间中的点,通过计算点之
间的距离来衡量词语之间的相似度。Word2Vec算法在文本相似度计算领域具有广泛的影响。斯坦
福大学等机构的研究者提出了BERT模型,该模型通过大量的无监督学习来捕捉文本的上下文信
息,可以实现高精度的文本相似度计算。BERT模型在多项自然语言处理任务中均取得了优异的表
现。
2.5本章小结
本章主要介绍了本项目中使用的四种关键技术与模型。这些技术主要基于大型语言模型,并且
依赖于RAG技术的原理。介绍了知识抽取技术,它利用先进的自然语言处理技术从文本中提取有意
义的信息和知识,随后讨论了文本处理中所使用的RAG技术,该技术可以显著提高大型语言模型在
专业领域的性能,增强信息检索的准确性和效率。最后探讨了在文本比对过程中所需的相似度计算
方法,这对于评估文本之间的相似程度至关重要。
了解清楚数据获取来源后,进行数据采集,数据采集的方法包括自动化和手动两种方式:
自动化采集:利用编写的Python脚本通过API接口自动从上述数据库和期刊中下载文献和元
数据,部分代码如图3.2所示。这种方法的优点是效率高,可以大量快速地收集数据。使用
BeautifulSoup和Requests库从开放获取的期刊网站爬取数据。
手动采集:通过访问图书馆、研究机构以及联系文章作者等方式获取不易自动下载的资源。虽
然此方法更费时,但有助于获取更全面的数据集,特别是一些最新或尚未公开的研究成果。
将两种方法采集到的文献数据进行汇总,最大范围的将有关电力LCA领域的英文文献进行汇
总,共获得507篇。
最后是将各个途径获取到的文献数据和元数据汇总,进行数据预处理。
采集到的数据需经过清洗和预处理,才能用于后续的分析。
数据预处理的步骤包括:
数据清洗:删除重复的记录,校正错误的数据格式,填补缺失值。
数据整合:将来自不同来源的数据整合到一个统一的格式和数据库中,如表3.1所示,以便进
行进一步的分析。
为了使后续知识库生成更加准确与完善,对文献具体内容进行筛选。例如部分文献中并未提到
所用数据,而是指出所用数据库链接,如图3.3所示,在对该篇文献进行解析后,数据部分就是欠
缺的,最终构建的知识库就不完整,在调用大模型回答相关问题时,极大概率产生幻觉。因此为了
构建更为准确的专业模型,对爬取下来的507篇文献进行筛选,选择包括流程图(system
boundaries)、各单元过程或生产环节的投入(input),产出(output),数据(lifecycle
inventory),以及数据的时间、地点、获取方法、技术细节的文献作为最后应用的数据。核对内容
后的文献数据集共98篇英文文献。