大模型的发展历程大模型发展历程:技术演进与趋势洞察;这是大模型系列的第二篇文章,主要介绍一些和大模型相关的概念。

🏛️ 一、核心数学与算法

揭示了驱动所有神经网络(包括 LLM)学习的底层循环逻辑。

神经网络的学习循环

想象一个学生在不断学习:做题 → 对答案 → 总结错误 → 改进方法。神经网络的学习与此类似。

核心循环: 预测 → 评估 → 修正

  1. 1. 🎯 预测 (Prediction):模型根据现有知识(模型参数)对问题进行猜测。例如,预测下一个词是什么。这本质上是一个 分类 (Classification) 任务。这个过程叫作 前向传播 (Forward Propagation)
  2. 2. 📝 评估 (Evaluation): 使用 损失函数 (Loss Function) 这把“尺子”来衡量模型的预测结果与正确答案之间的差距(即“损失”或“误差”)。
  3. 3. 🧠 修正 (Correction):通过 反向传播 (Backpropagation),模型计算出每个参数对造成误差的“责任”有多大,这个“责任”就是 梯度 (Gradient)
  4. 大模型的发展历程_权重

  5. Backpropagation
  • • 随后,模型使用 梯度下降 (Gradient Descent) 算法,朝着减小误差的方向,聪明地微调自己的参数。

大模型的发展历程_神经网络_02

Gradient

关键组件

  • • 激活函数 (Activation Function):为神经网络注入“灵魂”——非线性,让它能学习超越简单线性关系的复杂模式。
  • • 损失函数 (Loss Function):为模型的优化提供一个清晰的“靶心”,告诉它努力的方向。

🧩 二、深度学习与 LLM 特有机制

将视野从通用神经网络拓宽到 LLM 所特有的概念和工作方式。

学习范式

层级关系: AI > 机器学习 (ML) > 深度学习 (DL)

大模型的发展历程_Parallelism_03

layer

  • • 迁移学习 (Transfer Learning):LLM 成功的“秘密武器”。先在海量通用知识(如整个互联网的文本)上进行 预训练 (Pre-training),成为一个“通才”,然后再针对特定任务进行 微调 (Fine-tuning),成为“专才”。
  • • 强化学习 (Reinforcement Learning, RL):通过“奖惩”机制进行学习。在 LLM 中,大名鼎鼎的 RLHF 就是让模型通过人类的反馈(喜欢/不喜欢)来学习如何说出更符合人类偏好的话。

核心术语

  • • 参数 vs. 超参数参数 (Parameters)学习到的知识(如权重);超参数 (Hyperparameters)规则(如学习率)。
  • • 训练节奏:
  • • Epoch:把整个题库刷一遍。
  • • Batch:一次做一小批题。
  • • Step/Iteration:做完一小批题,并订正一次。
  • • 文本处理流程:
  • • Tokenizer (分词器):将一句话切分成模型能理解的基本单位 Token (词元)
  • • Embedding (嵌入):将每个离散的 Token 转换成一个充满语义信息的“数字坐标”(向量),让模型理解词与词之间的关系。

大模型的发展历程_权重_04

Embedding

  • • 上下文学习 (In-Context Learning):LLM 惊人的“举一反三”能力。
  • • Zero-shot:不给例子,直接做题。
  • • One-shot:给一个例子,照着学。
  • • Few-shot:给几个例子,总结规律。

🛠️ 三、大模型训练与推理优化

聚焦于如何让一个“通才”模型变得更专业、更高效。

微调 (Fine-tuning) 的艺术

核心目标: 用更少的资源,让模型更好地适应特定任务。

  • • 监督微调 (SFT):最直接的方式,用“指令-回答”格式的数据集,手把手教模型如何遵循指令。
  • • RLHF:如前所述,通过训练一个“品味”模型(奖励模型)来学习人类的喜好,再用它来指导 LLM 的优化。
  • • 参数高效微调 (PEFT):为了省钱省力,只微调模型的一小部分参数。
  • • LoRA / Q-LoRA:给模型装上可插拔的“微调插件”,只训练插件。Q-LoRA 更进一步,先把模型压缩一下再装插件,极大地降低了硬件门槛。
  • • Prompt/Prefix-tuning:不改动模型本身,而是学习一段添加到输入中的、可训练的“魔法咒语”,引导模型产生期望的输出。

核心引擎:Attention 机制

一言以蔽之: 让模型在处理一句话时,能动态地抓住每个词的重点。

自注意力机制 (Self-Attention) 是 Transformer 架构的心脏。它通过复杂的 查询 (Q)键 (K)值 (V) 交互,计算出句子中任意两个词之间的关联度,从而理解长距离的依赖关系和复杂的语法结构。

大模型的发展历程_权重_05

Self-Attention

推理优化 (Inference Optimization)

  • • 预填充 (Prefill):快速“阅读”并理解你的输入提示,这个阶段计算量大。
  • • 解码 (Decode):逐字逐句地生成回答,这个阶段更考验内存的读写速度。
  • • KV 缓存 (KV Cache):一个聪明的“备忘录”,记住已经计算过的内容,避免重复劳动,是模型能够流畅回答的关键。

🚀 四、模型压缩与部署

探讨如何让庞大的模型“瘦身成功”,并真正走进我们的手机和电脑。

模型压缩技术

  • • 模型量化 (Quantization):降低参数的精度,好比把一本精装书变成平装本,内容没大变,但体积和重量都减小了。
  • • 模型蒸馏 (Distillation):让一个强大的“教师模型”把知识精华传授给一个轻巧的“学生模型”。

大模型的发展历程_神经网络_06

Distillation

  • • 模型剪枝 (Pruning):像修剪花草一样,剪掉模型中不重要、冗余的“枝叶”(参数)。
  • • 模型二值化 (Binarization):极致压缩,把参数简化到只有+1和-1,大幅提升计算速度。

部署策略

  • • 端侧部署 (Edge Deployment):让模型直接在你的手机或电脑上运行。优点是响应快、保护隐私。挑战是设备性能有限。
  • • 云-边-端协同 (Cloud-Edge-Device):一种混合策略。重活累活(如训练)在云端干,需要快速响应的轻活在靠近用户的“边缘”或设备端完成,实现性能与效率的最佳平衡。

总结

LLM 的未来将走向效率与能力的平衡、普及多模态能力、增强智能体 (Agent) 功能,并持续关注安全与对齐。对我们学习者而言,最好的策略就是:夯实基础、动手实践、保持好奇,并以负责任的态度,迎接这个由 AI 驱动的全新时代。

 

在现代人工智能领域,一个基本信念推动着技术的前沿发展:模型规模、数据量和计算资源的持续扩大,能够带来性能的显著提升和涌现能力(Emergent Capabilities)。这一**规模法则(Scaling Law)**已成为训练更强大语言模型的黄金准则。为了实现这一目标,业界逐渐分化出两种核心的架构哲学,它们代表了通往通用人工智能(AGI)的两条不同路径。

第一种是稠密(Dense)架构。这是一种“蛮力”方法,每一次计算都会动用模型中的每一个参数。它体现了一种集中式、整体化的智能哲学,即通过一个巨大而统一的神经网络来处理所有任务。

第二种是混合专家(Mixture of Experts, MoE)架构。这是一种稀疏条件化计算(Conditional Computation)的方法,对于任意给定的输入,只有模型中的一小部分参数会被激活。它体现了一种分布式、专业化的智能哲学,即通过一个由众多“专家”组成的委员会来协同解决问题 。

本文将对这两种主流范式进行一次权威且深入的比较分析,系统性地剖析它们的技术基础、实践中的权衡,以及对未来人工智能发展的战略性影响。

大模型的发展历程_Parallelism_07

1、Dense Transformer 架构:集中式力量的基石

Dense Transformer 模型是现代大型语言模型(LLM)的起点,其设计理念直接继承自开创性的Attention Is All You Need论文,强调通过一个整体网络处理信息。

1.1 架构蓝图:“全参数激活”范式

Dense Transformer 的核心在于其全参数激活的工作模式,即在处理序列中的每一个令牌(token)时,模型的所有参数都会参与前向传播计算。其基本构成模块包括:

  • • 输入/输出嵌入与位置编码(Input/Output Embeddings & Positional Encoding):这是将文本(单词或子词)转换为模型能够理解的数值向量(嵌入)的第一步。由于 Transformer 结构本身不具备处理序列顺序的能力,因此必须加入位置编码,为每个令牌注入其在序列中的位置信息。
  • • 多头自注意力机制(Multi-Head Self-Attention, MHSA):这是 Transformer 的核心,它允许模型在处理一个令牌时,动态地衡量序列中所有其他令牌的重要性,从而捕捉丰富的上下文依赖关系。通过并行运行多个“注意力头”,模型可以从不同的表示子空间中学习信息。
  • • 前馈网络(Feed-Forward Network, FFN):在注意力机制捕获了上下文信息之后,每个令牌的表示向量都会被送入一个前馈网络进行深度处理和非线性变换。在稠密模型中,这是一个由两个线性层和一个非线性激活函数(如 ReLU 或 GeLU)组成的、尺寸巨大的多层感知机(MLP)。至关重要的是,在每一层中,所有令牌都经过同一个 FFN。

这种设计的本质是信息的无差别、最大化流动。每一个参数都对最终输出有潜在贡献,这保证了模型强大的表示能力,但代价是巨大的计算资源消耗。

大模型的发展历程_神经网络_08

1.2 规模化的困境:高昂的推理成本与横向扩展挑战

这部分将直接回应一个核心问题:为什么稠密模型推理成本高,且难以进行横向扩展?

  • • 计算成本(FLOPs):稠密模型的计算成本(以浮点运算次数 FLOPs 衡量)与其参数量成正比。当模型规模增长到千亿级别时,例如拥有 1750 亿参数的 GPT-3 2,完成一次前向传播所需的计算量是惊人的。每一次的输入都需要驱动这 1750 亿个参数进行运算,导致训练和推理的成本都极为高昂。
  • • 内存成本(VRAM):更大的挑战来自于内存。模型的所有权重、优化器状态(在训练时)以及中间计算产生的激活值都必须加载到 GPU 的显存(VRAM)中。一个 1750 亿参数的 16 位精度模型,仅加载权重就需要 350 GB 的显存,这远远超出了任何单块消费级或企业级 GPU 的容量。
  • 大模型的发展历程_神经网络_09

  • • 模型并行的必要性:为了克服单 GPU 的内存瓶颈,必须将一个巨大的稠密模型分片(Shard)或分区(Partition),部署到多张 GPU 上协同工作。这就是大模型横向扩展的核心技术——模型并行(Model Parallelism)。主要有两种策略:
  • • 流水线并行(Pipeline Parallelism, PP):将模型的不同层(Layers)顺序地分配到不同的 GPU 上。例如,GPU 1 负责 1-24 层,GPU 2 负责 25-48 层,以此类推,形成一条“流水线”。这是一种 层间并行(Inter-layer Parallelism)策略。
  • • 张量并行(Tensor Parallelism, TP):将单个层内部的巨大权重矩阵(例如 FFN 或注意力中的线性层)沿特定维度切分到不同的 GPU 上。每个 GPU 只负责计算矩阵的一部分,然后通过通信操作将结果合并。这是一种 层内并行(Intra-layer Parallelism)策略。
  • • 横向扩展的“难点”:真正的挑战在于这些并行策略引入了巨大的通信开销。张量并行在每次计算后都需要进行 AllReduce 这样的集合通信操作,以确保所有 GPU 上的张量分片能够同步并合并成完整的结果。这要求 GPU 之间有极高带宽的互联(如 NVIDIA 的 NVLink)。而流水线并行则会产生流水线气泡(Pipeline Bubbles)——在每个批次处理的开始和结束阶段,流水线中的部分 GPU 会处于空闲等待状态,这降低了硬件的整体利用率。为了高效训练,通常需要将数据并行(Data Parallelism)、流水线并行和张量并行结合起来,形成复杂的 2D 或 3D 并行策略,这不仅对硬件互联要求极高,也给工程实现带来了巨大的复杂性。

正是由于稠密模型在规模化过程中遇到的这些严峻的工程和成本挑战,才为其他更高效的架构创新铺平了道路。这种内在的压力催生了对一种新范式的需求:一种能够在不按比例增加计算成本的情况下,有效扩大模型容量的架构。这为混合专家(MoE)模型的复兴和现代化改造创造了绝佳的条件。

1.3 稠密范式的典范模型

  • • OpenAI GPT-3:作为证明了大规模稠密模型可行性的里程碑,GPT-3 以其 1750 亿的庞大参数量,展示了惊人的小样本(few-shot)和零样本(zero-shot)学习能力,为后续的 LLM 发展设定了标杆。其架构是经典的仅解码器(decoder-only)稠密 Transformer。
  • • Meta Llama 2:这是一个由 Meta 推出的开源稠密模型家族(参数规模从 70 亿到 700 亿不等),极大地推动了高性能 LLM 的普及。它遵循标准的自回归稠密 Transformer 架构,但引入了如 SwiGLU 激活函数和旋转位置编码(RoPE)等关键改进,提升了模型的性能和效率。

2、混合专家(MoE)架构:稀疏专业化的范式

面对稠密模型高昂的扩展成本,混合专家(MoE)架构作为一种替代方案应运而生。它借鉴了分而治之的思想,通过条件化计算,实现了模型容量与计算成本的解耦。

大模型的发展历程_权重_10

2.1 架构蓝图:实践中的条件化计算

