简单学习 --> 模型参数

参数量

是什么:

参数是神经网络中的"记忆细胞",具体表现为数学运算中的权重(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 的工程挑战

  1. 负载均衡:防止"一个专家累死,其他专家闲死"。Router 可能总是选专家 1 → 需要额外的均衡损失

  2. 通信开销:不同专家可能在不同 GPU 上 → 需要跨 GPU 通信

  3. 训练不稳定: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) 师傅带徒弟
精度损失 有,但可控 有,但可接受
相关推荐
cdbqss11 小时前
VB2026 菜单生成基类 BqGetMenuStrip
数据库·经验分享·学习·oracle·vb
吃好睡好便好3 小时前
创建魔方矩阵和单位矩阵
开发语言·人工智能·学习·线性代数·matlab·矩阵
星夜夏空993 小时前
STM32单片机学习(21) —— I2C通信
stm32·单片机·学习
searchforAI5 小时前
B站视频转笔记用哪个工具?2026年四款AI笔记工具对比实测
人工智能·经验分享·笔记·gpt·学习·视频总结·ai笔记
爱上好庆祝6 小时前
学习JS第十一天(JS的进阶)
前端·javascript·学习
清水寺小和尚6 小时前
从零手写到框架抽象:Tool Calling 完全实战指南
llm
yeiweilan6 小时前
AI应用学习
学习
吃好睡好便好6 小时前
矩阵的加减运算
开发语言·人工智能·学习·线性代数·算法·matlab·矩阵
Mister西泽6 小时前
C++ Primer Plus 第六版 编程练习题及详细答案
开发语言·c++·学习·visual studio