当前位置: 首页 > news >正文

模块四-LLM与文本生成

模块四-LLM与文本生成

系列导航:本文是 RAG 技术教程 的第四篇。可与模块三并行学习。

前置知识:需了解模块一中的 LLM 基础概念(词元、上下文窗口、幻觉)。模块三讲检索器,本模块讲生成器,两者互补。

版权声明:本系列基于 DeepLearning.AI 课程Building and Evaluating Advanced RAG Applications(讲师 An Hassan)整理,为学习笔记性质的二次创作。原始课程版权归 DeepLearning.AI 及讲师所有。

1. LLM 与文本生成:从 Transformer 到 Agentic RAG

1.1 1. LLM 在 RAG 中的核心地位

检索器可以找到并准备有用的信息,但真正需要利用这些信息生成高质量回复的是 LLM。检索器不需要会写文章,LLM 不需要会查资料,各司其职。本模块深入 LLM 的工作原理、调优手段和高级应用。

1.2 2. Transformer 架构解析

1.2.1 起源与核心组件

Transformer 在 2017 年论文《Attention Is All You Need》中首次提出,最初用于机器翻译。它由两大组件构成:

  • 编码器(Encoder):处理原始文本,建立深层语境理解。通常用于嵌入模型内部。
  • 解码器(Decoder):利用理解生成新文本。大多数语言模型仅包含解码器——因为只需关注文本生成。

1.2.2 九步处理流程

提示进入 Transformer 后经历九个步骤:

步骤名称做了什么
1文本分词提示被拆分为词元
2初始嵌入每个词元被赋予初始密集向量(对该词元含义的初步猜测)
3位置编码每个词元获得位置向量以捕捉在提示中的位置
4注意力机制每个词元查看所有其他词元,决定应重点关注哪些
5前馈层基于注意力结果,为每个词元分配更新的向量嵌入
6重复多层步骤 4-5 重复 8-64 次,逐步完善理解
7概率分布基于最终向量,计算词汇表中每个词元作为下一个出现的概率
8选择词元从概率分布中采样一个词元,追加到文本末尾
9自回归生成如果需要生成第二个词元,重复步骤 1-8,同时考虑原始词元和新增词元

1.2.3 注意力机制详解

注意力机制是 Transformer 的核心。每个词元会查看提示中的所有其他词元,并决定应重点关注哪些。

示例:“棕色的狗坐在红色狐狸旁边” → “狗"可能最关注"棕色"和"坐”(70% 给"棕色",20% 给"坐",10% 分布在其他词元上)。

注意力头(Attention Head):分配注意力的机制。大多数模型包含多个注意力头,专门处理不同词语间的关系。一个注意力头可能专注于对象与其描述之间的关系,另一个可能专门处理空间关系。小型模型可能使用 8-16 个注意力头,大型模型可能超过 100 个。

1.2.4 对 RAG 的三个启示

  1. 解释 RAG 为何有效:模型能深入理解提示中添加信息的意义和相关性(得益于注意力机制)
  2. LLM 本质上仍是随机的:即使注入了有意义的信息,LLM 仍可能随机不基于该信息生成文本 → 需要控制随机性并验证答案
  3. 计算成本:单个词元需要大量处理,成本随提示或输出长度增加而增长

1.3 3. LLM 采样策略

1.3.1 概率分布

LLM 添加到回复中的每个词元都是加权随机选择。开源模型可以查看每一步生成的词元概率分布。

  • 尖锐分布:模型对其选择非常自信,只有一个或少数几个词元有实际被选中的可能
  • 平坦分布:模型有许多可能的方向,没有明确的胜出者

1.3.2 采样参数详解

贪心解码:指示 LLM 始终选择概率最高的词元。使 LLM 变得确定性(相同提示始终生成相同回复),但文本完全可预测,可能显得泛泛或生硬,有时会陷入重复生成相同词语序列的循环。适用于需要高度可预测输出的场景(如代码补全)或调试系统。

