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%的电。

所以,模型压缩不是“锦上添花”,而是“生存刚需”。常见的压缩手段有:

  1. 量化(Quantization):把FP32的权重变成INT8,模型大小直接缩到1/4,推理速度也能快2-4倍。我建议优先尝试这个,效果最明显。
  2. 剪枝(Pruning):去掉不重要的连接或神经元。比如,有些注意力头其实没啥用,剪掉后精度几乎不变。
  3. 蒸馏(Distillation):用大模型教小模型。小模型学到大模型的“知识”,但参数量少得多。
  4. 低秩分解(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的架构、参数量计算、压缩必要性、常见模型系列,这些是后续所有部署技术的基础。下一章,咱们会深入量化技术,手把手教你如何把模型“瘦身”到边缘端能跑的程度。