跳转到内容

大模型、Transformer 与多模态

大模型看起来像“输入一句话,输出一段话”,但背后仍然是一条可以拆解的工程链路:文本先被切成 token,经过多层神经网络计算,得到下一个 token 的概率分布,再按解码策略逐步生成。理解这条链路,才能判断上下文长度、延迟、成本和错误来自哪里。

人工智能不是只有一个学派:

  • 符号主义把知识写成规则和逻辑,擅长可解释、边界明确的问题,但难以覆盖开放世界。
  • 连接主义用大量参数和数据进行学习,神经网络属于这一支。
  • 统计学习从数据中寻找模式,强调泛化而不是手写规则。

早期专家系统依赖人工整理规则,维护成本高且难以扩展。机器学习和深度学习把特征与模式的学习交给数据与优化过程。Transformer 在 2017 年提出后,凭借并行训练和长距离依赖建模能力,成为大语言模型的核心结构。

大模型时代的关键变化不只是模型更大,而是形成了“大规模预训练 + 指令微调 + 偏好对齐”的通用范式:模型先学习语言与世界中的统计结构,再学习按指令完成任务,最后通过人类偏好或可验证反馈调整行为。

2.1 从线性模型到多层网络

跳转到“2.1 从线性模型到多层网络”

一个最简单的神经元接收输入向量 x,乘以权重 W,加上偏置 b,再经过非线性激活函数:

y = activation(Wx + b)

只有线性层时,多层叠加仍然等价于一次线性变换,无法表达复杂关系。ReLU、GELU、Sigmoid 等非线性函数让网络能拟合分段、弯曲的决策边界。

多个神经元组成一层,多层堆叠形成深度网络。每层把输入表示变换到新的特征空间,浅层可能捕捉局部模式,深层组合成更抽象的结构。

模型输出与目标之间用一个数值衡量差距,这就是损失。常见损失:

  • 回归使用均方误差。
  • 分类使用交叉熵。
  • 语言模型预测下一个 token,也用交叉熵:正确 token 的概率越高,损失越小。

训练的目标不是让某一条样本输出“看起来像”,而是通过优化参数,让整个训练分布上的平均损失下降。

2.3 反向传播与梯度下降

跳转到“2.3 反向传播与梯度下降”
前向计算预测
→ 计算损失
→ 反向传播求每个参数的梯度
→ 沿梯度反方向更新参数
→ 重复

梯度表示损失对参数变化的敏感程度。学习率太大可能震荡或发散,太小则训练很慢。实际训练会使用 Adam/AdamW 等优化器、学习率调度、权重衰减、梯度裁剪和混合精度。

  • 训练集用于更新参数。
  • 验证集用于选择超参数和早停。
  • 测试集用于最终评估,不能反复用来调模型。

模型在训练集表现很好、在新数据上变差叫过拟合。增加数据、正则化、Dropout、数据增强、降低模型复杂度或早停都可能缓解。反过来,模型连训练集都学不好叫欠拟合,需要更强表达或更好特征。

模型只能从见过的数据分布中学习规律。真实世界输入发生偏移时,性能可能下降:

  • 新领域词汇。
  • 新的用户行为。
  • 设备、地区或语言变化。
  • 训练数据中的标签偏差。

离线指标好,不代表线上有效。应建立与真实任务接近的评测集,并持续监控输入分布和结果质量。

模型不直接处理字符。分词器把文本切成 token,再把 token 映射成整数 ID。Token 可能是一个词、子词、标点或部分汉字。

"transformer 模型" → ["trans", "former", " 模型"] → […]

不同模型的 tokenizer 和词表不同。token 数不等于字符数或单词数。中文、代码、空格、罕见符号的 token 成本可能不同,上下文上限也按 token 计算。

每个 token ID 通过 embedding 表变成向量。向量表示可学习的语义特征。位置信息也需要加入,因为纯注意力本身不知道顺序;现代模型常用旋转位置编码(RoPE)或可学习位置向量。

每个 token 产生 Query、Key、Value 三个向量:

Attention(Q, K, V) = softmax(QKᵀ / √dₖ) V

可以这样理解:

  • Query 表示“我在找什么信息”。
  • Key 表示“我能提供什么特征”。
  • Query 与 Key 的点积衡量相关性。
  • softmax 把相关性变成权重。
  • 用权重加权 Value,得到当前 token 的新表示。

除 √dₖ 是为了避免维度增大后点积过大、softmax 过于尖锐。因果语言模型使用掩码,让当前位置只能看到自己和之前的 token,不能偷看未来。

一组注意力只能学习一种关系。多头注意力用多组 Q/K/V 并行计算,再拼接投影,让模型同时关注语法、指代、位置和语义等不同模式。

每个 Transformer block 通常包含:

输入
→ 多头注意力
→ 残差连接 + LayerNorm
→ 前馈网络(FFN)
→ 残差连接 + LayerNorm

FFN 对每个位置独立做非线性变换,参数占比往往很大。残差连接帮助梯度和信息穿过深层网络,归一化稳定训练。

3.6 编码器、解码器与变体

跳转到“3.6 编码器、解码器与变体”
  • Encoder 同时看到整段输入,适合理解、分类和表示。
  • Decoder 使用因果掩码逐步生成,适合语言模型。
  • Encoder-Decoder 适合翻译、摘要等输入到输出的任务。

现代生成式大模型常采用仅解码器结构。不同结构不是“哪个更先进”,而是任务和训练目标不同。

标准自注意力的计算随序列长度近似二次增长。上下文翻倍,注意力计算和显存压力可能显著增加。长上下文优化包括稀疏注意力、分块、线性近似、KV 压缩和更好的缓存管理,但不能完全消除信息选择问题。

语言模型的基本任务是预测下一个 token。给定前文,模型输出词表中每个 token 的概率。训练时最小化正确 token 的负对数似然:

loss = -log P(正确 token | 前文)

海量文本让模型学习语言、代码、常识和部分推理模式。预训练数据质量、去重、配比、版权和隐私会直接影响能力与风险。

在一定范围内,增加参数量、数据量和计算量会改善损失,但收益并非无限。数据不够时,模型参数再多也会欠训练;数据质量差会放大噪声。实际训练要在模型大小、训练 token、推理成本和延迟之间取舍。

预训练模型会续写文本,但不一定按用户指令行动。监督微调(SFT)用“指令—理想回答”样本训练模型,让它学会任务格式、拒绝边界和多轮对话。

人类对“哪个回答更好”的判断可以用于偏好优化:

  • RLHF 训练奖励模型,再用强化学习优化策略。
  • DPO 直接用偏好对优化模型,流程更简单。
  • 可验证任务可以用规则、单元测试或工具结果作为奖励。

对齐不是一次性完成,也不能保证模型永远遵守规则。数据覆盖、评估、安全策略和运行时约束仍然必要。

全参数训练需要大量显存。LoRA 等方法冻结原模型,只训练低秩适配矩阵;Adapter、前缀微调等也属于参数高效方法。它们降低训练和存储成本,但效果取决于数据质量、任务距离和超参数。

模型每步输出词表上的 logits,经 softmax 变成概率。生成时不会直接取“最正确的句子”,而是一次选一个 token,再把结果接回输入继续。

常见解码策略:

  • 贪心:每步取概率最高的 token,稳定但可能重复或陷入局部。
  • 温度采样:温度高更随机,温度低更集中。
  • Top-k:只从概率最高的 k 个 token 中采样。
  • Top-p/核采样:从累计概率达到 p 的最小集合中采样。
  • Beam Search:保留多条候选路径,常用于翻译等确定性任务。

温度、top-k 和 top-p 影响风格与稳定性,但不保证事实正确。结构化任务应使用 schema/约束解码或后验证。

自回归生成时,前文的 Key/Value 可以缓存,避免每一步重算整个上下文。KV cache 大幅降低计算,但显存随上下文长度、层数、头数和批大小增长。长上下文和高并发会迅速吃满显存。

上下文窗口是模型一次能看到的 token 总预算,包括系统提示、用户输入、历史、检索内容、工具结果和输出。窗口越大不等于所有内容都有用,注意力会分散、延迟和成本会上升。

模型生成的是概率上合理的文本,不是数据库查询。幻觉可能来自:

  • 训练数据缺失或冲突。
  • 问题超出知识边界。
  • 提示要求强行回答。
  • 检索证据不足或被忽略。
  • 解码随机性与长链条错误累积。

降低幻觉要靠检索、引用、工具验证、拒答策略、结构化输出和评测,而不是只在提示里写“不要胡说”。

Embedding 把文本、图片或其他对象映射为向量,使语义相近的对象在向量空间中距离较近。常见用途:

  • 语义搜索。
  • 聚类和去重。
  • 推荐与相似内容。
  • RAG 检索。

距离度量常见余弦相似度、内积和欧氏距离。模型训练目标不同,向量是否可直接比较取决于模型和归一化方式。

向量索引用于近似最近邻搜索:

  • HNSW 构建多层图,查询快,内存占用高。
  • IVF 先聚类再搜索部分簇,可调召回与速度。
  • 量化压缩向量,降低内存但损失精度。

向量检索不是万能语义搜索。编号、专有名词和精确匹配往往仍需关键词检索,实际系统常用混合检索。

一种常见做法是用视觉编码器提取图像特征,再通过投影层映射到语言模型可处理的表示空间。模型可以回答图像问题、描述内容或结合图片与文本推理。

视觉输入有分辨率和 token 成本。高分辨率图片可能被切成多个 patch,细节越多,计算和上下文消耗越大。

扩散模型从噪声开始,通过多步去噪生成图像。文本条件通过编码器注入,引导生成方向。关键概念包括:

  • 训练时向图像加噪,模型学习预测噪声。
  • 推理时从随机噪声逐步去噪。
  • 采样步数影响质量与速度。
  • 条件强度影响文本约束程度。
  • 种子影响可复现性,但模型和参数变化也会改变结果。

图像生成还要处理版权、肖像、深伪、安全过滤和内容溯源。

视频可以看作时间上连续的图像序列。模型需要保持帧间一致、物体身份、运动和镜头逻辑。计算量、时序建模和长视频稳定性都更难,常见做法包括时空注意力、潜空间压缩和分段生成。

  • ASR 把音频转成文本,关注采样率、噪声、口音、标点和时间戳。
  • TTS 把文本转成语音,关注自然度、韵律、音色和延迟。
  • 流式语音需要处理分段、端点检测、打断和首包延迟。
  • 声音克隆涉及身份与滥用风险,必须有授权和安全限制。

原生多模态模型在同一模型中联合处理文本、图像、音频等输入,而不是简单串联多个单模态模型。它能共享表示,但训练数据、对齐和评测更复杂。工程上仍需按输入输出、延迟和成本拆分链路。

能力 擅长 不能替代
文本理解与生成 摘要、改写、分类、对话 权威事实来源
代码 生成、解释、重构、测试建议 编译、运行和验证
推理 多步分析、计划、约束求解辅助 形式证明和真实世界状态
工具调用 查询、计算、操作外部系统 权限、幂等和安全边界
视觉 图像描述、OCR、视觉问答 高精度测量与专业判断
语音 转写、合成、对话 噪声环境下的绝对可靠
生成媒体 图像、视频、音频创作 版权、真实性和伦理审查

选模型不要只看榜单。根据任务拆解:

  1. 需要文本、代码、图像还是音频?
  2. 质量、延迟、上下文、隐私和成本哪个优先?
  3. 是否允许外部 API,数据能否离开本地?
  4. 是否需要结构化输出和工具调用?
  5. 如何用真实任务评测,而不是只看演示?
  • 模型知道全部训练后发生的事:知识受训练数据时间限制,且可能记错。
  • 上下文越大越好:成本和干扰增加,关键是选出有用信息。
  • 温度越低越正确:低温度更稳定,但不修复知识缺失。
  • 模型输出是数据库记录:必须验证、引用或通过工具查询。
  • 多模态等于真正理解:模型可能依赖文本捷径和表面模式。
  • 参数量越大越适合:延迟、成本、部署环境和任务匹配同样重要。
  • 是否理解 tokenizer、上下文窗口和 token 成本。
  • 是否能解释注意力中的 Q/K/V 和因果掩码。
  • 是否区分预训练、指令微调、偏好对齐和参数高效微调。
  • 是否知道温度、top-k、top-p 对输出的影响。
  • 是否理解 KV cache 与长上下文成本。
  • 是否能用检索、工具和评测降低幻觉,而不是只改提示。
  • 是否根据任务选择文本、视觉、语音或生成模型。
  • 是否检查数据、版权、隐私和多模态内容安全。