大模型落地:从下一词预测到RAG与微调的工程实践

发布时间:2026/11/3 23:05:03
大模型落地:从下一词预测到RAG与微调的工程实践 简介这份140页的PDF讲义由厦门大学大数据教学团队出品、林子雨副教授主讲围绕DeepSeek等主流大模型展开科普面向希望系统入门却缺少成体系材料的高校师生、技术开发者与职场学习者。内容从图灵测试与达特茅斯会议讲起梳理人工智能的六个发展阶段与「了解、区分、协作」的AI思维随后逐层展开大模型的概念界定、参数规模演进、萌芽期至爆发期的三段历程、原理特点与分类并延伸到大模型在各行业的应用、对工作生活的影响、本地部署与智能体构建最后以AIGC应用实践收束。资源包内含1个PDF文件体积约14.41MB140页幻灯片按四大板块编排目录层级清晰便于按章节检索或整篇通读。目前已有663人学习。读者可借此建立从发展史、技术原理到落地实践的完整认知框架并对照本地部署与智能体部分规划自己的动手实验。1. 大模型不是“大号函数”为什么参数规模解释不了落地效果大模型概念、技术与应用实践最容易讲成一场参数规模排行榜但真正决定一个模型能不能落地的往往不是“多大”而是下一词预测、注意力机制、数据配比和对齐训练有没有串成闭环。某高校教学团队把这条链路拆成科普材料后最反直觉的结论是大模型不是一个大号函数而是一套把算力、数据、架构和人类反馈耦合起来的工程系统。搞懂它你才知道为什么同一个模型在演示里惊艳、进业务却翻车也才知道提示词、检索增强和微调各自该在什么位置发力。这份资料的价值不在于让你记住几个模型名字而在于把黑匣子拆成可以逐层验证的机制。2. 从模仿游戏到下一词预测语言能力怎么被训练出来2.1 判定智能的实验为什么不能直接变成训练目标早期判断机器是否具备智能常用一种行为主义实验让人隔着屏幕和另一方对话如果分辨不出对方是人还是机器就认为机器通过了判定。这个实验在哲学上很巧妙在工程上却有一个致命问题它只给出“像不像”的结论不给出可求导、可优化的训练信号。你不能拿一个“像人”的判定结果直接去更新几十亿个参数因为判定过程不可微也无法告诉模型哪一个词该调高概率、哪一个词该调低。自然语言处理最终绕开了这个坑把语言建模转成条件概率问题。给定前文模型输出下一个词的概率分布训练目标就是让真实下一个词的概率尽量高。这个目标可微、可并行、可用海量无标注文本构造监督信号属于典型的自监督学习。它不需要人工标注“这句话是否合理”只需要把文本中的下一个词遮住让模型猜。猜错就回传梯度猜对就强化。语言能力就是在这种反复猜词中被压进权重的。这里有一个常见误解模型不是把互联网文本存进数据库而是把词与词之间的统计规律压缩成参数。它学到的是“在什么上下文里什么词更可能出现”而不是“某个事实一定为真”。这个区别决定了后面所有落地问题模型可以生成流畅但错误的内容因为流畅性来自概率事实性需要外部约束。2.2 下一词预测的数学形式交叉熵把语言变成概率分布把一句话拆成词元序列 (w_1, w_2, ..., w_n)语言模型利用链式法则把整句概率分解为[ p(w_1,...,w_n)\prod_{t1}^{n}p(w_t|w_{t}) ]训练时模型在每一步输出一个 logits 向量长度等于词表大小经过 softmax 变成概率分布再与真实下一个词的 one-hot 标签计算交叉熵。交叉熵越小说明模型给正确词的概率越高。下面这段伪代码把关键步骤压缩到十几行方便看清“生成”和“训练”其实是同一套东西的两面。import math def softmax(logits, temperature1.0): # temperature 越大分布越平缓越小分布越尖锐 scaled [z / temperature for z in logits] m max(scaled) exps [math.exp(z - m) for z in scaled] total sum(exps) return [e / total for e in exps] def cross_entropy(probs, target_index): # 目标词的概率越高损失越小加 1e-12 防止 log(0) return -math.log(probs[target_index] 1e-12) logits [2.0, 1.0, 0.1, -1.0] # 模型对词表中四个候选词的原始打分 probs softmax(logits, temperature0.8) loss cross_entropy(probs, target_index1) print(probs, loss)这段代码里logits是模型最后一层输出的未归一化分数temperature控制采样时的随机性target_index是真实下一个词在词表中的位置。训练阶段通常固定temperature1.0计算交叉熵推理阶段才会调温度让输出更稳定或更有创造性。很多人把温度叫“玄学参数”其实它只是在 softmax 前对 logits 做缩放温度低高概率词更高温度高低概率词也有机会冒头。理解这一点调参时就不会盲目试数字。2.3 自注意力机制为什么长距离依赖不再靠循环硬记早期序列模型靠循环结构逐步传递状态长距离依赖容易被压缩丢失训练也难以并行。自注意力机制换了一个思路每个词元都生成三个向量查询向量 Q、键向量 K、值向量 V用 Q 和所有 K 做点积得到注意力分数除以 (\sqrt{d_k}) 防止维度太大导致梯度消失softmax 归一化后对 V 加权求和。这样每个位置都能直接看到序列中任意位置的信息路径长度从“按距离逐步传”变成“一步直达”。机制上可以拆成四步输入词元先查嵌入表变成向量加上位置编码保留顺序信息线性变换得到 Q、K、V多头注意力让不同头关注不同关系比如一个头盯指代一个头盯句法最后经过前馈网络、残差连接和层归一化。残差连接让深层网络可训练层归一化让分布稳定。多头不是简单堆算力而是给模型多个观察子空间避免单一注意力模式垄断。但自注意力有代价序列长度 n 的注意力矩阵是 n×n计算和显存随长度平方增长。长上下文不是免费午餐上下文越长KV Cache 越大推理越慢。工程上常用 KV Cache 缓存历史键值避免每生成一个词都重算全部历史用滑动窗口、稀疏注意力或分组查询注意力降低显存。这些优化不是模型结构的花边而是决定能不能在业务里跑起来的关键。提示看到“支持超长上下文”时先问三件事训练时真的见过长序列吗推理显存能不能撑住长上下文中间位置的信息会不会被稀释这三个问题比参数表更能说明可用性。2.4 预训练学到的不是知识库而是条件概率的压缩表示下一词预测之所以能逼出语法、语义甚至简单推理是因为要准确预测下一个词模型必须隐式学会词性搭配、指代关系、世界知识的统计关联。比如“把水倒进杯子里杯子会……”后面更可能接“满”因为训练语料里反复出现类似因果模式。模型把这些模式压缩进权重形成一种粗糙的世界模型。但它压缩的是相关性不是因果性是语料分布不是事实数据库。这就是为什么模型能写诗却算错账能编代码却引用不存在的接口。自然语言处理任务在大模型时代被统一成“给上下文生成目标序列”。翻译是给源语言生成目标语言摘要给长文生成长文问答给问题生成答案。任务形式统一后模型可以一次预训练、多任务迁移不需要每个任务都重新设计结构。这个设计取舍极大降低了落地成本但也带来一个副作用模型倾向于“生成看起来合理的东西”而不是“承认不知道”。后面讲对齐和 RAG本质上都在给这个概率机器加外部约束。3. 参数、数据、算力三要素规模定律为什么不是“无脑堆参数”3.1 参数量的真实含义权重、层数与隐藏维度参数量不是一块铁板它由嵌入层、注意力层、前馈层、输出层等矩阵的权重数量累加而成。一个 Transformer 类模型的主要参数集中在前馈网络和注意力投影矩阵。隐藏维度越大、层数越深、前馈扩张比越高参数量越大。嵌入层参数等于词表大小乘以隐藏维度词表越大嵌入层越占参数但它在推理时只查表不参与全部计算。可以用一个简化表理解参数分布组件参数规模大致由什么决定主要作用工程注意点词嵌入层词表大小 × 隐藏维度把词元映射成向量词表太大会增加显存和输出层计算注意力投影层数 × 隐藏维度²计算 Q/K/V 和输出多头会拆分维度不显著增加总参数前馈网络层数 × 隐藏维度 × 扩张比非线性变换与特征组合通常是参数大头量化时重点看输出层隐藏维度 × 词表大小输出每个词的 logits可与嵌入层共享权重降低参数量参数量大不等于能力强。一个模型如果训练数据质量差、数据配比偏科、对齐阶段过度保守参数再多也会在业务问题上翻车。反过来小模型在垂直任务上经过高质量指令微调可能比通用大模型更稳。参数量的意义是“容量上限”不是“效果保证”。我一般会把参数量看成内存条它决定能装多少东西但装什么、怎么组织取决于数据和训练目标。3.2 数据配比与 tokenizer模型“读什么”比“读多少”更关键预训练数据通常来自网页、书籍、代码、论文、问答社区等多源语料。原始数据不能直接喂给模型要先经过抽取正文、语言识别、去重、质量过滤、敏感内容处理、分词和打包。去重尤其重要重复文本会让模型过度记忆某些句子降低泛化还会浪费算力。质量过滤通常用启发式规则加分类器打分剔除乱码、广告、机器翻译痕迹重的文本。数据配比是另一个隐形杠杆。代码数据能提升结构化推理能力数学数据能强化符号运算多语言数据能改善跨语言迁移但比例过高会挤占通用语言能力。常见的做法是先做小规模消融实验观察不同配比在验证集上的表现再放大到全量训练。没有“万能配比”只有针对目标任务的取舍。tokenizer 是把文本切成词元的组件。词表大序列短推理快但嵌入层和输出层参数多词表小序列长覆盖多语言更灵活但同样内容占更多 token成本更高。中文、代码、多语言混在一起时分词粒度会直接影响模型对空格、缩进、子词的敏感度。很多“模型看不懂代码缩进”的问题根源不在注意力而在分词阶段把缩进切碎了。数据问题常见表现处理思路重复文本过多模型复读、记忆训练句文档级去重、段落级近似去重低质网页混入输出口语化、事实混乱质量分类器打分保留高分段代码与自然语言比例失衡代码能力弱或通用语言退化分领域采样按目标能力调比例分词粒度过粗长词、专有名词切碎扩充词表或使用子词正则3.3 规模定律与涌现经验曲线不是效果保证规模定律描述的是在数据、算力同步增加的前提下模型损失随参数量、数据量、计算量呈幂律下降。它来自大量实验拟合不是理论保证。也就是说它告诉你“往哪个方向加资源大概率有收益”不告诉你“加到某个点一定解决业务问题”。涌现能力也是类似某些任务在小模型上接近随机规模上去后突然变好。但“突然”往往是因为评测指标是非连续门槛比如精确匹配模型从 20% 到 60% 看起来像突变实际内部能力是渐进的。更现实的约束是数据瓶颈。高质量文本不是无限的重复训练会让收益递减。于是工程上开始重视数据质量、课程学习、合成数据和蒸馏。蒸馏是用大模型生成数据或软标签训练小模型把大模型的概率分布迁移到小模型。它不是简单复制答案而是让小模型学习“大模型认为哪些词更可能”从而在有限参数下逼近大模型行为。量化则是把权重从高精度压到低精度减少显存和带宽代价是数值误差。量化做得好推理成本能降一个量级做得粗暴长尾任务会明显退化。3.4 算力约束显存估算比参数表更早决定方案生死训练显存不只放权重还要放梯度、优化器状态和激活值。以混合精度训练为例权重和梯度有半精度副本优化器状态通常保留高精度动量激活值随 batch size 和序列长度增长。粗略估算全参数训练显存约为参数量 × 16 到 20 字节具体取决于优化器。推理显存则主要是权重加 KV CacheKV Cache 随层数、头数、序列长度、batch size 线性增长。阶段显存大头可控手段预训练权重、梯度、优化器状态、激活混合精度、梯度累积、ZeRO、并行切分指令微调权重、激活、少量优化器状态LoRA、QLoRA、减小 batch、梯度检查点推理权重、KV Cache量化、限制上下文、连续批处理、分组查询注意力很多方案在 PPT 上可行一算显存就翻车。我见过最常见的误判是只算权重7B 模型半精度约 14GB看起来一张卡能放下但加上 KV Cache 和框架开销长上下文一跑就爆。正确做法是先写清楚目标序列长度、并发数、精度再用公式估一遍最后留 20% 余量。算力规划不是堆卡而是把显存、带宽、延迟三个约束拆开看。4. 训练流水线预训练、指令微调与对齐到底各管什么4.1 预训练把互联网语料压进权重预训练阶段的目标是下一词预测数据规模最大训练时间最长。典型流程是语料清洗与去重分词并打包成固定长度序列按批次喂入模型计算交叉熵反向传播更新参数。学习率通常先 warmup 再余弦衰减batch size 尽量大以稳定梯度显存不够就用梯度累积模拟大 batch。分布式训练常用数据并行、张量并行、流水并行组合数据并行切 batch张量并行切矩阵流水并行切层。下面这段伪代码展示单卡训练循环的关键变量真实系统会把数据加载、混合精度、梯度累积和分布式通信拆开但核心逻辑不变。for step, batch in enumerate(loader): input_ids batch[input_ids] # 当前序列 labels batch[labels] # 右移一位后的目标词 with autocast(dtypefloat16): # 混合精度前向 logits model(input_ids) loss cross_entropy(logits, labels) loss loss / accumulation_steps # 梯度累积模拟大 batch loss.backward() if (step 1) % accumulation_steps 0: clip_grad_norm_(model.parameters(), max_norm1.0) optimizer.step() optimizer.zero_grad()input_ids是分词后的词元编号labels是目标词通常把输入右移一位得到。accumulation_steps控制梯度累积步数用来在显存有限时增大有效 batch。clip_grad_norm_防止梯度爆炸autocast用半精度加速。这里每个参数都对应一个工程取舍batch 太小学不稳太大显存炸学习率太高训练发散太低收敛慢。预训练不是“把数据倒进去”那么简单数据顺序、打包方式、学习率曲线都会影响最终能力。4.2 指令微调让模型学会“按格式回答”预训练模型会续写但不一定会听指令。指令微调用“指令—输入—输出”格式的数据训练模型让它在看到任务描述后生成期望答案。数据格式通常包含系统提示、用户问题、模型回答训练时只对回答部分计算损失问题部分 mask 掉避免模型学习重复用户输入。指令数据不在多而在覆盖面和格式一致性。少量高质量、多样化的指令数据往往比大量低质问答更有效。全参数微调成本高且容易灾难性遗忘模型在垂直数据上训练后通用能力下降。常见替代是 LoRA在权重矩阵旁挂低秩分解矩阵只训练小部分参数QLoRA 再把基座量化进一步降显存。LoRA 的秩 r 越大可训练容量越大但过拟合风险也越高。我一般从较小秩开始先看验证集是否欠拟合再逐步加。微调后必须跑通用能力回归不然业务指标上去了基础问答却崩了属于典型的血泪经验。方式训练参数显存需求适合场景主要风险全参数微调全部高数据充足、任务差异大灾难性遗忘、成本高LoRA少量低秩矩阵中垂直任务、快速迭代秩过小欠拟合提示工程不训练低快速验证、格式约束稳定性受上下文影响4.3 对齐让概率机器更符合人类偏好对齐阶段解决的是“模型会生成但不一定按人类偏好生成”。RLHF 通常分三步先用指令数据做监督微调再收集人类对多个回答的排序训练奖励模型最后用强化学习优化策略让模型生成奖励更高的回答。这个过程能提升有用性、安全性和格式遵循但也可能带来副作用模型学会迎合用户过度拒答或者为了奖励模型打分而变得啰嗦。DPO 换了一个思路直接用偏好对构造损失绕过显式奖励模型和强化学习。它把“ chosen 回答概率上升、rejected 回答概率下降”写进目标函数训练更稳定工程复杂度更低。对齐不是一劳永逸偏好数据有偏模型就会继承偏差。工程上要保留拒绝采样、规则过滤和人工抽检不能把对齐当成安全开关。4.4 推理部署量化、KV Cache 与连续批处理推理阶段的目标不是把模型跑通而是在延迟、吞吐、显存之间找平衡。量化把权重从 16 位压到 8 位或 4 位减少显存和带宽但要做校准避免激活值截断导致精度崩。KV Cache 缓存历史键值避免每生成一个词重算全部上下文但缓存大小随序列长度和并发数增长。连续批处理把不同请求动态拼批提高 GPU 利用率但会增加调度复杂度。投机采样用小模型快速草稿、大模型验证能在不改变分布的前提下加速。注意推理优化不要只看单条延迟。业务里更常见的是并发下的尾延迟和显存碎片。压测时至少看 P50、P95、P99 三档并记录序列长度分布否则上线后很容易被长请求拖垮。5. 应用实践避坑排查提示工程、RAG、智能体哪里会翻车5.1 提示工程不是玄学它改的是条件概率提示工程常被说成玄学其实它做的是两件事把任务约束写进上下文改变模型的条件概率分布把输出格式固定下来降低解析成本。系统提示定义角色和边界少样本示例给出输入输出模式结构化输出要求模型按 JSON 或表格返回思维链让模型把中间步骤写出来再给结论。温度、top-p 控制采样随机性温度接近 0 时输出更确定适合抽取和分类温度高时适合创意生成。但提示工程有上限。它不能给模型注入训练时没有的知识也不能保证事实正确。上下文太长会稀释关键信息示例太多会挤占窗口。一个实用原则是能写成规则校验的不要只靠提示能检索到原文的不要让模型凭记忆答。提示词是接口不是数据库。5.2 RAG把“记忆”从权重里挪到检索层RAG 的核心分工是检索层负责找相关资料生成层负责基于资料组织答案。典型时序是用户问题先做查询改写再转成向量在向量库中召回 Top-K 文档块可选地做关键词混合检索和重排把命中文档按模板拼进上下文模型生成答案并附引用最后做引用校验和事实抽查。这样做的价值是把知识更新从“重新训练”变成“更新索引”降低事实错误和幻觉。RAG 不是万能。切块太粗上下文噪声多切块太细语义被切断embedding 模型与业务语料不匹配召回就不准没有重排Top-K 里可能混入相似但不相关的段落。更隐蔽的问题是上下文冲突检索到两份互相矛盾的文档模型可能各取一半生成一个看似合理但内部不一致的答案。解决思路是给文档加时间戳和权威度重排时优先高权威来源生成时要求引用原文并标注冲突。5.3 智能体与多模态工具调用把生成变成行动智能体在模型外面加了一层规划、记忆和工具调用。模型不再只输出文本而是决定调用哪个工具、传什么参数、如何根据返回结果继续。多模态模型则把图像、音频、文本编码到同一语义空间让模型能看图回答、听音转写、跨模态检索。AIGC 应用里多模态能力可以用于素材生成、内容审核、图文对齐但工程上要处理分辨率、帧率、模态对齐和延迟。智能体的风险比纯生成更高因为它会执行动作。工具权限要最小化文件写入、网络请求、数据库更新都要有白名单和回滚。规划步骤要可中断、可审计不能把一整条链路交给模型黑箱执行。多模态输入还要做预处理和降采样否则一张高分辨率图就能把上下文撑爆。我的习惯是智能体先跑只读工具确认规划稳定后再逐步放开写权限。5.4 现象一回答胡编乱造引用看起来还很真现象模型对没有把握的问题给出具体数字、日期或接口名语气笃定甚至编造参考文献。原因下一词预测的目标是生成高概率词序列不是保证事实正确。模型在缺乏知识时会用语言模式补全流畅性掩盖了错误。对齐阶段如果奖励“自信回答”幻觉会更严重。解决对事实型问题强制走 RAG要求答案附原文片段和出处在提示里加入“无依据时明确说不知道”上线前用失败样本集评测统计幻觉率对高风险领域加规则校验和人工复核。不要把“拒答”当失败错误回答的代价通常更高。5.5 现象二同一提示词结果漂移今天对明天错现象相同输入、相同提示词两次调用输出不同甚至格式都不一致。原因采样温度大于 0、top-p 随机采样、批处理顺序变化、上下文长度不同、模型版本更新都会让输出分布变化。如果业务依赖固定 JSON模型偶尔多写一句解释就会解析失败。解决抽取和分类任务把温度设为 0固定随机种子输出用结构化约束和解析器兜底锁定模型版本和推理参数对关键字段做正则校验和重试。还要记录每次请求的上下文长度和版本号否则排查时连变量都复现不了。5.6 现象三微调后垂直任务涨了通用能力却崩了现象模型在业务问答上准确率提升但基础常识、指令遵循和多轮对话明显退化。原因垂直数据分布窄全参数微调把权重拉向局部最优造成灾难性遗忘学习率过大、训练轮数过多会加剧指令数据格式单一也会让模型只会一种回答模板。解决优先用 LoRA 小秩微调混入一定比例通用指令数据早停并保留基座模型做对比微调后跑通用能力回归集包括指令遵循、拒答、格式输出如果退化明显降低学习率或减少可训练参数。微调不是越久越好验证集不涨就该停。5.7 现象四RAG 检索到了正确文档答案还是错现象日志显示命中了正确段落但模型回答与原文矛盾或者只答了一半。原因切块把关键条件切到另一块重排缺失导致正确块排在后面被截断上下文里混入相似但过时的文档提示词没有要求“只依据给定材料回答”。解决按语义边界切块保留标题和段落层级加混合检索和重排给文档打时间戳和权威度提示词明确引用范围和冲突处理规则生成后做引用校验答案里每个事实点必须能对应到检索片段。RAG 的瓶颈经常不在生成而在检索和上下文组织。5.8 现象五本地部署显存炸了权重明明放得下现象模型权重按理论算能放进显卡一加载就 OOM或者跑几条长请求就崩。原因只算了权重没算 KV Cache、激活值、框架开销和显存碎片上下文长度和并发数一上来KV Cache 线性增长量化校准不当还会触发额外缓存。解决先按“权重 KV Cache 激活 余量”估算显存限制最大上下文和批大小用量化降低权重占用开启连续批处理和显存池压测时记录序列长度分布。本地部署不是把模型文件拖进去就行显存规划要按最坏请求算不是按平均请求算。6. 设计取舍大模型方案该在什么地方留“后悔药”大模型落地最怕一上来就押重注数据还没清洗就全参微调评测集还没建就上智能体显存没估算就承诺长上下文。更稳的做法是给每个环节留后悔药提示工程先验证任务可行性RAG 解决知识时效和事实约束微调只在对格式、风格或垂直能力有硬要求时介入。三者不是互斥关系而是成本递增的阶梯。方案改动对象见效速度主要成本适合先验证什么提示工程上下文与输出约束最快人工调优任务是否可被模型理解RAG外部知识索引较快检索与切块工程事实型和时效型问题微调模型权重较慢数据标注与训练固定格式、垂直风格、领域术语验证方法上我习惯先建一个 50 到 200 条的小评测集覆盖正常样本、边界样本和已知失败样本。每次改提示、换检索策略、调微调参数都跑同一套回归记录准确率、格式合规率、拒答率和平均延迟。不要只看平均值失败样本往往集中在长尾。上线前做灰度把新策略和旧策略并行跑一段时间对比真实请求的投诉率和人工接管率。从那以后我每次评估一个模型方案都强制走一遍“任务—数据—对齐—成本”四问任务能不能用概率生成解决数据够不够干净对齐会不会带来过度拒答成本能不能撑住最坏请求。这份资料把大模型概念、技术与应用实践按章节铺开适合当一张索引地图先看目录建立全局再按机制回查细节。需要时从资源入口取用先读目录再挑你最想搞懂的那一层深挖。希望帮到你。本文还有配套的精品资源点击获取

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询