温度(Temperature):控制 LLM 随机性的最常用参数——调节概率分布形状的旋钮。

温度值效果
温度 = 0启用贪心解码,仅最可能的词元有 100% 概率
温度 < 1更尖锐的分布,只有最可能的词元有生成机会
温度 = 1保留原始分布(默认)
温度 1.1-1.3平滑概率分布,增加多样性,产生更有趣甚至创意文本
温度过高概率分布非常平坦,所有词元被选的概率大致相等,即使不合逻辑

Top-K 采样:限制 LLM 从最可能的前 K 个词元中选择。例如同时设置温度为 1.1 并限制从最可能的 5 个后续词元中选择。

Top-P 采样(Nucleus Sampling):限制 LLM 选择累积概率低于阈值的词元。例如设置 Top-P 为 85%,从分布左侧开始累加每个词元的概率直到总和超过 85%。

Top-P vs Top-K 的区别:Top-P 通常更灵活——LLM 始终从固定词元池中选择,无论分布形状如何。模型确定时限制为最可能的少数词元,不确定时可从更大候选池中选择。

重复惩罚:降低完成文本中已出现词元的概率,使生成文本听起来更自然且多样化。

对数偏差(Logit Bias):调整特定词元的概率(永久性调整)。例如降低某些词汇的概率以防止生成粗俗内容,或提升特定类别的概率以确保 LLM 始终在这些类别中选择。

1.3.3 采样参数速查

参数作用调大效果调小效果
温度控制分布形状更多样、更创意更确定、更保守
Top-K限制候选词元数量候选池更大、更多样候选池更小、更确定
Top-P限制累积概率阈值候选池更大、更多样候选池更小、更确定
重复惩罚抑制重复词元更少重复、更多样允许重复
对数偏差永久调整特定词元概率特定词元更易出现特定词元更难出现

1.3.4 推荐参数组合

场景温度Top-P重复惩罚说明
代码/事实性问题0-0.30.91.1保守选择,确保准确
通用对话0.80.91.2平衡准确与自然
创意写作1.1-1.30.951.3鼓励探索性文本

1.4 4. 大语言模型选择

市面上有大量不同性能级别的语言模型,各具独特能力且成本结构不同。选择合适的模型会对应用速度、质量与预算产生重大影响。

1.4.1 可量化差异

维度说明
模型规模通常以参数数量的十亿级别衡量(小型 1-100 亿,大型 100-500 亿)
成本模型提供商通常按百万词元固定价格计费
上下文窗口最大词元数量,更大限制允许更长的提示和响应
首次令牌响应时间以每秒词元数表示的速度
训练截止日期模型训练数据的最后时间点

1.4.2 质量基准

  • 自动化基准:特定领域的多项选择题测试或数学/编程挑战(如 MMLU — 涵盖 57 门学科)
  • 人工评估基准:两个匿名 LLM 对同一提示做出响应,由人类评估者选择更优答案 → 使用 ELO 算法生成对比排行榜(如 LM Arena)
  • LLM 作为裁判:使用一个 LLM 评估另一 LLM 的回答(相对廉价但可能偏好自身家族模型)

1.4.3 基准的陷阱

数据污染问题:基准测试数据集可能包含在训练数据中,导致模型在该基准上表现过优,实际能力并非如此。

基准饱和现象:模型在几年内就能达到与人类专家相当的表现 → 基准不再能区分不同模型 → 需要引入新的更具挑战性的基准。

选择合适的语言模型是一个重要但临时的决策,应计划最终替换为新发布的更适合的模型。

1.5 5. 提示词工程

1.5.1 消息格式

最常见的格式是 OpenAI 的消息格式——使用 JSON 结构将提示组织为一系列消息。单条消息包含:内容(纯文本)+ 角色属性。

三种角色:

  • 系统消息:指导模型整体行为,通常包含高层次指令
  • 用户消息:记录系统用户已发送的提示
  • 助手消息:记录 LLM 之前生成的响应

1.5.2 多轮对话的工作原理

LLM 实际上不会记住之前的对话内容。整个对话会被转换为消息格式,每次新用户提示都会提交整个对话。这就是为什么对话历史太长会导致成本和延迟增加——每次都要重新发送所有历史消息。

1.5.3 系统提示的设计

系统提示是放置高层次行为指导的最佳位置。典型要素包括:模型训练数据的知识截止日期、当前日期、响应流程(逐步推理)、安全约束、输出格式(Markdown)、个性特征。

在 RAG 系统中,系统提示可以要求模型仅使用检索到的文档回答问题,或判断文档是否相关,或在回应中引用来源。

1.5.4 增强提示模板

构建精心设计的提示模板,规定提示的高层次结构:

系统提示 — 行为指导

对话历史 — 用户与 LLM 的历史消息

检索文档 — 检索器获取的前 5-10 段落 + 处理说明

最新用户提问

使用模板的优势:便于实验不同提示结构,可修改各个组件并观察对最终生成结果的影响。

1.6 6. 高级提示词技术

1.6.1 上下文学习(In-Context Learning)

通过在提示中添加示例来帮助模型学习所需输出类型。少样本学习(Few-Shot)包含多个示例,单样本学习(One-Shot)只包含一个示例。

实现方式:可以硬编码示例到提示中(稳定模型行为),也可以使用 RAG 从知识库中检索示例问题和回复(如将成功的客户对话索引到向量数据库中)。

1.6.2 思维链提示(Chain-of-Thought)

鼓励模型分步推理提示内容。指示模型先进行思考或分步分析再给出最终答案。核心思想:为语言模型提供一个整理思路的草稿区。

常见做法:使用草稿标签(如<draft>)告诉模型这些标记是思考空间而非最终答案的一部分。模型在草稿区逐步推理,然后输出最终答案。这能显著提升复杂推理任务的准确性。

1.6.3 推理模型

推理模型(如 o1、DeepSeek-R1)擅长复杂推理任务——编码、数学、规划谜题、复杂工作流程。它们先生成推理词元进行预先规划,考虑多种选项,然后输出最终响应词元。通常运行速度更慢且成本更高。

在 RAG 中,推理模型在评估检索文档的相关性方面尤为出色,更擅长决定如何将信息最佳融入回答。

推理模型的提示技巧:无需要求推理模型分步思考(这是它们已训练好的能力)。它们更擅长明确目标导向的任务。

推理模型难以进行上下文学习,原因在于训练方式的差异。普通 LLM 的训练目标是"给定输入,输出最可能的文本",收到 few-shot 示例时会把它当作模式来模仿。推理模型的训练目标是"拿到问题后,先自己推理,再输出答案",收到示例时不会简单模仿,而是把示例也当作需要分析和推理的素材——它"想太多"了,反而偏离了想要的简单输出。所以推理模型更适合直接给目标(“判断以下文本的情感”),而不是给示例让它模仿。

1.6.4 上下文窗口管理

初始提示和 LLM 生成的补全内容都会占用上下文窗口。检索文档、上下文信息、学习示例、推理模型规划会迅速填满窗口。

上下文修剪方法:

  • 简单方案:保留固定数量的最新消息(如最后 5 条)
  • 复杂方法:使用独立 LLM 摘要旧消息,缩小体积同时保留关键信息
  • 推理模型:几乎需要移除聊天历史中的推理词元,仅保留响应词元
  • RAG 系统:通常只需包含检索到的片段以支持最近问题的响应

1.7 7. 幻觉处理

1.7.1 幻觉的类型

级别表现示例
轻微准确描述但细节错误折扣 5% vs 10%
中等错误声称存在实际不存在的信息声称某功能已上线
严重完全虚构信息虚构公司从未提供的学生折扣

幻觉问题没有完美解决方案。RAG 是目前最佳方法之一。

1.7.2 减少幻觉的方法

系统提示约束:修改系统提示,要求模型仅能基于检索信息进行事实陈述。这是最直接的手段。

