织梦网站首页栏目修改,中国铁路总公司建设管理部网站,直播app制作公司,门户网站建设困难目录 6.4 生成增强6.4.1 何时增强1#xff09;外部观测法2#xff09;内部观测法 6.4.2 何处增强6.4.3 多次增强6.4.4 降本增效1#xff09;去除冗余文本2#xff09;复用计算结果 6.4 生成增强
检索器得到相关信息后#xff0c;将其传递给大语言模型以期增强模型的生成能… 目录 6.4 生成增强6.4.1 何时增强1外部观测法2内部观测法 6.4.2 何处增强6.4.3 多次增强6.4.4 降本增效1去除冗余文本2复用计算结果 6.4 生成增强
检索器得到相关信息后将其传递给大语言模型以期增强模型的生成能力。利用这些信息进行生成增强是一个复杂的过程不同的方式会显著影响 RAG 的性能。
如何优化增强过程围绕四个方面讨论 何时增强确定何时需要检索增强以确保非必要不增强 何处增强确定在模型中的何处融入检索到的外部知识以最大化检索的效用 多次增强如何对复杂查询与模糊查询进行多次迭代增强以提升 RAG 在困难问题上的效果 降本增效如何进行知识压缩与缓存加速以降低增强过程的计算成本。
.
6.4.1 何时增强
大语言模型在训练过程中掌握了大量知识这些知识被称为内部知识Self Knowledge。对于内部知识可以解决的问题我们可以不对该问题进行增强。
不对是否需要增强进行判断而盲目增强可能引起生成效率和生成质量上的双下降。
判断是否需要增强的核心在于判断大语言模型是否具有内部知识。两种方法 外部观测法通过 Prompt 直接询问模型是否具备内部知识或应用统计方法对是否具备内部知识进行估计这种方法无需感知模型参数 内部观测法通过检测模型内部神经元的状态信息来判断模型是否存在内部知识 这种方法需要对模型参数进行侵入式的探测。
1外部观测法
外部观测法通过直接对大语言模型进行询问或者观测调查其训练数据来推断其是否具备内部知识。判断方法有 Prompt 直接询问大语言模型是否含有相应的内部知识 反复询问大语言模型同一个问题观察模型多次回答的一致性。 翻看训练数据来判断其是否具备内部知识。 设计伪训练数据统计量来拟合真实训练数据的分布间接评估模型对知识的学习情况。比如由于模型对训练数据中低频出现的知识掌握不足而对更“流行”高频的知识掌握更好因此实体的流行度作可以作为伪训练数据统计量。
2内部观测法
分析模型在生成时内部每一层的隐藏状态变化比如注意力模块的输出、多层感知器 (MLP) 层的输出与激活值变化等来进行评估其内部知识水平。
模型的中间层前馈网络在内部知识检索中起关键作用通过训练线性分类器探针可区分问题是否属于模型“已知”或“未知”。研究针对注意力层输出、MLP层输出和隐层状态三种内部表示设计实验结果表明大语言模型利用中间层隐藏状态进行分类时准确率较高验证了中间层能有效反映模型对问题的知识储备。
.
6.4.2 何处增强
在确定大语言模型需要外部知识后我们需要考虑在何处利用检索到的外部知识即何处增强的问题。
输入端、中间层和输出端都可以进行知识融合操作: 在输入端可将问题和检索到的外部知识拼接在 Prompt 中 在中间层可以采用交叉注意力将外部知识直接编码到模型的隐藏状态中 在输出端可以利用外部知识对生成的文本进行后矫正。
.
6.4.3 多次增强
实际应用中用户对大语言模型的提问可能是复杂或模糊的。 处理复杂问题时常采用分解式增强的方案。该方案将复杂问题分解为多个子问题子问题间进行迭代检索增强 最终得到正确答案。 处理模糊问题时常采用渐进式增强的方案。该方案将问题的不断细化然后分别对细化的问题进行检索增强力求给出全面的答案以覆盖用户需要的答案。
图 6.24: DSP 流程示意图分解式增强
图 6.25: TOC 框架流程示意图渐进式增强
.
6.4.4 降本增效
检索出的外部知识通常包含大量原始文本。将其通过 Prompt 输入给大语言模型时会大幅度增加输入 Token 的数量从而增加了大语言模型的推理计算成本。
此问题可从去除冗余文本与复用计算结果两个角度进行解决。
1去除冗余文本
去除冗余文本的方法通过对检索出的原始文本的词句进行过滤从中选择出部分有益于增强生成的部分。
去除冗余文本的方法主要分为三类 Token级别的方法 子文本级别的方法 全文本级别的方法。
1Token级别的压缩方法
通过评估Token的困惑度来剔除冗余信息。困惑度低的Token表示信息量少可能是冗余的困惑度高的Token则包含更多信息。LongLLMLingua框架利用小模型计算困惑度首先进行粗粒度压缩通过文档的困惑度均值评估其重要性然后进行细粒度压缩逐个Token评估并删除低困惑度的Token。此外该方法还引入了文档重排序、动态压缩比率和子序列恢复机制以确保重要信息被有效保留。
2子文本级别方法通过
评估子文本的有用性进行成片删除。FITRAG方法利用双标签子文档打分器从事实性和模型偏好两个维度评估子文档。具体步骤为滑动窗口分割文档双标签打分器评分最后删除低评分子文档以去除冗余。
3全文本级别方法
通过训练信息提取器直接从文档中抽取出重要信息以去除冗余。PRCA方法分为两个阶段 上下文提取阶段通过监督学习最小化压缩文本与原始文档的差异训练提取器将文档精炼为信息丰富的压缩文本。 奖励驱动阶段利用大语言模型作为奖励模型根据压缩文本生成答案与真实答案的相似度作为奖励信号通过强化学习优化提取器。
最终经典方法PRCA能够端到端地将输入文档转化为压缩文本高效去除冗余信息。
2复用计算结果
可以对计算必需的中间结果进行复用以优化 RAG 效率。
1KV-cache 复用
在大语言模型推理自回归过程中每个 Token 都要用之前 Token 注意力模块的 Key 和 Value 的结果。为避免重新计算我们将之前计算的 Key 和 Value 的结果进行缓存即 KV-cache在需要是直接从 KV-cache 中调用。
然而随着输入文本长度的增加KV-cache 的 GPU 显存占用会显著增加甚至超过模型参数的显存占用。
图 6.26: RAGCache 框架流程示意图
不过RAG 中不同用户查询经常检索到相同的文本而且常见的查询通常数量有限。因此我们可以将常用的重复文本的 KV-cache 进行复用。基于此RAGCache 设计了一种 RAG 系统专用的多级动态缓存机制核心部分 KV 张量缓存库采用树结构来缓存所计算出的文档 KV 张量其中每个树节点代表一个文档 缓存检索器负责在缓存库中快速查找是否存在所需的缓存节点 RAG 控制器作为系统的策略中枢负责制定核心的缓存策略。
为优化 RAG 性能RAG 控制器采用了以下策略 PGDSF 替换策略通过综合考虑文档的访问频率、大小、访问成本和最近访问时间优化频繁使用文档的检索效率。 重排策略调整请求处理顺序优先处理高缓存利用率的请求减少重新计算的需求。 动态推测流水线策略并行执行 KV 张量检索和模型推理降低端到端延迟。
. 其他参考【大模型基础_毛玉仁】系列文章 声明资源可能存在第三方来源若有侵权请联系删除