CN116910221A - 一种基于相似度检索提升大规模语言模型响应速度的方法 - Google Patents
一种基于相似度检索提升大规模语言模型响应速度的方法 Download PDFInfo
- Publication number
- CN116910221A CN116910221A CN202310995707.XA CN202310995707A CN116910221A CN 116910221 A CN116910221 A CN 116910221A CN 202310995707 A CN202310995707 A CN 202310995707A CN 116910221 A CN116910221 A CN 116910221A
- Authority
- CN
- China
- Prior art keywords
- query
- answer
- knowledge base
- user
- language model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000004044 response Effects 0.000 title claims abstract description 35
- 238000012545 processing Methods 0.000 claims abstract description 10
- 230000008569 process Effects 0.000 claims abstract description 9
- 239000013598 vector Substances 0.000 claims description 23
- 230000008901 benefit Effects 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 6
- 239000003814 drug Substances 0.000 claims description 4
- 230000006870 function Effects 0.000 claims description 4
- 239000013589 supplement Substances 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 238000010924 continuous production Methods 0.000 claims description 3
- 238000003058 natural language processing Methods 0.000 claims description 3
- 238000013135 deep learning Methods 0.000 abstract description 2
- 230000002860 competitive effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/194—Calculation of difference between files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
Abstract
本发明涉及一种基于相似度检索提升大规模语言模型响应速度的方法,用于优化用户在获取答案时的等待时间。该系统由一个问答知识库、一个相似度检索算法以及一个答案生成模块组成。其包括以下步骤:步骤一,建立专有的问答知识库,该库中包含大量的查询和答案对,且能够持续更新和扩充;步骤二,当用户提出查询A时,系统通过相似度检索算法在知识库中寻找出最相似的查询B,若没有找到,则直接将查询A输入大规模语言模型获取回答;若找到且查询A和查询B的含义相同,则将查询B的答案快速返回给用户,从而达到短时间内给予用户一个初步答案;若找到且查询A和查询B的含义有差异,则在返回查询B的答案同时,执行下一步;步骤三:答案生成模块根据查询A和B构造相应的prompt,送给大规模语言模型进行处理,处理后的答案再返回给用户,以提供更为详细、精确的答案。本发明有效地减少了用户在获取答案过程中的等待时间,显著优化了用户体验,同时利用大规模语言模型的深度学习能力,为用户提供了更为精确和丰富的答案。
Description
技术领域
本发明涉及一种优化大规模语言模型响应速度的方法,尤其是涉及一种基于相似度检索提升大规模语言模型响应速度的方法。
背景技术
最近,大型语言模型在多个领域都表现出了显著的应用价值和市场潜力。随着技术的进步和商业模型的创新,大型语言模型和其他类似的大规模语言模型在未来的市场规模将会迅速扩大。但是在当今的用户使用大规模语言模型时,可能会遇到一些性能问题,比如响应速度慢、数据隐私和安全性不够、返回不准确或误导性的信息等,其中响应速度慢非常影响用户体验。大规模语言模型由于其复杂性和所需的计算资源,以及网络问题等都可能有响应延迟的问题,用户可能需要等待较长时间才能得到模型的回应。所以大规模语言模型的响应速度慢可能会导致以下后果:
(1)用户流失:用户在实时对话环境中期望迅速得到回应,长时间等待答复可能会给用户留下模型不可靠或出错的印象,从而降低用户对模型的信任。此外,用户可能需要多次检查他们的设备或重新提交他们的请求,以确保模型正在处理。持续的慢速响应可能导致用户选择其他更快速的服务或解决方案,从而导致用户流失。
(2)效率降低,成本增高:在集成应用中,一个组件的延迟可能会对其他系统或组件产生连锁反应,导致整体性能和效率下降;长时间的计算也会增加服务器的负载和能耗,从而导致运营成本上升
(3)商业机会丧失:在高度竞争的市场中,性能常常是一个关键因素。某些场景,如在线游戏、实时翻译或虚拟助手,需要即时的反馈。慢速响应会限制这些应用的可行性和实用性,同时失去竞争优势。
因此,有必要提出一种方法,能够加快用户获取答案的速度。
发明内容
本发明的目的在于优化大规模语言模型响应速度,提升用户体验,为此提出了一种基于相似度检索提升大规模语言模型响应速度的方法。基于相似度检索提升大规模语言模型响应速度的方法是指利用高维空间的向量表示和近似最近邻检索技术,在预先构建的专有领域知识库中快速找到与输入相似的回应,基于先前的计算和相似性度量来加速响应;为了保持结果的相关性,提供更为详细、精确的答案,再基于用户当前查询和知识库中的相似查询构建prompt,提供给大规模语言模型,处理后的答案再返回给用户。基于相似度检索的方法在很多任务中已经被证明是有效的,例如信息检索、文档分类和推荐系统。在大规模语言模型中,这种方法可以减少每次查询所需的计算量,从而提高响应速度,尤其是在实时或高并发的场景中。
应用该方法可以(1)提升大规模语言模型的计算效率,通过预先存储和索引答案,系统在接收到查询时直接从专有领域知识库中初步检索答案检索;(2)低延迟响应:为时间敏感的应用提供了快速的查询响应,如实时聊天或在线客服;(3)输出稳定性:预存储的答案经过筛选和验证,能确保答案的一致性和可靠性;(4)模块化部署:可以作为一个独立的加速模块,与其他系统或框架轻松集成。综上,本发明在加速和优化大规模语言模型的响应速度方面具有显著优势。
为解决上述问题,很多开发者和研究者正在寻找优化模型性能的方法,包括模型压缩、优化模型结构、数据缓存和预处理数据、并行计算、优化算法、提升硬件资源配置等。在某些情况下,人们也会通过在用户界面设计上进行改进(例如提供实时反馈),来改善用户体验,降低用户对响应速度的敏感度。
为达到上述目的,本发明的构思是:首先建立一个常用问答知识库,包含大量的查询和答案。当用户搜索查询A时,系统首先基于相似度检索在知识库中搜索出一个较为相似的查询B,并将查询B的答案先行快速返回给用户,此时,用户可以快速获得一个大致的答案,避免长时间等待;在返回查询B的答案后,系统将根据查询A重构一个prompt,并将此prompt送给大规模语言模型进行处理。在大规模语言模型处理并返回结果后,系统会将这部分答案返回给用户。这样,用户在得到查询B的答案后还可以获得一个更详细、更精确的答案,而整个过程中用户的等待时间明显减少。
根据上述发明构思,本发明基于相似度检索提升大规模语言模型响应速度的方法包括以下步骤:
步骤一,建立专有领域问答知识库,该库中包含大量的查询和答案对,且能够持续更新和扩充;
步骤二,当用户发出查询A时,系统通过相似度检索算法在知识库中找出最相似的查询B,如果并将查询B的答案快速返回给用户,从而达到短时间内给予用户一个初步答案;如果检索不到相应的查询B,则直接将查询A输入大规模语言模型,返回用户所需答案;如果查询A和查询B含义相同,则结束流程,不需要再进行步骤三。
步骤三:答案生成模块根据查询A和B构造相应的prompt,送给大规模语言模型进行处理,处理后的答案再返回给用户,以提供更为详细、精确的答案。
优选的,所述步骤一包括:
步骤十一、选定知识库的范围。首先明确知识库的目标用户和目的,调查和分析潜在用户的需求,确定知识库将包含哪些主题。这可以是某一特定领域,如医学、计算机科学等,也可以是更广泛的通识知识。
步骤十二、收集查询和答案。根绝所选定的领域,确定查询和答案对的来源。收集查询和答案的主要数据来源可以是:已有的文档或数据库:这可以包括公司内部的文档,公开的文献,或者在线的知识库;在线社区:如问答网站;人工收集:通过专业人士、志愿者等手动进行问答对的收集和整理。对于已有的文档或数据库,可以使用自然语言处理技术进行信息提取。信息提取可以包括命名实体识别、主题建模、文本分类等。对于在线社区,可以合法使用爬虫来收集数据。
步骤十三、收集到的查询和答案对组织并结构化。使用哈希函数、文本匹配算法等方法来检测和移除重复数据;去除无意义的、冗余的数据,确保知识库的质量;移除文本中的HTML、XML标签、特殊字符、额外的空格、无关的URL等,移除或替换不合适的、冒犯性的或敏感的内容;将文本转换为小写、修正常见的拼写错误、统一同义词;确保所有数据都遵循统一的格式。例如,每个查询后跟一个答案,或使用特定的分隔符分隔查询和答案。
步骤十四、生成问答对,分配qa_id。对数据进行分条,查询和对应的答案通过qa_id一一对应。
步骤十五、知识库中的查询编码和索引构建以及答案存储。
优选地,所述步骤十五包括对知识库中的查询进行编码,和对知识库中的答案进行存储。其中,最关键的是对查询进行编码和建立索引。首先,将知识库中的所有查询转化为稠密向量,可以使用预训练的词嵌入模型对文档中的每个词进行向量化,然后对这些向量取平均,获得文档的向量表示,也可以使用预训练的语言模型来获得文档或段落的向量表示。接下来基于Faiss对知识库建立索引,使用Faiss对知识库建立索引是一个相对简单但非常强大的方法,这使得在大量文档中进行实时的相似度搜索成为可能。下面是基于Faiss对知识库建立索引的详细技术步骤:(1)安装和引入Faiss;(2)构建Faiss索引,根据文档向量建立索引。对于大型数据集,可以使用压缩索引或其他类型的索引以节省空间并加速查询。查询所对应的答案,可以存储在数据库中,根据上一步所获取的查询B的qa_id,从数据库中取出对应的答案,并立马返回给用户。为了减少索引所占的存储空间,最大程度加速索引过程,在构建索引时,只需要存储额外的文档元数据qa_id。这样,在检索到相似的查询B时,可以获取查询B的qa_id,根据qa_id返回对应的答案。
步骤十六、持续更新与检查,确定知识库的范围是一个持续的过程,需要随着时间和用户需求的变化不断进行调整。最重要的是,始终确保知识库满足用户的需求,提供高质量的内容,周期性地审查知识库,确保其与时俱进。更新时,将数据按步骤十三、十四进行处理,并且使用和步骤十五相同的查询编码器将新加入的查询编码成稠密向量,加入Faiss索引即可,同时更新答案数据库。
优选的,所述步骤二包括:
步骤二十一、进行搜索,当有一个新的查询时,首先将查询转换为向量,然后使用Faiss索引进行搜索。可以使用余弦相似度来进行相似性的度量。
步骤二十二、如果没有找到与查询A相匹配的查询B,则直接将查询A输入大规模语言模型,并将结果返回给用户。这样的话,系统便没有利用到相似度检索优势。
步骤二十三、如果找到与查询A相匹配的查询B,则先将查询B所对应的答案返回给用户,如果查询A相匹配的查询B含义相同,则结束流程;如果两者有差异,则同时进行步骤三。
优选的,所述步骤三包括:
步骤三十一、为了精确响应用户,需基于查询A和查询B构建prompt,使得大规模语言模型可以基于查询B来补充查询A的回答,prompt可以为如下形式:{"instruction":"请回答查询A。回答要求:为了避免重复,请在回答查询A时只提供与查询B中回答不同的信息。","input":"查询A:xxx?查询B:xxx?","output":}
步骤三十二、将大规模语言模型产生的补充答案返回给用户。
本发明的方法,与现有技术相比,具有以下突出的实质性特点和显著优点:
一、建立专有领域问答知识库,该库中包含大量的查询和答案对,且能够持续更新和扩充;建立专有领域问答知识库为应用大模型提供了一个结构化、高效、准确和可控的方法来处理和响应用户的查询。这种方法结合了知识库响应快速的优点与大模型的深度学习能力,可以在快速响应用户的同时也提供了最佳答案。
二、当用户提出查询A时,系统通过相似度检索算法在知识库中找出最相似的查询B,并将查询B的答案快速返回给用户,从而达到短时间内给予用户一个初步答案。
三、答案生成模块根据查询A和B构造相应的prompt,送给大规模语言模型进行处理,处理后的答案再返回给用户,以提供更为详细、精确的答案。在用户阅览初始答案时,答案生成模块同时工作,答案生成后立马返回,有效减少了用户在获取答案过程中的等待时间,优化了用户体验。
附图说明
图1为本发明基于相似度检索提升大规模语言模型响应速度方法的流程图。
图2为构建专有领域知识库的流程图。
具体实施方式
以下结合附图对本发明的优选实施例进一步详细说明。
如图1所示,本发明基于相似度检索提升大规模语言模型响应速度的方法包括以下步骤:
步骤一,建立专有领域问答知识库,该库中包含大量的查询和答案对,且能够持续更新和扩充;
步骤二,当用户发出查询A时,系统通过相似度检索算法在知识库中找出最相似的查询B,如果并将查询B的答案快速返回给用户,从而达到短时间内给予用户一个初步答案;如果检索不到相应的查询B,则直接将查询A输入大规模语言模型,返回用户所需答案;如果查询A和查询B含义相同,则结束流程,不需要再进行步骤三。
步骤三:答案生成模块根据查询A和B构造相应的prompt,送给大规模语言模型进行处理,处理后的答案再返回给用户,以提供更为详细、精确的答案。
优选的,所述步骤一包括:
步骤十一、选定知识库的范围。首先明确知识库的目标用户和目的,调查和分析潜在用户的需求,确定知识库将包含哪些主题。这可以是某一特定领域,如医学、计算机科学等,也可以是更广泛的通识知识。
步骤十二、收集查询和答案。根绝所选定的领域,确定查询和答案对的来源。收集查询和答案的主要数据来源可以是:已有的文档或数据库:这可以包括公司内部的文档,公开的文献,或者在线的知识库;在线社区:如问答网站;人工收集:通过专业人士、志愿者等手动进行问答对的收集和整理。对于已有的文档或数据库,可以使用自然语言处理技术进行信息提取。信息提取可以包括命名实体识别、主题建模、文本分类等。对于在线社区,可以合法使用爬虫来收集数据。
步骤十三、收集到的查询和答案对组织并结构化。使用哈希函数、文本匹配算法等方法来检测和移除重复数据;去除无意义的、冗余的数据,确保知识库的质量;移除文本中的HTML、XML标签、特殊字符、额外的空格、无关的URL等,移除或替换不合适的、冒犯性的或敏感的内容;将文本转换为小写、修正常见的拼写错误、统一同义词;确保所有数据都遵循统一的格式。例如,每个查询后跟一个答案,或使用特定的分隔符分隔查询和答案。
步骤十四、生成问答对,分配qa_id。对数据进行分条,查询和对应的答案通过qa_id一一对应。
步骤十五、知识库中的查询编码和索引构建以及答案存储。
优选地,所述步骤十五包括对知识库中的查询进行编码,和对知识库中的答案进行存储。其中,最关键的是对查询进行编码和建立索引。首先,将知识库中的所有查询转化为稠密向量,可以使用预训练的词嵌入模型对文档中的每个词进行向量化,然后对这些向量取平均,获得文档的向量表示,也可以使用预训练的语言模型来获得文档或段落的向量表示。接下来基于Faiss对知识库建立索引,使用Faiss对知识库建立索引是一个相对简单但非常强大的方法,这使得在大量文档中进行实时的相似度搜索成为可能。下面是基于Faiss对知识库建立索引的详细技术步骤:(1)安装和引入Faiss;(2)构建Faiss索引,根据文档向量建立索引。对于大型数据集,可以使用压缩索引或其他类型的索引以节省空间并加速查询。查询所对应的答案,可以存储在数据库中,根据上一步所获取的查询B的qa_id,从数据库中取出对应的答案,并立马返回给用户。为了减少索引所占的存储空间,最大程度加速索引过程,在构建索引时,只需要存储额外的文档元数据qa_id。这样,在检索到相似的查询B时,可以获取查询B的qa_id,根据qa_id返回对应的答案。
步骤十六、持续更新与检查,确定知识库的范围是一个持续的过程,需要随着时间和用户需求的变化不断进行调整。最重要的是,始终确保知识库满足用户的需求,提供高质量的内容,周期性地审查知识库,确保其与时俱进。更新时,将数据按步骤十三、十四进行处理,并且使用和步骤十五相同的查询编码器将新加入的查询编码成稠密向量,加入Faiss索引即可,同时更新答案数据库。
优选的,所述步骤二包括:
步骤二十一、进行搜索,当有一个新的查询时,首先将查询转换为向量,然后使用Faiss索引进行搜索。可以使用余弦相似度来进行相似性的度量。
步骤二十二、如果没有找到与查询A相匹配的查询B,则直接将查询A输入大规模语言模型,并将结果返回给用户。这样的话,系统便没有利用到相似度检索优势。
步骤二十三、如果找到与查询A相匹配的查询B,则先将查询B所对应的答案返回给用户,如果查询A相匹配的查询B含义相同,则结束流程;如果两者有差异,则同时进行步骤三。
优选的,所述步骤三包括:
步骤三十一、为了精确响应用户,需基于查询A和查询B构建prompt,使得大规模语言模型可以基于查询B来补充查询A的回答,prompt可以为如下形式:{"instruction":"请回答查询A。回答要求:为了避免重复,请在回答查询A时只提供与查询B中回答不同的信息。","input":"查询A:xxx?查询B:xxx?","output":}
步骤三十二、将大规模语言模型产生的补充答案返回给用户。
本实例为基于相似度检索提升大规模语言模型响应速度。对该实施例进行的具体步骤如下:
步骤一、构建专有领域知识库。
步骤二、如附图1所示,当用户发出一个查询A时,系统会首先通过相似度检索算法,在知识库中寻找一个与查询A最相似的查询B。
步骤三、如果未匹配到相似查询B,如附图1中的路线(1)所示,直接将查询A送入大型语言模型生成答案,这种情况下并没有加快查询速度。
步骤四、如果匹配到相似查询B且查询A和查询B含义有差异,如附图1中的路线(2)所示,系统会先将查询B的答案快速返回给用户,同时根据查询A和查询B的内容生成一个prompt,并将此prompt送给大型语言模型进行处理。处理完毕后,系统会将大型语言模型的答案返回给用户。这样,用户不仅可以得到一个大致的答案,还可以得到一个更详细、更精确的答案。
步骤五、如果匹配到相似查询B且查询A和查询B含义相同,如附图1中的路线(3)所示,用户可以在极短的时间内得到答案,无需大型语言模型的处理。
步骤二十一、用户发出查询A之后,查询编码器先对查询A进行编码,将查询A编码为稠密向量;
步骤二十二、基于构建好的faiss离线知识库进行相似度检索,找到知识库中与查询A相似性得分最高的查询B,并获取查询B的内容和相应的qa_id;
步骤四十一、根据查询B的qa_id在数据库中寻找相应的答案,并快速返回答案给用户;
步骤四十二、在步骤二十三进行的同时,基于查询A和查询B构建全新的prompt,再送给大规模语言模型,使得模型可以补充回答查询A。prompt可以为如下形式:{"instruction":"请回答查询A。回答要求:为了避免重复,请在回答查询A时只提供与查询B中回答不同的信息。","input":"查询A:xxx?查询B:xxx?","output":}
步骤四十三、将大规模语言模型产生的补充答案返回给用户。
构建专有领域知识库的的具体步骤如下:
步骤一、确定知识库的范围。首先,确定知识库将包含哪些主题。这可以是某一特定领域,如医学、计算机科学等,也可以是更广泛的通识知识。确定范围是为了保证知识库的内容对用户查询的回答有所帮助。
步骤二、收集查询和答案。确定查询和答案对的来源,这可能包括调查、论坛、客户支持对话、专家采访等。使用各种工具(如网络爬虫、API、手动输入等)从各个来源收集数据。
步骤三、组织与结构化数据。将收集到的查询和答案对组织并结构化。(1)去除重复项:使用哈希函数、文本匹配算法等方法来检测和移除重复数据,确保知识库中没有重复的查询和答案对。(2)去除无意义数据。(3)文本清洗:移除文本中的HTML、XML标签、特殊字符、额外的空格、无关的URL等;移除或替换不合适的、冒犯性的或敏感的内容。(4)标准化文本:将文本转换为小写、修正常见的拼写错误、统一同义词等。(5)数据格式化:确保所有数据都遵循统一的格式。例如,每个查询后跟一个答案,或使用特定的分隔符分隔查询和答案
步骤四、生成问答对,分配qa_id。对数据进行分条,查询和对应的答案通过qa_id一一对应。
步骤五、编码与存储。(1)提前训练或者选择一个查询编码器,用来对用户的查询进行编码(2)基于Faiss构建查询离线索引,避免实时查询时的高昂计算成本。当查询到来时,系统只需在索引中查找,而不是对整个数据集进行全量扫描。通过适当的配置和调优,Faiss可以达到接近精确搜索的结果,同时大大加速查询过程。(3)查询对应答案存在数据库中,和查询通过qa_id一一对应
步骤六、持续更新与检查。定期添加新的查询和答案对,更新已有的答案。周期性地审查知识库,确保其与时俱进,并删除过时或不准确的答案。一个好的知识库可以大大提升用户体验,增加用户对系统的满意度。
本文结合说明书附图和具体实施例进行阐述只是用于帮助理解本发明的方法和核心思想。本发明所述的方法并不限于具体实施方式中所述的实施例,本领域技术人员依据本发明的方法和思想得出的其它实施方式,同样属于本发明的技术创新范围。本说明书内容不应理解为对本发明的限制。
Claims (4)
1.一种基于相似度检索提升大规模语言模型响应速度的方法,其特征在于,其包括以下步骤:
步骤一,建立专有领域问答知识库,该库中包含大量的查询和答案对,且能够持续更新和扩充;
步骤二,当用户发出查询A时,系统通过相似度检索算法在知识库中找出最相似的查询B,如果并将查询B的答案快速返回给用户,从而达到短时间内给予用户一个初步答案;如果检索不到相应的查询B,则直接将查询A输入大规模语言模型,返回用户所需答案;如果查询A和查询B含义相同,则结束流程,不需要再进行步骤三。
步骤三:答案生成模块根据查询A和B构造相应的prompt,送给大规模语言模型进行处理,处理后的答案再返回给用户,以提供更为详细、精确的答案。
2.根据权利要求1所述的基于相似度检索提升大规模语言模型响应速度的方法,其特征在于,所述步骤一包括:
步骤十一、选定知识库的范围。首先明确知识库的目标用户和目的,调查和分析潜在用户的需求,确定知识库将包含哪些主题。这可以是某一特定领域,如医学、计算机科学等,也可以是更广泛的通识知识。
步骤十二、收集查询和答案。根绝所选定的领域,确定查询和答案对的来源。收集查询和答案的主要数据来源可以是:已有的文档或数据库:这可以包括公司内部的文档,公开的文献,或者在线的知识库;在线社区:如问答网站;人工收集:通过专业人士、志愿者等手动进行问答对的收集和整理。对于已有的文档或数据库,可以使用自然语言处理技术进行信息提取。信息提取可以包括命名实体识别、主题建模、文本分类等。对于在线社区,可以合法使用爬虫来收集数据。
步骤十三、收集到的查询和答案对组织并结构化。使用哈希函数、文本匹配算法等方法来检测和移除重复数据;去除无意义的、冗余的数据,确保知识库的质量;移除文本中的HTML、XML标签、特殊字符、额外的空格、无关的URL等,移除或替换不合适的、冒犯性的或敏感的内容;将文本转换为小写、修正常见的拼写错误、统一同义词;确保所有数据都遵循统一的格式。例如,每个查询后跟一个答案,或使用特定的分隔符分隔查询和答案。
步骤十四、生成问答对,分配qa_id。对数据进行分条,查询和对应的答案通过qa_id一一对应。
步骤十五、知识库中的查询编码和索引构建以及答案存储。所述步骤十五包括对知识库中的查询进行编码,和对知识库中的答案进行存储。其中,最关键的是对查询进行编码和建立索引。首先,将知识库中的所有查询转化为稠密向量,可以使用预训练的词嵌入模型对文档中的每个词进行向量化,然后对这些向量取平均,获得文档的向量表示,也可以使用预训练的语言模型来获得文档或段落的向量表示。接下来基于Faiss对知识库建立索引,使用Faiss对知识库建立索引是一个相对简单但非常强大的方法,这使得在大量文档中进行实时的相似度搜索成为可能。下面是基于Faiss对知识库建立索引的详细技术步骤:(1)安装和引入Faiss;(2)构建Faiss索引,根据文档向量建立索引。对于大型数据集,可以使用压缩索引或其他类型的索引以节省空间并加速查询。查询所对应的答案,可以存储在数据库中,根据上一步所获取的查询B的qa_id,从数据库中取出对应的答案,并立马返回给用户。为了减少索引所占的存储空间,最大程度加速索引过程,在构建索引时,只需要存储额外的文档元数据qa_id。这样,在检索到相似的查询B时,可以获取查询B的qa_id,根据qa_id返回对应的答案。
步骤十六、持续更新与检查,确定知识库的范围是一个持续的过程,需要随着时间和用户需求的变化不断进行调整。最重要的是,始终确保知识库满足用户的需求,提供高质量的内容,周期性地审查知识库,确保其与时俱进。更新时,将数据按步骤十三、十四进行处理,并且使用和步骤十五相同的查询编码器将新加入的查询编码成稠密向量,加入Faiss索引即可,同时更新答案数据库。
3.根据权利要求1所述的基于相似度检索提升大规模语言模型响应速度的方法,其特征在于,所述步骤二包括:
步骤二十一、进行搜索,当有一个新的查询时,首先将查询转换为向量,然后使用Faiss索引进行搜索。可以使用余弦相似度来进行相似性的度量。
步骤二十二、如果没有找到与查询A相匹配的查询B,则直接将查询A输入大规模语言模型,并将结果返回给用户。这样的话,系统便没有利用到相似度检索优势。
步骤二十三、如果找到与查询A相匹配的查询B,则先将查询B所对应的答案返回给用户,如果查询A相匹配的查询B含义相同,则结束流程;如果两者有差异,则同时进行步骤三。
4.根据权利要求1所述的基于相似度检索提升大规模语言模型响应速度的方法,其特征在于,所述步骤三包括:
步骤三十一、为了精确响应用户,需基于查询A和查询B构建prompt,使得大规模语言模型可以基于查询B来补充查询A的回答,prompt可以为如下形式:{"instruction":"请回答查询A。回答要求:为了避免重复,请在回答查询A时只提供与查询B中回答不同的信息。","input":"查询A:xxx?查询B:xxx?","output":}
步骤三十二、将大规模语言模型产生的补充答案返回给用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310995707.XA CN116910221A (zh) | 2023-08-09 | 2023-08-09 | 一种基于相似度检索提升大规模语言模型响应速度的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310995707.XA CN116910221A (zh) | 2023-08-09 | 2023-08-09 | 一种基于相似度检索提升大规模语言模型响应速度的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116910221A true CN116910221A (zh) | 2023-10-20 |
Family
ID=88356547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310995707.XA Pending CN116910221A (zh) | 2023-08-09 | 2023-08-09 | 一种基于相似度检索提升大规模语言模型响应速度的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116910221A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117240634A (zh) * | 2023-11-16 | 2023-12-15 | 中国科学技术大学 | 一种面向MySQL协议的智能安全蜜罐方法、系统及设备 |
CN117251473A (zh) * | 2023-11-20 | 2023-12-19 | 摩斯智联科技有限公司 | 车辆数据查询分析方法、系统、装置和存储介质 |
-
2023
- 2023-08-09 CN CN202310995707.XA patent/CN116910221A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117240634A (zh) * | 2023-11-16 | 2023-12-15 | 中国科学技术大学 | 一种面向MySQL协议的智能安全蜜罐方法、系统及设备 |
CN117240634B (zh) * | 2023-11-16 | 2024-03-29 | 中国科学技术大学 | 一种面向MySQL协议的智能安全蜜罐方法、系统及设备 |
CN117251473A (zh) * | 2023-11-20 | 2023-12-19 | 摩斯智联科技有限公司 | 车辆数据查询分析方法、系统、装置和存储介质 |
CN117251473B (zh) * | 2023-11-20 | 2024-03-15 | 摩斯智联科技有限公司 | 车辆数据查询分析方法、系统、装置和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112000791B (zh) | 一种电机故障知识抽取系统及方法 | |
CN110096567B (zh) | 基于qa知识库推理的多轮对话回复选择方法、系统 | |
CN112667794A (zh) | 一种基于孪生网络bert模型的智能问答匹配方法及系统 | |
CN116910221A (zh) | 一种基于相似度检索提升大规模语言模型响应速度的方法 | |
WO2016027714A1 (ja) | 質問文生成装置及びコンピュータプログラム | |
CN109101479A (zh) | 一种用于中文语句的聚类方法及装置 | |
CN112214593A (zh) | 问答处理方法、装置、电子设备及存储介质 | |
CN111506721A (zh) | 一种面向领域知识图谱的问答系统及构建方法 | |
CN102597991A (zh) | 文档分析与关联系统及方法 | |
CN109948154B (zh) | 一种基于邮箱名的人物获取及关系推荐系统和方法 | |
CN116127095A (zh) | 一种序列模型与知识图谱结合的问答方法 | |
CN111274822A (zh) | 语义匹配方法、装置、设备及存储介质 | |
CN110851584B (zh) | 一种法律条文精准推荐系统和方法 | |
CN113157867A (zh) | 一种问答方法、装置、电子设备及存储介质 | |
CN115640458A (zh) | 一种遥感卫星资讯推荐方法、系统及设备 | |
CN116541493A (zh) | 基于意图识别的交互应答方法、装置、设备、存储介质 | |
Yusuf et al. | Query expansion method for quran search using semantic search and lucene ranking | |
CN116991977B (zh) | 一种基于大语言模型的领域向量知识精准检索方法及装置 | |
Alshammari et al. | TAQS: an Arabic question similarity system using transfer learning of BERT with BILSTM | |
Daswani et al. | CollegeBot: A conversational AI approach to help students navigate college | |
CN111104422B (zh) | 一种数据推荐模型的训练方法、装置、设备及存储介质 | |
Secer et al. | Ontology mapping using bipartite graph | |
Sun et al. | Research on question retrieval method for community question answering | |
CN114064820B (zh) | 一种基于混合架构的表格语义查询粗排方法 | |
KR102454261B1 (ko) | 사용자 정보 기반 협업 파트너 추천 시스템 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |