一间老字号武馆里,方丈 Gemini 名震江湖三十年,却从不轻易下山——想学他的功夫,你得把整座武馆搬回家,那是普通人难以承受的算力。直到有一天,方丈决定收两个弟子,把毕生所学浓缩成两本薄薄的心法传下去:大弟子 Gemma 7B 体格壮实,能坐镇一方机房;小弟子 Gemma 2B 身轻如燕,可贴身随行、时刻守护。方丈的教学方法很特别:不让他们死记硬背招式口诀,而是让他们在旁观摩自己与高手过招,领悟拳脚之间那微妙的“分寸感”;又传给他们一套“共享图鉴”和“旋转步法”,让行囊轻便、走位精准。这便是 Google 开源的 Gemma 轻量模型家族:以 2B 和 7B 之躯继承 Gemini 的智慧,用知识蒸馏、多查询注意力、旋转位置编码三大心法,打通了从手机端到服务器的轻量化部署之路。下面,我们一起把这本“心法秘籍”逐页翻开。

岗位关联

学习 Gemma,等于掌握“大模型瘦身”的完整方法论:知识蒸馏、注意力优化、位置编码、量化部署——让你能把千亿大模型的智慧装进小模型,在真实产品中实现低成本、高可控的 AI 能力。

目录
  1. 可视化演示
  2. 模型概览
  3. 知识蒸馏
  4. 多查询注意力
  5. 旋转位置编码
  6. 训练技术
  7. 部署实践
  8. 生态意义
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

交互展示Google Gemma的知识蒸馏机制、MQA多查询注意力架构和轻量部署策略,理解开源轻量模型的核心技术。

本节配有交互动效(进入视口后自动加载,约 3KB)。

知识蒸馏迁移机制 从Gemini大模型蒸馏知识到轻量模型 保留核心能力同时大幅压缩参数规模 大模型 → 小模型 端侧设备也能运行高质量语言模型

模型概览

山门口,方丈 Gemini 为两位弟子送行。大弟子 Gemma 7B 抱拳道:师傅,弟子此去坐镇机房,必不负所托。小弟子 Gemma 2B 身轻如燕,笑道:弟子愿随手机主人走街串巷,时刻守护。方丈点头:你们武功来自为师一身所学,却无需为师亲至。这正是 Gemma 系列与 Gemini 的关系——不是把千亿参数的身躯复制一份,而是把毕生功力浓缩进两个更轻便的躯体。

2024 年 2 月,Google 正式开源 Gemma——一个基于 Gemini 核心技术训练的轻量语言模型家族。家族有两位成员:Gemma 2B 和 Gemma 7B。参数规模里的“B“是 billion(十亿)的缩写,2B 意味着模型约有 20 亿个参数。参数量直接决定了模型跑起来的”饭量”——显存占用。大多数推理框架用 fp16(半精度浮点)加载权重,每个参数占 2 字节,因此权重显存可以估算为:

M=N×b\displaystyle M = N \times b

其中 N 为参数量(单位:十亿),b 为每个参数占的字节数(fp16 下 b=2)。

1. N 是参数量:以十亿为单位计数,Gemma 2B 即 N=2,7B 即 N=7。

N∈{2,7}\displaystyle N \in \{2, 7\}

2. b 是字节数:fp16 精度下每个参数占 2 字节,这是推理时权重的“体重”。

bfp16=2\displaystyle b_{\mathrm{fp16}} = 2

3. M 是显存估算:两者相乘得到权重占用,几十亿参数乘以 2,换成 GB。

M=N×b\displaystyle M = N \times b

于是 Gemma 7B 权重约需 14GB 显存,适合单张 A100 乃至高端消费级显卡;Gemma 2B 仅约 4GB,一般智能手机的 NPU 已能承载。轻量,不是牺牲智慧,而是让智慧能跑进更小的舞台。大徒弟坐镇云端,小徒弟贴身端侧,两人各得其所——但身板这么小,他们又是怎么练成师傅的本事的?

