【大模型基础_毛玉仁】6.4 生成增强


目录

    • 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级别的方法:

  • 子文本级别的方法;

  • 全文本级别的方法。

(1)Token级别的压缩方法

通过评估Token的困惑度来剔除冗余信息。困惑度低的Token表示信息量少,可能是冗余的;困惑度高的Token则包含更多信息。LongLLMLingua框架利用小模型计算困惑度,首先进行粗粒度压缩,通过文档的困惑度均值评估其重要性;然后进行细粒度压缩,逐个Token评估并删除低困惑度的Token。此外,该方法还引入了文档重排序、动态压缩比率子序列恢复机制,以确保重要信息被有效保留。

(2)子文本级别方法通过

评估子文本的有用性进行成片删除。FITRAG方法利用双标签子文档打分器,从事实性模型偏好两个维度评估子文档。具体步骤为:滑动窗口分割文档,双标签打分器评分,最后删除低评分子文档以去除冗余。

(3)全文本级别方法:

通过训练信息提取器直接从文档中抽取出重要信息以去除冗余。PRCA方法分为两个阶段:

  • 上下文提取阶段:通过监督学习最小化压缩文本与原始文档的差异,训练提取器将文档精炼为信息丰富的压缩文本。

  • 奖励驱动阶段:利用大语言模型作为奖励模型,根据压缩文本生成答案与真实答案的相似度作为奖励信号,通过强化学习优化提取器。

最终,经典方法PRCA能够端到端地将输入文档转化为压缩文本,高效去除冗余信息。

2)复用计算结果

可以对计算必需的中间结果进行复用,以优化 RAG 效率。

(1)KV-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 张量检索和模型推理,降低端到端延迟。

.


其他参考:【大模型基础_毛玉仁】系列文章


声明:资源可能存在第三方来源,若有侵权请联系删除!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/900023.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode 合集 -- 排列问题 | 递归

题目1 子集2 思路 代码 题目2 全排列2 思路 代码 题目3 排列总和 思路 代码 题目4 排列总和2 思路 代码

vue-office 支持预览多种文件(docx、excel、pdf、pptx)预览的vue组件库

官网地址:https://github.com/501351981/vue-office 支持多种文件(docx、excel、pdf、pptx)预览的vue组件库,支持vue2/3。也支持非Vue框架的预览。 1.在线预览word文件(以及本地上传预览) 1.1:下载组件库 npm inst…

【trino】trino配置证书https tls/ssl访问

trini版本470 一、官方文档 doc 在Security/TLS and HTTPS、Security/PEM files和Security/JKS files下 openssl文档 二、配置trino 2.1 创建server.cnf文件 [ req ] distinguished_name req_distinguished_name req_extensions v3_req[ req_distinguished_name ] coun…

ZCC8702,LED驱动芯片的“六边形战士”可替代SY8707

在LED照明的璀璨舞台上,驱动芯片犹如幕后英雄,默默掌控着灯光的闪耀与变幻。ZCC8702作为一款集大成的LED驱动芯片,凭借其卓越的性能、广泛的应用范围和出色的稳定性,成为了这个领域中当之无愧的“六边形战士”。今天,就…

Vue 数据传递流程图指南

今天,我们探讨一下 Vue 中的组件传值问题。这不仅是我们在日常开发中经常遇到的核心问题,也是面试过程中经常被问到的重要知识点。无论你是初学者还是有一定经验的开发者,掌握这些传值方式都将帮助你更高效地构建和维护 Vue 应用 目录 1. 父…

Git Restore 命令详解与实用示例

文章目录 Git Restore 命令详解与实用示例1. 恢复工作区文件到最后一次提交的状态基本命令示例恢复所有更改 2. 恢复某个文件到特定提交的状态基本命令示例 3. 恢复暂存区的文件基本命令示例恢复所有暂存的文件 git restore 的常见选项git restore 与 git checkout 比较总结 Gi…

AI 防口误指南_LLM 输出安全实践

在数字化转型的浪潮中,大语言模型(以下统称LLM)已成为企业技术栈中不可或缺的智能组件,这种强大的AI技术同时也带来了前所未有的安全挑战。它输出的内容如同双面刃,一面闪耀着效率与创新的光芒,另一面却隐藏着"幻觉"与不…

程序化广告行业(55/89):DMP与DSP对接及数据统计原理剖析

程序化广告行业(55/89):DMP与DSP对接及数据统计原理剖析 大家好呀!在数字化营销的大趋势下,程序化广告已经成为众多企业实现精准营销的关键手段。上一篇博客我们一起学习了程序化广告中的人群标签和Look Alike原理等知…

运维之 Centos7 防火墙(CentOS 7 Firewall for Operations and Maintenance)

运维之 Centos7 防火墙 1.介绍 Linux CentOS 7 防火墙/端口设置: 基础概念: 防火墙是一种网络安全设备,用于监控和控制网络流量,以保护计算机系统免受未经授权的访问和恶意攻击。Linux CentOS 7操作系统自带了一个名为iptables的…

第十五届蓝桥杯大赛软件赛省赛Python 大学 C 组题目试做(下)【本期题目:砍柴,回文字符串】

okk,大伙,这一期我们就把C组的题目刷完。 本期题目:砍柴,回文字符串 文章目录 砍柴题目思路分析举个栗子思路总结 代码 回文字符串题目思路分析代码 感谢大伙观看,别忘了三连支持一下大家也可以关注一下我的其它专栏&a…

Design Compiler:库特征分析(ALIB)

相关阅读 Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482 简介 在使用Design Compiler时,可以对目标逻辑库进行特征分析,并创建一个称为ALIB的伪库(可以被认为是缓存)&…

MySQL索引原理:从B+树手绘到EXPLAIN

最近在学后端,学到了这里做个记录 一、为什么索引像书的目录? 类比:500页的技术书籍 vs 10页的目录缺点:全表扫描就像逐页翻找内容优点:索引将查询速度从O(n)提升到O(log n) 二、B树手绘课堂 1. 结构解剖&#xff0…

全连接RNN反向传播梯度计算

全连接RNN反向传播梯度计算 RNN数学表达式BPTT(随时间的反向传播算法)参数关系网络图L对V的梯度L对U的梯度L对W和b的梯度 RNN数学表达式 BPTT(随时间的反向传播算法) 参数关系网络图 L对V的梯度 L对U的梯度 L对W和b的梯度

C++高效读取大规模文本格式点云(windows)

需使用VS2017及以上版本&#xff0c;C语言标准选择C17&#xff0c;支持OpenMP。 执行效率明显优于ifstream stof。 // 点云数据结构 struct PointXYZ {std::array<float, 3> coord; };float string_to_float_fast(const std::string& str) {float value;auto [p…

【Linux】进程信号的捕捉处理

个人主页~ 进程信号的捕捉处理 一、信号捕捉处理的概述1、信号捕捉处理全过程2、用户态和内核态的区别&#xff08;一&#xff09;用户态&#xff08;二&#xff09;内核态&#xff08;三&#xff09;用户态与内核态的切换&#xff08;四&#xff09;硬件条件 二、再谈进程地址…

Nyquist内置函数-概述

1 Nyquist内置函数-概述 本章提供奈奎斯特&#xff08;Nyquist&#xff09;语言参考。操作按功能和抽象级别分类。奈奎斯特在两个重要级别上实现&#xff1a;“高级”级别支持行为抽象&#xff0c;这意味着像 stretch 和 at 这样的操作可以应用。这些函数是典型用户期望使用的…

数据驱动防灾:AI 大模型在地质灾害应急决策中的关键作用。基于DeepSeek/ChatGPT的AI智能体开发

全球气候变化加剧了滑坡、泥石流等地质灾害的发生频率与不确定性&#xff0c;传统基于统计与物理模型的预测方法常受限于‌数据稀疏性‌与‌动态耦合复杂性‌。近年来&#xff0c;AI智能体&#xff08;AI Agents&#xff09;与大型语言模型&#xff08;LLMs&#xff09;的突破为…

光谱相机在工业中的应用

光谱相机&#xff08;多光谱、高光谱、超光谱成像技术&#xff09;在工业领域通过捕捉物质的光谱特征&#xff08;反射、透射、辐射等&#xff09;&#xff0c;结合化学计量学与人工智能算法&#xff0c;为工业检测、质量控制和工艺优化提供高精度、非接触式的解决方案。以下是…

Dify工作流中如何去除deepseek-r1思考内容

在工作流中deepseek-r1的think标签内部的内容&#xff0c;很容易让工作流其他的llm产生幻觉&#xff0c;导致不能良好的生成目标效果。 我们通过代码的方式让deepseek-r1既有think思考链的效果&#xff0c;又不传递思考链。 工作流的逻辑为上图 去除think中的代码为 import re…

容器的CPU

1、限制进程的CPU 通过Cgroup来限制进程资源的使用&#xff0c;CPU Cgroup 是 Cgroups 其中的一个 Cgroups 子系统&#xff0c;它是用来限制进程的 CPU 使用的。 cpu.cfs_period_us&#xff0c;它是 CFS 算法的一个调度周期&#xff0c;一般它的值是 100000&#xff0c;以 mic…