引用来源:要求模型在每句或段落结尾引用来源。提高模型回应与检索源的一致性,便于人类验证。当模型知道需要引用时,它更倾向于基于提供的信息作答。

自一致性检查:让模型对同一提示多次生成回答(如 5 次),然后检查事实信息是否一致。如果某个事实在 5 次回答中出现了 4 次,可信度较高;如果只出现 1 次,可能是幻觉。成本高且不完全可靠,但在高价值场景中值得使用。

1.7.3 幻觉检测工具

ContextCite 系统:逐句处理回应,将其归因于检索到的上下文文档之一,为每句生成标签标注来源文档。当陈述缺乏支持材料时标记为无来源。

ALCE 基准测试:衡量系统在生成响应时引用来源的能力,生成三个关键指标:流畅性、正确性与引用质量。

1.8 8. LLM 性能评估

1.8.1 专用评估指标

大多数指标依赖于使用其他语言模型评估回复质量(LLM-as-Judge)。

回复相关性(Answer Relevance):RAG 系统生成的回复 → 输入新 LLM 生成多个可能的示例提示 → 计算实际用户提示与每个示例提示的余弦相似度 → 取平均。检查能否合理地从响应反推用户提示。

可信度(Faithfulness):使用 LLM 识别响应中的所有事实声明 → 判断这些声明中有多少得到知识库中检索到的信息支持。被支持的声明百分比即为可信度。

1.8.2 跨系统评估

用户反馈(点赞/点踩)→ A/B 测试系统变更。调整提示并观察对用户满意度的影响。由于模型响应质量具有主观性,应计划使用模型作为裁判的评估或人工反馈评估。

1.9 9. 自主式 RAG(Agentic RAG)

1.9.1 Agentic 工作流的定义

在系统中使用多个语言模型,每个负责整个流程中的单一步骤。你已经见过这个概念:用于查询扩展的语言模型、提示重写、引用生成。

Agentic 系统有两个关键变化:

  1. 任务分解:任务被分解为一系列步骤和决策,每个步骤都可以调用不同的语言模型完成
  2. 工具访问:语言模型可以访问更广泛的工具(如代码解释器、网络浏览器、向量数据库)

1.9.2 Agentic RAG 完整示例

不需要检索

需要检索

文档不够

文档足够

用户提交提示

路由 LLM

生成 LLM

检索器查找文档

评估 LLM

构建增强提示

最终 LLM 审核并添加引用

返回回答

  • 路由 LLM(小型模型):判断提示是否需要调用向量数据库(只输出是或否)
  • 评估 LLM:确定检索的文档是否足以回答问题,如果不够则再次请求检索
  • 最终 LLM:审核响应并添加引用

不需要在每个步骤使用相同的 LLM。路由器和评估器可以是轻量级模型(运行快、成本低),生成回复使用更大的模型。

1.9.3 四种工作流模式

模式说明示例
顺序工作流线性传递输出查询解析 → 查询撰写 → 引用生成
条件工作流LLM 决定走哪条路径路由器决定是否需要检索
迭代工作流输出路由回早期阶段形成循环代码生成系统多次尝试直到可运行
并行工作流拆分为独立任务,完成后合并编排 LLM 拆分任务,合成 LLM 整合

LLM 开始看起来不像独立解决方案,而更像是可嵌入更大工作流的模块化组件。

1.10 10. RAG vs 微调

1.10.1 微调的本质

通过重新训练现成的 LLM 以提升特定场景下的性能。使用领域标注数据集(包含提示和预期答案)进行再训练,模型被适配到特定指令。

1.10.2 微调的效果

以医疗领域为例:通用语言模型对特定症状(关节疼痛、皮肤皮疹、日光敏感)给出泛泛回答 → 微调后显著提升该类问题的解答能力,采用更符合医疗领域的风格。在特定领域性能提升,但可能降低其他领域的性能。

1.10.3 微调的关键认识

微调通常不是向 LLM 传授新信息的好方法。它对模型响应提示的方式影响更大(如使用的词汇、风格或结构),而对模型掌握的信息影响较小。

在 Agentic 系统中,微调特别适用于小型模型——如果模型的唯一任务是判断提示是否需要检索,可以使用小型轻量级模型并充分微调使其仅在单一任务上表现优异。

1.10.4 RAG vs 微调对比

维度RAG微调
最擅长知识注入(让 LLM 访问新信息)领域适配(让 LLM 专注于特定任务/领域)
典型场景检索信息回答问题路由提示、特定类型响应
信息更新只需更新知识库需要重新训练

微调和 RAG 常被描述为竞争方案,但更准确的是互补工具。可以专门微调模型以将检索信息融入最终响应,帮助模型在其 RAG 系统中的角色专业化。将微调模型添加到 RAG 管道中可以提升系统性能。


来源:吴恩达 RAG 课程模块四(讲28-讲38),讲师 An Hassan。


1.11 思考题

  1. 温度设为 0 和设为 1.2 分别适用于什么场景?如果同时调高温度和调高 Top-K,效果会叠加吗?
  2. 思维链提示为什么能提升复杂推理任务的准确性?它对简单问题有效吗?
  3. 在你的 RAG 系统中,你会选择用 RAG、微调、还是两者结合?为什么?

下一篇:模块五:生产环境中的 RAG 系统

http://www.jsqmd.com/news/1085974/

相关文章:

  • 抖音批量下载解决方案:高效自动化内容获取架构与实践指南
  • 小猫爪:i.MX RT1170实战指南——MCUBootUtility镜像配置与下载全解析
  • RFSoC应用笔记 - RF数据转换器 -08- RF-DAC关键配置之动态功率调节实战(VOP篇)
  • 【故障排查】浪潮服务器硬盘红灯长鸣:从RAID异常到Foreign配置导入的实战解析
  • 2026权威选型指南|主流AI编程助手深度横评,开发者精准适配方案
  • 字体革命:如何用Noto字体彻底消灭豆腐块乱码?
  • Apache APISIX高危漏洞CVE-2022-24112:从插件热加载到RCE的深度剖析与防御
  • 绿联NAS部署RustDesk私有服务器:告别第三方远控,打造专属安全通道
  • 从零到一:基于阿里云MQTT的ESP32 OTA升级实战解析
  • 从零搭建STM32F407ZG开发环境:Keil5项目配置与标准库实战
  • Freesurfer recon-all实战:从数据准备到结果解读的完整指南
  • 揭秘日硕环卫管理平台:功能强数据准,但操作和稳定有短板!
  • Chrome变身专业Markdown阅读器:markdownReader插件完全指南
  • CI/CD 流水线与 GitOps:从代码提交到生产发布的自动化闭环
  • Apache Shiro反序列化漏洞原理与ShiroExplorer V0.2实战指南
  • 基于Si24R1芯片的G01-S模块与Arduino双向串口透传实战
  • 百度网盘解析工具技术架构与高性能下载解决方案深度解析
  • Android 开发者的代码仓库:cw-omnibus 全解析
  • 从等效旋转矢量到四元数:三维旋转的数学桥梁与工程实践
  • 3分钟搞定Windows窗口尺寸限制:WindowResizer让你完全掌控屏幕空间
  • Android WindowInsetsController 实战:沉浸式体验与系统栏交互设计
  • PRODRIVE ARCAS 6001-1921-0800控制器
  • ESP8266+CH340自动下载电路+LCD显示屏打造桌面天气时钟
  • 如何快速掌握Unity逆向分析:Il2CppDumper终极指南
  • 终极指南:使用OCAT图形化工具简化OpenCore配置
  • Sonar规则深度解析:为何捕获InterruptedException后必须重置中断状态
  • 钢化膜透光率测试方法与影响因素分析——悟赫德护景贴观复盾的测试实践
  • 【推荐算法】从特征交叉到序列建模:深度学习推荐系统核心架构演进与实战解析
  • Linux实战:iSCSI网络存储的配置与自动化挂载
  • YOLO26N 轻量化模型:移动端与嵌入式部署指南