知识蒸馏

方丈让两位弟子站在演武场边,观摩自己与各路高手过招。同样是起手式,面对瘦子要“三分力七分巧”,面对胖子要“七分力三分巧”——这种分寸感,口诀书上写不出来。若只背口诀(硬标签),弟子学到的是一堆死招式;若领悟师傅出招时那微妙的力度分配(软标签),才算学到精髓。

在机器学习里,大模型(教师)对每个样本会输出一个概率分布。比如识别一张图,教师不仅给出“猫 90%”,还会给出“老虎 6%、豹 3%”。那 10% 的“尾巴”里藏着“猫和老虎是近亲”的知识。硬标签只保留 90% 的结论,软标签则把知识纹理完整保留下来。为了让软标签在训练时更“可教”,蒸馏方法引入了一个温度 T 来调节分布的平滑度:

pi=exp⁡(zi/T)∑j=1Vexp⁡(zj/T)\displaystyle p_i = \frac{\exp(z_i / T)}{\sum_{j=1}^{V} \exp(z_j / T)}

1. z_i 是 logit:教师模型对第 i 个类别的原始打分,可以是正数也可以是负数。

zi∈R\displaystyle z_i \in \mathbb{R}

2. 除以温度 T:每个 logit 先除以 T,T 越大,分数之间的差距被压得越小,分布越平缓。

z~i=zi/T,T>0\displaystyle \tilde{z}_i = z_i / T, \quad T > 0

3. 指数归一化:softmax 把软化后的分数变成概率,所有类别概率之和为 1。

pi=ez~i∑j=1Vez~j\displaystyle p_i = \frac{e^{\tilde{z}_i}}{\sum_{j=1}^{V} e^{\tilde{z}_j}}

学生模型的完整训练目标,是“像教师”与“忠于事实”的加权组合:

L=α⋅KL(p(T)∥q(T))+(1−α)⋅CE(y,q)\displaystyle L = \alpha \cdot \mathrm{KL}\left(p^{(T)} \parallel q^{(T)}\right) + (1 - \alpha) \cdot \mathrm{CE}(y, q)

1. p^(T) 与 q^(T):教师和学生分别在温度 T 下软化后的输出分布,即两份“心法”。

p(T), q(T)∈ΔV−1\displaystyle p^{(T)}, \ q^{(T)} \in \Delta^{V-1}

2. KL 散度项:衡量学生分布与教师分布的差异,差异越小,学生越像师傅。

KL(p∥q)=∑ipilog⁡piqi\displaystyle \mathrm{KL}(p \parallel q) = \sum_i p_i \log \frac{p_i}{q_i}

3. CE 交叉熵项:让学生不要偏离真实标签(标准答案)太远。

CE(y,q)=−∑iyilog⁡qi\displaystyle \mathrm{CE}(y, q) = -\sum_i y_i \log q_i

4. α 权重系数:在“传承师傅”与“尊重事实”之间取平衡,通常取 0.5~0.9。

0≤α≤1\displaystyle 0 \le \alpha \le 1

Gemma 的训练正是如此:Gemini 作为教师,把软标签“递”给 2B/7B 学生模型,让学生的小身板学会大模型的判断纹理——体重未增,境界大不一样。这也解释了为什么蒸馏后的 Gemma 在同样参数量下,比从零训练的小模型聪明得多。

多查询注意力

武馆里的普通弟子,每人各记一本厚厚的《对手招式图鉴》,出招时翻自己那本;Gemma 弟子却不同——所有人共用一本图鉴。有人担心:大家都看同一本书,会不会理解各自乱套?不会,因为图鉴(Key-Value)是公共的,而每个人“关注招式的角度”(Query)仍然不同。

Transformer 的自注意力公式本身很简洁:

Attention(Q,K,V)=softmax(QK⊤dk)V\displaystyle \mathrm{Attention}(Q,K,V) = \mathrm{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right) V

标准多头注意力让每个头拥有独立的 K、V 投影矩阵,等于每人一本笔记;而多查询注意力(MQA)做了一个小而巧的改动——只保留一组共享的 K、V 投影,所有查询头共用:

headi=Attention(QWiQ, KWK, VWV)\displaystyle \mathrm{head}_i = \mathrm{Attention}(Q W_i^Q,\ K W^K,\ V W^V)

1. Q、K、V 的含义:Q 是当前词的“查询视角”,K 是每个词的“标签”,V 是每个词的“内容”。

Q,K,V∈Rseq×d\displaystyle Q, K, V \in \mathbb{R}^{\text{seq} \times d}

2. 共享 W^K、W^V:多个头 i=1……h 共用同一组 Key 和 Value 的投影矩阵,KV 缓存只需保存一份。

WK,WV∈Rd×dv\displaystyle W^K, W^V \in \mathbb{R}^{d \times d_v}

3. Q 仍独立投影:每个头的查询视角 W_i^Q 各不相同,保证关注模式多样。

WiQ∈Rd×dq\displaystyle W_i^Q \in \mathbb{R}^{d \times d_q}

推理时,模型每生成一个新 token 都要把 K、V 缓存下来供后续使用。标准多头要缓存 h 份 KV,MQA 只要 1 份,显存直接节省 (h−1)/h——以 8 头计算就是省下 87.5%。Gemma 2B/7B 都采用 MQA 架构,这让它们做长文本对话时显存压力远小于同规模传统模型。共享一本图鉴,不仅省了行囊,翻页也更快;少背书,出招自然快,推理的吞吐量也随之提升。

旋转位置编码

习武之人讲求站位。同样是冲拳,站在对手正前方和侧方,威胁完全不同。语言也是如此——“你先说”和“我先说”含义天差地别。但自注意力本身对词的先后顺序没有感知,必须额外给每个词“标站位”。

Gemma 采用的旋转位置编码(RoPE)极其优雅:把位置信息编码成一个“旋转角度”,让词向量在特征空间里转个身。对每个二维子空间,定义旋转矩阵:

R(m)=[cos⁡mθ−sin⁡mθsin⁡mθcos⁡mθ]\displaystyle \mathbf{R}(m) = \begin{bmatrix} \cos m\theta & -\sin m\theta \\ \sin m\theta & \cos m\theta \end{bmatrix}

1. m 是位置下标:当前词在序列中的位置,从 0 开始计数。

m∈{0,1,2,… }\displaystyle m \in \{0, 1, 2, \dots\}

2. θ 是旋转基频:不同维度用不同的角度步长,维度越高旋转越慢,负责捕捉不同尺度的距离关系。

θi=10000−2i/d\displaystyle \theta_i = 10000^{-2i/d}

3. R(m) 是旋转矩阵:将向量在二维平面内顺时针旋转 mθ 弧度,等于给位置装上了“方向盘”。

RoPE 最巧妙的性质在于:两个词各自旋转后做内积,结果恰好只依赖它们的相对位置:

qm⊤kn=(R(m)q)⊤(R(n)k)=q⊤R(n−m)k\displaystyle q_m^\top k_n = \left(\mathbf{R}(m)q\right)^\top \left(\mathbf{R}(n)k\right) = q^\top \mathbf{R}(n-m)k

1. 分别旋转 q 和 k:位置 m 的词向量 q 乘 R(m),位置 n 的 k 乘 R(n)。

qm=R(m)q,kn=R(n)k\displaystyle q_m = \mathbf{R}(m)q, \quad k_n = \mathbf{R}(n)k

2. 旋转矩阵的合并:正交旋转满足 R(m)ᵀR(n)=R(n−m),内积中两个旋转合并成一个相对旋转。

R(m)⊤R(n)=R(n−m)\displaystyle \mathbf{R}(m)^\top \mathbf{R}(n) = \mathbf{R}(n-m)

3. 相对位置信息:点积结果只包含 n−m,模型无法获得绝对坐标,但天然感知“两词之间隔了多少距离”。

qm⊤kn=f(q,k,n−m)\displaystyle q_m^\top k_n = f(q, k, n-m)

RoPE 是相对位置编码,天然支持超出训练长度的外推;它直接作用在注意力点积上,不需要额外学习位置嵌入表。弟子们的“旋转步法”让其在陌生场地也能精确走位——练武场换成十里长街(长序列),步法依然不乱,这正是外推能力的写照。

训练技术

方丈的弟子也不是一出生就天下无敌。从入门到出师,需要一套系统的修炼规划:先读万卷书(预训练),领受内功心法(知识蒸馏),再被师傅逐招纠正(监督微调),最后与人对练积累实战经验(RLHF)。Gemma 的诞生,正是这样一条流水线。

首先是预训练阶段。Gemma 从互联网、代码、论文等海量文本中筛选高质量语料,语料规模达到数万亿 token,同时做了严格的语言比例平衡、去重和毒性过滤——相当于师傅亲自挑选书单,绝不让学生读乱七八糟的书。在预训练后期,Gemini 教师模型的软标签开始注入训练,知识蒸馏贯穿了模型成型的最后阶段。

随后是监督微调(SFT),让模型学会“人类希望它怎么回答”。SFT 的标准损失函数是自回归交叉熵:

LSFT=−∑t=1Tlog⁡pθ(yt∣y<t,x)\displaystyle L_{\mathrm{SFT}} = -\sum_{t=1}^{T} \log p_\theta\left(y_t \mid y_{<t}, x\right)

1. x 是输入指令:相当于师傅出的题目,模型要回答正确的内容。

x=用户输入的提示\displaystyle x = \text{用户输入的提示}

2. y_{<t} 是已生成的词:模型根据已经写出的前缀,逐个预测下一个词。

y<t=(y1,…,yt−1)\displaystyle y_{<t} = (y_1, \dots, y_{t-1})

3. log p_θ 是预测概率:模型给“正确答案”打分,分数越高,损失越小。

pθ(yt∣y<t,x)∈(0,1)\displaystyle p_\theta(y_t \mid y_{<t}, x) \in (0,1)

4. 求和取负号:把每个词的损失加起来并取相反数,让“越准”对应“损失越低”。

LSFT→min⁡\displaystyle L_{\mathrm{SFT}} \to \min

最后还要用 RLHF(基于人类反馈的强化学习)微调,让模型的回答风格和价值观更符合人类偏好。这套“预训练 + 蒸馏 + SFT + RLHF”的组合拳打下来,两位弟子不仅武功高强,而且品行端正;炉火纯青之日,便是下山之时。

部署实践

出师这天,弟子们要打点行囊。小弟子 2B 要去手机里长期驻守,行囊能省一分是一分;大弟子 7B 去服务器,条件虽然好些,也要精打细算。部署的第一件事是“减肥”——量化。

Gemma 2B 默认 fp16 权重约 4GB,手机装不下。把权重从 fp16(2字节)压到 int8(1字节)甚至 int4(0.5字节)后,显存立刻大幅缩水。量化后的权重显存仍可用同一把尺子估算:

M=N×b,bint8=1, bint4=0.5\displaystyle M = N \times b, \quad b_{\mathrm{int8}} = 1, \ b_{\mathrm{int4}} = 0.5

1. N 仍是参数量:以十亿为单位,2B 即 N=2。

N=2.0\displaystyle N = 2.0

2. b 随量化变小:int8 每个参数 1 字节,int4 每个参数 0.5 字节。

bint4=0.5\displaystyle b_{\mathrm{int4}} = 0.5

3. M 缩小到可落地:Gemma 2B 用 int4 后约 1GB,手机本地离线运行成为现实。

M≈2×0.5=1 GB\displaystyle M \approx 2 \times 0.5 = 1\ \mathrm{GB}

实际部署中,Gemma 2B 可借助 MediaPipe LLM Inference API 嵌入 Android/iOS 应用,数据不出设备,离线也能对话;Gemma 7B 则可用 vLLM、llama.cpp 等开源推理框架部署在单卡或 CPU 服务器上。配合 MQA 带来的低 KV 缓存开销,长文本生成的吞吐量明显优于同规模传统模型。小徒弟贴身随行,大徒弟坐镇云端——轻装下山,行囊不过一两个 G,这便是轻量模型的江湖路。

生态意义

从前,Google 的武林绝学从不外传,那些顶尖模型只能远观。Gemma 开源,等于方丈决定开山立派,广纳门徒——这在 AI 开源江湖中,是浓墨重彩的一笔。

Gemma 的发布填补了 Google 系在开源大模型领域的长期空白。此前 Meta 有 Llama 系列一呼百应,而 Google 一直以闭源的 PaLM、Gemini 示人;开发者想要“Google 正统心法”,只能付费调用云端 API。Gemma 出现后,社区第一次可以在开源世界用上源自 Gemini 的模型——而且直接给了 2B 和 7B 两种尺寸。

随之而来的是整个生态的连锁反应:Hugging Face 上出现大量 Gemma 微调版本;LangChain、LlamaIndex 等工具链原生支持;Keras 官方教程将 Gemma 作为教学主力;多家手机厂商在端侧芯片上适配 Gemma 2B。在 MMLU、GSM8K 等基准上,Gemma 7B 用 7B 的体量追平了数年前百亿级模型的表现——小身材,真功夫。江湖因此热闹:开源武林多了一个讲究“轻量与传承”的派系,而每一份微调权重、每一篇部署教程,都在把方丈的心法变成天下人的内功。强者的价值,从来不在闭门造车,而在传承与普惠。

AI 应用场景

端侧离线智能助理

阶段:模型部署与推理优化

解决的问题:云端 AI 助手依赖网络,延迟高、有隐私泄露风险。将 Gemma 2B 量化到 1GB 级别部署到手机端,可实现完全离线的问答、摘要、改写能力,敏感数据不出设备。

具体案例:某医疗健康 App 将 Gemma 2B(int4)嵌入本地,患者的病历摘要和用药提醒问答全部在手机端完成。航班上、地下室等无信号场景也能随时唤起 AI 助理,用户隐私零上云。

企业私有知识库蒸馏

阶段:模型轻量化(知识蒸馏训练)

解决的问题:企业想用大模型处理私有领域文档(客服问答、法务审阅),但调用云端大模型 API 有数据合规风险,自建千亿模型成本又不可承受。用知识蒸馏:大模型当教师,输出软标签,Gemma 7B 学生微调后实现私有化部署。

具体案例:某券商用 Gemini 对 5 万份研报生成带温度参数的软标签训练样本,蒸馏微调 Gemma 7B 后部署在内网 GPU 服务器。回答研报相关问题的准确率达到教师模型的 92%,推理成本下降一个数量级,数据全程不出内网。

客服实时质检

阶段:在线推理加速

解决的问题:客服对话实时质检需要对每句话做意图识别与情绪判断,延迟必须达到毫秒级。Gemma 2B 的 MQA 结构让 KV 缓存占用极小,长对话流式推理更流畅,单卡并发能力显著提升。

具体案例:某电商平台将 Gemma 2B 用于客服会话的实时情绪与风险识别,借助 MQA 的低缓存特性,单卡即可并发处理 200 路会话,P99 延迟低于 80ms,成功拦截多起纠纷升级。

Python 演示

python68 行
import numpy as npfrom sklearn.datasets import make_moonsfrom sklearn.model_selection import train_test_split  def softmax(z):    # numerically stable softmax, z: (n_samples, n_classes)    e = np.exp(z - z.max(axis=1, keepdims=True))    return e / e.sum(axis=1, keepdims=True)  class TeacherNet:    # plays the role of a large teacher model (two-layer MLP)    def __init__(self, n_in=2, n_hid=64, n_out=2, seed=1):        rng = np.random.default_rng(seed)        self.w1 = rng.normal(0, 0.2, (n_in, n_hid))        self.b1 = np.zeros(n_hid)        self.w2 = rng.normal(0, 0.2, (n_hid, n_out))        self.b2 = np.zeros(n_out)     def predict(self, x, temperature=3.0):        h = np.tanh(x @ self.w1 + self.b1)        logits = h @ self.w2 + self.b2        return softmax(logits / temperature)  # distill soft labels  class StudentNet:    # plays the role of a small student model (single-layer softmax)    def __init__(self, n_in=2, n_out=2, seed=2):        rng = np.random.default_rng(seed)        self.w = rng.normal(0, 0.1, (n_in, n_out))        self.b = np.zeros(n_out)     def forward(self, x):        return softmax(x @ self.w + self.b)     def update(self, x, target, lr=0.3):        prob = self.forward(x)        grad = (prob - target) / len(x)  # soft CE gradient        self.w -= lr * x.T @ grad        self.b -= lr * grad.sum(axis=0)  def build_data(n=300, seed=0):    x, y = make_moons(n_samples=n, noise=0.25, random_state=seed)    y_onehot = np.eye(2)[y]    return train_test_split(x, y, y_onehot, test_size=0.3, random_state=seed)  def main():    x_train, x_test, y_train, y_test, y_train_hot, _ = build_data()    teacher = TeacherNet()    soft_targets = teacher.predict(x_train, temperature=3.0)     st_hard = StudentNet()    st_soft = StudentNet()    for _ in range(300):        st_hard.update(x_train, y_train_hot)        st_soft.update(x_train, soft_targets)     acc_hard = (st_hard.forward(x_test).argmax(1) == y_test).mean()    acc_soft = (st_soft.forward(x_test).argmax(1) == y_test).mean()    print("student A (hard label)  test acc: %.3f" % acc_hard)    print("student B (soft label)  test acc: %.3f" % acc_soft)  if __name__ == "__main__":    main()
目的:演示知识蒸馏的核心思想——学生模型学习教师的软标签,比直接学习硬标签获得更高的准确率。
  1. soft_targets = teacher.predict(x_train, temperature=3.0)教师模型在温度 3.0 下输出软标签,保留类别间的相似度信息
  2. return softmax(logits / temperature)先除以温度再 softmax,这是蒸馏的标准“软标签生成”写法
  3. st_soft.update(x_train, soft_targets)学生直接以软概率分布为学习目标,等价于蒸馏损失中的教师项
  4. grad = (prob - target) / len(x)softmax 回归的交叉熵梯度;目标为软分布时梯度更平滑,学习过程更稳
  5. acc_hard = (st_hard.forward(x_test).argmax(1) == y_test).mean()用测试集准确率对比硬标签与软标签训练的差距

常见误区

误区Gemma 不是 Gemini 的“压缩版”吗?直接把大模型的参数剪掉一些,或者缩小层数,不就得到一个小号 Gemini 吗?

正解Gemma 并不是通过剪枝或裁剪得到的。它是从头训练的独立模型,只是训练过程中把 Gemini 当“教师”,用知识蒸馏把大模型的判断能力迁移过来。剪枝是在已有模型上删减结构,而蒸馏是让新模型“学习”教师的输出分布,两者路径完全不同。

为何常见:官方宣传“基于 Gemini 技术”容易让人望文生义,以为直接对大模型动刀就行。

误区多查询注意力(MQA)听名字像“减少查询”,那应该把注意力头从 8 个减到 2 个,模型变小,速度更快?

正解MQA 完全不减少头的数量,查询头(Q)该有多少还是多少,只是所有头共享同一组 K 和 V 投影矩阵。就像八个侦探共用一份案卷库,但各自调查的角度不同。KV 缓存从 8 份变成 1 份,这是显存收益的来源。

为何常见:名称中“多头”和“共享”两个概念容易混淆,且很多人没接触过 KV 缓存机制。

误区位置编码不就是给每个词一个绝对编号吗?那模型最多只能处理训练时见过的长度,超过就没见过,肯定不行。

正解RoPE 是相对位置编码——两个词的内积只依赖它们之间的距离 n−m。这意味着模型学到的是“相邻 vs 相隔很远”的关系模式,而不是某个绝对坐标的查表;因此它对超过训练长度的序列有一定的外推能力,能“超纲发挥”。

为何常见:人们习惯把位置理解为“第几个字”的绝对编号,忽略了旋转矩阵推导后内核是相对距离。

误区Google 把 Gemma 开源了,那我随便拿去商用、改个名发布都行吧?

正解Gemma 采用 Google 自定义的模型使用条款,虽然权重对外开放,但对商用场景、月活用户规模、特定用途(如军事)有限制条件。开发者商用前必须仔细阅读条款,否则可能面临合规风险。开源不等于无限制。

为何常见:近年开源大模型的宣传让很多人把“开放权重”等同于“完全自由”,忽略了许可证的细节约束。

误区既然蒸馏这么厉害,Gemma 7B 应该能打平 Gemini 吧?小模型逆袭大模型,岂不美哉?

正解知识蒸馏能让学生模型在常规任务上接近甚至追平教师,但受参数容量限制,在复杂推理、长链规划、创意生成等高难度任务上,小模型仍与千亿级大模型有明显差距。蒸馏的价值是“在成本受限时获得够用能力”,而非取代大模型。

为何常见:媒体常报道“小模型超越大模型”的局部实验结果,让人忽略了任务难度和评估范围的局限。

面试题

Q1. Gemma 系列模型发布了哪两种参数规格?

单选题 · easy

  • A.1B 与 3B
  • B.2B 与 7B← 正确答案
  • C.3B 与 8B
  • D.4B 与 13B

答案:B。Gemma 家族有两位成员:Gemma 2B 和 Gemma 7B,对应“小徒弟贴身端侧、大徒弟坐镇服务器”的双规格定位。1B/3B 或 4B/13B 是其他模型家族的常见尺寸,不是 Gemma 的配置。

Q2. 知识蒸馏中,“软标签”与“硬标签”的本质区别是什么?

单选题 · easy

  • A.软标签包含类别关联信息← 正确答案
  • B.软标签不用训练就能得到
  • C.硬标签的数值更精确
  • D.软标签仅用于图像任务

答案:A。软标签是大模型输出的完整概率分布,比如“猫 90%、老虎 6%、豹 3%”,那 10% 的尾巴里藏着类别相似度信息;硬标签只有一个确定的 0/1 答案。就像师傅的“三分力七分巧”,分寸感只能从完整分布里领悟。

Q3. 关于蒸馏温度 T(T>0),下列说法正确的是?

多选题 · mid

  • A.T 越小,输出分布越尖锐← 正确答案
  • B.T 越大,软标签越平滑← 正确答案
  • C.T 取 0 时,softmax 无定义← 正确答案
  • D.T 不影响学生模型训练

答案:ABC。温度是软标签的“平滑度旋钮”:T 越小,logits 除以 T 后差距越大,分布越尖锐,接近 one-hot;T 越大,分布越平缓柔和;T=0 时出现除零,公式无定义。D 明显错误——温度正是蒸馏训练中最关键的超参。

Q4. 标准多头注意力中每个头有独立的 K、V 投影矩阵,MQA 的核心改动是什么?

单选题 · mid

  • A.去掉所有 K 和 V 只保留 Q
  • B.K 和 V 只在多头之间共享← 正确答案
  • C.Q 和 K 共享、V 独立
  • D.Q 仅采用单一头来计算

答案:B。MQA 保留每个头的 Q 独立投影,但所有头共享同一组 K、V 投影。全部 Q 共用一份“图鉴”,KV 缓存从 8 份变成 1 份,显存大幅节省。去掉 KV 或只用一个 Q 头都不是 MQA,而是其他残缺架构。

Q5. MQA 最大的工程收益是什么?

单选题 · mid

  • A.显著减少 KV 缓存显存← 正确答案
  • B.完全消除训练数据偏差
  • C.支持任意长度的输入
  • D.大幅提高模型参数量

答案:A。推理时每生成一个 token 都要追加 KV 缓存,标准多头要存 h 份,MQA 只存 1 份,以 8 头计算省下 87.5%。这正是轻量模型能跑长对话的关键。MQA 与数据偏差、输入长度上限、参数量大小没有直接关系。

Q6. 关于 RoPE 旋转位置编码,以下说法正确的是?

多选题 · mid

  • A.通过旋转矩阵添加位置信息← 正确答案
  • B.内积依赖两词相对位置← 正确答案
  • C.旋转角度靠网络训练得到
  • D.支持超出训练长度的外推← 正确答案

答案:ABD。RoPE 用预定义的旋转矩阵(θ_i = 10000^(−2i/d))给向量“转身”,内积结果只依赖位置差 n−m,所以能外推到训练长度之外。C 错误——旋转角度是数学公式预定义好的,不需要训练学习,这也是 RoPE 不引入额外参数的原因。

Q7. 知识蒸馏损失中,KL 散度项解决什么问题?

单选题 · easy

  • A.让学生贴近教师软标签← 正确答案
  • B.压缩模型的存储空间
  • C.加快训练数据的加载
  • D.提升模型推理速度

答案:A。KL 散度衡量学生分布与教师分布的差异,最小化它就是在“让学生学得像师傅”。压缩存储、加速加载、提升推理速度都是部署阶段的工程问题,跟蒸馏损失没有直接关联。

Q8. 旋转位置编码中,维度越高对应的旋转频率如何变化?

单选题 · hard

  • A.越低,捕捉远距离关系← 正确答案
  • B.越高,旋转速度越快
  • C.所有维度频率一致
  • D.频率随训练动态改变

答案:A。RoPE 的频率按 θ_i = 10000^(−2i/d) 递减:低维度旋转快、负责近距离细节,高维度旋转慢、负责远距离依赖。这种多尺度频率设计与信号处理中的正弦编码思路一脉相承,且全部预定义,不随训练更新。

Q9. 将 Gemma 2B 部署到手机端,常用哪些优化手段?

多选题 · hard

  • A.int4 量化压缩权重大小← 正确答案
  • B.借助 MQA 降低 KV 缓存← 正确答案
  • C.用更大上下文代替蒸馏
  • D.使用 MediaPipe 等端侧框架← 正确答案

答案:ABD。端侧部署三板斧:量化(int4 让 2B 权重压缩到约 1GB)、MQA(共享 KV 缓存降低长对话内存压力)、专用推理框架(MediaPipe/llama.cpp 做了算子级优化)。C 项毫无道理——上下文长度与模型压缩无关,蒸馏是训练阶段的事。

Q10. Gemma 训练流程中,RLHF 阶段解决的核心问题是什么?

单选题 · hard

  • A.对齐人类偏好回答← 正确答案
  • B.减少模型参数量
  • C.数据去重与过滤
  • D.提升文本生成速度

答案:A。RLHF(基于人类反馈的强化学习)让模型在“正确”之上更进一步——学会人类偏好的表达风格、语气和价值取向,相当于师傅带徒弟实战对练。数据清洗发生在预训练阶段,参数量和推理速度与 RLHF 无关。