MoE 架构的核心创新在于,它用一个稀疏 MoE 层替换了标准 Transformer 模块中的稠密 FFN 子层。这个 MoE 层主要由两个部分构成:

  • • 专家网络(Experts):一组并行的、结构独立的前馈网络(FFN)。每个专家都可以被看作是一个专门处理特定类型信息或模式的“专家” 。
  • • 门控网络(Gating Network)或路由器(Router):这是一个小型的、可训练的神经网络。它的作用是为输入的每一个令牌动态地决定应该将其发送给哪个(或哪些)专家进行处理。路由器会为每个令牌计算出一个在所有专家上的概率分布,并通常选择得分最高的 top-k 个专家(在现代模型中 k 通常为 1 或 2)来激活。

条件化计算是 MoE 的灵魂。对于每个令牌,模型不再激活全部参数,而是有条件地只激活一小部分——即被路由器选中的 k 个专家。因此,整个计算过程是稀疏的。MoE 层的最终输出是所有被激活专家输出的加权和,权重由路由器的打分决定 。

2.2 稀疏性的经济学:解构更低的计算成本

这部分将详细解释为什么 MoE 架构在计算上更“便宜”。

关键在于区分**总参数量(Total Parameters)**和 激活参数量(Active Parameters)。一个 MoE 模型可以拥有巨大的总参数量(所有专家参数与共享参数之和),但在处理任何一个令牌时,它实际使用的只是激活参数量,即被选中的少数专家的参数。

以 Mixtral 8x7B 为例,这个模型完美地诠释了这一概念。它拥有 8 个专家,每个专家的参数规模约为 70 亿。然而,它的路由器在每一层为每个令牌只选择 2 个专家进行计算。这意味着,尽管其总参数量高达约 470 亿(考虑到各层共享的注意力模块等),但每个令牌在前向传播中实际参与计算的参数量仅为约 130 亿。

这对成本和速度意味着什么?模型的训练和推理所需的计算量(FLOPs)是由激活参数量决定的,而非总参数量。因此,Mixtral 8x7B 能够以一个 130 亿参数稠密模型的速度和成本进行训练和推理,同时却可能拥有一个 470 亿参数模型的知识容量和性能。这就是 MoE 架构最根本的经济优势。

这种架构的成功,标志着对 大模型 概念的认知转变。它成功地将模型的知识容量(与总参数量相关)与计算成本(与激活参数量相关)分离开来。这预示着未来的模型发展可能不再仅仅依赖于构建越来越庞大的稠密网络,而是转向设计更智能的路由机制和更专业的专家网络,在稀疏的框架内实现性能的飞跃。研究的重心正从单纯的扩大规模,转向提升参数的使用效率。系统的智能越来越多地体现在路由决策本身,而不仅仅是专家网络中。

大模型的发展历程_Parallelism_11

2.3 MoE 范式的典范模型

  • • Mistral AI Mixtral 8x7B:这款模型将高性能、开源的 MoE 带入了主流视野。它采用 Top-2 路由策略,在多个基准测试中表现优于体量远大于它的 Llama 2 70B 稠密模型,有力地验证了稀疏 MoE(SMoE)方法的有效性。
  • • xAI Grok-1:这是一个拥有 3140 亿总参数的巨型 MoE 模型,包含 8 个专家,同样采用 Top-2 路由策略(激活 25% 的权重,即 8 个专家中的 2 个)。它的开源进一步凸显了业界向大规模稀疏模型发展的趋势。
  • • DeepSeek-MoE:代表了下一代 MoE 架构的探索方向。它引入了两项关键创新以提升专家的专业化程度:
  • • 1)细粒度专家(Fine-grained Experts),即将 FFN 拆分成更多、更小的专家,以实现更精细的知识划分;
  • • 2)共享专家(Shared Experts),即设置一个所有令牌都必须经过的小型稠密 FFN,用于处理通用知识(如语言结构),从而让被路由的专家能更专注于特定领域的知识。这是一种旨在克服 MoE 核心缺陷的混合式设计。

3、稀疏性的挑战:MoE 实施中的关键难题

尽管 MoE 架构在计算效率上优势显著,但它也引入了一系列独特的工程挑战,尤其是在负载均衡、训练稳定性和内存管理方面。

3.1 负载均衡的困境

这是 MoE 架构中最核心的挑战之一。

  • • 问题所在:门控网络(路由器)的训练目标是最小化模型的整体损失。因此,它会很快“学会”将令牌发送给当前表现最好的专家。这就形成了一个“富者愈富”的恶性循环:被偏爱的专家获得更多的训练样本,从而变得更强,于是更频繁地被选中。而其他专家则因为得不到足够的训练样本(“饥饿”状态)而逐渐退化,最终变得无用,这完全违背了设置多个专家的初衷。这种不均衡会导致部分持有“冷门”专家的 GPU 资源被闲置,严重影响训练效率。
  • • 解决方案:辅助负载均衡损失(Auxiliary Load-Balancing Loss):为了解决这个问题,研究者在模型的主损失函数之外,额外增加了一个辅助损失项。这个损失函数的目标是鼓励令牌在所有专家之间均匀分布。如果路由器将过多的令牌分配给少数几个专家,该损失项就会产生一个惩罚信号,迫使路由器调整其路由策略,从而实现更均衡的负载。
  • • 其他缓解技术
  • • 带噪声的 Top-k 门控(Noisy Top-k Gating):在路由器的 logits 输出上增加少量高斯噪声,然后再选择 top-k 专家。这种随机性有助于打破固化的路由模式,鼓励对不同专家的探索。
  • • 专家容量(Expert Capacity):为每个专家设定一个在单批次中能够处理的令牌数量上限。如果一个令牌被路由到的首选专家都已满载,该令牌将被视为“溢出”(overflow),并通过残差连接直接传递到下一层,从而防止任何一个专家被过多任务压垮。

3.2 对训练稳定性的追求

MoE 模型因其训练过程的脆弱性而闻名。

大模型的发展历程_权重_12

  • • 问题所在:MoE 模型在训练和微调过程中极易出现不稳定现象。这种不稳定性源于多个因素:路由器的计算可能会产生数值非常大的 logits,而这些 logits 又被输入到指数函数(Softmax)中,导致数值上的微小误差被急剧放大,最终可能引发梯度爆炸或消失,使训练崩溃。此外,辅助负载均衡损失有时会与主任务损失产生冲突的梯度信号,进一步加剧了训练的不稳定性。
  • • 解决方案:路由器 Z-loss(Router Z-loss):为了稳定训练过程,ST-MoE 论文提出了一种名为“Router Z-loss”的正则化项。它通过惩罚路由器产生的大数值 logits,鼓励其输出保持在较小的范围内。这有效地减少了计算过程中的舍入误差,从而显著提升了训练的稳定性,且不会牺牲模型质量。
  • • 其他缓解技术:在实践中,工程师还会采取混合精度训练策略,例如,使用 32 位浮点数(float32)来训练对精度敏感的路由器,而专家网络则使用 16 位脑浮点数(bfloat16)以节省资源。同时,在 MoE 层中引入 Dropout 等技术也能在一定程度上提升稳定性。

3.3 VRAM 的悖论:计算廉价,内存昂贵

MoE 模型存在一个看似矛盾的特性:它在计算上是高效的,但在内存上却是贪婪的

  • • 问题所在:虽然在处理每个令牌时只使用了 k 个专家,但在模型运行时,所有专家的参数都必须完整地加载到 GPU 的 VRAM 中。以 Mixtral 8x7B 为例,尽管它的计算量相当于一个 130 亿参数的模型,但它需要足够的 VRAM 来容纳一个 470 亿参数的完整模型 9。这对部署环境的硬件配置提出了极高的要求。
  • • 解决方案:专家并行(Expert Parallelism, EP):这是针对 MoE 架构最自然的并行策略。与切分模型的层(PP)或张量(TP)不同,专家并行直接将不同的专家分配到不同的 GPU 上。例如,对于一个拥有 8 个专家的模型和 8 张 GPU,每张 GPU 可以独立承载一个专家。当一个令牌需要被路由到位于另一张 GPU 上的专家时,系统会使用 All-to-All 集合通信操作,将该令牌的数据发送到目标 GPU,计算完成后再将结果传回。这是一种高效利用多 GPU 内存空间的策略。
  • • 新的权衡:专家并行虽然有效解决了内存容量问题,但它也引入了新的通信瓶颈。All-to-All 通信的开销相当可观,并且如果专家负载不均,会导致持有“冷门”专家的 GPU 处于空闲状态,造成资源浪费。这与稠密模型并行所面临的通信模式和挑战截然不同。

4、综合分析

在深入剖析了稠密 Transformer 和 MoE 两种架构的内部机制与挑战后,本节将进行全面的对比总结,并探讨未来的发展趋势。

4.1 全面比较分析

下表提供了一个直观的、多维度的对比,旨在帮助从业者在架构选型时快速评估其优劣与权衡。

  • • 表1:稠密 Transformer 与混合专家(MoE)架构对比分析

大模型的发展历程_Parallelism_13

  • • 国外代表模型

大模型的发展历程_Parallelism_14

  • • 国内代表模型

大模型的发展历程_权重_15

4.2 通才 vs. 专才:一种功能性视角

从功能角度看,稠密模型和 MoE 模型代表了两种不同的知识组织方式。

大模型的发展历程_Parallelism_16

image-20250616104847664

  • • 稠密模型:一个通才大脑。知识被弥散地存储在所有参数中。模型通过一个庞大而统一的神经网络来解决所有问题,类似于一个知识渊博的通。
  • • MoE 模型:一个专家委员会。知识被模块化地存储在各个专家网络中。路由器则扮演了“调度员”的角色,根据问题的性质,将其分派给最合适的专家(或专家小组)来处理 。

然而,这种界限并非绝对。一些研究(如“MoEfication”)发现,即使是稠密的 FFN,在训练后其内部也可能自发地形成稀疏的激活模式,表现得像一个隐式的 MoE 。这表明,专业化分工可能是深度学习系统的一种内在涌现属性,而 MoE 架构只是将这种属性显式化、结构化了。这一视角对于模型的可解释性研究以及未来对特定专家进行定向微调具有重要启示。

大模型的发展历程_Parallelism_17

4.3 前路在何方:混合化与融合

展望未来,LLM 架构的发展路径可能并非在纯粹的稠密和纯粹的 MoE 之间做出二元选择,而是走向一种融合二者之长的混合式架构

  • • 混合化趋势:这种趋势已经在最新的模型设计中显现。例如:
  • • Snowflake Arctic:该模型在架构中明确地将一个标准的稠密 Transformer 模块与一个残差连接的 MoE 组件结合起来。
  • • DeepSeek-MoE:其设计的“共享专家”本质上就是一个小型的稠密 FFN,所有令牌都需经过它来学习通用知识,而更大规模的“路由专家”则负责处理专业化知识。

这种融合代表了业界对架构权衡的成熟理解。稠密组件可以为模型提供一个鲁棒的、通用的知识基础,而稀疏的 MoE 组件则提供了一种计算高效的方式来扩展模型的专业知识容量。未来的核心挑战将在于如何智能地设计这些混合系统,以在性能、成本和效率之间找到最佳的平衡点,从而持续推动人工智能能力的边界。

 

 

 

当要求大型语言模型(LLMs)在1-50范围内生成"随机"数字时,它们表现出明显的偏向性,特别是对数字27的强烈偏好。 这一现象并非技术缺陷,而是反映了人类认知偏差的深层镜像——因为这些模型是在人类生成的文本数据上训练的, 它们学会了复制人类在"随机"选择中的系统性偏差。研究表明,数字27位于心理学上的"黄金地带"—— 既不太明显(如1、10、25、50),也不太无趣(如20、30),给人以"随机而独特"的感觉。

这个现象不仅仅是国外主流模型出现,国内模型似乎也在遵循这个法则。

 

国外主流模型

 

 

大模型的发展历程_神经网络_18

国内主流模型

大模型的发展历程_Parallelism_19

大模型的发展历程_权重_20


为什么会有这个 27 Magic Number 存在呢?下面是我使用 Agent 做的一个 DeepReaserch~,来看看模型怎么解释模型的

大模型的发展历程_神经网络_21

 

大语言模型(Large Language Model, LLM)的训练是人工智能领域最复杂、最资源密集的任务之一。从2017年Transformer架构的提出,到2022年ChatGPT的横空出世,再到2025年DeepSeek-R1的突破性进展,LLM的训练技术经历了快速的演进和深度的优化。

为什么模型训练如此重要?

  • • 能力的源泉:模型的所有能力都来自于训练过程中对数据的学习和参数的优化
  • • 性能的决定因素:训练质量直接决定了模型在各种任务上的表现
  • • 成本的主要构成:训练成本占据了LLM开发总成本的70%以上
  • • 技术的核心壁垒:高效的训练技术是各大AI公司的核心竞争力

本文将从技术原理、实践方法、挑战难点等多个维度,全面解析LLM模型训练的核心技术。不仅会深入探讨传统的预训练和微调技术,还会重点分析最新的强化学习训练方法,特别是 DeepSeek-R1 等模型所采用的创新训练范式。

1、LLM 训练基本流程

整体训练管道

大模型的发展历程_神经网络_22

阶段一:预训练(Pre-training)

数据规模:通常需要数万亿个token的训练数据

训练时间:几个月到一年的连续训练

计算资源:数千块GPU/TPU的集群

阶段二:后训练(Post-training)
  • • 监督微调(SFT): 使用高质量的指令-回答对数据,训练模型遵循指令的能力
  • • 奖励建模(RM) : 训练奖励模型来评估回答质量,为强化学习提供信号
  • • 强化学习(RLHF/RLAIF) : 通过强化学习进一步优化模型输出,提升对齐效果
  • • 蒸馏与部署优化 : 将大模型知识蒸馏到小模型,或进行推理优化
最新进展:推理导向训练

以DeepSeek-R1为代表的新一代模型,引入了推理导向的训练范式,通过多阶段强化学习显著提升了模型的推理能力。

  • • 冷启动数据训练:使用少量高质量数据进行初始化
  • • 推理导向的强化学习:专注于提升模型的推理能力
  • • 多阶段渐进训练:逐步提升模型在不同任务上的表现

这种训练方式在数学推理、代码生成等任务上实现了显著突破,性能可与OpenAI o1模型相媲美。

2、核心知识点详解

模型架构基础

大模型的发展历程_Parallelism_23

关键计算公式

  • • 自注意力计算:
Attention(Q,K,V) = softmax(QK^T/√d_k)V
  • • 多头注意力:
MultiHead(Q,K,V) = Concat(head_1,...,head_h)W^O
  • • 参数规模估算:
参数量 ≈ 12 × n_layers × d_model²

优化算法核心

大模型的发展历程_权重_24

数据处理技术

大模型的发展历程_权重_25

3、模型训练方案分析

微调方法对比

大模型的发展历程_Parallelism_26

前沿高效微调方法

大模型的发展历程_神经网络_27

分布式训练策略

大模型的发展历程_Parallelism_28

主流训练框架对比

4、训练难点与挑战

技术层面挑战

大模型的发展历程_权重_29

训练资源需求增长趋势

大模型的发展历程_权重_30

数据层面挑战

大模型的发展历程_权重_31

工程化挑战

大模型的发展历程_Parallelism_32

成本分析

大模型的发展历程_Parallelism_33

5、模型训练的本质

训练的数学本质

优化理论视角
  • • 核心目标函数
θ* = arg min E_{(x,y)~D} [L(f(x; θ), y)]

寻找最优参数θ,使得在数据分布D上的期望损失最小

  • • 梯度下降更新
θ_{t+1} = θ_t - η ∇ _θ L(θ_t)

通过梯度信息迭代更参数**,**朝着损失下降方向移动

  • • 泛化能力
Gap = E[L_test] - E[L_train]

训练的最终目标是最小化测试误差与训练误差的差距

大模型的发展历程_神经网络_34

学习机制深度解析

模式识别与抽象
涌现现象(Emergence)

**什么是涌现?**当模型规模达到某个临界点时,会突然展现出之前不具备的能力,这种现象称为涌现。

缩放定律(Scaling Laws)
  • • 核心发现
  • • 参数规模定律:
Loss ∝ N^(-α),其中α ≈ 0.076
  • • 数据规模定律:
Loss ∝ D^(-β),其中β ≈ 0.095
  • • 计算规模定律
Loss ∝ C^(-γ),其中γ ≈ 0.050
  • • 实际应用
  • • 资源配置:根据缩放定律优化计算资源分配
  • • 性能预测:预估不同规模下的模型性能
  • • 成本效益:找到最优的规模与成本平衡点
  • • 研发规划:指导下一代模型的设计方向

哲学层面思考

大模型的发展历程_神经网络_35

6、最新发展与前沿趋势

强化学习训练的突破

大模型的发展历程_权重_36

技术创新前沿

大模型的发展历程_权重_37

未来发展趋势

大模型的发展历程_神经网络_38

7、总结

🔑 技术本质理解

  • • 统计学习的力量:大规模数据中蕴含的统计规律是智能涌现的基础
  • • 规模效应显著:模型规模、数据规模、计算规模的协同增长带来能力跃迁
  • • 涌现现象普遍:复杂智能行为从简单规则的大规模重复中自然涌现
  • • 优化即智能:通过优化过程,模型学会了压缩和表征世界知识

💡 实践经验总结

  • • 数据为王:高质量、多样化的训练数据是成功的关键
  • • 工程化重要:大规模训练需要强大的工程化能力支撑
  • • 持续创新:从预训练到强化学习,训练范式在不断演进
  • • 协同发展:算法、硬件、数据、工程需要协同优化

结语

"大语言模型的训练,不仅仅是一个技术过程,更是人类智慧的结晶与传承。我们通过数学的语言,让机器学会了理解世界的方式;通过算法的力量,让人工智能获得了思考的能力。这个过程既充满挑战,也充满希望。"

 

大型语言模型(LLM)的训练过程虽然耗资巨大且备受关注,但其真正的价值实现,却发生在 推理(Inference) 这一最终环节。推理是将训练好的模型应用于实际,根据 用户输入(Prompt)生成响应的过程三难困境(Trilemma):

既要追求极致的 低延迟(Latency) 以保证用户体验,又要实现最大的 高吞吐量(Throughput) 以服务海量用户并降低单位成本,同时还需控制昂贵的硬件 成本(Cost)

本文将深入剖析 LLM 推理的全貌,从其根本的自回归生成机制出发,逐层揭示其 核心挑战、关键性能指标、优化技术、分布式策略以及当前主流的推理框架 。本文旨在为读者构建一个关于 LLM 推理的完整知识图谱,理解其“表”之性能与“里”之原理。

LLM 系列文章推荐:

 

大模型发展历程:技术演进与趋势洞察

LLM 系列(二):基础概念篇

LLM 系列(三):核心技术之架构模式

LLM 系列(四):神奇的魔法数 27

LLM 系列(五):模型训练篇

推理的本质:一个两阶段的自回归过程

要理解推理优化,首先必须掌握 LLM 生成文本的底层机制。现代主流的生成式 LLM(如 GPT 系列)本质上都是 自回归(Autoregressive) 模型。

Transformer 推理机制

现代大语言模型主要基于 Transformer 架构,其推理过程的核心是自注意力机制。在推理阶段,模型需要处理的主要计算包括:

  • • 1、嵌入层计算:将输入 token 转换为向量表示
  • • 2、多头自注意力:计算 Query、Key、Value 矩阵
  • • 3、前馈网络:进行非线性变换
  • • 4、层归一化:稳定训练过程
  • • 5、输出层:生成下一个 token 的概率分布

下图是 基于 Decoder 的 Transformer 架构

大模型的发展历程_Parallelism_39

Decoder-only Transformer架构

自回归生成:逐字吐露的本质

自回归意味着模型以 逐个 token 的方式生成文本。每个新 token 的预测都依赖于之前已经生成的所有 token(包括原始输入和先前已生成的输出)。这个过程形成了一个循环:

  • • 1、模型接收当前序列作为输入。
  • • 2、预测词汇表中每个词成为下一个 token 的概率分布。
  • • 3、通过采样策略(如贪心采样、核采样等)选择一个 token
  • • 4、将新选中的 token 附加到序列末尾。
  • • 5、重复此过程,直到满足停止条件(如生成了终止符 `` 或达到最大长度)。

这种循序渐进的特性是 LLM随着序列的增长,模型在下一步需要处理的上下文也随之增加,导致计算量不断累积,速度越来越慢。

两阶段过程:预填充(Prefill)与解码(Decode)

LLM 推理并非一个单一的过程,而是被清晰地划分为两个计算特性截然不同的阶段。这种二元性是所有推理优化挑战的根源。

  • • 阶段一:预填充(Prefill)这个初始阶段一次性处理用户的全部输入(Prompt)。由于所有输入 token 都是已知的,模型可以并行计算它们的注意力得分,这在计算上类似于一次大规模的矩阵-矩阵乘法。因此,预填充阶段是 计算密集型(Compute-Bound) 的,其速度主要受限于 GPU 的原始计算能力(FLOPS),并且能高效利用 GPU 硬件。此阶段的最终产出是整个输入 Prompt 的 KV 缓存和第一个生成的 token
  • • 阶段二:解码(Decode)这是上述的自回归循环阶段,逐一生成后续的 token。在每一步,模型只需处理最新生成的单个 token 与所有历史上下文的交互,这在计算上类似于一次大规模的矩阵-向量乘法。关键在于,解码阶段是 内存带宽密集型(Memory-Bandwidth Bound) 的。其瓶颈不再是计算速度,而是从相对较慢的 GPU HBM(高带宽内存)中读取巨大的模型权重和不断增长的 KV 缓存到极速的片上 SRAM (Static Random Access Memory 静态随机存取存储器)所需的时间。在此阶段,GPU 强大的计算单元常常处于空闲状态,等待数据加载。
  • 大模型的发展历程_Parallelism_40

这种 计算密集 与 内存密集 的鲜明对比,意味着任何单一、静态的优化策略都难以同时完美地适应两个阶段。一个真正高效的推理系统必须能够同时处理这两种性质迥异的负载。

KV 缓存:优化的功臣与新的瓶颈

为了避免在每个解码步骤中为所有历史 token 重复计算注意力机制中的 Key (K) 和 Value (V) 张量,KV 缓存(KV Cache) 这一关键优化应运而生。

大模型的发展历程_Parallelism_41

  • • 工作原理:在预填充阶段,模型一次性计算并存储整个输入 Prompt 的 K 和 V 值。在随后的每个解码步骤中,模型仅计算最新生成的那个 token 的 K 和 V,并将其追加到缓存中。这使得解码阶段的计算复杂度从与序列长度的二次方关系(O(N2))降低到线性关系(O(N))。
  • • 新的瓶颈:KV 缓存是解决计算冗余的功臣,但它自身也创造了一个新的、甚至更严峻的内存瓶颈。其大小与序列长度、批处理大小(batch size)等因素成正比,对于长序列任务,KV 缓存的内存占用甚至会超过模型权重本身。其大小可由以下公式估算:

Size≈2×(num_layers)×(num_heads)×(head_dim)×(sequence_length)×(batch_size)×precision_bytes

  • 这个庞大的缓存必须在每个内存密集型的解码步骤中被反复读写,使其成为现代 LLM 推理优化的核心目标。可以说,LLM 推理优化的历史,就是从解决计算瓶颈转向解决由其解决方案(KV 缓存)所引发的内存瓶颈的历史
KV Cache的核心优化方向:
  • • 量化技术:将KV Cache从FP16降至INT8或INT4
  • • 压缩算法:使用低秩分解或稀疏化技术
  • • 选择性保留:只保留重要的键值对
  • • 动态管理:根据序列长度动态调整缓存策略

量化性能与直面挑战

为了有效评估和优化推理系统,我们需要一套标准的语言来描述其性能,并清晰地认识其面临的核心硬件制约。

核心性能指标

以下四个指标构成了评估 LLM 推理性能的基石,它们相互关联,共同定义了一个复杂的权衡空间。

这四个指标并非孤立存在。例如,为了提高吞吐量而增大批处理大小,通常会导致每个请求的排队时间和处理时间增加,从而恶化 TTFT 和 TPOT。因此,不存在普适的“最佳性能”,只有面向特定应用场景的“最优权衡”。一个实时聊天应用会优先保证低延迟,而一个离线分析服务则会优先追求高吞吐量。

“有效吞吐量”与双重瓶颈

单纯追求高 TPS 可能会产生误导。一个系统可以通过极大的批处理来刷高 TPS,但如果每个请求的延迟都高到用户无法接受,那么这种高吞吐量是无效的。因此,**有效吞吐量(Goodput)**的概念应运而生,它衡量的是在满足特定服务等级目标(SLO,如 TTFT < 200ms)的前提下,系统所能达到的吞吐量。这促使我们从关注“硬件跑得多忙”转向关注“系统交付了多少有价值的成果”。

这背后是推理系统面临的双重瓶颈:

  • • 内存墙:如前所述,解码阶段受限于内存带宽,是主要的性能瓶颈。
  • • 计算墙:预填充阶段受限于计算能力,直接影响长 Prompt 的 TTFT。

优化技术

为了攻克上述挑战,学术界和工业界发展出了一系列精巧的系统级优化技术。这些技术并非孤立的选项,而是构成了一个协同工作的技术栈,共同铸就了现代高性能推理引擎。

PagedAttention 与注意力变体

  • • PagedAttention:这是近年来 LLM 服务领域最具影响力的创新之一。它旨在解决传统 KV 缓存管理中的巨大内存浪费问题。传统方法为每个请求预分配一块连续的大内存,导致了严重的 内部碎片(序列短,内存用不完)和 外部碎片(可用内存总量够,但没有足够大的连续块),浪费率可高达 60-80%。受操作系统虚拟内存的启发,PagedAttention
  • 大模型的发展历程_Parallelism_42

  • • 多查询注意力 (MQA) 与分组查询注意力 (GQA):这些是直接在模型架构层面进行的优化,旨在从根本上减小 KV 缓存的大小。
  • • 多头注意力 (MHA):标准做法,每个查询头(Query Head)都有自己独立的键(Key)和值(Value)头,效果好但内存开销大 28。
  • • 多查询注意力 (MQA):一种激进的优化,所有查询头共享同一对 K/V 头。这极大地减小了 KV 缓存,降低了内存带宽需求,但可能牺牲部分模型性能。
  • • 分组查询注意力 (GQA):MHA 和 MQA 之间的折中方案。它将查询头分组,每组共享一对 K/V 头。这在实现 MQA 大部分加速效果的同时,最大程度地保留了 MHA 的性能。GQA 已成为 Llama 等现代 LLM 的标准配置。

大模型的发展历程_神经网络_43

加速核心计算:FlashAttention

标准注意力计算本身也是内存带宽密集型的,因为它需要将巨大的中间结果(一个 N×N 的注意力矩阵)写入和读出 HBMFlashAttention 是一种 IO 感知的精确注意力算法,通过重排计算顺序来最小化 HBM 访问。

  • • 分块(Tiling):将 Q, K, V 矩阵切分成能装入 GPU 高速 SRAM 的小块。
  • • 核融合与在线 Softmax:将注意力的多个计算步骤融合成一个 CUDA 核。它利用巧妙的在线 Softmax算法,逐块计算 Softmax 归一化,而无需生成完整的 N×N 注意力矩阵。

通过避免读写巨大的中间矩阵,FlashAttention 显著减少了内存 IO,带来了 2-4 倍的计算加速,并支持更长的上下文。

压榨 GPU 性能:连续批处理

  • • 静态批处理(Static Batching):传统方式下,系统等待凑齐一个固定大小的批次,然后统一处理。在新请求加入前,整个系统必须等待批次中最慢的那个请求完成,导致大量 GPU 空闲和计算浪费。
  • • 连续批处理(Continuous Batching):也称动态批处理或 In-flight Batching,是一种更先进的调度策略。调度器在每次迭代(生成一个 token)后都会检查批次中的请求。一旦有请求完成,它会立即被移出,同时从等待队列中加入新的请求。这确保了 GPU 始终有活干,消除了因等待和填充(padding)造成的浪费,极大地提升了吞吐量(可达 20 倍以上)。这是 vLLM、TensorRT-LLM 等现代推理服务器的标配功能。

大模型的发展历程_Parallelism_44

其他关键优化

  • • 量化(Quantization):通过降低模型权重或激活值的数值精度(如从 FP16 降至 INT8 或 INT4)来减小模型体积和内存占用,并加速计算。对 KV 缓存进行量化是减轻解码阶段内存带宽压力的有效手段 。
  • • 推测解码(Speculative Decoding):使用一个小的、快速的 "草稿模型"目标模型 一次性并行验证。如果 草稿 被接受,系统就能在一次目标模型调用中确认多个 token,从而将端到端延迟降低 2-3 倍,且不损失任何模型质量 。

大模型的发展历程_神经网络_45

投机解码

这些优化技术的演进趋势清晰地表明,推理优化的重心已从单纯减少计算量转向了更复杂的隐藏系统延迟,尤其是内存访问延迟。

规模化之路:分布式推理策略

当单个模型的尺寸超过单个 GPU 的内存限制时,就必须采用分布式策略,将其部署在多张 GPU 乃至多个节点上。

并行策略的分类

  • • 模型并行(Model Parallelism):将单个模型切分到多个设备上。
  • • 张量并行(Tensor Parallelism, TP):也称层内并行。它将模型中的大矩阵(如全连接层和注意力层的权重)沿特定维度切分到不同 GPU 上。每个 GPU 只计算部分结果,然后通过高速通信(如 NVLink)进行聚合(如 All-Reduce 操作)。TP 能有效降低单卡内存,但通信开销巨大。
  • • 流水线并行(Pipeline Parallelism, PP):也称层间并行。它将模型的不同层(或层块)顺序放置在不同 GPU 上,形成一个“流水线” 。一个 GPU 的输出是下一个 GPU 的输入。这种方式的通信频率较低,但容易产生“流水线气泡”(GPU 等待前序阶段完成而空闲),影响效率。
  • 大模型的发展历程_Parallelism_46

  • 多GPU并行推理
  • • 数据并行(Data Parallelism, DP):最简单的并行方式。在每个 GPU 上都复制一份完整的模型,然后将输入请求分发给不同的 GPU 独立处理。DP 不能解决单模型过大的问题,但能有效提升小模型的总吞吐量。

大模型的发展历程_权重_47

硬件与策略的匹配

并行策略的选择与硬件的物理连接方式(网络拓扑)息息相关。

  • • 单节点多 GPU:对于能装入单台服务器(如 8 张 A100)的大模型,张量并行是首选。节点内的高速 NVLink 总线能够支撑 TP 所需的频繁、低延迟通信。
  • • 多节点多 GPU:对于需要跨服务器部署的巨型模型,通常采用混合并行策略。在节点之间(通过 InfiniBand 或以太网连接,速度较慢)使用通信频率较低的流水线并行;在每个节点内部(通过 NVLink 连接,速度极快)使用张量并行。vLLM 等框架的推荐配置正是这一思想的体现:tensor_parallel_size 设为单节点 GPU 数,pipeline_parallel_size 设为节点数。

未来的一个重要方向是 动态并行。鉴于预填充和解码阶段的计算特性不同,推理引擎未来可能会根据当前处理的阶段动态地调整并行策略(如动态重分片),以实现全局最优性能。

主流推理框架

当前,开源社区和商业公司提供了多个优秀的推理框架,它们在设计哲学和技术实现上各有侧重。

这三个框架完美体现了工程领域的经典权衡:性能(Performance) vs. 生产力(Productivity) vs. 可移植性(Portability)。TensorRT-LLM 追求极致性能,TGI 追求极致生产力,而 vLLM 则在性能和易用性/可移植性之间取得了出色的平衡。对用户而言,选择哪个框架,取决于具体的业务需求、硬件环境和团队技术栈。任何脱离具体场景的“性能最好”的论断都是片面的,唯一的真理是进行符合自身生产环境的基准测试。

国产化浪潮:自主生态下的推理实践

在全球大模型技术飞速发展的同时,中国的人工智能领域也形成了蓬勃发展的生态系统,其显著特点是“模型-框架-硬件”全栈协同与自主创新 。在推理层面,这体现为国产大模型、推理框架与国产AI芯片的深度适配和联合优化。

国产 AI 芯片与推理的基石

大模型的推理对算力、内存带宽和容量提出了极高要求,这催生了国产AI芯片的快速发展,它们是实现大模型应用落地的关键硬件载体 。

  • • 硬件厂商梯队:国内已形成多层次的AI芯片供应商格局。第一梯队以华为、海光、寒武纪等为代表,资金和技术实力雄厚;第二梯队则涌现出一批以推理卡为主要产品的创新企业 。这些企业正努力在特定市场(如边缘计算、国产化替代)中寻找与国际巨头竞争的空间 。
  • • 软硬件协同:华为的昇腾(Ascend)系列是国产全栈AI解决方案的典型代表 。其核心是CANN(Compute Architecture for Neural Networks),这是一个专为昇腾处理器设计的编译和运行环境。针对大模型推理,CANN提供了从底层算子到上层调度的全方位优化
  • • 自动并行与调度:CANN能够根据模型结构和物理集群信息,自动搜索并应用最优的并行切分策略(如张量、流水线、数据并行),实现大模型在昇腾集群上的高效分布式部署 。同时,通过Auto Batching等调度策略,动态聚合请求,平衡计算与访存,提升整体算力利用率 。
  • • 核心技术自研优化:CANN全面支持并优化了KV Cache机制,实现了分布式环境下的高效存储和更新 。此外,还针对昇腾硬件的内存层次和数据通路,深度优化实现了FlashAttention融合算子,可将Attention处理性能提升高达50% 。
  • • 量化支持:提供针对性的量化方案,如仅权重(Weight-only)量化和KV Cache量化,可在保证精度的前提下,显著降低内存占用 。

主流国产大模型与推理框架

依托于自主硬件和软件生态,国内的主要科技公司均推出了各具特色的大模型及配套的推理部署方案 。

  • • 华为盘古与昇腾 AI:华为盘古大模型(如盘古 7B 和 72B MoE 模型)与昇腾 AI 平台深度绑定,形成模型+AI框架+AI处理器 的完整技术栈 。其推理技术,如 MindIE(MindSpore Inference Engine),集成了通信加速、解码优化、量化压缩、最优并行和调度优化等一系列技术,旨在最大化昇腾硬件的推理效率 。
  • • 百度文心与飞桨:百度的文心一言(ERNIE)系列大模型基于其自研的飞桨(PaddlePaddle)深度学习框架 。为了高效部署,百度推出了 FastDeploy 工具套件,它支持将模型部署到包括国产 CPU、GPU 在内的多种硬件上 。FastDeploy 集成了低比特量化、上下文缓存、推测解码等多种加速技术,并提供与 vLLM 和 OpenAI 兼容的 API,简化了开发和集成流程 。百度智能云通过技术迭代,已将文心一言的推理成本大幅降低 。
  • • 阿里通义与生态合作:阿里巴巴的通义千问(Qwen)系列模型以其全面的能力和积极的开源策略,在全球范围内建立了广泛的生态系统 。通义千问不仅提供多种尺寸和能力的模型(从 Turbo 到 Max),还引入了创新的“思考模式”来平衡推理深度和效率 。在推理优化方面,阿里一方面通过大幅降低API价格来推动大模型应用的普及 ,另一方面积极与硬件厂商(如 NVIDIA、AMD、Arm)和推理框架(如 vLLM、SGLang)合作,最大化 Qwen 模型在不同平台上的推理性能 。
  • • 智谱 GLM:作为国内领先的大模型创业公司,智谱 AI 的 GLM 系列模型同样构建了开放平台 。其一个重要特点是与国产硬件生态的紧密结合,例如与华为合作推出基于昇腾AI硬件的智谱-昇腾 ChatGLM 训推一体机,为企业提供本地化、开箱即用的大模型解决方案。

开源驱动与生态共建

与国际趋势相呼应,开源已成为推动中国大模型技术发展和应用普及的核心战略 。通过开源模型,国内厂商能够快速构建开发者社区,整合底层资源,降低行业研发成本,并以非对称优势参与全球竞争 。这种开放的生态不仅加速了模型本身的迭代,也催生了丰富的下游应用,形成了从基础研究到产业落地的良性循环 。

总体而言,国产大模型推理正走在一条 自主可控 与 开放兼容 并行的道路上。一方面,通过自研芯片和全栈软件优化,构建自主的技术体系;另一方面,通过积极拥抱开源和产业合作,融入全球 AI 生态,共同推动大模型推理技术的边界。

总结

LLM 推理领域是一场与内存瓶颈和硬件利用率的持续战斗。本文梳理的各项优化技术,都是为了让日益庞大的模型变得更加实用和经济。展望未来,几个关键趋势正在塑造下一代推理技术:

  1. 1. 更小、更高效的模型架构:业界正大力投入于研发更小但能力依旧强大的模型(如 Phi-3)以及稀疏化的专家混合(MoE)模型。MoE 模型在每次推理时只激活一小部分参数,从根本上降低了单次推理的计算和内存成本。
  2. 2. 软硬件协同设计:从 FlashAttention 到 FlashAttention-3 的演进,清晰地展示了算法如何紧随硬件特性(如 Hopper 架构的 FP8 支持)进行迭代。未来的性能突破将更多地来自于算法与底层芯片的深度协同设计。
  3. 3. 动态与自适应推理:未来的推理系统将更加智能。它们能够根据请求的难度和类型,动态地分配计算资源,例如为复杂问题提供更多的“思考时间”(推理时计算缩放),或在预填充和解码阶段间动态切换并行策略,从而摆脱当前“一刀切”的计费和资源分配模式。
  4. 4. 可控与可信的推理:随着 LLM 逐渐演化为能够自主行动的智能体(Agent),如何保证其推理过程的正确性、逻辑性和可控性,将成为新的研究焦点。

总而言之,大型语言模型的未来,不仅取决于我们能构建多大的模型,更取决于我们能以多快的速度、多低的成本、多高的效率去运行它们。推理优化,正是这场通往通用人工智能道路上,至关重要且充满挑战的征途。

 

 

数据的语言:线性代数

1、从文字到数字:通用语言的需求

一切的起点源于一个根本性的挑战:计算机无法理解人类语言的丰富内涵,它们的世界由数字和计算构成 。为了让机器能够处理、分析甚至生成语言,我们必须首先将“你好”这样的词语和“天空是蓝色的”这样的句子,翻译成机器能够理解的语言——数学。这一转换过程是整个自然语言处理(NLP)领域,乃至大语言模型(LLM)的基石。

线性代数(Linear Algebra)正是提供了实现这一翻译的工具和框架的数学分支。它研究向量、矩阵以及它们之间的变换,为我们提供了一种结构化的方式,将抽象的语言概念编码为精确的数字形式,从而让复杂的语言任务转变为可以计算的数学问题。

2、向量:语义的DNA

向量(Vector)是一个有序的数字列表,可以想象成高维空间中的一个带方向的箭头。在大语言模型中,一个单词或一个“词元”(token,可以是单词的一部分或标点符号)就被表示为一个向量,这个向量通常包含数百甚至数千个维度(即数字)。每个维度都可以被看作是捕捉了该词义的某个特定“特征”或“属性”。

大模型的发展历程_权重_48

它 解决的核心问题 是:如何将一个离散的、孤立的概念(如一个单词)表示在一个连续的、可度量的数学空间中,从而使得词语之间的关系可以被量化。

一个词语的向量就像一个人的DNA档案。这份档案是一长串独特的数字(基因标记),精确地定义了这个人的生物学特征。拥有相似DNA的人在生物学上是亲戚。同样地,在向量空间中,拥有相似向量表示的词语(例如,“猫”和“狗”)在语义上也是相关的。它们的向量在多维空间中的位置会非常接近,这种“距离”的远近,就成了衡量词义相似度的标尺。

3、矩阵:思维的电子表格

