参数量
是什么:
参数是神经网络中的“记忆细胞”,具体表现为数学运算中的权重($W$)和偏置($b$)。它们是模型在成千上万次训练后沉淀下来的“经验”。一个 70B 的模型意味着它有 700 亿个这样的数字节点。
有什么作用:
参数的作用是存储知识和计算逻辑。在推理(生成回答)时,输入的问题会经过这几百亿个参数的乘加运算,最终转换成合理的回答。
为什么需要这个东西:
参数量直接决定了模型的“智商上限”和“知识容量”。参数越少,模型只能死记硬背简单的规律;参数越多,模型就能拟合极度复杂的逻辑和海量的世界知识。
举一个栗子:
类比:厨师的经验值。
解释:一个只有 10 万参数的模型,就像刚入行的学徒,脑子里只有“番茄炒蛋”这几个死菜谱;而 700 亿(70B)参数的大模型,就像是拥有几十年经验的米其林大厨,脑子里有无数种食材搭配的化学反应。你给他任何冷门食材(生僻问题),他都能调动脑海中庞大的经验库(参数),炒出一盘好菜。
计算
对于一个标准的 Transformer 层: 1. 多头注意力参数: Q, K, V 权重: 3 × d_model × d_model 输出投影: d_model × d_model 总计: 4 × d_model² 2. FFN 参数: 第一层: d_model × (4 × d_model) 第二层: (4 × d_model) × d_model 总计: 8 × d_model² 3. 一层总参数 ≈ 12 × d_model² 举例(LLaMA-70B): d_model = 8192, n_layers = 80 一层 ≈ 12 × 8192² ≈ 8.05 亿参数 总共 ≈ 80 × 8.05 亿 + 嵌入层 ≈ 700 亿参数
参数在训练和推理中的角色
| 训练阶段 | 推理阶段 | |
|---|---|---|
| 参数变化 | 每步都在更新(W 在学习) | 固定不变 |
| 计算方向 | 正向 + 反向传播 | 仅正向传播 |
| 核心工作 | 梯度下降找到最优 W | 用固定的 W 计算输出 |
涌现能力(Emergent Abilities)
是什么:当模型的规模(参数量、训练数据、算力)突破某一个临界点时,模型会突然展现出它在小规模时完全没有的、且未经专门训练的高级能力(如逻辑推理、写代码、幽默感)。这是一种“量变引起质变”的现象。
有什么作用:让模型从一个单纯的“文本接龙机器”变成了一个“通用问题求解器”。它让模型能够触类旁通,做到举一反三(Few-Shot 或 Zero-Shot)。
为什么需要这个东西:因为人类不可能穷尽世界上所有的任务去专门训练模型。我们迫切需要模型具备“泛化”能力,只要学了足够多的基础知识,就能自发地解决从未见过的新问题。
举一个例子:
类比:学外语与写诗。
解释:假设你在学英语。当你只掌握了 100 个单词时,你只能结结巴巴地点个汉堡;当你掌握了 1000 个单词时,你能勉强看懂路标。但这都是线性增长。直到有一天,你掌握了 20000 个单词和复杂的语法(规模突破阈值),你突然发现自己不仅能流畅交流,还能用英语写出一首押韵的诗!“写诗”的能力并没有人专门教过你,它是你词汇量大到一定程度后,自然“涌现”出来的。
概念解析
涌现的阶段: ~1.25 亿参数 ──→ 基础语言能力(文本连贯、简单问答) 相当于"摆摊" ~67 亿参数 ──→ 上下文学习、初步复杂推理、Few-Shot 能力 相当于"经营一家公司" ~600-1000 亿参数 ──→ 思维链推理、多步数学、高级常识推理 相当于"管理集团公司"
为什么涌现会发生
1. 深度模式匹配
小模型只学会表面统计关联("因为所以"后面常接"科学道理")。大模型能够将知识编码为嵌套的、多层次的抽象模式,从而模拟出推理过程。
2. 压缩压力
为了在有限参数内高效表示万亿 Token 的数据,模型被迫学习最经济的表示方式。这种压力迫使模型学习通用算法和抽象逻辑,而不是死记硬背。
3. 任务统一性
NTP 目标逼着模型解决所有潜在问题。要准确预测一段代码的下一个符号 → 必须学会编程语法。要预测一个数学题的下一步 → 必须学会数学推理。
规模是因,抽象能力是果,涌现是现象。
MoE(混合专家)架构
是什么:MoE(Mixture of Experts)是一种稀疏激活的神经网络架构。它把原本铁板一块的计算层拆分成多个专精不同领域的“专家网络”,并引入一个“路由器(Router)”来给输入的内容进行分发。
有什么作用:它打破了“参数量越大,计算越慢”的死局。让模型在保持极大总参数量(知识极其渊博)的同时,每次回答问题只动用一小部分参数(计算极快)。
为什么需要这个东西:Dense(稠密)模型太笨重了。如果你问一个 700 亿参数的 Dense 模型“1+1 等于几”,它依然要把所有 700 亿个参数全算一遍,极度浪费算力。MoE 让大模型学会了“杀鸡不用牛刀”。
举一个栗子:
类比:三甲医院的科室与导诊台。
解释:传统的 Dense 模型就像一个全科大夫,你看个感冒他要把你全身上下、心肝脾肺肾全查一遍(所有参数跑一遍),累且慢。而 MoE 模型就像一座大型三甲医院。你(输入 Token)走进去,先遇到导诊台(Router 路由器),护士看你是骨折,就直接把你分派给骨科专家和放射科专家(只激活 Top-2 的专家)。医院里虽然有上百个专家(总参数极大),但每次为你服务的只有相关的几个,既专业又高效。
概念解析
输入 Token │ ▼ 门控网络(Router) 给每个专家打分 │ │ │ │ ▼ ▼ ▼ ▼ 专家 1 专家 2 专家 3 专家 4 (数学) (代码) (医学) (法律) │ │ 只激活 Top-2 │ │ ▼ ▼ 合并输出
对比
Dense 模型的困境:处理一个简单的"1+1=?"也需要 700 亿参数全部转一遍 → 浪费算力、推理慢。
MoE 解法:只激活最相关的少数专家(如 10%),其他 90% 不动。这样总参数量可以做到万亿级,但每次推理的计算量只相当于一个中小模型。
作用
知识容量大(万亿参数)
推理速度相对快(每次只激活 10%)
成本低(同样的算力可以训练更大的模型)
补充:MoE 的工程挑战
负载均衡:防止"一个专家累死,其他专家闲死"。Router 可能总是选专家 1 → 需要额外的均衡损失
通信开销:不同专家可能在不同 GPU 上 → 需要跨 GPU 通信
训练不稳定:Router 的离散选择导致训练波动 → 需要辅助损失来稳定
MoE 可以类比前端的 SPA 单页面路由——按需加载,提升了性能但也增加了技术复杂度。
量化(Quantization)
是什么:量化是一种模型压缩技术。它通过降低参数数值的存储精度(比如把 32 位浮点数砍成 8 位甚至 4 位整数),来大幅缩小模型的体积。
有什么作用:它能成倍地降低模型对显存(VRAM)的占用,同时加快内存的读取速度(因为要搬运的数据变小了)。
为什么需要这个东西:因为大模型太大了!部署原始模型通常需要极其昂贵的专业服务器显卡集群(比如 8 卡 A100)。量化技术让大模型能够“飞入寻常百姓家”,跑在普通的消费级显卡、Mac 甚至手机上。
举一个栗子 :
类比:精简菜场的报价单。
解释:以前菜场的报价单极其精确(FP32 高精度),白菜是 1.234567 元一斤。这需要极大的账本(显存)来记。后来大家发现,其实只要记“白菜 1.2 元”或者“白菜约 1 元”(Int8 或 Int4 量化)就足够指导买卖了。虽然损失了一丁点微不足道的精度,但账本体积缩小了 4 倍以上,普通人的小口袋(个人电脑)也能装得下了。
概念解析
700 亿参数模型的大小: FP32: 70B × 4 bytes = 280 GB ← 训练时用 FP16: 70B × 2 bytes = 140 GB ← 推理时常用 Int8: 70B × 1 byte = 70 GB ← 量化后 Int4: 70B × 0.5 bytes = 35 GB ← 大幅压缩(有精度损失) 一台 MacBook Pro(64GB 统一内存)能跑 Int4 量化的 70B 模型
为什么需要
FP16 的 70B 模型需要 140GB 显存,一块 A100 80GB 根本装不下(需要两块)。Int4 压缩到 35GB 后,一块高端显卡就能跑。
原理
量化不是简单截断小数,而是重新映射数值范围:
原始 FP16 值: [−3.2, −1.5, 0.0, 2.3, 4.7, ...] ↓ 量化 Int8 值: [−67, −32, 0, 48, 100, ...] (映射到 [-128, 127]) ↓ 反量化(推理时恢复) 近似值: [−3.18, −1.52, 0.0, 2.28, 4.75, ...] ← 微小精度损失
蒸馏(Distillation)
是什么:蒸馏是一种知识传递的训练方法。用一个极其强大但笨重的大模型(Teacher)去教一个非常小巧的模型(Student),让小模型学到大模型的思维方式,从而在较小的体量下达到惊人的表现。
有什么作用:它能打造出“小而美”的模型。这些小模型具备极快的推理速度和极低的运行成本,同时保留了大模型很大一部分的聪明才智。
为什么需要这个东西:量化虽然能压缩模型,但模型本身的结构和计算复杂度没变。对于手机端或极高并发的商业应用场景,我们需要真正体积小、速度快的原生小模型,而通过大模型蒸馏出来的学生模型,比从头瞎练的小模型要聪明得多。
举一个例子:
类比:武林宗师传功给聪明的徒弟。
解释:徒弟(小模型)不需要像师傅(大模型)那样去少林寺扫地三十年、看遍天下武功秘籍(海量训练数据)。师傅在教徒弟时,不仅告诉他“这招应该出右拳(硬标签)”,还会把自己的经验倾囊相授:“其实出左拳也能防守,但破绽会有 10%,踢腿绝对不行,破绽 90%(这是软标签的概率分布)”。徒弟吸收了师傅一辈子的直觉和经验,虽然内力(参数量)不如师傅深厚,但在应对日常对决时,已经有宗师的风范了。
概念解析
教师模型(大): GPT-4 级别,万亿参数 准确率高,但推理慢、部署贵 学生模型(小): 几亿到几十亿参数 推理快、成本低,但直接训练效果差 蒸馏: 让学生模型学习教师模型的"决策方式" → 不是只告诉学生答案(硬标签) → 而是告诉学生教师对每个选项的把握(软标签)
为什么需要
大模型效果好但太贵(一次推理几美分),小模型便宜但效果差。蒸馏折中:效果接近大模型,成本接近小模型。
原理:硬标签 vs 软标签
问题: "法国的首都是?" 硬标签(独热编码,one-hot): 巴黎: 1.0, 伦敦: 0.0, 柏林: 0.0, 罗马: 0.0 ↑ 只告诉学生"正确答案是巴黎" 软标签(教师模型的概率分布): 巴黎: 0.85, 伦敦: 0.08, 柏林: 0.05, 罗马: 0.02 ↑ 告诉学生: - 巴黎肯定是正确答案(0.85) - 但伦敦(0.08)也值得考虑(都是欧洲首都) - 柏林和罗马也有一定分值(都是首都城市) → 学生学到了教师"推理的倾向",而不只是答案
量化 vs 蒸馏
| 量化 | 蒸馏 | |
|---|---|---|
| 本质 | 降低参数精度 | 迁移知识 |
| 模型结构 | 不变 | 改变(变小) |
| 参数数量 | 不变 | 减少 |
| 时机 | 训练完成后 | 训练过程中 |
| 类比 | 压缩图片 (BMP→JPEG) | 师傅带徒弟 |
| 精度损失 | 有,但可控 | 有,但可接受 |