笃行
首页
个人 & 心法
互联网/硬件后台
游戏基础架构
UE 引擎
游戏业务
AI / 大模型
数据结构与算法
机器学习数学
通用基础
GitHub
首页
个人 & 心法
互联网/硬件后台
游戏基础架构
UE 引擎
游戏业务
AI / 大模型
数据结构与算法
机器学习数学
通用基础
GitHub
  • AI / 大模型

    • AI / 大模型
    • 大模型核心原理
    • 推理与微调优化
    • RAG 检索增强生成
    • RAG 上下文剪枝实战(Listwise Pruning 复现)
    • RAG 数据清理
    • RAG 存量数据清理
    • Agent 开发
    • Agent 运行时深水区
    • Multi-Agent 协作
    • Agent 评测与线上运营
    • AI 与游戏研发周期
    • 互动影游与长视频创作 Agent
    • LLM 应用安全
    • LLM 评测方法论
    • LLM 成本与延迟
    • 微调策略
    • AI 研发工程化

大模型核心原理

Transformer / Self-Attention · 位置编码 · Tokenization · Scaling Law · 解码采样 · 涌现与对齐

🧠 一句话记忆锚点

大模型 = Self-Attention(任意位置直连 + 全并行,代价是 O(n²))+ 位置编码(注意力本身不知词序)+ Scale(Chinchilla 参数/数据等比) + 对齐(SFT→RLHF/DPO)。一切生成都归结为"预测下一个 token",输出风格由解码采样决定。

名词速查

首次阅读可跳过本表,直接看「场景问题」,遇到生词再回查。

本篇是模型本体这一组名词的归属页——下面这些词的完整解释(后台类比 + 系统职责 + 类比失效边界)只在这里展开,其他篇提到它们时只给一句话并链回本表。反过来,本篇正文里出现的推理侧、检索侧名词,其完整解释在各自归属页,本表末尾给出跳转。

名词后台类比在系统里干什么类比失效边界
TokenUTF-8 的一个码点 / protobuf 的一个 field——协议里的最小编码单元模型的输入输出全是 token id;上下文长度、计费、限流都按它计数码点边界与字符一一对应,token 边界不按字/词切:一个汉字常占 1~2 token,一个英文单词可能被拆成几个 subword。别用 len(str) 估 token 数,得实际过一遍 tokenizer
Tokenization / BPE / BBPE字典压缩编码——像 gzip 先建词典再映射成定长 id把文本按"高频子串优先"切成词表内的 subword 再查 id,在词表大小与 OOV 之间取平衡;BBPE 在字节级切分,天然无 OOVgzip 的目标是无损还原,BPE 的目标是"高频子串成词"——它会把罕见词、专业术语切得很碎,同一概念的不同写法可能切成完全不同的 id 序列。且词表训完不能增量加词,加词等于换 embedding 层
词表(Vocabulary)静态枚举表 / 码表,id ↔ 字符串一一映射决定 embedding 矩阵的行数与输出层 softmax 的维度业务枚举随时能加值;词表加一个词要同时动 embedding 层和输出层的形状,等于换一个模型,没法热更新
RNN / LSTM串行处理的流式管道——第 t 条必须等第 t-1 条算完Transformer 之前的序列模型:靠一个隐状态一路往下传递上下文。本篇只用它做对照,说明为什么 2017 年后全换成了 Transformer流式管道慢是因为单条处理耗时,加机器分片就能并行;RNN 的串行是算法内在的——第 t 步依赖第 t-1 步的隐状态,加多少卡都无法并行化训练。且长程信息靠隐状态逐步传递会梯度消失,隔几十个 token 就丢了
Self-Attention服务发现里拉全量节点列表、逐个打分再加权聚合(all-to-all 广播 + 加权归并)让序列里任意两个位置直接建连(路径长度 O(1) 而非 RNN 的 O(n)),且整段可一次性并行计算服务发现的权重是静态配置读出来的;attention 权重是每次前向按内容现算的。且 all-to-all 的代价是 O(n²)——序列翻倍,算力翻四倍,这是后面所有长上下文优化的根源
Q / K / V一次带权的 join:Q 是查询条件、K 是索引列、V 是要取的值列Q·Kᵀ 算相似度当权重,softmax 归一化后对 V 加权求和,得到融合了上下文的新表示SQL join 是命中/不命中的硬匹配,不命中就没这行;attention 对所有行都给一个 softmax 软权重,没有"不命中"这回事——不相关的 token 也会带着小权重掺进结果
多头注意力(Multi-Head)同一份数据建多个二级索引,各按不同维度排序在多个低维子空间里并行捕捉不同关系(语法依赖、指代、位置远近),拼接后再线性融合二级索引是人按业务显式设计的;哪个头学到什么无人指定也无法保证,实测有大量冗余头可以剪掉而几乎不掉点
因果 mask(Causal Mask)只读快照隔离——第 t 步只能看见 t 时刻之前已提交的数据训练时屏蔽未来位置,保证"预测下一个 token"的目标与推理时逐 token 生成一致隔离级别是运行时可切换的参数;因果 mask 写死在架构里,Decoder-only 模型没有"临时看一下未来"的开关——这也是它做不了 BERT 那种双向理解任务的原因
位置编码 / RoPE / ALiBi消息序列号(Kafka offset / TCP seq)——没有它,乱序到达就无法还原顺序attention 本身对位置无感(排列不变,亦作 置换等变:把输入打乱顺序,输出集合原样不变——它眼里输入是个袋子不是队列),必须显式注入位置信息。RoPE 用旋转注入相对位置、ALiBi 用线性衰减偏置,两者都便于长度外推seq 号是精确整数,越界了只是溢出报错;位置编码是连续信号,推理长度远超训练长度时不报错、而是平滑退化成语义漂移和胡言乱语——这种失败没有明确的边界告警
Next-Token Predictionappend-only log 的唯一写接口——所有操作都被编译成同一个 op预训练与推理共用同一个目标:给定前缀算下一个 token 的分布。分类、翻译、对话、few-shot 全部由它承载log 里每条记录是确定的;这里每一步是从概率分布采样——同样的输入两次,输出可以不同(除非温度为 0 且实现完全确定)
Scaling Law / Chinchilla容量规划曲线——按 QPS 预估机器数的那条经验拟合线给定算力预算,指导参数量与训练 token 数怎么配比(Chinchilla:两者大致等比放大,约 20 token/参数)容量曲线可以线性外推;Scaling Law 是幂律,且在高质量数据枯竭、语料重复时会拐弯——外推到远端的预测不可信,只能当区间内的经验规律
temperature / top-k / top-p灰度放量的采样比例开关——决定从候选集里放多宽temperature 缩放 logits 改变分布陡峭度;top-k 截断到概率最高的 k 个;top-p(nucleus)截断到累积概率达 p 的最小集合灰度比例是确定的流量百分比,调大就是线性放量;这三个参数改的是分布形状,不保证"多样性"线性增加——温度调过高不是"更有创意",而是直接语法崩坏
beam search带宽度限制的 BFS——每层只保留最优 k 条路径搜整体似然更高的完整序列,适合翻译/摘要这类"有唯一较优解"的任务BFS 的代价函数是确定的路径开销;beam 的打分是长度敏感的对数似然,会系统性偏好短句,且在开放式对话里产出乏味重复的文本——所以聊天场景反而不用它
repetition penalty去重/防抖开关——对已出现过的项降权对已生成过的 token 的 logits 施加惩罚,抑制复读机式循环去重是二值的(去掉或留下);这里是连续降权,惩罚给大了会把该重复的词也压掉(人名、专业术语、代码里的变量名),产出前后不一致
涌现能力(Emergent Ability)规模跨过阈值后的相变——像连接数过线后雪崩、缓存命中率过线后延迟陡降描述某些能力(多步推理、指令遵循)在小模型上近乎为零、参数量过线后陡然出现雪崩有明确机理和可测算的阈值;涌现的"突变"部分是评测指标造成的——把 0/1 判分换成连续指标后曲线其实是平滑的。别把它当可预测的工程拐点来做规划
对齐(Alignment)上线前的验收 + 灰度调参——底座能力不动,改的是"输出符合期望的行为"让模型从"会续写"变成"会听指令、会拒绝有害请求":SFT 学格式与风格,RLHF/DPO 学人类偏好排序验收不改代码;对齐真实改动权重,且可能损失部分底座能力(俗称"对齐税")。三种手段的目标与代价对比详见 微调策略选型

