2、大模型基础:Transformer架构回顾、大模型参数量与计算量、模型压缩的必要性、常见大模型系列介绍。
好,咱们直接进入正题。这一章,我打算带大家把大模型的老底儿翻一翻。你可能会问:“都2025年了,还讲Transformer?” 嗯,我理解你的想法。但说实话,我在边缘端部署模型这几年,踩过的坑十有八九都跟没吃透基础有关。Transformer就是那个基础中的基础。
2.1 Transformer架构回顾:从Attention说起
Transformer的核心,说白了就是“注意力机制”。它不像RNN那样一步步串行处理,而是让模型一眼看完整个句子,然后自己决定哪些词更重要。
我习惯把Transformer拆成三块来看:
- Self-Attention(自注意力):每个词跟句子里的所有词算一遍相关性。比如“他喜欢那本书,因为它很有趣”,模型得知道“它”指的是“书”。
- Multi-Head Attention(多头注意力):一个头不够,就多来几个头。每个头关注不同的关系,比如语法关系、语义关系。我个人觉得,这就像团队里不同的人看同一份代码,有人关注性能,有人关注可读性。
- Feed-Forward Network(前馈网络):注意力算完之后,再经过一个全连接层做非线性变换。这一步就是让模型“思考”一下,把注意力结果转化成更抽象的特征。
关键点:Transformer的并行计算能力,让它能处理超长序列。但代价是计算量跟序列长度的平方成正比。这一点,在边缘端尤其要命。
我在项目中遇到过一个问题:一个只有几百万参数的Transformer模型,在树莓派上跑推理,结果延迟高得离谱。后来一查,是序列长度设得太长,注意力计算把CPU撑爆了。所以,理解Transformer的计算瓶颈,是部署的第一步。
2.2 大模型参数量与计算量:数字背后的真相
咱们来聊聊数字。大模型到底有多大?
| 模型 | 参数量 | 单次推理计算量(FLOPs) | 显存占用(FP16) |
|---|---|---|---|
| GPT-2 | 1.5B | ~3T | ~3GB |
| LLaMA-7B | 7B | ~14T | ~14GB |
| LLaMA-65B | 65B | ~130T | ~130GB |
你看,参数量从1.5B到65B,计算量也跟着翻倍。但这里有个坑:计算量不等于显存占用。显存主要存的是模型参数和中间激活值。我刚开始部署时,以为算一下参数量的FP16大小就够了,结果一跑就OOM。为什么?因为中间激活值可能比模型本身还大!
避坑指南:我曾经在部署一个6B模型时,只算了参数占12GB显存,就以为16GB的显卡够了。结果推理时,中间激活值直接吃掉8GB,瞬间OOM。所以,部署前一定要用profiler工具算一下峰值显存。
计算量方面,有个经验公式:计算量 ≈ 2 * 参数量 * 序列长度(简化版)。但实际中,注意力部分的计算量是 O(n² * d),n是序列长度,d是隐藏维度。你想想看,如果n从512变成2048,计算量直接翻16倍!
2.3 模型压缩的必要性:边缘端的生存法则
为什么需要压缩?因为边缘设备不是数据中心。边缘端的资源是“金贵”的:
- 算力有限:手机芯片的算力可能只有服务器GPU的1/100。
- 内存紧张:树莓派4B只有4GB内存,连一个7B模型都装不下。
- 功耗敏感:电池供电的设备,跑一次推理可能耗掉1%的电。
所以,模型压缩不是“锦上添花”,而是“生存刚需”。常见的压缩手段有:
- 量化(Quantization):把FP32的权重变成INT8,模型大小直接缩到1/4,推理速度也能快2-4倍。我建议优先尝试这个,效果最明显。
- 剪枝(Pruning):去掉不重要的连接或神经元。比如,有些注意力头其实没啥用,剪掉后精度几乎不变。
- 蒸馏(Distillation):用大模型教小模型。小模型学到大模型的“知识”,但参数量少得多。
- 低秩分解(Low-Rank Factorization):把大矩阵拆成两个小矩阵,减少计算量。
我的经验:在边缘端,量化+剪枝的组合拳最实用。我曾经把一个1.5B的模型压缩到300MB,在手机上跑出了接近原版的精度。但要注意,剪枝过度会导致模型“失忆”,需要反复调参。
2.4 常见大模型系列介绍:选型指南
市面上的大模型五花八门,怎么选?我按部署场景给大家分个类:
| 系列 | 代表模型 | 参数量范围 | 适合场景 | 部署难度 |
|---|---|---|---|---|
| GPT系列 | GPT-2, GPT-3 | 1.5B - 175B | 文本生成、对话 | 高(太大) |
| LLaMA系列 | LLaMA-7B, 13B | 7B - 65B | 通用任务、微调 | 中 |
| BERT系列 | BERT-Base, TinyBERT | 110M - 340M | 文本分类、问答 | 低 |
| T5系列 | T5-Small, T5-Base | 60M - 11B | 文本到文本任务 | 中 |
| Mobile系列 | MobileBERT, ALBERT | 25M - 100M | 移动端、IoT设备 | 极低 |
我个人习惯,如果设备内存小于4GB,优先考虑MobileBERT或TinyBERT。如果内存8GB以上,可以试试量化后的LLaMA-7B。至于GPT-3这种巨无霸,边缘端基本别想,除非你搞分布式推理。
嗯,这里要注意:模型选型不是越大越好。我见过有人非要在手机上跑LLaMA-13B,结果量化后精度掉得没法用,还不如直接用T5-Small。所以,先定场景,再选模型,最后再考虑压缩。
好了,这一章的内容就到这里。Transformer的架构、参数量计算、压缩必要性、常见模型系列,这些是后续所有部署技术的基础。下一章,咱们会深入量化技术,手把手教你如何把模型“瘦身”到边缘端能跑的程度。