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