同名异义:embedding 在两个上下文里不是一回事

这是最容易埋雷的一处——两侧都叫 embedding,但指的是不同东西,各自只在自己的归属页展开:

上下文在本上下文里指什么归属页
模型本体(本篇)token embedding:词表里每个 token id 对应的一行向量,是模型的内部参数,由 embedding 矩阵查表得到,随训练更新本页(见"实现方案")
检索文本 embedding:一整段文本压成一个语义向量,是模型的输出产物,用来算文本之间的相似度、灌进向量库RAG 检索增强生成

一句话记住差别:token embedding 是模型肚子里的权重,文本 embedding 是模型吐出来的结果。把两者混为一谈,就会推出"换个 embedding 模型能改善模型的语言能力"这类错误结论。

本篇引用的其他上下文名词

名词在本篇里的角色完整解释去哪读
Prefill / Decode / KV Cache采样这一步在完整推理流程里的位置推理与微调优化 · 名词速查
MoE(混合专家)影响"temperature=0 是否完全确定"的一个因素(路由带来微小非确定性)推理与微调优化 · 名词速查
SFT / RLHF / DPO对齐的三种具体手段微调策略选型 · 名词速查
文本 embedding / 向量相似度与 token embedding 对照消歧RAG · 名词速查

场景问题

为什么是 Transformer,不是 RNN/LSTM?

一个绕不开的面试起点:给定一段文本预测下一个 token,为什么 2017 年后大家全换成了 Transformer?

  • RNN/LSTM 的两个死穴:① 时序依赖无法并行——第 t 步必须等第 t-1 步算完,训练慢;② 长程依赖靠隐状态一路传递,梯度消失,隔几十个 token 的信息就丢了。
  • Transformer 的答案:用 Self-Attention 让序列里任意两个位置直接建立连接(路径长度 O(1) 而非 O(n)),且整段序列可一次性并行计算。代价是注意力的 O(n²) 复杂度——这是后面所有"长上下文优化"的根源。

主流大模型都是 Decoder-only

原始 Transformer 是 Encoder-Decoder(翻译任务)。今天主流生成式大模型(GPT、LLaMA、Qwen、Claude)几乎都是 Decoder-only:

结构代表适合
Encoder-onlyBERT理解类(分类 / 抽取 / 检索 embedding)
Encoder-DecoderT5 / BART序列到序列(翻译 / 摘要)
Decoder-onlyGPT / LLaMA / Qwen自回归生成,统一用"预测下一个 token"做所有任务

Decoder-only 胜出的核心原因:任务大一统——预训练与推理都是同一个"next-token prediction",天然适配指令、对话、few-shot;架构简单、易 scale。

实现方案

Self-Attention:缩放点积注意力

打个比方:一次 attention 就是一条带权的 join ——Q 是查询条件,K 是索引列,V 是要取的值列。拿 Q 去和每个 K 比一比算出相似度当权重,再按权重把各个 V 加权求和。类比失效边界:SQL join 是硬匹配,不命中就没这行;attention 对所有行都给一个 softmax 软权重,没有"不命中"这回事——不相关的 token 也会带着小权重掺进结果。而且它是 all-to-all 的,代价是 O(n²):序列翻倍算力翻四倍,这是后面所有长上下文优化的根源。

一句话:每个 token 用自己的 Query 去和所有 token 的 Key 做相似度打分,softmax 归一化成权重,再对所有 Value 加权求和——得到"融合了上下文的新表示"。

Attention(Q, K, V) = softmax( Q·Kᵀ / √d_k ) · V

为什么要除以 √d_k:因为维度越高,点积的数值越大——两个 128 维向量的点积,天然比两个 8 维向量的点积大一个量级。而 softmax 只看数值的相对差距:喂给它一组差距悬殊的大数,它会把几乎全部权重压给最大的那一个,其余趋近 0。除以 √d_k 就是把分数拉回到与维度无关的尺度,让权重分布保持"有区分但不极端"。

代一遍数字(d_k = 128,两组打分只差一点):

不缩放:点积 ≈ [40, 36, 32]  → softmax ≈ [0.98, 0.018, 0.0003]  几乎只看第一个
缩放后:除以 √128 ≈ 11.3
        → [3.54, 3.19, 2.83] → softmax ≈ [0.44, 0.31, 0.25]     三者都参与

所以工程上意味着什么:不缩放的话,注意力会退化成"只看最相似的那一个 token",等于丢掉了加权聚合的全部意义;而且极端的 softmax 在训练时几乎传不回梯度,模型学不动。这个除法不是数学洁癖,是让 attention 能正常工作的必要条件。

下图直观展示这个过程:当前 token 的 Query 依次给每个 Key 打分(扫描光束),softmax 归一化成权重(右侧长条),再按权重把各 Value 加权汇聚成"新表示"。权重高的 Key(K2)贡献最大。

Q当前 tokenK1 / V1K2 / V2K3 / V3K4 / V40.10.60.20.1新表示Σ wᵢ·Vᵢ
  • Q/K/V 都是输入 embedding 经三个可学习矩阵 W_Q / W_K / W_V 线性变换得到。
  • 除以 √d_k:见上文的算例——维度越高点积越大,不缩放 softmax 会把权重全压给最大那个,注意力退化成"只看最像的一个"且梯度传不回来。
  • 多头(Multi-Head):把 Q/K/V 切成 h 份并行做注意力,再拼接——每个头学不同的关注模式(语法 / 指代 / 位置…),类似 CNN 的多通道。
  • 因果 mask(Causal Mask):生成时第 t 个 token 只能看到 ≤ t 的位置,把上三角置为 -∞,softmax 后为 0——保证"不偷看未来"。
import numpy as np

def scaled_dot_product_attention(Q, K, V, causal=True):
    # Q,K,V: [seq_len, d_k]
    d_k = Q.shape[-1]
    scores = Q @ K.T / np.sqrt(d_k)          # [seq, seq] 相似度矩阵
    if causal:                                # 因果 mask:屏蔽未来位置
        mask = np.triu(np.ones_like(scores), k=1).astype(bool)
        scores[mask] = -1e9
    scores = scores - scores.max(-1, keepdims=True)   # 数值稳定
    weights = np.exp(scores)
    weights /= weights.sum(-1, keepdims=True)          # softmax
    return weights @ V                        # 对 Value 加权求和

打个比方:自回归生成就像接龙作文——每写一个字之前,都要把前面所有字从头扫一遍再决定下一个(Self-Attention 全上下文打分),因果 mask 又规定绝对不许偷看后面还没写的字(-∞ 屏蔽上三角)。KV Cache 相当于把"已经读过的段落"提前记好笔记,下一次接龙只算新字的问题,不再重扫一遍。类比失效边界:真实接龙可以停下来"这句不好"再改一遍,自回归却是一路向下、无法回退——早期一个错 token 会污染后面全部生成,只能从错处重开;KV Cache 又是显存换算力,超长上下文一撞显存红线要么截断、要么代价陡增,绝非"越长越聪明"。

一个完整的 Decoder Block = Masked Multi-Head Attention → 残差 + LayerNorm → FFN(前馈) → 残差 + LayerNorm,堆叠 N 层。残差连接解决深层网络梯度问题,LayerNorm 稳定训练(现代模型多用 Pre-LN + RMSNorm)。

这一节记住三句话

  1. 注意力是一次软 join:Q 拿去和所有 K 打分,softmax 成权重后对 V 加权求和——没有"不命中",不相关的 token 也会带小权重掺进结果。
  2. 代价是 O(n²) 且写死在架构里:序列翻倍算力翻四倍,因果 mask 没有"临时看一下未来"的开关——长上下文优化与 Decoder-only 做不了双向理解,根子都在这里。
  3. 一个 Block 是四件套堆 N 层:Masked Attention → Add&Norm → FFN → Add&Norm;残差治梯度、LayerNorm 稳训练,现代模型换成 Pre-LN + RMSNorm。

位置编码:注意力本身"看不见顺序"

Self-Attention 是排列不变的——打乱输入顺序,输出集合不变。必须显式注入位置信息:

  • 正弦绝对编码(原版):用不同频率的 sin/cos 给每个位置一个固定向量,加到 embedding 上。简单但外推差。
  • RoPE(旋转位置编码,LLaMA/Qwen 主流):把位置信息以旋转方式作用到 Q/K 上,天然编码相对位置,且有一定长度外推能力(配合 NTK/YaRN 插值可扩窗口)。
  • ALiBi:直接在注意力分数上按距离加线性偏置,训练短、推理长的外推能力强。

Tokenization:模型眼里没有"字",只有 token

文本先切成 token(子词单元)再查 embedding 表。主流是 BPE / BBPE / SentencePiece:

  • BPE(Byte-Pair Encoding):从字符开始,反复合并"最高频相邻对",直到词表达到设定大小。高频词整体成 token,低频词拆成子词——平衡词表大小与 OOV。
  • BBPE(Byte-level BPE,GPT 系):在字节上做 BPE,任何 UTF-8 文本都能编码,永不 OOV,对中文/emoji 友好。

工程影响:① 中文一个字常占 1~2+ token,计费和上下文长度按 token 算;② prompt 里的空格、换行都是 token;③ 数字/罕见词被拆碎会影响数学能力。

预训练目标与 Scaling Law

  • 预训练目标:Decoder-only 用自回归语言建模——最大化整段序列的 ∏ₜ P(xₜ | x_<ₜ),即"预测下一个 token"。损失是交叉熵(等价于最小化困惑度 Perplexity)。
  • Scaling Law:模型能力随参数量 N、数据量 D、算力 C呈幂律平滑提升。Chinchilla(DeepMind)修正了早期"堆参数"的偏见:给定算力预算,参数与数据应大致等比例增长(约 20 tokens/参数),此前的大模型多是"参数过大、数据喂不够"。

解码采样:同一个模型,输出风格由采样决定

模型每步输出的是全词表的概率分布,怎么从中选下一个 token 就是解码策略:

策略做法特点
Greedy每步取概率最大确定、易复读、乏味
Beam Search保留 top-b 条候选序列适合翻译/摘要,开放生成易呆板
Temperaturelogits 除以 T 再 softmaxT↑ 更随机有创意,T↓ 更保守
Top-k只在概率前 k 个里采样截断长尾
Top-p(Nucleus)只在累积概率达 p 的最小集合里采样动态截断,主流默认
Repetition Penalty对已出现 token 降权抑制复读

面试常问:"temperature=0 是否完全确定?"——理论上贪心确定,但受浮点/并行归约顺序、MoE 路由等影响,实际仍可能有微小非确定性。

这一步在完整推理流程中的位置:采样是 generate() 的第 ⑥ 步,位于「输出层算出 logits」之后、「停止条件判定」之前,每生成一个 token 就执行一次。从 tokenize 到流式回传的完整链路、以及每一步对应哪个可观测指标(TTFT / TPOT),见 推理与微调优化 · 一次 generate() 的端到端流程。

为什么这么做

为什么 O(n²) 是"原罪"也是"取舍"

注意力要算 n×n 的相似度矩阵,序列翻倍则计算和显存都是 4 倍。为什么还用它?

  • 换来的是任意位置直连 + 全并行,这是 RNN 给不了的表达力与训练效率。
  • n² 的痛点催生了一整套优化:稀疏/滑窗注意力、FlashAttention(省显存不改结果)、线性注意力、以及推理侧的 KV Cache——详见 推理与微调优化。

为什么需要对齐(Alignment)

预训练只学会了"续写互联网文本",并不天然"听话、有用、无害"。要变成可用的助手需对齐三步:

  1. SFT(监督微调):用高质量"指令-回答"对,教模型follow instruction。
  2. RLHF / DPO:用人类偏好数据训练,让输出更符合人类偏好(有用/诚实/无害)。
  3. 系统提示 + 护栏:运行时约束角色与边界。

为什么别的选择不行

常见误区与澄清

误区澄清
"参数越多一定越强"Chinchilla:数据不够时,大参数是浪费;小而喂饱的模型可反超
"上下文窗口越大越好"有 O(n²) 开销 + "迷失在中间"(middle 信息利用差);长窗≠会用长窗
"temperature 越高越聪明"只是更随机;推理/代码任务通常要低温甚至贪心
"微调就能加知识"微调擅长改风格/格式/能力,加事实知识常更适合 RAG
"BPE 按词切"按高频子词/字节切,一个中文字可能是多个 token
"Attention 知道词序"不知道,全靠位置编码注入

为什么不直接无限堆层/堆窗口

  • 层数堆太深收益递减且难训(靠残差 + Norm 缓解,但仍有瓶颈)。
  • 窗口靠 O(n²) 硬扩会撞显存墙;工程上靠 RoPE 插值(NTK/YaRN)、稀疏注意力、外部检索(RAG)分摊,而非无脑加长。

沉淀结论

心法总结

大模型 = Transformer(Self-Attention 全连接 + 位置编码)× Scale(Chinchilla 最优的参数/数据配比)+ 对齐(SFT→RLHF/DPO)。 一切生成行为都归结为"预测下一个 token",而输出风格由解码采样控制;O(n²) 注意力是能力之源,也是所有长上下文与推理优化的战场。

面试常见问题清单(按主题分类)

架构

  • Q:为什么 Transformer 取代 RNN/LSTM? A:Self-Attention 让任意两位置直连(路径 O(1))且整段并行;RNN 串行不能并行、长程靠隐状态传递会梯度消失。代价是注意力 O(n²)。
  • Q:为什么主流大模型是 Decoder-only? A:任务大一统——预训练与推理都是同一个 next-token prediction,天然适配指令/对话/few-shot,架构简单易 scale。
  • Q:Attention 为什么除以 √d_k? A:维度越高点积数值越大,softmax 只看相对差距——不缩放它会把权重几乎全压给最大那一个(注意力退化成"只看最像的一个 token"),且极端 softmax 梯度趋零、训练不稳。缩放把分数拉回与维度无关的尺度。
  • Q:多头注意力的意义? A:把 Q/K/V 切成 h 份并行,各头学不同关注模式(语法/指代/位置),类似 CNN 多通道。

位置与分词

  • Q:注意力知道词序吗?怎么注入位置? A:不知道(排列不变),必须显式注入——正弦绝对编码 / RoPE(相对位置、可外推)/ ALiBi(距离线性偏置)。
  • Q:一个中文字是几个 token? A:不定,常 1~2+ 个;BPE/BBPE 按高频子词/字节切,计费与上下文长度都按 token 算。

