CN117453897B - 一种基于大模型和遗传算法的文档问答方法及*** - Google Patents
一种基于大模型和遗传算法的文档问答方法及*** Download PDFInfo
- Publication number
- CN117453897B CN117453897B CN202311786751.6A CN202311786751A CN117453897B CN 117453897 B CN117453897 B CN 117453897B CN 202311786751 A CN202311786751 A CN 202311786751A CN 117453897 B CN117453897 B CN 117453897B
- Authority
- CN
- China
- Prior art keywords
- document
- recall
- model
- genetic algorithm
- question
- 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.)
- Active
Links
- 230000002068 genetic effect Effects 0.000 title claims abstract description 49
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000005457 optimization Methods 0.000 claims abstract description 14
- 238000005516 engineering process Methods 0.000 claims abstract description 10
- 238000007781 pre-processing Methods 0.000 claims abstract description 8
- 101100261006 Salmonella typhi topB gene Proteins 0.000 claims abstract description 6
- 101150032437 top-3 gene Proteins 0.000 claims abstract description 6
- 238000012163 sequencing technique Methods 0.000 claims abstract description 5
- 239000013598 vector Substances 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 15
- 241000157593 Milvus Species 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000004519 manufacturing process Methods 0.000 claims description 7
- 238000011156 evaluation Methods 0.000 claims description 6
- 238000012360 testing method Methods 0.000 claims description 6
- 230000000694 effects Effects 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000009966 trimming Methods 0.000 claims description 4
- 230000002708 enhancing effect Effects 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 11
- 238000012549 training Methods 0.000 description 7
- 238000003058 natural language processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000011478 gradient descent method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 230000035772 mutation Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 101100481876 Danio rerio pbk gene Proteins 0.000 description 1
- 101100481878 Mus musculus Pbk gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000037406 food intake Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000006467 substitution reaction 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/313—Selection or weighting of terms for indexing
-
- 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/3325—Reformulation based on results of preceding query
- G06F16/3326—Reformulation based on results of preceding query using relevance feedback from the user, e.g. relevance feedback on documents, documents sets, document terms or passages
-
- 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/3332—Query translation
- G06F16/3334—Selection or weighting of terms from queries, including natural language queries
-
- 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/3332—Query translation
- G06F16/3338—Query expansion
-
- 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/3347—Query execution using vector based model
-
- 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/38—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/383—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/086—Learning methods using evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/092—Reinforcement learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/0985—Hyperparameter optimisation; Meta-learning; Learning-to-learn
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/041—Abduction
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Library & Information Science (AREA)
- Human Computer Interaction (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种基于大模型和遗传算法的文档问答方法及***,包括利用qlora技术和ChatGLM模型,微调生成用于提取文本知识标签、同义标签和转化文本为问题的模型;将文档分段,并通过数据预处理,将处理后的文档分别存入数据库;从不同渠道召回30个文本;采用相似度算法,并通过遗传算法优化算法的加权系数,将多路召回的30个文档经过相似度算法和加权系数进行排序,选择top3;采用文档召回率和F1值作为适应度标准,实现加权系数的自动优化;使用原始大模型,基于文档和问题生成最终的回答。本发明保证答案质量、准确性和用户满意度的同时,也具备了高度的灵活性和扩展性,能够满足不同用户和场景的多样化需求。
Description
技术领域
本发明涉及智能问答技术领域,具体涉及一种基于大模型和遗传算法的文档问答方法及***。
背景技术
在当前的信息化时代,知识和信息的***式增长让用户面临从海量文本文档中提取有价值信息的巨大挑战。尽管科学论文、法律文件等专业文献中蕴含着丰富的知识,但用户常常需要投入大量时间和精力进行阅读和解析,这在很多情况下是不现实的。因此,如何通过自然语言快速、准确地从复杂文档中获取答案,成为了一个迫切需要解决的问题。
近年来,以ChatGPT为代表的大型预训练语言模型显示出了卓越的自然语言理解和生成能力。这些模型通过学习大量的无标签或弱标签文本数据,掌握了语言的通用表示和知识,表现出极高的泛化和迁移能力。然而,ChatGPT作为闭源商业软件,其应用受限,不能本地训练和部署。
幸运的是,国内外诸如ChatGLM、百川、通义千问等大模型开始免费商用开源,为大模型的广泛应用奠定了基础。这些模型的开源使得企业和个人能够更灵活地利用大模型进行各种NLP任务,包括但不限于问答、摘要生成、文本分类等。
然而,一个核心问题仍然存在:如何有效地从拆分和分散的文档中召回与用户问题紧密相关的文本。目前的大多数方法都是基于关键词或者简单的文本匹配技术,这很难处理复杂、长篇幅的文档,也难以准确地抓取文档中的语义和上下文信息。
同时,多数现有***仍然缺乏动态、自适应的能力。即使采用了先进的自然语言处理技术,也很难根据不同用户的特定需求和不断变化的信息环境做出实时、个性化的调整。
为解决上述问题,需要一种新的方法,它能够整合和优化现有的大模型和召回技术,增加动态、自适应的元素,以实现更精确、更智能、更用户友好的文档问答体验。
发明内容
为克服现有技术的不足,本发明提出一种基于大模型和遗传算法的文档问答方法及***,保证答案质量、准确性和用户满意度的同时,也具备了高度的灵活性和扩展性,能够满足不同用户和场景的多样化需求。
为实现上述目的,本发明提出一种基于大模型和遗传算法的文档问答方法,包括:
步骤S1:利用qlora技术和ChatGLM模型,微调生成用于提取文本知识标签、同义标签和转化文本为问题的模型;
步骤S2:将文档分段,并通过数据预处理,将处理后的文档分别存入Milvus和Elasticsearch数据库;
步骤S3:从不同渠道召回30个文本,包括从相似问题、知识标签、同义标签和向量数据库中召回;
步骤S4:采用相似度算法,并通过遗传算法优化算法的加权系数,将多路召回的30个文档经过fuzzy, cosine, BM25, Levenshtein等相似度算法和加权系数进行排序,选择top3;
步骤S5:采用文档召回率和F1值作为适应度标准,实现加权系数的自动优化;
步骤S6:使用原始ChatGLM大模型,基于优选的文档和问题生成最终的回答。
进一步地,步骤S1具体为:
步骤S11: 制造提取文本知识标签、同义标签的微调数据;
步骤S12: 制造文本转成问题的微调数据。
进一步地,步骤S2具体为:
步骤S21: 文档数据预处理,对PDF和docx文档格式进行文本抽取,并处理无意义符号和表格中的文字,确保语义完整性;
步骤S22: 文本转向量后入库,利用步骤S1中的知识标签、同义标签大模型,将分段文本转换为向量存入Milvus数据库;
步骤S23: 存储知识标签和同义标签,利用知识标签、同义标签大模型处理文本,将结果存储到Elasticsearch文档数据库;
步骤S24: 生成问题并入库,利用文本转成问题的大模型处理文本,将生成的问题存储到Elasticsearch文档数据库。
进一步地,步骤S3具体为;
步骤S31:从储存相似问题的Elasticsearch召回;
步骤S32:利用知识标签和同义标签从Elasticsearch召回;
步骤S33:通过向量模型从Milvus召回。
进一步地,步骤S4中相似度计算公式如下:
;
其中scorefuzzy表示问题和候选文档的fuzzy相似度算法的分数,scorecosine中表示问题和候选文档经过向量化之后的余弦相似计算(cosine)的分数,scoreBM25中表示问题和候选文档的BM25相似度算法的分数,scoreLevenshtein中表示问题和候选文档的莱文斯坦距离(Levenshtein)相似度算法的分数,score表示最终的相似度分数。[0.2, 0.1, 0.4, 0.3]表示加权系数。
进一步地,步骤S5具体为:
步骤S51: 基于测试数据计算文档召回率和F1值,作为遗传算法的适应度指标;
步骤S52: 将初始加权系数二进制编码,准备遗传算法的选择、交叉和变异步骤;
步骤S53: 基于适应度,即召回率和F1值,选择加权系数种群的个体;
步骤S54: 增加种群多样性,满足条件时输出最佳加权系数。
进一步地,步骤S5中计算公式如下:
准确率(Precision) = 相关文档总数 / 返回的结果总数 = TP / (TP + FP) *100%;
召回率(Recall)= 相关文档总数 / 所有文档总数 = TP / (TP + FN) *100%;
F1值 = 准确率*召回率 *2 / (准确率 + 召回率) 。
进一步地,还包括步骤S7自适应微调,具体如下:
步骤S71:识别数据特性,分析输入数据的特点和类别,例如领域、复杂性和样式;基于数据特性选择相应的微调参数和策略;
步骤S72:动态调整,为每类数据设计一个动态调整机制,根据实时性能反馈自动调整微调参数;
步骤S73:模型评估,连续监控模型性能,通过A/B测试和其他评估技术确保微调效果。
进一步地,还包括步骤S8动态权重调整,具体如下:
步骤S81:实时反馈收集,捕获用户对检索结果的反馈,例如点击、阅读时间和用户评级;
步骤S82:权重更新算法,开发一个算法,根据实时反馈动态调整标签和相似度算法的权重;
步骤S83:权重应用,应用新的权重到召回和精排阶段,实时优化检索结果。
一种基于大模型和遗传算法的文档问答***,适用于上述中任一项所述的一种基于大模型和遗传算法的文档问答方法,包括搜索扩展模块、多路召回模块和基于遗传算法优化加权系数的精排模块;
所述搜索扩展模块用于提取文本知识标签、同义标签和将文本转成问题,增强搜索结果;
所述多路召回模块用于实现对文档的分段召回,包括向量化文本、知识标签、同义标签和问题的召回;
所述基于遗传算法优化加权系数的精排模块用于优化多路召回结果的排序,提高文档召回率和F1值。
与现有技术相比,本发明的有益效果是:
1.本发明提供了一种基于大模型和遗传算法的文档问答方法及***,通过引入提取文本知识标签、同义标签大模型和生成问题大模型,***能更深入地理解文本内容和用户查询,丰富了语义特征,确保了更准确和相关的搜索结果。
2.本发明提供了一种基于大模型和遗传算法的文档问答方法及***,多路召回策略结合向量数据库、知识标签、同义标签数据库和生成的问题数据库,大大扩展了召回范围和准确性,提升了召回正确文档的可能性和效率。
3.本发明提供了一种基于大模型和遗传算法的文档问答方法及***, 应用多个相似度算法加权计算,利用遗传算法优化加权系数,使得排序结果更精准,满足用户个性化和多样化的信息需求。
4.本发明提供了一种基于大模型和遗传算法的文档问答方法及***,类似于专家***的效果,集成了多个模型和算法的评估结果,确保了答案的质量和准确性,提供了更智能、准确和高效的用户体验。
5.本发明提供了一种基于大模型和遗传算法的文档问答方法及***,***能够根据实时的用户反馈和行为数据进行自我学习和优化,不断提升答案质量和用户满意度,保持其长期的效能和适应性。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明步骤流程示意图
图2是提取文本知识标签、同义标签的大模型的指令微调数据样例;
图3是提取文本知识标签、同义标签的chatglm模型的输入格式样例图;
图4是提取文本知识标签、同义标签的chatglm模型的输出格式样例图;
图5是文本转成问题的chatglm模型的输入格式样例图;
图6是文本转成问题的chatglm模型的输出格式样例图;
图7是抽取文本第一个问题示意图;
图8是文本转成问题的大模型的指令微调数据样例;
图9是文档切分入库的流程;
图10是文档问答的总流程;
图11是遗传算法优化加权系数的流程;
图12是chatglm大模型进行问答的流程;
图13是大模型示意图。
具体实施方式
下面将结合附图、通过对本发明的优选实施方式的描述,更加清楚、完整地阐述本发明的技术方案。
ChatGPT是一种基于GPT(Generative Pre-train Transformer)模型的对话式(chat)大型语言模型,由OpenAI公司开发。它是目前世界上最先进的自然语言处理技术之一。
chatglm,它是一个开源的、支持中英双语的对话语言模型,基于 GeneralLanguage Model (GLM) 架构的对话式(chat)大型语言模型。
QLoRA,LoRA表示(Low-Rank Adaptation,低秩适配器)这样一种大模型微调方法,Q表示Quantized,即量化。
Milvus 是一款向量数据库,它具备高可用、高性能、易拓展的特点,用于海量向量数据的实时召回。
Milvus 基于 FAISS、Annoy、HNSW 等向量搜索库构建,核心是解决稠密向量相似度检索的问题。在向量检索库的基础上,Milvus 支持数据分区分片、数据持久化、增量数据摄取、标量向量混合查询、time travel ("time travel"用于描述能够查看或恢复过去状态的***或数据库的功能)等功能,同时大幅优化了向量检索的性能,可满足任何向量检索场景的应用需求。
Elasticsearch 是一个分布式的开源搜索和分析引擎。
fuzzy是糊匹配相似度算法。
cosine计算向量相似度的余弦算法。
BM25是目前信息索引领域最主流的计算query("query"(查询)通常指的是对数据库或信息***的一个请求,用于检索特定的信息或数据)与文档相似度得分的算法。BM 是Best Match最佳匹配的缩写,25指的是第25次算法迭代。
Levenshtein是莱文斯坦距离,又称Levenshtein距离,是编辑距离的一种。指两个字串之间,由一个转成另一个所需的最少编辑操作次数。允许的编辑操作包括将一个字符替换成另一个字符,***一个字符,删除一个字符。
Weights&Biases:这是一个用于追踪和可视化机器学习实验的工具。它帮助实时监控模型性能和其他指标。
MLflow:这是一个主要用于管理完整机器学***台,包括实验、可重复性和部署。
Hyperopt:一个Python库,用于优化机器学习模型参数,特别是搜索空间和目标函数。
Optuna:另一个Python框架,用于优化机器学习模型的超参数,因其轻便和易用而著称。
Apache Kafka:一个开源流处理平台,能够处理大量实时数据流。
Apache Flink:也是一个开源流处理框架,常用于实时数据流处理和分析。
如图1所示,本发明具体为:
步骤S1:利用qlora技术和ChatGLM模型,微调生成用于提取文本知识标签、同义标签和转化文本为问题的模型;
步骤S2:将文档分段,并通过数据预处理,将处理后的文档分别存入Milvus和Elasticsearch数据库;
步骤S3:从不同渠道召回30个文本,包括从相似问题、知识标签、同义标签和向量数据库中召回;
步骤S4:采用相似度算法,并通过遗传算法优化算法的加权系数,将多路召回的30个文档经过fuzzy, cosine, BM25, Levenshtein等相似度算法和加权系数进行排序,选择top3;
步骤S5:采用文档召回率和F1值作为适应度标准,实现加权系数的自动优化;
步骤S6:使用原始ChatGLM大模型,基于优选的文档和问题生成最终的回答。
作为一种具体的实施方式,步骤S1具体为,制造指令微调数据,微调两个生成式大模型,一个具有提取文本知识标签、同义标签的大模型,另外一个模型是文本转成问题的大模型。这两个大模型可以对后续的搜索进行扩展,增强搜索结果。大模型采用的是生成式大模型chatglm,它是一个开源的、支持中英双语的对话语言模型,基于 General LanguageModel (GLM) 架构,具有 62 亿参数。ChatGLM 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM已经能生成相当符合人类偏好的回答。chatglm主要由多层GLM block组成,GLM block由Layer Norm(层归一化)、SelfAttention(自注意力机制)和GLU(门控线性单元)模块构成,如图13所示。大模型采用的微调方式名为qlora,为超大规模模型的每一层添加了少量的可训练参数(适配器),并冻结了所有原始参数。引入了4位量化、双量化和利用nvidia统一内存进行分页。这样对于微调,只需要更新适配器权重,这可以显著减少显存占用。因此,只需一张24G显存的4090ti显卡,完成一个70亿的超大模型chatglm的指令微调。
制造提取文本知识标签、同义标签的指令微调数据,用于对大模型chatglm进行指令微调训练。指令微调数据一共1000多条,其中一条指令微调数据json格式样例如图2所示。经过训练后,得到提取文本知识标签、同义标签的chatglm大模型。
模型的输入格式如图3所示;
模型的输出格式如图4所示;
制造文本转成问题的指令微调数据,用于对大模型chatglm进行指令微调训练。指令微调数据一共1000多条,其中一条指令微调数据json格式样例如图8所示。经过训练后,得到文本转成问题的chatglm大模型。
模型的输入格式如图5所示;
模型的输出格式如图6所示;
作为一种具体的实施方式,步骤S2具体为大模型文档问答,由于大模型的输入长度限制,需要对文档进行分段,每段字数150字左右,分段的文本经过三个不同的处理方式储存到数据库,以便后续召回,如图9所示。
文档数据预处理,由于文档一般是pdf,docx等形式,需要把pdf,docx文档的文本抽取出来。抽取文本主要遇到两个问题:
第一个问题是某些段落中文较少,其他都是无意义符号,如图7所示;
第二个问题是某些文本存在于表格当中,将表格文字抽取出来发现,某些表格的文字过少,不足以构成完整语义。
采用的数据处理方式:
第一,对文本拆分时,如果该拆分后的文本段落中,中文占比小于25%的,说明语义信息不足,则丢弃该段落。
第二,设置一个表格文字长度阈值,比如设置为15,如果抽取某个表格的单元格的文字小于阈值,也丢弃该内容。
分段的文本经过向量模型,文本转成向量后,入库向量数据库milvus;
分段的文本经过步骤S1的知识标签、同义标签的大模型生成知识标签和同义标签,储存到Elasticsearch文档数据库;
分段的文本经过步骤S1的文本转成问题的大模型生成问题,入库,储存到Elasticsearch文档数据库。
作为一种具体的实施方式,步骤S3具体为:一共三路召回,每路召回10个文本,一共召回30个文本。如图10的多路召回模块所示;
第一路召回,用户提问的问题,然后从储存相似问题的Elasticsearch做搜索,召回对应的10个候选分段的文本;
第二路召回,用户提问的问题,经过大模型提取出知识标签和同义标签,然从储存知识标签、同义标签的Elasticsearch做搜索,召回对应的10个候选分段的文本;
第三路召回,用户提问的问题,经过向量模型向量化,通过余弦相似度计算从向量数据库milvus召回10个候选分段的文本。
作为一种具体的实施方式,步骤S4具体为精排,精排就是对多路召回的30个文档再进行一轮的排序, 最后选择topk个,这里选择top3。多路召回的30个文档经过多个相似度算法通过一组加权系数计算出最终的相似度:
;
其中scorefuzzy表示问题和候选文档的fuzzy相似度算法的分数,scorecosine中表示问题和候选文档经过向量化之后的余弦相似计算(cosine)的分数,scoreBM25中表示问题和候选文档的BM25相似度算法的分数,scoreLevenshtein中表示问题和候选文档的莱文斯坦距离(Levenshtein)相似度算法的分数,score表示最终的相似度分数。[0.2, 0.1, 0.4, 0.3]表示加权系数。
作为一种具体的实施方式,步骤S5具体为通过遗传算法优化,根据文档召回率和F1值作为评价指标,得到最佳的加权系数。遗传算法的流程图如图11所示;
适应度文档召回率和F1值计算。根据搜索扩展模块生成的问题和对应的文档,做成一个有文档召回率和F1值指标的测试数据,可用于文档召回率和F1值计算。召回率、F1值计算公式如下:
准确率(Precision) = 相关文档总数 / 返回的结果总数 = TP / (TP + FP) *100%;
召回率(Recall)= 相关文档总数 / 所有文档总数 = TP / (TP + FN) *100%;
F1值 = 准确率*召回率*2 / (准确率 + 召回率) ;
准确率和召回率广泛用于信息检索和统计学分类领域的两个度量值,用于评价结果的质量。其中准确率是检索出相关文档数与检索出的文档总数的比率,衡量的是检索***的查准率;召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索***的查全率,如表1所示:
表1
包括编码,遗传算法先是对初始化的加权系数,假设初始化的加权系数为[1, 0,0, 0]进行二进制编码;
包括选择,选择是根据个体的适应度也就是文档召回率和F1值,按照一定的规则从当前加权系数种群中选出一些个体,作为下一代的父代。选择的目的是保留优秀的个体,淘汰劣质的个体。选择有多种方式,这里采用的是轮盘赌选择;
包括交叉和变异,交叉和变异可以增加加权系数种群的多样性。通过适应度函数计算文档召回率和F1值,文档召回率和F1值大于阈值或者完成算法的最大迭代次数的条件下,输出最佳的加权系数。
作为一种具体的实施方式,步骤S6具体为,经过精排后输出的top3文档,加上提示模版和问题,输入原始的chatglm大模型完成问答,如图12所示。
作为一种具体的实施方式,还包括步骤S7自适应微调,包括使用如Weights&Biases或MLflow等工具实时监控模型的表现;利用Hyperopt或Optuna进行动态参数优化;
具体为:
步骤S71:数据特性分析,使用自然语言处理(NLP)工具分析文本数据的特性,包括主题、情感、复杂性等。
步骤S72:自适应策略,基于监控数据,采用强化学习或元学习调整模型参数和训练策略。
还包括步骤S8动态权重调整,使用Apache Kafka或Apache Flink等实时数据处理工具;利用在线学习模型,如随机梯度下降(SGD)进行权重实时更新。
具体为:
步骤S81:实时反馈收集,捕获用户对检索结果的反馈,例如点击、阅读时间和用户评级;
步骤S82:权重更新算法,开发一个算法,根据实时反馈动态调整标签和相似度算法的权重;
步骤S83:权重应用,应用新的权重到召回和精排阶段,实时优化检索结果。
在步骤S82中,以下是一个具体的实施例:
在线学习和梯度下降法动态调整权重,动态调整知识标签和相似度算法的权重,以实时优化搜索和推荐结果。
流程如下:
1. 收集用户反馈数据
获取用户的实时反馈,例如点击率、阅读时间或评分等。
2. 计算梯度
利用用户反馈数据和当前的权重计算损失函数的梯度。例如,可以使用交叉熵损失函数来衡量当前权重下预测结果与用户反馈之间的差异。
3. 更新权重
应用梯度下降法(或其他优化算法,如Adam、RMSProp等)根据计算出的梯度动态更新权重。
算法示例(Python 伪代码):
初始权重
weights = np.array([0.2, 0.3, 0.5])
学习率
learning_rate = 0.01
用户反馈数据(示例:用户评分)
user_feedback = np.array([4, 5, 3])这可以是从实时反馈中获得的任何量化数据
计算损失的梯度
gradient = 2(user_feedback np.dot(weights, features))
使用梯度下降法更新权重
weights = learning_rategradient
在这个示例中,基于用户的实时反馈计算损失的梯度,并使用梯度下降法动态更新权重。这个过程可以实时进行,从而使得知识标签和相似度算法的权重始终保持最优状态,实现最佳的搜索和推荐效果。
作为一种具体的实施例,一种基于大模型和遗传算法的文档问答***,该文档问答***基于大模型和遗传算法调参加权系数,包括以下模块:
1.搜索扩展模块;
2.多路召回模块;
3.基于遗传算法优化加权系数的精排模块;
模块详解:
1.搜索扩展模块
功能:提取文本知识标签、同义标签和将文本转成问题,增强搜索结果。
技术实现:
使用大模型chatglm进行指令微调;
制造1000多条指令微调数据;
训练模型以实现文本知识、同义标签的提取和文本转问题的功能。
2.多路召回模块
功能:实现对文档的分段召回,包括向量化文本、知识标签、同义标签和问题的召回。
技术实现:
文档切分和预处理,将文档分段并向量化存入向量数据库Milvus;
使用搜索扩展模块训练得到的模型,将分段文本转化为知识标签、同义标签和问题,存入Elasticsearch文档数据库;
实现三路召回,包括相似问题召回、知识标签、同义标签召回和向量化文本召回。
3.基于遗传算法优化加权系数的精排模块
功能:优化多路召回结果的排序,提高文档召回率和F1值。
技术实现:
使用遗传算法对多个相似度算法的加权系数进行优化;
利用测试数据计算文档召回率和F1值,作为遗传算法的适应度函数;
通过迭代找到最优的加权系数组合,用于精排模块的结果排序。
***工作流程:
1. 用户输入问题。
2.搜索扩展模块处理用户问题,提取关键信息和生成衍生问题。
3.多路召回模块使用向量化、知识标签、同义标签和衍生问题进行文档召回。
4.基于遗传算法优化加权系数的精排模块对召回的文档进行精细排序,输出最相关的文档或文档段落。
技术细节:
模型和算法:
使用ChatGLM和QLORA进行模型微调和优化。
使用Milvus进行文档向量存储和召回。
使用Elasticsearch存储和检索知识标签、同义标签和问题。
使用遗传算法动态优化加权系数,以提高文档召回率和F1值。
数据处理和优化;
使用自适应算法进行实时数据处理和优化。
动态调整权重和参数,以适应不同类型和质量的文档和问题。
上述具体实施方式仅仅对本发明的优选实施方式进行描述,而并非对本发明的保护范围进行限定。在不脱离本发明设计构思和精神范畴的前提下,本领域的普通技术人员根据本发明所提供的文字描述、附图对本发明的技术方案所作出的各种变形、替代和改进,均应属于本发明的保护范畴。本发明的保护范围由权利要求确定。
Claims (10)
1.一种基于大模型和遗传算法的文档问答方法,其特征在于,包括:
步骤S1:利用qlora技术和ChatGLM模型,微调生成用于提取文本知识标签、同义标签和转化文本为问题的模型;
步骤S2:将文档分段,并通过数据预处理,将处理后的文档分别存入Milvus和Elasticsearch数据库;
步骤S3:从不同渠道召回30个文本,包括从相似问题、知识标签、同义标签和向量数据库中召回;
步骤S4:采用相似度算法,并通过遗传算法优化算法的加权系数,将多路召回的30个文档经过fuzzy, cosine, BM25, Levenshtein相似度算法和加权系数进行排序,选择top3;
步骤S5:采用文档召回率和F1值作为适应度标准,实现加权系数的自动优化;
步骤S6:使用原始ChatGLM大模型,基于文档和问题生成最终的回答。
2.根据权利要求1所述的一种基于大模型和遗传算法的文档问答方法,其特征在于,步骤S1具体为:
步骤S11:制造提取文本知识标签、同义标签的微调数据;
步骤S12:制造文本转成问题的微调数据。
3.根据权利要求1所述的一种基于大模型和遗传算法的文档问答方法,其特征在于,步骤S2具体为:
步骤S21:文档数据预处理,对PDF和docx文档格式进行文本抽取,并处理无意义符号和表格中的文字,确保语义完整性;
步骤S22:文本转向量后入库,利用步骤S1中的知识标签、同义标签大模型,将分段文本转换为向量存入Milvus数据库;
步骤S23:存储知识标签和同义标签,利用知识标签、同义标签大模型处理文本,将结果存储到Elasticsearch文档数据库;
步骤S24:生成问题并入库,利用文本转成问题的大模型处理文本,将生成的问题存储到Elasticsearch文档数据库。
4.根据权利要求1所述的一种基于大模型和遗传算法的文档问答方法,其特征在于,步骤S3具体为;
步骤S31:从储存相似问题的Elasticsearch召回;
步骤S32:利用知识标签和同义标签从Elasticsearch召回;
步骤S33:通过向量模型从Milvus召回。
5.根据权利要求1所述的一种基于大模型和遗传算法的文档问答方法,其特征在于,步骤S4中相似度计算公式如下:
;
其中scorefuzzy表示问题和候选文档的fuzzy相似度算法的分数,scorecosine中表示问题和候选文档经过向量化之后的余弦相似计算的分数,scoreBM25中表示问题和候选文档的BM25相似度算法的分数,scoreLevenshtein中表示问题和候选文档的莱文斯坦距离相似度算法的分数,score表示最终的相似度分数,[0.2, 0.1, 0.4, 0.3]表示加权系数。
6.根据权利要求1所述的一种基于大模型和遗传算法的文档问答方法,其特征在于,步骤S5具体为:
步骤S51:基于测试数据计算文档召回率和F1值,作为遗传算法的适应度指标;
步骤S52:将初始加权系数二进制编码,准备遗传算法的选择、交叉和变异步骤;
步骤S53:基于适应度,即召回率和F1值,选择加权系数种群的个体;
步骤S54:增加种群多样性,满足条件时输出最佳加权系数。
7.根据权利要求1所述的一种基于大模型和遗传算法的文档问答方法,其特征在于,步骤S5中计算公式如下:
准确率 = 相关文档总数 / 返回的结果总数 = TP / (TP + FP) *100%;
召回率= 相关文档总数 / 所有文档总数 = TP / (TP + FN) *100%;
F1值 = 准确率*召回率*2 / (准确率 + 召回率) 。
8.根据权利要求1所述的一种基于大模型和遗传算法的文档问答方法,其特征在于,还包括步骤S7自适应微调,具体如下:
步骤S71:识别数据特性,分析输入数据的特点和类别;基于数据特性选择相应的微调参数和策略;
步骤S72:动态调整,为数据设计一个动态调整机制,根据实时性能反馈自动调整微调参数;
步骤S73:模型评估,连续监控模型性能,通过A/B测试和其他评估技术确保微调效果。
9.根据权利要求1所述的一种基于大模型和遗传算法的文档问答方法,其特征在于,还包括步骤S8动态权重调整,具体如下:
步骤S81:实时反馈收集,捕获用户对检索结果的反馈;
步骤S82:权重更新算法,根据实时反馈动态调整标签和相似度算法的权重;
步骤S83:权重应用,应用新的权重到召回和精排阶段,实时优化检索结果。
10.一种基于大模型和遗传算法的文档问答***,适用于权利要求1-9中任一项所述的一种基于大模型和遗传算法的文档问答方法,其特征在于,包括搜索扩展模块、多路召回模块和基于遗传算法优化加权系数的精排模块;
所述搜索扩展模块用于提取文本知识标签、同义标签和将文本转成问题,增强搜索结果;
所述多路召回模块用于实现对文档的分段召回,包括向量化文本、知识标签、同义标签和问题的召回;
所述基于遗传算法优化加权系数的精排模块用于优化多路召回结果的排序,提高文档召回率和F1值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311786751.6A CN117453897B (zh) | 2023-12-25 | 2023-12-25 | 一种基于大模型和遗传算法的文档问答方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311786751.6A CN117453897B (zh) | 2023-12-25 | 2023-12-25 | 一种基于大模型和遗传算法的文档问答方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117453897A CN117453897A (zh) | 2024-01-26 |
CN117453897B true CN117453897B (zh) | 2024-03-01 |
Family
ID=89585904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311786751.6A Active CN117453897B (zh) | 2023-12-25 | 2023-12-25 | 一种基于大模型和遗传算法的文档问答方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117453897B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118039163B (zh) * | 2024-04-07 | 2024-06-25 | 北京惠每云科技有限公司 | 基于大模型和蚁群算法的临床风险管理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201817684D0 (en) * | 2018-10-30 | 2018-12-19 | Logical Glue Ltd | An explainable artificial intelligence mechanism |
CN113486933A (zh) * | 2021-06-22 | 2021-10-08 | 中国联合网络通信集团有限公司 | 模型训练方法、用户身份信息预测方法及装置 |
CN115618113A (zh) * | 2022-11-03 | 2023-01-17 | 中国人民解放军国防科技大学 | 一种基于知识图谱表示学习的搜索召回方法和*** |
-
2023
- 2023-12-25 CN CN202311786751.6A patent/CN117453897B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201817684D0 (en) * | 2018-10-30 | 2018-12-19 | Logical Glue Ltd | An explainable artificial intelligence mechanism |
CN113486933A (zh) * | 2021-06-22 | 2021-10-08 | 中国联合网络通信集团有限公司 | 模型训练方法、用户身份信息预测方法及装置 |
CN115618113A (zh) * | 2022-11-03 | 2023-01-17 | 中国人民解放军国防科技大学 | 一种基于知识图谱表示学习的搜索召回方法和*** |
Non-Patent Citations (2)
Title |
---|
Optimization of information retrieval for cross media contents in a best practice network;Pierfrancesco Bellini 等;《International Journal of Multimedia Information Retrieval》;20140508;第3卷;147–159 * |
遗传算法和相关反馈在查询优化中的应用;陈杏环;《中国优秀硕士学位论文全文数据库 (信息科技辑)》;20070115(第1期);I138-281 * |
Also Published As
Publication number | Publication date |
---|---|
CN117453897A (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271505B (zh) | 一种基于问题答案对的问答***实现方法 | |
CN108932342A (zh) | 一种语义匹配的方法、模型的学习方法及服务器 | |
CN117453897B (zh) | 一种基于大模型和遗传算法的文档问答方法及*** | |
CN112463944B (zh) | 一种基于多模型融合的检索式智能问答方法及装置 | |
CN113159187B (zh) | 分类模型训练方法及装置、目标文本确定方法及装置 | |
CN113704386A (zh) | 一种基于深度学习的文本推荐方法、装置及相关介质 | |
CN116303977B (zh) | 一种基于特征分类的问答方法及*** | |
CN116796045B (zh) | 一种多维度图书分级方法、***及可读介质 | |
CN115270797A (zh) | 一种基于自训练半监督学习的文本实体抽取方法及*** | |
Ni et al. | Enhancing cloud-based large language model processing with elasticsearch and transformer models | |
Kwon et al. | Considering nested tree structure in sentence extractive summarization with pre-trained transformer | |
CN115204143A (zh) | 一种基于prompt的文本相似度计算方法及*** | |
CN117807232A (zh) | 商品分类方法、商品分类模型构建方法及装置 | |
CN111666374A (zh) | 一种在深度语言模型中融入额外知识信息的方法 | |
CN114329181A (zh) | 一种题目推荐方法、装置及电子设备 | |
CN117592563A (zh) | 一种领域知识增强的电力大模型训调方法 | |
CN116842934A (zh) | 一种基于持续学习的多文档融合深度学习标题生成方法 | |
CN115203206A (zh) | 数据内容搜索方法、装置、计算机设备及可读存储介质 | |
CN115238705A (zh) | 语义解析结果重排序方法及*** | |
CN114325384A (zh) | 一种基于电机故障知识的众包采集***及方法 | |
CN112926340A (zh) | 一种用于知识点定位的语义匹配模型 | |
CN118093834B (zh) | 一种基于aigc大模型的语言处理问答***及方法 | |
CN114036946B (zh) | 一种文本特征提取及辅助检索的***及方法 | |
CN117150305B (zh) | 融合检索和填空的文本数据增强方法、装置及电子设备 | |
CN118228718B (zh) | 编码器处理方法、文本处理方法及相关设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |