模型参数解密:7B、13B、70B、671B 到底意味着什么
模型参数解密:7B、13B、70B、671B 到底意味着什么
《大模型知识与部署》系列 · No.03 / 35
适合人群:AI 工程师、后端开发、技术决策者
阅读时间:约 25 分钟

写在前面
在第 1 篇我们做了大模型生态全景,在第 2 篇我们拆解了 Transformer 的骨架。这一篇,我们来聊一个最常被问、最常被误解的话题:
模型参数量到底意味着什么?
如果你做大模型工程,下面这些对话你一定不陌生:
产品:「咱们用 7B 还是 13B?」
老板:「DeepSeek 那个 671B 听起来很猛,咱们能跑吗?」
运维:「这个 70B 单卡能跑吗?要几张 H100?」
算法:「这个场景 7B 够不够?要不要上 32B?」
每一个问题,背后都隐藏着对参数量与工程现实的对应关系的认知缺失。
很多人以为「参数量」就是一个简单的数字——7B、13B、70B 越大越好。但实际上:
- 同样是 70B,FP16 和 INT4 的显存差 4 倍
- 同样标着 671B,DeepSeek V3 真正激活的只有 37B
- 同样能跑 70B,A100 和 H100 的吞吐差 3-5 倍
- 小模型不一定弱——Qwen-3-32B 已经能干掉早期的 Llama-2-70B
读完这一篇,你将能回答:
- 一个 N B 的模型,参数从哪里来?怎么估算?
- 跑这个模型需要多少显存?训练呢?
- 它需要多少算力?训练成本和推理成本怎么算?
- 不同场景下,到底该选多大的模型?
- Dense 和 MoE 的参数账,区别在哪里?
我们开始。
一、为什么「7B」是一个被简化的数字
1.1 一个混乱的现状
打开 HuggingFace,你会看到这样的命名:
meta-llama/Llama-3-8B
meta-llama/Llama-3-8B-Instruct
meta-llama/Llama-3-8B-Instruct-AWQ-INT4
Qwen/Qwen3-72B
Qwen/Qwen3-72B-MoE-A14B
deepseek-ai/DeepSeek-V3
deepseek-ai/DeepSeek-V3-Base
光看名字,你大概能猜到几个数字:8B、72B、A14B、V3。但每个数字背后的工程含义截然不同:
| 名字 | 实际意义 |
|---|---|
Llama-3-8B |
8B 总参数 Dense 模型,FP16 推理时占 16 GB |
Llama-3-8B-Instruct-AWQ-INT4 |
同样 8B,但 4-bit 量化后只占 5 GB |
Qwen3-72B-MoE-A14B |
72B 总参数,但每次只激活 14B(A=Activated) |
DeepSeek-V3 |
671B 总参数,每次激活 37B |
关键认知:"参数量"是一个被简化的描述,它至少需要附带三个补充信息才有工程意义:
- 架构类型:Dense 还是 MoE?激活参数是多少?
- 数据精度:FP32 / FP16 / BF16 / INT8 / INT4?
- 包含哪些参数:是否含 Embedding?是否含 LM Head?
1.2 这些问题为什么重要
抛开虚的,工程师真正关心的是:
给我一张 GPU(或一个集群),我能跑动什么规模的模型?吞吐和延迟是多少?训练这个模型要多少钱?
参数量是回答上面所有问题的第一个输入。但只看参数量是不够的——你还需要把它和:
- 显存(决定能不能跑)
- 算力(决定有多快)
- 上下文长度(决定能处理多长输入)
- 量化策略(决定占多少资源)
结合起来,才能得到一个可操作的工程答案。
这一篇我们就把这套账,一笔一笔算清楚。
二、参数量从哪里来:拆解大模型的「肚子」
2.1 一个 Transformer Block 的参数构成
回忆第 2 篇我们讲过的 Transformer Block 结构:
输入 x → LayerNorm → Self-Attention → ⊕ → LayerNorm → FFN → ⊕ → 输出
每个 Block 里有参数的地方就两处:Self-Attention 和 FFN(LayerNorm 的参数极少可以忽略)。
设隐藏维度为 d:
Self-Attention 的参数:
Q 投影矩阵:d × d
K 投影矩阵:d × d
V 投影矩阵:d × d
O 投影矩阵:d × d
─────────────────
合计:4d²
FFN 的参数(以 SwiGLU 为例,主流大模型用这个):
W_gate:d × d_ff
W_up:d × d_ff
W_down:d_ff × d
─────────────────
合计:3 × d × d_ff
实际工程上 d_ff ≈ 8/3 × d(Llama 系列)或者 d_ff = 4d(早期 GPT),所以 FFN 部分大致 8d² 到 12d²。
单层合计:约 4d² + 8d² = 12d² ~ 16d²
2.2 整个模型的参数预算
加上 Embedding 和 LM Head(输入和输出的词表映射),一个 L 层、隐藏维度 d、词表大小 V 的 Dense 模型,参数估算公式:
N ≈ L × (12 ~ 16) × d² + 2 × V × d
↑─── Transformer Blocks ───↑ ↑── Embedding ──↑
我们用这个公式验证几个真实模型:
Llama-3-8B:
- L = 32, d = 4096, V ≈ 128K, FFN 是 SwiGLU(d_ff = 14336)
每层 attention 参数(GQA, 8 KV heads):
- Q: 4096 × 4096 ≈ 16.8M
- K: 4096 × 1024 ≈ 4.2M(GQA 把 KV head 数减少了)
- V: 同 K
- O: 4096 × 4096 ≈ 16.8M
- 合计:≈ 42M
每层 FFN:
- 3 × 4096 × 14336 ≈ 176M
每层合计:≈ 218M
32 层:≈ 7 B
加 Embedding (128K × 4096) + LM Head ≈ 1 B
总计:≈ 8 B ✓
Llama-3-70B:
- L = 80, d = 8192, num_heads = 64, kv_heads = 8
每层 attention ≈ 134M
每层 FFN(d_ff = 28672)≈ 704M
每层合计 ≈ 838M
80 层 ≈ 67 B
加 Embedding 等 ≈ 3 B
总计:≈ 70 B ✓
DeepSeek-V3(MoE):
- L = 61, d = 7168, 256 个专家(每个 token 激活 8 个)
- 单个专家 FFN ≈ 2048 维度的小 FFN
这就涉及到一个新概念了——Dense 和 MoE 的参数账要分两本。
2.3 Dense vs MoE:参数账分两本
回忆第 2 篇我们提到的:FFN 占了 Dense 模型 70% 以上的参数。MoE 的核心思想是:
把一个巨大的 FFN,拆成 N 个小 FFN(叫"专家"),每个 token 只激活其中几个。
Dense 模型(如 Llama-3-70B):
- 总参数 = 激活参数 = 70B
- 每个 token 走过所有参数
MoE 模型(如 DeepSeek-V3):
- 总参数 = 所有专家 + 共享层 = 671B
- 激活参数 = 每个 token 实际用到的 ≈ 37B
- 每个 token 只走过部分专家
工程上为什么这样设计?
- 模型容量 ≈ 总参数(决定知识储量)
- 推理算力 ≈ 激活参数(决定计算量)
- 结论:MoE 让你用"小模型的推理成本"换"大模型的知识储量"
但它不是免费午餐:
| 视角 | Dense 70B | MoE 671B/A37B |
|---|---|---|
| 推理算力 | 高(全参数过一遍) | 低(只激活 37B) |
| 推理显存 | 中(140 GB FP16) | 高(1.3 TB FP16,要装全部专家) |
| 部署门槛 | 中(2 张 H100 够用) | 高(需要 8+ H100 集群) |
| 训练复杂度 | 低 | 高(路由算法、专家负载均衡) |
👉 MoE 的工程细节、专家路由、负载均衡,详见 系列第 31 篇:MoE 架构深度解析。
2.4 一张表看清主流模型
我们把主流模型放在一起,方便建立"参数→规模"的直觉:
| 模型 | 类型 | 总参数 | 激活参数 | 层数 L | 隐藏维度 d | 用途 |
|---|---|---|---|---|---|---|
| Qwen3-0.6B | Dense | 0.6B | 0.6B | 28 | 1024 | 端侧 |
| Phi-4 | Dense | 3.8B | 3.8B | 32 | 3072 | 端侧/笔记本 |
| Llama-3-8B | Dense | 8B | 8B | 32 | 4096 | 单卡推理 |
| Qwen3-14B | Dense | 14B | 14B | 40 | 5120 | 单卡推理 |
| Qwen3-32B | Dense | 32B | 32B | 64 | 5120 | 单卡 H100 |
| Llama-3-70B | Dense | 70B | 70B | 80 | 8192 | 双卡 H100 |
| Mixtral 8x22B | MoE | 141B | 39B | 56 | 6144 | 中型集群 |
| Qwen3-A22B-MoE | MoE | 235B | 22B | 94 | 5120 | 中型集群 |
| DeepSeek-V3 | MoE | 671B | 37B | 61 | 7168 | 大型集群 |
记住几个锚点数字——以后看到任何模型,先用这张表对照:
- 7-8B:边缘/单卡级别
- 13-14B:中型单卡
- 30-32B:单 H100 极限
- 70B:双卡 H100 起步
- 200B+ MoE:进入集群部署
三、参数对应的工程账:显存、算力、成本
理解了参数从哪来,下面进入工程师最关心的部分——这些参数实际"吃"多少资源。
3.1 显存账:能不能跑的根本问题
部署一个大模型时,显存被四部分吃掉:
推理显存 = 模型权重 + KV Cache + 激活值 + 框架 Buffer
训练显存 = 模型权重 + 梯度 + 优化器状态 + 激活值 + KV Cache
模型权重:直接乘 dtype 大小
不同精度的"字节单价":
| 精度 | 每参数字节数 | 备注 |
|---|---|---|
| FP32 | 4 | 训练时常用,推理几乎不用 |
| FP16 / BF16 | 2 | 标准推理精度 |
| INT8 / FP8 | 1 | 主流量化精度 |
| INT4 / NF4 | 0.5 | 极限压缩,端侧常用 |
模型权重显存 = 参数量 × 每参数字节数
举例(FP16):
| 模型 | 参数量 | FP16 显存 | INT8 显存 | INT4 显存 |
|---|---|---|---|---|
| Llama-3-8B | 8B | 16 GB | 8 GB | 4 GB |
| Llama-3-70B | 70B | 140 GB | 70 GB | 35 GB |
| DeepSeek-V3 | 671B | 1342 GB | 671 GB | 336 GB |
⚠️ MoE 模型的显存陷阱
DeepSeek-V3 虽然只激活 37B 参数,但推理时所有专家的权重都必须在显存里(你不知道下一个 token 会路由到哪些专家)。所以 671B 占 1.3 TB(FP16)跑不掉。
KV Cache:上下文越长,吃得越凶
第 2 篇推导过的公式:
KV_cache = 2 × batch × seq_len × num_layers × num_kv_heads × head_dim × dtype_size
以 Llama-3-70B、batch=1、上下文 32K、FP16 为例:
2 × 1 × 32768 × 80 × 8 × 128 × 2 ≈ 10.7 GB
如果 batch 提到 8,就是 85.6 GB——比模型权重显存(70B INT8 = 70 GB)还多。
这就是为什么所有推理框架都把 KV Cache 量化(FP8 / INT8) 当作重要优化。
训练显存:更复杂
训练时除了权重和激活值,还有 梯度 和 优化器状态:
权重 (FP16): N × 2 bytes
梯度 (FP16): N × 2 bytes
优化器状态 (AdamW): N × 8 bytes (两组 moments × FP32)
激活值: 和 batch、seq_len 强相关
────────────────────────────────
合计 ≈ 12N + 激活值
对一个 70B 模型,光这三部分就要 70 × 12 = 840 GB——远超任何单卡。所以训练 LLM 必须分布式(ZeRO / FSDP / TP / PP),具体见 系列第 6 篇:预训练全流程 和 第 20 篇:分布式推理。
一张显存总览表
单 H100(80 GB)能跑什么(FP16 推理 + KV Cache, batch=4, seq=4K):
| 模型 | 权重 | KV Cache | 合计 | H100-80G 能跑? |
|---|---|---|---|---|
| Llama-3-8B | 16 GB | 1.3 GB | ~18 GB | ✓ 富余 |
| Qwen3-32B | 64 GB | 6 GB | ~72 GB | ✓ 紧张 |
| Llama-3-70B FP16 | 140 GB | 11 GB | ~152 GB | ✗ 需要 2 张 |
| Llama-3-70B INT8 | 70 GB | 6 GB | ~78 GB | ✓ 极限 |
| Llama-3-70B INT4 | 35 GB | 6 GB | ~42 GB | ✓ 富余 |
| DeepSeek-V3 INT8 | 671 GB | 较大 | >700 GB | ✗ 需要 8-16 卡 |
3.2 算力账:要多快、训多久
推理算力:每生成一个 token 多少 FLOPS
工程上有一个粗略但好用的公式:
推理 FLOPS / token ≈ 2 × N_active
其中 N_active 是激活参数。这个公式忽略了 attention 的 O(seq²) 部分,但 prompt 不超长时基本够用。
举几个数字(每生成 1 个 token 的 FLOPS):
- Llama-3-8B:2 × 8B = 16 GFLOPS
- Llama-3-70B:2 × 70B = 140 GFLOPS
- DeepSeek-V3:2 × 37B = 74 GFLOPS(注意是激活参数)
H100 SXM 的算力:约 989 TFLOPS(FP16)。理论上一秒能算:
- Llama-3-70B:989T / 140G ≈ 7000 tokens/s(单序列峰值)
- DeepSeek-V3:989T / 74G ≈ 13000 tokens/s
但实际部署受 显存带宽(不是算力)限制,因为推理是 memory-bound:
实际推理速度 ≈ 显存带宽 / 模型权重大小
H100 显存带宽 ≈ 3.35 TB/s,跑 Llama-3-70B INT8(70 GB):
3.35 TB/s / 70 GB ≈ 48 tokens/s(单序列)
这就是为什么并发批处理(Continuous Batching)至关重要——多个请求共享一次权重读取,能把 GPU 利用率从 5% 拉到 80%+。
👉 详见 系列第 11 篇:推理加速三板斧。
训练算力:经典公式 6ND
Chinchilla 论文给出了训练总算力的估算:
训练 FLOPS ≈ 6 × N × D
其中:
- N:模型参数量
- D:训练 token 数
经验法则(Chinchilla 定律):当算力固定时,最优的 D ≈ 20 × N。
举例:
- Llama-3-70B 训练用了 15 T tokens
- 训练 FLOPS ≈ 6 × 70B × 15T = 6.3 × 10²⁴ FLOPS = 6.3 ZFLOPS
一张 H100 SXM 一年算力 ≈ 989 TFLOPS × 86400 × 365 × 0.4(利用率)≈ 1.25 × 10²² FLOPS
所以训练 Llama-3-70B 需要 约 500 张 H100 跑一年——和官方公开的数字(~6.4 M H100 小时 ≈ 730 卡年)量级吻合。
3.3 成本账:训练 vs 推理
训练成本
把 GPU 小时 × 单价就能估算:
| 项目 | GPU 小时 | 单卡价格(市场租赁) | 训练成本 |
|---|---|---|---|
| Llama-3-70B | ~6.4M H100 小时 | $2/小时 | ~$13M |
| DeepSeek-V3 | ~2.8M H800 小时 | $2/小时 | $5.6M ⭐ |
| GPT-4 | 估算 ~50M H100 小时 | $2/小时 | ~$100M+ |
DeepSeek V3 的 557 万美元 之所以震撼,是因为它用相对较少的算力做出了顶级效果——核心靠的是 MoE 架构 + 算法优化。
👉 详见 系列第 6 篇:预训练全流程。
推理成本
主流 API 单价(每 100 万 token,2026 年 5 月参考):
| 模型 | 输入 | 输出 | 备注 |
|---|---|---|---|
| Claude Opus 4.7 | $15 | $75 | 顶级 |
| GPT-5 | $10 | $40 | 旗舰 |
| Claude Sonnet 4.6 | $3 | $15 | 平衡 |
| Gemini 2.5 Pro | $2.5 | $10 | 长上下文便宜 |
| Gemini 2.5 Flash | $0.15 | $0.6 | 廉价大流量 |
| DeepSeek V3 API | $0.27 | $1.1 | 极致性价比 |
| 自部署 Llama-3-70B INT8 | ~$0.5 | ~$2 | 含 GPU 折旧 |
一个关键判断:如果你的业务量已经稳定,且月度 API 账单 > $5K,自部署开源模型几乎一定能省钱。具体的 TCO 测算见 系列第 25 篇。
四、选型决策:什么场景用什么规模
讲了一堆数字,最终落到工程师最常做的事——选型。
4.1 按显卡来选
给定你手头有的卡,能跑多大模型(INT8 推理为基准):
| 显卡 | 显存 | 推荐最大模型 | 备注 |
|---|---|---|---|
| RTX 4090 | 24 GB | 14B (INT4) / 7B (FP16) | 个人开发 |
| RTX 5090 | 32 GB | 32B (INT4) / 14B (FP16) | 个人/小团队 |
| A10 / L40 | 24-48 GB | 8-14B | 中小企业 |
| A100 40G | 40 GB | 32B (INT4) | 历史选项 |
| A100 80G | 80 GB | 70B (INT8) | 主流单卡 |
| H100 80G | 80 GB | 70B (INT8) | 性能更高 |
| H200 141G | 141 GB | 70B FP16 / 110B INT8 | 长上下文友好 |
| H100 × 8 | 640 GB | DeepSeek-V3 INT8 | 中等集群 |
| H100 × 16 | 1280 GB | DeepSeek-V3 FP16 | 大型集群 |
👉 GPU 详细对比见 系列第 21 篇:GPU 选型指南。
4.2 按业务场景来选
| 场景 | 推荐规模 | 典型选择 |
|---|---|---|
| 端侧/移动 | 0.5B - 3B | Qwen3-0.6B、Phi-4 |
| 本地开发 | 7B - 14B | Llama-3-8B、Qwen3-14B |
| 轻量企业服务 | 14B - 32B | Qwen3-32B、Mixtral 8x7B |
| 生产级 ToC | 32B - 70B | Llama-3-70B、Qwen3-72B |
| 高质量生成 | 70B+ Dense / MoE | Qwen3-MoE、闭源 API |
| 高并发 / 极致成本 | MoE 200B+ | DeepSeek-V3 |
4.3 选型时的三大常见误区
误区 1:「参数越多效果越好」
事实:参数量决定能力上限,但实际效果还看:
- 训练数据质量与规模
- 对齐与微调质量
- 评测任务的匹配度
举例:Qwen3-32B 在中文任务上经常超过 Llama-3-70B。
误区 2:「小模型不行」
事实:
- Phi-4 (3.8B) 在数学任务上超过早期 Llama-2-70B
- Qwen3-0.6B 在端侧能跑出 30 tokens/s
- 小模型 + 针对性微调 在垂直场景常常比大模型通用更好
误区 3:「MoE 一定省」
事实:
- 推理算力省(激活参数小)
- 显存反而大(要装全部专家)
- 路由开销和 专家负载不均衡 是新的工程难点
MoE 适合什么场景? 高并发服务端、有大集群、能接受复杂部署。
不适合什么? 单卡部署、低并发、需要极简运维的场景。
五、扩展话题:参数效率与未来趋势
5.1 量化:让"参数"瘦身
参数量本身没变,但实际占用资源可以大幅缩减:
| 量化方法 | 比特数 | 显存占用 | 效果损失 | 当下地位 |
|---|---|---|---|---|
| FP16 / BF16 | 16 | 1× | 基线 | 标准 |
| FP8 | 8 | 0.5× | 极小 | H100+ 推荐 |
| INT8 (W8A16) | 8 | 0.5× | 极小 | 生产主流 |
| AWQ INT4 | 4 | 0.25× | 小 | 端侧首选 |
| GPTQ INT4 | 4 | 0.25× | 小 | 服务端 |
| INT2 / 1.58bit | 2 | 0.125× | 较大 | 实验性 |
👉 详见 系列第 12 篇:量化压缩实战。
5.2 蒸馏:把大模型的能力"装进"小模型
经典思路:用大模型生成数据 / 软标签,训练一个小模型。
典型案例:
- DeepSeek-R1-Distill-Llama-8B:把 R1 的推理能力蒸馏到 8B
- Phi 系列:用 GPT-4 合成"教科书级数据"训练 3.8B
工程意义:让端侧也能用上前沿能力。
5.3 推理时 Scaling:把算力转到"推理"
2024 年 9 月 OpenAI o1 之后,行业出现了一个新方向:
不再无止境扩参数,而是让模型在推理时"多想几步"。
这就是 Test-Time Scaling——参数量不变,但生成时让模型先输出大段"思考链"再给答案。延迟换效果。
这意味着未来:
- 训练算力增长放缓
- 推理算力大幅上升
- 参数量不再是唯一指标,"推理预算"成为新维度
👉 详见 系列第 32 篇:推理模型原理。
5.4 端侧大模型的崛起
2026 年的另一个趋势是端侧大模型。靠的是:
- 小模型架构创新(Phi、Gemma 系列)
- 极致量化(INT4 / INT2)
- 端侧推理框架(llama.cpp / MLX / MNN)
最近的 Qwen3-1.7B 已经可以在 iPhone 上跑 30 tokens/s,端侧大模型时代正在到来。
👉 详见 系列第 33 篇:端侧大模型。
结语:把参数翻译成工程语言
读完本文,下次再看到一个新模型,你应该可以快速回答这套问题:
- 总参数 / 激活参数 多少?是 Dense 还是 MoE?
- FP16 / INT8 / INT4 各占多少显存?
- 能不能放进我手里的卡?需要几张?
- 大致推理算力是多少?吞吐期望是多少?
- 训练这个模型大概多少钱?
- 业务场景是否真的需要这个规模?
把每个数字都"翻译成工程语言"——这是大模型工程师区别于"会用 API 的开发者"的核心能力之一。
接下来:
- 下一篇(第 4 篇):Tokenizer 那些事——BPE、SentencePiece、中文分词的爱恨情仇。你会发现"参数量"之外还有一个"Token 量",它直接影响输入/输出成本。
- 再往后我们会进入上下文窗口(第 5 篇)、预训练(第 6 篇)、微调(第 7 篇)等更工程化的话题。
我们下篇见。
📮 关于「码海寻道」
这里是一个聚焦 AI 工程化、大模型部署、后端架构实战的技术专栏。
写最一线的踩坑经验,做最务实的技术拆解。如果这篇文章对你有启发,欢迎点赞、转发、关注。我们下篇见。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)