训练与解码

  • Q:Scaling Law 与 Chinchilla 的结论? A:能力随 N/D/C 幂律提升;给定算力,参数与数据应约等比例增长(~20 tokens/参数),别一味堆参数。
  • Q:temperature=0 是否完全确定? A:理论上贪心确定,但受浮点/并行归约顺序、MoE 路由影响,实际仍可能有微小非确定性。
  • Q:Top-k 与 Top-p 区别? A:Top-k 固定候选个数;Top-p(Nucleus)按累积概率动态截断,是主流默认。

能力边界

  • Q:加事实知识该微调还是 RAG? A:微调擅长改风格/格式/能力;加事实/时效知识优先 RAG。
  • Q:上下文窗口越大越好吗? A:否,有 O(n²) 开销 + "迷失在中间",长窗≠会用长窗。

延伸阅读:推理与微调优化 · RAG 检索增强生成 · Agent 开发

记忆口诀

  • Self-Attention:QKV 打分 / softmax 加权 / 任意位置直连 O(1) / 代价 O(n²)
  • 架构选型:Encoder-only 理解 / Encoder-Decoder 翻译 / Decoder-only 生成大一统
  • 位置编码:注意力排列不变 / 正弦绝对 / RoPE 相对可外推 / ALiBi 距离偏置
  • 分词计费:BPE 高频子词 / BBPE 字节永不 OOV / 中文一字多 token
  • Scale 配比:Chinchilla / 参数数据等比 / ~20 tokens 每参数
  • 解码采样:Greedy 确定 / Temperature 随机度 / Top-k 定数 / Top-p 动态截断
  • 对齐三步:SFT 指令 → RLHF/DPO 偏好 → 系统提示护栏

内容来源

综合整理:Attention Is All You Need(Vaswani 2017)、GPT/LLaMA/Chinchilla 论文、RoPE/ALiBi 论文、Hugging Face 与各家官方文档(2026-07;领域更新快,请以最新论文与官方文档为准)。

自测:合上资料能说清楚吗?

  1. Transformer 靠什么取代了 RNN/LSTM?付出的代价是什么?
参考答案

用 Self-Attention 让任意两位置直连(路径 O(1))且整段并行,解决了 RNN 的串行不可并行与长程梯度消失。代价是注意力的 O(n²) 计算/显存开销,成为长上下文优化的战场。

  1. 为什么 Self-Attention 需要额外的位置编码?列举两种主流方案。
参考答案

注意力排列不变,打乱顺序输出集合不变,本身"看不见词序"。主流:RoPE(旋转编码,天然编码相对位置、可外推)、ALiBi(按距离加线性偏置,短训长推);原版是正弦绝对编码。

  1. 对比 Top-k 与 Top-p(Nucleus)采样的区别,各自特点是什么?
参考答案

Top-k 固定候选个数 k,长尾概率分布不均时可能仍过窄或过宽;Top-p 按累积概率取达 p 的最小集合,动态截断、随分布自适应,是主流默认。二者都在截断长尾、平衡多样性与质量。

  1. 对比"微调"与"RAG",加入新知识该选哪个?
参考答案

微调擅长改风格/格式/能力,把知识"焊死"进权重、更新成本高、易遗忘;RAG 把知识放外部库检索注入,适合事实/时效类知识,可增删溯源。加事实优先 RAG,改行为风格用微调。

  1. Chinchilla 修正了此前"堆参数"的什么偏见?给出结论。
参考答案

此前大模型多参数过大、数据喂不够。Chinchilla 指出:给定算力预算,参数 N 与数据 D 应大致等比例增长(约 20 tokens/参数),小而喂饱的模型可反超参数更大者,能力随 N/D/C 呈幂律提升。

最近更新: 2026/9/10 11:38
Prev
AI / 大模型
Next
推理与微调优化