矩阵(Matrix)是一个二维的数字网格,由行(rows)和列(columns)组成。在大语言模型中,矩阵的用途无处不在:

  • • 可以用来存储一组相关的向量,例如将一个句子中的所有词向量组合成一个矩阵;
  • • 可以用来存放神经网络中某一层的“权重”(weights),这些权重是模型通过学习获得的知识;
  • • 还能表示不同数据集之间的复杂关系。

一个矩阵就像一张电子表格(Spreadsheet)。每一行可以代表一个数据点(比如一个词向量),每一列可以代表一个特征。这种结构使我们能够对所有数据同时执行批量操作。例如,神经网络中的“权重矩阵”就是一张特殊的电子表格,里面写满了“指令”,告诉模型应该如何处理和转换输入的数据。当输入数据(另一张表格)与这张权重表格进行交互时,模型就完成了一次信息的处理与提炼。

例如,一个句子**“The cat sat”**如果每个词都用一个4维向量表示,那么这个句子就可以被组织成一个3x4的矩阵,其中每一行对应一个词的向量。

大模型的发展历程_Parallelism_49

4、张量:三维及更高维度的数据

张量(Tensor)是向量和矩阵概念的推广,可以理解为一个 n 维的数字数组。从这个角度看:

  • • 一个标量(Scalar),即单个数字,是一个 0 阶张量。
  • • 一个向量(Vector),即一维数组,是一个1 阶张量。
  • • 一个矩阵(Matrix),即二维数组,是一个 2 阶张量。

如果说向量是一条线上的数字,矩阵是一个平面上的网格,那么一个 3阶张量就是一个三维的数字立方体。一个常见的例子是彩色图片:一张图片可以被表示为一个3阶张量,其三个维度分别是图片的高度、宽度和颜色通道(红、绿、蓝)。在大语言模型中,当我们处理一批(batch)句子时,每个句子是一个由词向量组成的矩阵,那么多句话组成的这个批次就构成了一个3阶张量(批次大小 x 句子长度 x 向量维度)。

5、矩阵乘法:信息转换的引擎

想象一下,一个矩阵是你的“原料清单”(输入数据),例如,它列出了制作几种不同蛋糕所需的各种原料用量。另一个矩阵则是“食谱大全”(模型的权重),每一份食谱都详细说明了如何按特定比例混合各种原料。

矩阵乘法就像一个全自动的“食谱搅拌机”。它会系统地将“食谱大全”中的每一份食谱,应用到你的“原料清单”上,精确计算出每种蛋糕的最终成分,从而得到一批全新的“蛋糕成品”(输出数据)。这个过程将原始的、未经加工的原料,转换成了更高级、更有意义的成品。

线性代数在大语言模型中的真正威力,并不仅仅在于它提供了一种存储数字的方式,更在于它定义了一套结构化的信息流动系统。矩阵乘法不仅是一次计算,它是信息从网络的一层流向下层,并在每一步被重塑和提炼的核心机制。一个神经网络的架构,本质上就是一张关于矩阵运算的流程图。

更进一步,我们可以发现一个更为深刻的原理:矩阵和向量在模型中扮演着双重角色,它们既可以是数据(空间中的一个点),也可以是代码(一个转换空间的函数)。这种“代码即数据,数据即代码”的二元性,是理解现代LLM(尤其是其注意力机制)的关键。

预测的逻辑—概率论

1、游戏的目标:预测下一个词元

从本质上讲,一个大语言模型是一个概率语言模型(Probabilistic Language Model)。它的根本目标是计算一个词语序列(即一个句子)出现的概率,用数学符号表示为P(w1, w2,..., wN)。在实际应用中,这个能力被用来完成一个更具体的任务:给定一段已经出现的文字,预测下一个最可能出现的词元是什么,即计算条件概率 P(下一个词 | 前面的所有词) 。

如何将“生成文本”这个模糊、开放的任务,转化为一个具体、可量化的数学目标。这个目标就是:为那些符合语法、逻辑和常识的、通顺的句子赋予高概率,而为那些胡言乱语、不合逻辑的句子赋予极低的概率。

例如,模型应该计算出P("天空是蓝色的")的概率远大于P("蓝色的是天空")。当用户输入“天空是”时,模型内部会计算词汇表中所有词元作为下一个词的概率,并发现“蓝色的”这个词元的概率最高。

2、条件概率与链式法则:逐词构建句子

直接计算世界上所有可能句子的概率是不现实的,其组合数量是天文数字。幸运的是,概率论中的链式法则(Chain Rule of Probability)允许我们将这个复杂问题分解为一个可管理的、一步一步的过程。一个序列的联合概率可以被分解为一系列条件概率的乘积:

大模型的发展历程_神经网络_50

这个公式的含义是,整个句子的概率等于第一个词出现的概率,乘以在第一个词出现条件下第二个词出现的概率,再乘以在前两个词都出现条件下第三个词出现的概率,以此类推。

模型正是基于这个原理进行自回归(Autoregressive)生成的:它一次预测一个词元,然后将这个新生成的词元添加到输入序列中,作为下一次预测的上下文

预测一个完整的句子就像是摆放一排多米诺骨牌。整排骨牌成功倒下的概率,等于第一块骨牌倒下的概率,乘以第一块成功推倒第二块的概率,再乘以第二块成功推倒第三块的概率……每一块骨牌倒下的行为都依赖于它前面所有骨牌的状态。链式法则就是这个过程的数学化表达。

早期的 N-gram 模型为了简化计算,做出了一个马尔可夫假设(Markov Assumption),即一个词的出现只依赖于它前面有限的几个(例如 N-1 个)词,而不是整个历史上下文。然而,现代的 Transformer 架构(LLM的基础)的注意力机制,能够真正地回顾并考虑整个输入序列,从而做出更精准的预测。

3、衡量“错误程度”:交叉熵损失函数

在训练过程中,模型会根据当前的输入预测下一个词元的概率分布。我们需要一种方法来衡量这个预测的概率分布与“真实答案”(即训练数据中实际出现的下一个词)之间的差距有多大。这个衡量的标尺被称为 损失函数(Loss Function)。对于像预测下一个词这样的分类任务,最常用且最有效的损失函数是交叉熵损失(Cross-Entropy Loss)。

交叉熵损失函数不像一个只会说“对”或“错”的裁判,它更像一位理想的教练。这位教练不仅评估你的答案是否正确,还非常关心你的“自信程度”:

  • • 回答正确且非常自信:教练给予极小的惩罚(损失值很低)。
  • • 回答正确但犹豫不决:教练给予中等程度的惩罚。
  • • 回答错误但只是猜测:教练同样给予中等程度的惩罚。
  • • 回答错误却极其自信:教练会给予极其严厉的惩罚(损失值极高)。

这种机制激励模型不仅要做出正确的预测,还要对自己的预测有恰当的信心。

大模型的发展历程_神经网络_51

在图像识别任务中,如果一张图片是猫,模型预测为猫的概率是0.9,狗的概率是0.05,鸟的概率是0.05。那么真实标签是[1, 0, 0](猫),预测是[0.9, 0.05, 0.05]。交叉熵损失会计算这两个分布之间的差异。如果模型将猫的概率预测为0.1,那么损失就会非 常大,促使模型在下一次迭代中调整参数,提高对猫的预测概率。

选择交叉熵作为损失函数并非偶然。它的根源在于信息论,它衡量的是两个概率分布之间的“距离”或“差异”:一个是模型预测的概率分布,另一个是真实的概率分布(真实分布中,正确词的概率为1,其他所有词的概率为0)。交叉熵从信息论的角度量化了用模型的预测来描述真实情况所产生的“意外程度”或“信息编码的低效率”。高损失值意味着模型对正确答案的出现感到非常“惊讶”。

更进一步,交叉熵函数的特定数学形状——对数函数那条陡峭的曲线——直接决定了学习的动态过程。这个函数为优化问题创造了一个“损失地貌”(Loss Landscape),其中,对于非常离谱的错误,地貌上会形成万丈悬崖。这些悬崖提供了极其强大和明确的“信号”(即巨大的梯度),精确地告诉优化算法应该朝哪个方向、以多大的力度进行修正。如果换用一个惩罚不那么严厉的损失函数,损失地貌可能会变得平坦,使得模型在犯下严重错误时难以获得清晰的改进方向。因此,损失函数的选择不仅是在衡量错误,更是在主动地塑造学习问题本身,将其雕刻成一个更容易被优化算法解决的形态。它为学习过程开凿出了深邃的峡谷,引导着模型走向优化。

学习的引擎——微积分导论

1、寻找谷底:优化的目标

训练模型的过程,本质上是一个优化问题(Optimization Problem)。其目标是,在庞大的训练数据集上,找到一组能让损失函数(Loss Function)达到最小值的模型参数(即权重和偏置)。

我们可以将损失函数想象成一个广阔无垠、崎岖不平的高维“地貌”(Loss Landscape),上面有高山也有深谷。

  • • 地貌上的位置:由模型当前的所有参数(权重和偏置)共同决定。
  • • 该位置的海拔高度:就是当前参数配置下,模型在整个训练集上的总损失(或平均损失)。海拔越高,代表模型的错误越大。
  • • 优化的目标:就是在这片复杂的地貌上,找到海拔最低的那个点,也就是最深的山谷的谷底。这个谷底被称为“全局最小值”(Global Minimum)。
2、梯度下降

梯度下降(Gradient Descent) 是用来在这片“损失地貌”上导航并寻找最低点的核心算法。它的工作原理非常直观:从一个随机的初始位置出发,周而复始地朝着当前位置最陡峭的下坡方向迈出一小步。

这个过程最经典的类比就是一个蒙着眼睛的登山者(或徒步者)想要走到山谷的最低点。

  • • 登山者的位置 (Position):代表模型当前的参数值。
  • • 山脉地貌 (Landscape):代表损失函数。他所在位置的海拔就是模型的当前误差。
  • • 用脚感知地面 (Feeling the Ground / Gradient):登山者虽然看不见整张地图,但他可以伸出脚,仔细感受脚下地面的坡度。这个坡度信息,在数学上就是梯度(Gradient)。梯度是一个向量,它指向该位置坡度最陡峭的上升方向(上山最快的方向)。
  • • 迈出一步 (Taking a Step):为了下山,登山者自然会朝着与梯度相反的方向(即最陡的下坡方向)迈出一步。这一步的大小,由一个叫做 学习率(Learning Rate) 的参数控制。学习率决定了登山者是小步慢走还是大步快跑。

学习率的选择至关重要。如果设置得太小,登山者每步都走得极短,虽然方向正确,但到达谷底需要耗费漫长的时间,训练过程会非常缓慢。如果设置得太大,登山者步子迈得太大,很可能会一步跨过谷底,直接跳到山谷的另一侧,然后在两边来回震荡,永远无法稳定在最低点。

3、反向传播

反向传播(Backpropagation,简称 Backprop)是一种高效计算神经网络中所有参数梯度的算法。它通过微积分中的链式法则(Chain Rule),将最终的损失(误差)从网络的输出层开始,逐层“反向”传播回输入层,从而计算出每一层的每一个权重对最终总误差的“贡献度”。

图片来源:https://machinelearningknowledge.ai/wp-content/uploads/2019/10/Backpropagation.gif

大模型的发展历程_权重_52

对于拥有数亿参数的大模型,如果用最朴素的方法(即逐一微调每个参数,观察损失变化来估算梯度),计算量将是天文数字,完全不可行。反向传播提供了一种极其高效且可扩展的梯度计算方法,是深度学习能够成功的关键技术之一。

想象一下你用乐高积木搭建了一座复杂的城堡(这相当于模型的前向传播,Forward Pass)。搭建完成后,你退后一步审视,发现城堡的塔尖歪了(这就是最终的误差)。你不会把整个城堡推倒重来。相反,你会从问题最表层的地方开始追溯责任:

  • • “塔尖之所以歪了,是因为支撑它的这面墙是斜的。”
  • • “这面墙之所以是斜的,是因为它底下的这块基石没有放平。”

你将错误的“责任”或“影响”从塔尖开始,一层一层地反向传播下去,直到找到最根本的、需要被修正的那几块积木。反向传播就是这个“追责”过程的数学化身,它精确地计算出每一块“积木”(权重)对最终“塔尖歪斜”(总误差)负有多大的责任。

“蒙眼登山者” 的类比完美地揭示了梯度下降的一个核心特性:它是一个 局部贪心算法。登山者只拥有关于脚下小片区域的局部信息,无法看到全局地貌。这意味着它很容易被困在一个“局部最小值”(Local Minimum)——一个看似是谷底,但实际上只是一个小土坑,旁边还有更深的山谷 。这在早期深度学习研究中曾被视为一个巨大的障碍。然而,后来的研究和实践发现,在LLM所处的超高维度空间中,纯粹的、质量很差的局部最小值非常罕见。更常见的问题是遇到广阔的“平原”(梯度接近于零的区域)或“鞍点”(在某些维度是最小值,在其他维度是最大值的点),这些都会让朴素的梯度下降停滞不前。

反向传播,其意义远不止于一个微积分的计算技巧。它是一种优美的、用于在复杂分布式系统中进行 信誉分配(Credit Assignment)的算法。它精确地回答了这样一个问题:“对于我们最终看到的总误差,网络中数十亿个权重中的每一个,究竟应该承担多大的责任?”

从输出层反向流动的“误差信号”,其物理意义正是“在某个特定权重上施加一个微小的改动,最终的总损失会发生多大变化”的量度。它是一个分布式的、可并行化的系统,用于确定网络中每个组件的影响力。正是这种高效的信誉分配机制,使得深度网络能够从错误中学习,并构成了整个深度学习革命的基石。它将学习这个抽象概念,转化为了一个具体的、可计算的、信息在网络中反向流动的过程。

架构—构建现代语言模型

词嵌入

1、编码的演进:从独热编码到密集向量

在将词语转化为机器可读的数字时,最简单直接的方法是独热编码(One-Hot Encoding)。想象一个词汇表,包含了世界上所有的词语。对于任何一个词,我们都创建一个长度与词汇表大小相等的向量。这个向量中,只有代表该词的位置为1,其余所有位置都为0。

这种方法存在几个致命缺陷:

  • • 维度灾难:如果词汇表有5万个词,那么每个词的向量就有5万维,这会产生巨大且极其稀疏(大部分为0)的矩阵,存储和计算效率极低。
  • • 无法表达相似性:在独热编码中,任意两个不同词的向量都是正交的。这意味着模型无法从数学上判断出“国王”和“王后”的关系比“国王”和“香蕉”更近。所有词之间的距离都是一样的 。
  • • 无法处理未知词:如果遇到一个训练时没见过的词,独热编码将束手无策。

为了克服这些问题,密集词嵌入(Dense Word Embeddings)应运而生。它不再使用稀疏的0和1向量,而是用一个相对低维(例如几百维)的、充满实数值的密集向量来表示一个词。这些向量是通过神经网络在大量文本上训练学习得到的,其核心思想是让向量本身能够编码词语的语义信息。

2、Word2Vec:语境即意义

大模型的发展历程_Parallelism_53

Word2Vec 是早期词嵌入技术的里程碑。它的核心思想来源于语言学的一句名言:你可以通过一个词的同伴来了解它。也就是说,经常出现在相似语境中的词语,它们的意义也相近。

Word2Vec 通过训练一个简单的神经网络来实现这个思想,主要有两种模型架构:

  • • 连续词袋模型 (CBOW):根据一个词的上下文(周围的词),来预测这个词本身。
  • • Skip-Gram模型:与 CBOW 相反,它根据当前词,来预测其上下文中的词。

Word2Vec 解决的核心问题是 如何让词向量学习到语义关系。当训练完成后,Word2Vec 产出的词向量具有惊人的特性:语义上相近的词,其向量在空间中的距离也相近。例如,“银行”的向量会和“金融”、“货币”等词的向量聚集在一起。

3、语境为王:从静态到动态的 ELMo 与 BERT

Word2Vec 虽然强大,但它有一个根本性的限制:它为每个词只生成一个固定的、静态的向量,无法处理一词多义的问题。例如,【在我去了河边的银行】和【我去了银行取钱】这两个句子中,银行 的含义截然不同,但 Word2Vec 会给它们完全相同的向量表示。

为了解决这个问题,上下文相关的词嵌入(Contextualized Word Embeddings)模型诞生了,其中最具代表性的是ELMoBERT

  • • ELMo (Embeddings from Language Models)ELMo 的创新之处在于,一个词的嵌入向量不再是固定的,而是由整个句子决定的。它使用一个双向长短期记忆网络(biLSTM)来生成词向量。这意味着同一个词在不同句子中,会因为上下文的不同而拥有不同的向量表示。
  • • BERT (Bidirectional Encoder Representations from Transformers)BERT 将这一思想推向了极致。它基于更强大的Transformer 架构,通过“双向”地同时考虑一个词左右两边的上下文来生成其表示。BERT 的向量是深度语境化的,这意味着它能更好地理解词语在具体语境下的确切含义。例如,BERT 能够为上述两个句子中的“银行”生成两个截然不同的向量,一个偏向“地理位置”,另一个偏向“金融机构”。

词嵌入技术的发展历程,不仅仅是模型性能的提升,它也反映了我们对语言本质理解的深化。

  • • 1、独热编码 将每个词视为一个孤立的、无关联的符号。
  • • 2、**Word2Vec **认识到词与词之间存在固定的、可度量的语义关系,如同一个静态的“意义网络”。它认为“国王”这个词有一个核心的、不变的意义。
  • • 3、BERT 则迈出了革命性的一步,它从数学上实现了语言学中的一个核心观点:一个词的意义并非固定不变,而是完全由其所处的语境所动态定义的。在BERT的世界里,不存在一个脱离了句子的、抽象的“银行”的意义;只存在“河边的银行”和“取钱的银行”这样具体的、在语境中生成的意义。

这种从静态到动态的演变,使得模型能够捕捉到语言中极其微妙和复杂的现象,为大语言模型的成功奠定了坚实的基础。

非线性激活函数的作用

1、为何需要非线性:打破线性模型的枷锁

想象一下,一个神经网络由许多层组成,每一层都对输入数据进行一次矩阵乘法(线性变换)。如果这些层之间没有任何非线性的处理,那么无论网络有多深,它最终都等同于一个单层的线性模型。这是因为 线性函数的组合仍然是线性函数。例如,如果第一层的操作是

f(x) = ax + b

第二层的操作是

g(y) = cy + d

那么将它们叠加起来得到

g(f(x)) = c(ax + b) + d = (ac)x + (cb + d)

这最终还是一个y = Mx + C 形式的线性方程。一个纯线性的模型只能学习数据中的线性关系,比如画一条直线来分割数据点。然而,现实世界充满了复杂的、非线性的模式,例如识别一张图片中的猫、理解一句讽刺的话或者翻译一段诗歌。这些任务远远超出了线性模型的能力范围。激活函数(Activation Function)的作用,就是在神经网络的各层之间引入非线性(Non-linearity),赋予网络学习和拟合复杂非线性关系的能力。它决定了一个神经元在接收到加权输入后,是否应该被 激活 并向下一层传递信息。

2、ReLU:简单高效的“开关”

ReLU(Rectified Linear Unit,修正线性单元)是目前最常用、最基础的激活函数之一。它的规则极其简单:

  • • 如果输入值是正数,就原样输出。
  • • 如果输入值是负数,就输出0。

其数学表达式为:

f(x)=max(0,x)

ReLU 就像一个简单的电路开关。当有正向电流(正输入)通过时,开关闭合,信号顺利通过;当有反向电流或无电流(负输入或零输入)时,开关断开,信号被阻断。

死亡 ReLU 问题:如果一个神经元的权重被更新,导致它接收到的输入恒为负,那么这个神经元将永远输出0。其梯度也将永远为0,导致它无法再通过梯度下降进行任何学习,就像一个“死亡”的神经元。

3、GeLU:更平滑、更智能的选择

GeLU(Gaussian Error Linear Unit,高斯误差线性单元)是现代Transformer架构(如BERT和GPT系列)中广泛使用的激活函数 44。与ReLU的“硬”开关不同,GeLU 是一个平滑的、概率性的激活函数。

其数学表达式为:

GELU(x)=x⋅Φ(x)

其中,x 是输入,Φ(x)是标准正态分布的累积分布函数(CDF)。Φ(x)表示一个从标准正态分布中随机抽取的变量小于x的概率。

GeLU 的核心思想是,一个神经元的输出不仅取决于输入x的值,还取决于x在所有可能输入中的“统计排位”。Φ(x)可以被看作一个概率性的门控

  • • 当输入x非常大时,Φ(x)接近1,所以GELU(x) ≈ x,表现得像 ReLU
  • • 当输入x是非常小的负数时,Φ(x)接近0,所以GELU(x) ≈ 0,也表现得像 ReLU
  • • 但在0附近的关键区域,Φ(x)的值是平滑变化的。这意味着GeLU不像ReLU那样在0点有一个突兀的转折,而是提供了一个平滑的过渡 。

如果说ReLU是一个非开即关的“开关”,那么GeLU更像一个“智能调光器”。它不是简单地切断负向信号,而是根据信号的强度(其在统计分布中的位置)来决定将其“调暗”多少。对于那些只是稍微为负的输入,它仍然允许一小部分信号通过,而不是完全扼杀。

注意力机制

1、记忆的瓶颈:长距离依赖问题

Transformer架构出现之前,处理序列数据(如文本)的主流模型是循环神经网络(RNN)及其变体(如LSTMGRU)。这些模型像人阅读一样,按顺序逐词处理输入。信息通过一个隐藏状态的向量在时间步之间传递,理论上这个向量应该能记住前面所有的内容。

然而,在实践中,RNN 面临着严重的 长距离依赖(Long-Range Dependencies)问题。当句子很长时,模型很难将句末的词与句首的词联系起来。信息在长距离传递过程中会逐渐衰减或失真,就像一个传话游戏,信息传到最后已经面目全非。模型会过度关注最近的输入,而“忘记”了遥远的上下文。

2、注意力机制:Q, K, V

注意力机制(Attention Mechanism)革命性地解决了长距离依赖问题。它的核心思想是,在为当前词生成下一个表示时,不再依赖于一个逐步传递的、固化的“记忆”,而是为输入序列中的每一个词动态地计算一个“重要性分数”,然后根据这个分数对所有词的信息进行加权求和。

我在整理资料的过程中发现关于 Q, K, V 及其动画效果解释的很多,有兴趣的同学可以自行搜索。

这个过程可以通过一个生动的类比来理解:在图书馆中查找资料

  • • 查询 (Query, Q):这是你向图书管理员提出的具体问题。在自注意力(Self-Attention)中,每个词都会生成一个Query向量,代表着它自己:“为了更好地理解我,我需要寻找哪方面的信息?” 例如,在处理“cat”这个词时,它的Query可能在寻找与“动作”或“位置”相关的信息。
  • • 键 (Key, K):这是图书馆里每本书上贴的标签或关键词。输入序列中的每个词也都会生成一个Key向量,相当于它在向其他词“宣告”:“我这里有这些信息!” 例如,“sat”这个词的Key向量可能会突出它是一个“动作动词”的特性。
  • • 值 (Value, V):这是每本书的实际内容。每个词同样会生成一个 Value 向量,它携带了这个词最纯粹的、原始的语义信息。

整个注意力过程如下:

  1. 1. 匹配查询与键:你(Query)拿着你的问题,去比对图书馆里每一本书的标签(Key)。你的Query向量会与所有词的Key向量进行点积(Dot Product)运算。点积的结果是一个分数,衡量了你的问题与每本书标签的“匹配度”或“相关性” 。分数越高,说明这个词与当前正在处理的词越相关。
  2. 2. 计算注意力权重 (Softmax):图书管理员将所有书的匹配分数收集起来,然后用一个叫做Softmax的函数进行处理。Softmax函数会将这些原始分数转换成一组总和为1的概率值,即注意力权重(Attention Weights)。这个权重代表了你应该为每本书分配多少“注意力”。高匹配度的书会获得高权重,反之则低。
  3. 3. 加权求和:最后,你根据这些注意力权重,去“阅读”所有书的内容(Value)。你将每个词的Value向量乘以它对应的注意力权重,然后将所有加权后的Value向量相加。这样就得到了一个全新的向量,它融合了整个句子中所有与当前词相关的信息,其中最相关词的信息占比最重。

这个新生成的向量,就是当前词经过注意力机制处理后的新表示,它包含了丰富的上下文信息。

数学表示

这个过程可以用一个简洁的公式来概括:

大模型的发展历程_权重_54

  • • QK^T:计算Query和Key的点积,得到原始的注意力分数矩阵。
  • • √d_k:一个缩放因子,其中d_k是Key向量的维度。它的作用是防止点积结果过大,导致Softmax函数进入梯度极小的区域,从而稳定训练过程 49。
  • • softmax(...):将分数转换为总和为1的注意力权重。
  • • ...V:用计算出的权重对Value向量进行加权求和。
3、注意力的代价与效率革命

标准注意力机制(也称点积注意力)虽然强大,但有一个巨大的计算代价。为了计算一个词的注意力,它的Query需要和所有n个词的Key进行点积。由于句子中的每个词都要做同样的操作,所以总的计算量与序列长度n平方成正比,即复杂度为O(n^2) 。

当序列长度n很小时,这个问题不明显。但当模型需要处理长文档、书籍或高分辨率图像时,n可以达到数万甚至数百万,n^2的计算量和内存占用会变得无法承受,这极大地限制了Transformer 处理长上下文的能力。

为了解决这个问题,研究者们提出了各种 高效注意力机制(Efficient Attention Mechanisms)。这些方法的核心思想是,一个词的注意力通常不需要密集地分布在所有其他词上,而只需要关注少数几个关键的词

  • • 稀疏注意力 (Sparse Attention):这类方法不再计算Query与所有Key的交互,而是预先定义或动态学习一个稀疏的连接模式。例如,只计算与邻近词、或某些具有全局代表性的词的注意力。这就像图书管理员告诉你,你的问题只需要查阅“历史区”和“科学区”的书,而不用看小说区,从而大大减少了需要比对的书籍数量。
  • • 线性注意力 (Linear Attention):这类方法通过改变计算顺序来降低复杂度。标准注意力计算(QK^T)V,其瓶颈在于计算n x n大小的QK^T矩阵。线性注意力巧妙地利用矩阵乘法的结合律,将其重新排列为Q(K^T V) 。它首先计算K^T V(一个d_k x d_v的小矩阵,与序列长度n无关),然后再用Q去乘以这个结果。通过这种方式,它避免了显式地构建巨大的n x n注意力矩阵,从而将复杂度降低到线性级别O(n) 。

注意力机制的出现,标志着序列处理范式的根本性转变。RNN将序列视为一条线,信息只能沿着这条线单向流动。而注意力机制将序列视为一个完全连接的图(Graph),其中每个词(节点)都可以直接与其他任何词建立连接(边)。

这个机制的深刻之处在于,图的连接强度(边的权重,即注意力分数)不是固定的,而是动态的、由数据本身决定的。对于每一个输入,模型都会即时构建一个独特的、加权的“信息路由网络”,来决定信息应该如何在序列内部流动和汇聚。

而从标准注意力到高效注意力的演进,则揭示了AI领域一个反复出现的主题:当一种强大但昂贵的计算能力被发现后(如密集自注意力),紧随其后的必然是一波旨在使其计算上可行的研究浪潮。这些研究往往不仅仅是算法上的近似或优化,它们越来越多地将硬件的特性(如内存访问模式、算术强度)融入到算法设计中,实现算法与硬件的协同优化,从而推动整个领域向前发展。

从训练到文本生成

词语的艺术—解码策略

当一个大语言模型训练完成后,它就具备了预测下一个词元概率分布的能力。但是,如何从这个包含数万个词元及其对应概率的分布中,选择一个词元作为最终的输出呢?这个选择的过程被称为解码(Decoding)或采样(Sampling)。不同的解码策略会极大地影响生成文本的风格,决定了它是更具事实性、连贯性,还是更具创造性和多样性。

1、贪婪搜索 (Greedy Search)
  • • 核心思想:最简单、最直接的策略。在每一步,它总是选择当前概率最高的那个词元作为输出。
  • • 类比:一个目光短浅的棋手,每一步都选择眼前看起来最优的走法,而不考虑这步棋对整个棋局的长期影响。
  • • 优点:速度快,计算简单,并且是确定性的(同样的输入总会得到同样的输出)。
  • • 缺点:非常容易陷入重复的循环(例如,反复生成“猫坐在垫子上,然后猫坐在垫子上……”),或者生成非常平淡、缺乏新意的文本。因为它可能会因为一个眼前的高概率词,而错过一个虽然当前概率稍低、但能引向一个整体更优的句子序列的词。
  • • 适用场景:需要快速、确定性回答的场景,如事实性问答或提取关键词。
2、集束搜索 (Beam Search)
  • • 核心思想:对贪婪搜索的改进。它不再只保留一个最优选择,而是在每一步都保留k个最有可能的候选序列(k被称为“集束宽度”或Beam Width)。在下一步,它会基于这k个序列,分别扩展出所有可能的下一个词,然后从所有这些新的候选序列中,再次选出总概率最高的k个。
  • • 类比:一个更有远见的棋手。他不会只看眼前一步,而是会同时推演几种最有可能的后续走法,并选择其中能导向最佳中期局面的那条路。
  • • 优点:通过“向前看”几步,它通常能生成比贪婪搜索更连贯、更流畅、整体概率更高的文本序列。
  • • 缺点:计算成本更高。它仍然是确定性的,并且因为它倾向于选择高概率路径,所以有时会牺牲文本的多样性和创造性,仍然可能产生重复或乏味的内容。
  • • 适用场景:对文本质量和连贯性要求较高的任务,如机器翻译、文本摘要等。
3、随机性采样与温度 (Sampling with Temperature)
  • • 核心思想:不再总是选择概率最高的词,而是根据模型输出的概率分布,随机地进行抽样。一个词被选中的概率,正比于模型为其分配的概率。
  • • 温度 (Temperature):这是一个关键的超参数,用来控制采样的随机性程度,或者说模型的“创造力”。
  • • 低温 (T < 1):温度参数会“锐化”概率分布,使得高概率词的概率变得更高,低概率词的概率变得更低。当温度趋近于0时,采样就退化为贪婪搜索。这会使输出更保守、更具确定性。
  • • 高温 (T > 1):温度参数会“平滑”概率分布,提升了低概率词被选中的机会,使得所有词的概率更趋于平均。这会增加输出的随机性、多样性和“惊喜感”,但过高的温度也可能导致文本不连贯、甚至胡言乱语。
  • • 标准温度 (T = 1):即按照模型原始的概率分布进行采样。
  • 大模型的发展历程_权重_55

  • • 类比:温度就像一个“创意旋钮”。调低旋钮,模型会变得像一个严谨的记者,只说最稳妥的话。调高旋钮,模型会变得像一个诗人或幻想小说家,天马行空,不拘一格。
  • • 适用场景:需要创造力的任务,如写诗、编故事、头脑风暴等。
4、Top-k 采样
  • • 核心思想:为了在随机性和连贯性之间取得更好的平衡,Top-k采样首先将概率分布中排名最高的k个词元筛选出来,形成一个候选池。然后,模型只在这个小得多的候选池中进行随机采样。
  • • 优点:通过过滤掉那些概率极低的“垃圾”词元,它有效地避免了生成完全不相关的词语,同时通过在顶级候选中引入随机性,保持了文本的多样性。
  • • 缺点k值的选择是一个固定的、生硬的门槛。在某些上下文中,可能只有少数几个词是合理的,但一个固定的k(比如k=50)可能会引入不相关的词。而在另一些上下文中,可能有许多合理的选择,但一个过小的k会限制模型的创造力。
5、Top-p (核心) 采样 (Nucleus Sampling)
  • • 核心思想:一种更智能、更动态的采样方法。它不选择固定数量k的词,而是选择一个概率累积和大于或等于阈值p(例如p=0.9)的最小词元集合。具体来说,它将所有词元按概率从高到低排序,然后逐个将它们加入候选池,直到池中所有词元的概率之和达到p。最后,模型在这个动态生成的“核心”(Nucleus)候选池中进行采样。
  • • 优点:非常灵活和自适应。当模型对下一个词非常确定时(例如,在“天空是”之后,“蓝色的”概率可能高达95%),核心候选池会非常小(可能只有1个词),使得输出非常确定。当模型不确定、有多种合理选择时(例如,在故事的开头),核心候选池会自动扩大,允许更多的多样性。
  • • 适用场景:因其在连贯性和创造性之间的出色平衡,Top-p采样已成为当今许多生产级LLM的默认或首选解码策略。
6、解码策略对比

为了清晰地展示这些策略的特点,下表进行了总结:

 

总结

本本系统性地剖析了驱动大语言模型(LLM)从训练到推理全过程的核心数学概念。通过深入浅出的解释和生动的类比,揭示了这些看似抽象的数学工具是如何协同工作,共同构筑起现代人工智能的宏伟大厦。

  1. 1. 线性代数是基础语言:向量、矩阵和张量为机器提供了一种表示和组织世界信息的方式。矩阵乘法作为核心计算引擎,通过一系列线性变换,实现了信息在神经网络层间的流动与提炼。其深层意义在于,模型能够动态地将数据视为代码,即时生成处理信息所需的函数,这是其强大适应性的根源。
  2. 2. 概率论是核心逻辑:LLM 的本质是一个概率模型,其目标是通过链式法则,以自回归的方式预测序列的下一个元素。交叉熵损失函数源于信息论,它不仅衡量了预测的错误,其独特的数学形态还塑造了一个有利于学习的“损失地貌”,严厉惩罚“自信的错误”,从而为优化过程提供了清晰的指引。
  3. 3. 微积分是学习引擎:梯度下降算法,如同“蒙眼登山者”,为在庞大的参数空间中寻找最优解提供了基本方法。而反向传播算法,则通过链式法则高效地实现了“信誉分配”,精确计算出每个参数对最终误差的贡献,使得大规模深度学习成为可能。Adam等高级优化器则通过结合动量和自适应学习率,为每个参数定制学习策略,极大地提升了训练效率和稳定性。
  4. 4. 架构与策略是具体实现:从静态的Word2Vec到动态语境化的BERT词嵌入,反映了对语言理解的深化。非线性激活函数(如GeLU)的引入,赋予了网络拟合复杂模式的能力。革命性的注意力机制(Q, K, V)使模型摆脱了序列处理的束缚,能够动态聚焦于关键信息,尽管其二次方复杂度也催生了对稀疏和线性等高效变体的研究。最终,多样的解码策略(从贪婪搜索到核心采样)和温度参数,为在确定性、连贯性和创造性之间进行权衡提供了丰富的工具集。

最终的启示是,数学选择即是伦理选择。 解码策略等看似纯技术性的环节,对模型的幻觉、偏见放大和内容同质化等AI安全问题有着直接而深远的影响。这表明,构建一个安全、可靠且公平的AI系统,不仅需要在数据和模型层面进行努力,更需要在算法的每一个数学细节中,审慎地做出权衡与设计。对这些核心数学概念的深刻理解,不仅是技术从业者的必备素养,也是社会各界监督和引导AI技术健康发展的知识基础。

 

在过去几年里,大型语言模型(LLM)以其惊人的语言理解和生成能力,彻底改变了我们与技术互动的方式。从写代码、作诗到进行多轮对话,LLM 仿佛无所不能,给我们造成了一种它们 无所不知阿喀琉斯之踵 便暴露无遗。

“阿喀琉斯之踵”(Achilles' heel)是一个源自古希腊神话的比喻,指的是一个人或事物表面看似强大无敌,但却存在致命弱点,这个弱点一旦被击中,就会导致失败或灭亡。

首先是 知识截止(Knowledge Cutoff) 问题。LLM 的知识来源于其训练数据,而训练是一个极其昂贵且耗时的过程。因此,任何一个模型的知识都被冻结在了某个特定的时间点。它不知道最近发生的新闻,不了解最新的市场动态,更无法访问实时的信息。

其次是 模型幻觉(Hallucination)。LLM 的 本质是基于概率生成文本,它会尽力产出听起来最连贯、最 plausible 的内容,但这并不等同于事实。当模型被问及它知识范围之外或模糊不清的问题时,它可能会一本正经地胡说八道,编造出看似合理但完全错误的答案。这种幻觉从无意义的输出到与事实的矛盾,形式多样,极大地侵蚀了用户对模型的信任,是企业级应用落地的致命障碍。

最后,也是最关键的一点,是 私域知识的缺失(Lack of Domain-Specific & Private Data)。任何一家企业都有其独特的产品文档、内部知识库、客户数据和业务流程。这些私有的、领域特定的知识,通用的 LLM 从未学习过,自然也无法回答与之相关的问题。让模型重新训练或进行大规模微调来学习这些知识,高昂的成本往往会让大多数公司望而却步。

为了解决这些根本性问题,一种优雅而高效的架构应运而生——检索增强生成(Retrieval-Augmented Generation, RAG)。你可以把它想象成给 LLM 配备了一个可随时查阅的“外脑”或“随身小百科”。RAG 架构将 LLM 强大的推理能力与外部的、私有的知识库连接起来,让模型在回答问题前,先去“查找资料”,然后依据可靠的资料来组织答案。

这种模式代表了一种应用 AI 的范式转变:我们不再强求模型本身成为一个无所不知的“知识库”,而是将其定位为一个强大的“推理引擎”。模型的任务从“记忆事实”转变为“理解和处理实时提供的事实”。这种解耦使得 AI 应用更加可靠、可扩展且易于维护,是推动 LLM 从“玩具”走向“工具”的关键一步。

RAG 的核心原理

要理解 RAG 的工作原理,最贴切的比喻莫过于一场 开卷考试。

  • • 一个 标准的 LLM,就像一个参加 “闭卷考试” 的学生。他只能依赖自己脑中已经背诵的知识来回答问题。如果遇到没复习到的知识点,就只能凭感觉猜测,甚至编造答案。
  • • 一个 搭载了 RAG 的 LLM,则像一个参加 “开卷考试” 的学生。他不需要记住所有细节。当遇到问题时,他会先翻阅桌上的教科书和参考资料(外部知识库),找到最相关的章节和段落,然后基于这些准确的信息,整理出逻辑清晰、内容详实的答案。

这个 “开卷考试” 的过程,在技术上被分解为两个核心阶段:检索(Retrieval)和 增强生成(Augmented Generation) 。

  • • 检索(Retrieval):当系统收到用户的提问后,它不会立刻把问题丢给 LLM。相反,它首先将用户的问题作为一个查询指令,在外部知识库(如公司的产品文档、数据库、知识图谱等)中进行搜索,找出与问题最相关的信息片段。
  • • 增强生成(Augmented Generation):系统将上一步检索到的相关信息,连同用户的原始问题,一起打包成一个内容更丰富、上下文更明确的“增强提示词”(Augmented Prompt)。这个增强后的提示词被发送给 LLM,并明确指示 LLM:“请根据我提供的这些背景资料来回答这个问题”。LLM 此时的角色不再是凭空创作,而是在限定的、可靠的资料范围内进行归纳、总结和生成。

RAG 的巧妙之处在于,它不仅提升了答案的准确性和时效性,还天然地解决了 LLM 的“黑箱”问题,增强了系统的透明度和可信度。因为 RAG 的回答是基于具体的、被检索出的文本,系统可以轻易地将这些“参考文献”展示给用户,比如通过脚注或链接的形式。用户可以追根溯源,自行验证信息的准确性。这种“有据可查”的能力,是获得用户信任、实现业务落地的基本前提

拆解 RAG 系统

一个简单的 RAG 概念看似清晰,但要构建一个真正稳定、高效、精准的生产级 RAG 系统,则如同组装一台精密的机器,需要对每个“零件”进行精心设计和调优。一个高质量的 RAG 系统并非单一模型,而是一个复杂的多阶段处理流水线,每个环节都充满了工程上的权衡与挑战。接下来,我们将深入其内部,一探究竟。

数据准备与分块 (Data Preparation & Chunking):知识的“切、磋、琢、磨”

知识库是 RAG 的基石,但我们不能直接将一篇长达数万字的 PDF 文档整个扔给模型。原因有三:首先,Embedding 模型和 LLM 都有上下文窗口长度的限制;其次,将整篇文档作为检索单元,会大大稀释信息的密度,导致检索不够精准;最后,从计算效率和成本考虑,处理更小的文本单元也更为经济。

因此,在将知识“入库”之前,我们必须先对其进行分块(Chunking)。目标是把长文档切分成一个个语义完整、大小适中的信息片段(Chunk) 。选择合适的分块策略至关重要。

  • • 固定长度分块(Fixed-Size Chunking):这是最简单粗暴的方法,按固定字符数(例如 500 个字符)切分文本。优点是实现简单、速度快,但缺点是极易在句子或段落中间“一刀切断”,破坏了原文的语义完整性,导致上下文丢失。
  • • 递归字符分块(Recursive Character Splitting):这是一种更智能的策略。它会尝试按照一系列预设的分隔符(如 \n\n 段落、\n 换行、. 句号等)进行分层切分,优先保证段落和句子的完整性。这是目前业界最常用且效果不错的默认选项。
  • • 语义分块(Semantic Chunking):这是最先进也最复杂的策略。它不再依赖固定的规则或分隔符,而是利用 Embedding 模型来理解文本的语义。它会将语义上相近、讨论同一主题的连续句子聚合在一起,形成一个 Chunk。这种方式能最大程度地保留上下文的连贯性,但计算成本也最高。

此外,块重叠(Chunk Overlap)是一个重要的辅助参数。通过让相邻的两个 Chunk 之间有部分内容重叠(例如重叠 50 个字符),可以有效防止在切分边界丢失关键信息,保证上下文的连续性。

表 1: 主流分块 (Chunking) 策略对比

向量化 (Vectorization):将知识翻译成机器的语言

分块之后,我们需要将这些文本 Chunk 转换成机器能够理解和比较的格式。这个过程就是向量化(Vectorization),通过一个称为 Embedding 模型的神经网络来完成。

大模型的发展历程_神经网络_56

Embedding 模型可以将任意一段文本映射到一个高维的数学向量(Vector)中。这个向量就像是文本在“语义空间”中的坐标,其神奇之处在于:语义上相似的文本,其对应的向量在空间中的距离也更近。这就为我们后续的“按义搜索”而非“按词搜索”奠定了基础。

大模型的发展历程_神经网络_57

选择一个合适的 Embedding 模型对 RAG 系统的最终效果影响巨大。主要考虑以下几点:

  • • 性能/准确度:模型的检索性能是首要指标。Hugging Face 的 MTEB (Massive Text Embedding Benchmark) 排行榜是业界公认的权威参考,它全面评估了各大模型在不同任务上的表现 。
  • • 延迟与成本:商业 API 模型(如 OpenAI 的 text-embedding-ada-002、Cohere 的 embed-v3)使用方便,但每次调用都涉及网络延迟和费用。而开源模型(如 E5GTEBGE 系列)可以私有化部署,在本地 GPU 上运行时速度更快、成本更低,但需要投入一定的运维精力。
  • • 向量维度Embedding 向量的维度(如 768、1024、1536)也需要权衡。更高的维度通常能编码更丰富的信息,但也会带来更大的存储开销和计算负担。

向量检索 (Vector Retrieval):在知识的“瀚海”中“捞针”

当所有知识 Chunk向量数据库(Vector Database)的用武之地。它就像我们 “开卷考试” 中那座分门别类、索引清晰的图书馆。

大模型的发展历程_神经网络_58

当用户提问时,RAG 系统会将问题同样用 Embedding 模型转换成一个查询向量(Query Vector),然后在向量数据库中执行相似性搜索,快速找出与查询向量“距离”最近的 Top-K 个文档向量,从而找到最相关的知识 Chunk 。市面上有多种向量数据库可供选择,选型时需考虑:

  • • 可扩展性(Scalability):系统是否需要支持数十亿甚至更多的向量?对于大规模企业应用,需要选择像 Milvus、Pinecone 这样专为海量数据设计的数据库。
  • • 易用性与开发体验:对于快速原型开发或中小型项目,Chroma 这样 API 简洁、易于上手的数据库可能更合适。
  • • 部署模式:是选择 Pinecone 这样的全托管云服务(SaaS),省去运维烦恼,还是选择 Milvus、Weaviate、Chroma 这样的开源方案,进行私有化部署以获得更大的灵活性和数据控制权?。
  • • 高级功能:是否支持元数据过滤(例如,只在“2023 年的财报”中搜索)或混合搜索Hybrid Search,即结合传统的关键词搜索和向量语义搜索)?这些功能可以显著提升复杂查询的准确率。

表 2: 主流向量数据库选型参考

召回与重排 (Recall & Reranking):从“相关”到“最相关”的精炼

通过向量检索,我们从海量知识库中快速“召回”(Recall)了,比如说,50 个可能相关的文档片段。但这一步的检索算法(通常是基于 Bi-Encoder 的近似最近邻搜索)为了速度,在精度上有所妥协。这 50 个片段的相关性良莠不齐,甚至可能出现“大海捞针,针在中间”(Lost in the Middle)的问题——即最重要的信息被淹没在一堆次要信息中,而 LLM 在处理长上下文时,往往会忽略中间部分的内容 。

为了解决这个问题,生产级的 RAG 系统通常会引入一个关键的优化步骤:重排序(Reranking) 。重排序是在召回之后、生成之前的一个精炼阶段。它使用一个更强大但计算更密集的重排序模型(Reranker),通常是跨编码器(Cross-Encoder),来对初步召回的 50 个 Chunk 进行二次打分。与 Bi-Encoder 分别计算问题和文档的向量不同,Cross-Encoder 会将问题和每个候选 Chunk 配对后一起输入模型,从而能更精细地捕捉二者之间的相关性。这个过程就像一个初选和复试:

  • • 初选(召回):用速度快的 Bi-Encoder 从 100 万份简历中快速筛选出 50 份。
  • • 复试(重排):用更资深的 Cross-Encoder 逐一面试这 50 位候选人,最终选出最优秀的 3-5 位。

通过重排序,我们能确保喂给 LLM 的是“优中选优”的、最核心的知识,这不仅能显著提升答案的质量,还能在不牺牲召回广度的前提下,有效缩减最终输入 LLM 的上下文长度,节省成本。

完整流程示例:一次提问的“奇幻漂流”

现在,让我们把所有零件组装起来,跟随一个具体的提问,走完一次完整的 RAG 旅程。

大模型的发展历程_权重_59

场景:一位产品经理向公司内部的 AI 助手提问:“我们最新发布的‘星尘’AI 芯片相比上一代‘光子’芯片,在能效和推理速度上具体有哪些提升?请给出数据。”

  1. 1. 提问(Query):用户在聊天框输入问题。
  2. 2. 向量化(Embedding):系统调用 Embedding 模型,将这个问题转换成一个 768 维的查询向量。
  3. 3. 召回(Recall):系统拿着这个查询向量,到存储着公司内部文档(产品白皮书、性能测试报告、发布会 PPT 等)的 Milvus 向量数据库中进行相似性搜索,召回 Top 50 的相关文本 Chunk。
  4. 4. 重排(Reranking):Reranker 模型(一个 Cross-Encoder)对这 50 个 Chunk 进行精细打分,发现其中 3 个 Chunk 的相关性得分最高:一块来自《“星尘”芯片性能基准测试报告.pdf》的表格数据,一块来自《Q3 产品发布会.pptx》中对比两代芯片的关键幻灯片文字,还有一块来自《“星尘”芯片技术规格书.docx》的能效章节。
  5. 5. 提示词构建(Prompt Augmentation):系统构造一个增强提示词,结构如下:
“请基于以下上下文信息,回答用户的问题。请确保答案只依赖于提供的上下文,并引用数据来源。上下文 1 (源自:性能基准测试报告.pdf):‘...在 ResNet-50 模型上,星尘芯片的推理速度达到 2500 FPS,比光子芯片的 1800 FPS 提升了 38%。’上下文 2 (源自:技术规格书.docx):‘...星尘芯片采用 5nm 工艺,典型功耗为 15W,而上一代光子芯片为 25W,能效比提升了 67%。’上下文 3 (源自:Q3 产品发布会.pptx):‘...总结来说,星尘芯片实现了速度与效率的双重突破...’用户问题:我们最新发布的‘星尘’AI 芯片相比上一代‘光子’芯片,在能效和推理速度上具体有哪些提升?请给出数据。”
  1. 6. 生成(Generation):LLM(如 Deepseek R1/Qwen)接收到这个结构清晰、信息充分的提示词,轻松地从中提取关键数据并组织成答案。
  2. 7. 回答(Answer):AI 助手最终输出一个精准、有据可查的回答:
  3.  

“根据公司的内部文档,‘星尘’AI 芯片相比‘光子’芯片在能效和推理速度上有显著提升:
1、推理速度:在 ResNet-50 模型上,‘星尘’芯片的推理速度为 2500 FPS,相比‘光子’芯片的 1800 FPS 提升了 38%(来源:性能基准测试报告.pdf)。
2、能效:‘星尘’芯片的典型功耗为 15W,相比‘光子’芯片的 25W,能效比提升了约 67%(来源:技术规格书.docx)。”

  1.  

至此,一次高质量的 RAG 问答流程圆满完成。

 

RAG 的“进化”与“变体”:不止于简单的问答

 

基础的 RAG 框架已经非常强大,但它仅仅是一个起点。整个领域正在飞速发展,涌现出许多更智能、更强大的 RAG 变体。了解这些前沿方向,有助于我们思考 AI 应用的未来形态。这种演进轨迹,也正反映了 AI 系统从固定的、基于规则的流水线,向着动态的、具备推理能力的、能够使用多种工具的智能体方向发展的宏大趋势。

大模型的发展历程_神经网络_60


 

  • • 自纠正 RAG (Self-Correcting RAG):这类 RAG 引入了“反思”和“修正”机制。例如,CRAG (Corrective-RAG) 在检索后增加了一个评估器(Evaluator)来判断检索到的文档质量。如果文档不相关,它会自动触发 Web 搜索来补充信息,或者改写查询词重新检索。而 Self-RAG 更进一步,它训练 LLM 自身学会生成特殊的“反思令牌”,让模型自己判断是否需要检索、检索回来的内容是否有用、自己生成的答案是否基于了证据,从而实现全流程的自我优化和批判。
  • • 图 RAG (Graph-RAG):当知识本身具有很强的关联性时(比如组织架构、产品依赖关系、知识图谱),传统的文本块检索就显得力不从心。Graph-RAG 将知识库构建成一个知识图谱,检索时不再是返回孤立的文本块,而是返回相互连接的实体及其关系。这为 LLM 提供了更深层次的结构化上下文,使其能够进行更复杂的推理。
  • • 智能体 RAG (Agentic RAG):这是 RAG 演进中最具颠覆性的一步。它不再是一个固定的“检索-生成”流水线,而是由一个 LLM 驱动的 智能体(Agent) 来主导整个过程。这个智能体具备规划和使用工具的能力。当收到一个复杂问题时,它会先进行“思考”(Thought),然后规划出解决问题的步骤(Plan),并决定调用哪个“工具”(Tool)来执行。这些工具可能包括:

Agentic RAG 将 RAG 从一个信息检索框架,提升为了一个动态的、多才多艺的问题解决框架。RAG 本身,也从整个系统,降级成了智能体可以选用的一种工具。

  • • 进行向量检索(标准的 RAG 步骤)
  • • 执行 SQL 查询从结构化数据库中获取数据
  • • 调用外部 API 获取实时信息(如天气、股价)
  • • 使用计算器进行数学运算
  • • 缓存增强生成 (Cache-Augmented Generation, CAG):随着 LLM 的上下文窗口越来越大(动辄百万 Token),一种 RAG 的替代方案 CAG 开始受到关注。对于那些相对静态、大小可控的知识库,CAG 会在系统启动时就将所有知识预加载到模型的 KV 缓存中。这样,在响应用户查询时,就完全省去了实时检索的延迟,响应速度极快。但它的缺点是灵活性较差,不适用于频繁更新的动态知识库。
  •  

结语

 

 

 


回顾全文,我们可以清晰地看到,RAG 并非一个高深莫测的算法,而是一种极其务实且强大的工程思想。它直面了通用大模型在落地应用时最核心的三个痛点:知识局限、事实幻觉和私域无知

通过将 LLM 的通用推理能力与企业外部或内部的特定知识源相结合,RAG 成功地为模型装上了“事实的锚”,使其回答既能保持语言的流畅自然,又能做到内容的准确可靠。

对于任何希望利用大模型技术创造价值的企业而言,RAG 都是那把不可或缺的“金钥匙”。它是一座至关重要的桥梁,连接了公域的通用语言智能与私域的、构成企业核心竞争力的专有数据。掌握 RAG,不仅仅是学会一项技术,更是理解并采纳一种全新的、可持续的 AI 应用构建范式。对于每一位致力于用 AI 打造可靠、可信、可扩展产品的产品经理、开发者和架构师来说,这条路,才刚刚开始。

 

系列文章

 

大模型发展历程:技术演进与趋势洞察

LLM 系列(二):基础概念篇

LLM系列(三):核心技术之架构模式

LLM 系列(四):神奇的魔法数 27

LLM 系列(五):模型训练篇

LLM 系列(六):模型推理篇

LLM 系列(七):数学概念篇