通过 LLM 模型的名称解读不同模型之间的区别

通过 LLM 模型的名称解读不同模型之间的区别
MitchellLLM 模型尺寸(参数量)
一个 LLM 模型文件的尺寸指的是其参数量。例如,Gemma 2B 表示具有 20 亿参数的 Gemma 模型。
参数 (Parameter) 是模型在训练过程中学习到的权重 (weights) 和偏置 (biases),用于控制输入数据到输出的映射关系。参数存储了模型对语言规律(如语法、语义、上下文关联)的“知识”。例如,某个参数可能决定“猫”和“狗”在特定语境下的关联强度。
参数量较大的 LLM 拥有比其较小版本更多的参数,这通常使它们能够捕捉更复杂的语言关系并处理更细微的提示。它们通常还在更大的数据集上进行训练。参数越多,模型理论上能捕捉的复杂模式越多。例如,GPT-3(175B参数)相比GPT-2(1.5B参数)能生成更连贯的长文本,处理更复杂的推理任务。
某些模型参数量比较常见,如 20 亿或 70 亿,是常见的。例如 Gemma 2B、Gemma 7B 或 Mistral 7B。模型大小类别是近似的分组。例如 Gemma 2B 大约有 20 亿个参数,但不完全精确。下图展示了HuggingFace 上的模型大小类别(这些类别并非行业标准,而是自然形成的):
虽然大多数最新一代的 LLMs(如 GPT-4 和 Gemini Pro 或 Ultra)的模型大小并未总是公开披露,但据信它们包含数百亿或数千亿个参数。并非所有模型都在其名称中标注参数数量。有些模型会以版本号作为后缀。例如,Gemini 1.5 Pro 指的是该模型的 1.5 版本(在 1 版本之后)。
LLM 参数量无法直接衡量不同模型之间的性能差距
对于不同的 LLM 模型,无法直接通过参数量衡量它们之间的性能差距。对于特定任务,较小的模型可以与较大的模型达到相同的性能。
参数效率 (Parameter Efficiency)
参数量并非越大越好。在固定计算预算下,模型参数和数据量需平衡。例如,700B参数模型搭配4.5T tokens训练可能不如更小模型(如40B参数)搭配更多数据(如12T tokens)高效。
参数量大的模型可以通过混合专家 (Mixture of Experts, MoE) 提升效率。例如,DeepSeek-R1-671B 的每个 token 的激活参数是 37B,在特定设备上(如配备显存大于 40GB 的高速GPU,内存大于 512GB的平台),其性能和运行速度可能都会超过 DeepSeek-R1-Distill-Llama-70B。
判断某个参数量的 LLM 模型能否在指定设备上运行
更大的 LLM 需要大量的存储空间和强大的计算能力来进行推理。它们需要在配备特定硬件(如 GPU、TPU)的专用高性能服务器上运行。
我们通常想知道的是:模型是否足够可以下载并在指定设备上运行?这个问题没有准确的定论,有以下原因:
- 设备的能力在内存、GPU/CPU 规格等方面差异很大。低端安卓手机和 NVIDIA® RTX 电脑差异巨大。
- 一个模型或其运行的框架可能针对特定硬件进行了优化。
根据经验来说,具有多大显存的 NVIDIA GPU 或是多大融合内存的 Apple Silicon Mac,就能高速运行多少 B(billion,十亿)参数的 LLM 模型的 Q4_KM 量化版本,这考虑到了为上下文预留充足的显存或融合内存;例如,NVIDIA® RTX 3070@8GB 或是 MacBook Pro M1 8GB 可以高速运行 DeepSeek-R1-Distill-Llama-8B 的 Q4_KM 版本。在显存不足的时候,保证显存+内存的总和接近 LLM 的 B(billion,十亿)参数量,通常也能运行 LLM 模型的 Q4_KM 版本,只是部分推理交给 CPU,会导致推理速度大幅下降;例如,Intel 的双 Xeon CPU 平台,配备 512GB 内存,没有 GPU 或 TPU,也能运行 DeepSeek-R1-671B 的 Q4_KM 版本,输出速度在 10 tokens/s 以下。
模型压缩技术
存在多种技术可以显著减少模型的内存需求:
- LoRA (Low-Rank Adaptation):一种微调技术,其中预训练的权重被冻结。了解更多关于 LoRA 的信息。
- 剪枝 (Pruning):从模型中移除不太重要的权重以减小其大小。
- 量化 (Quantization):将权重的精度从浮点数(例如,32-bit)降低到较低位表示(例如,8-bit)。
- 蒸馏 (Distill):训练一个较小的模型来模仿一个较大、预训练模型的行为。
- 参数共享 (Parameter sharing):使用相同的权重来表示模型的多个部分,减少唯一参数的总数。
下文将具体讲解量化和蒸馏。
量化 (Quantization)
量化是将模型权重从高精度(如 FP16/FP32)转换为低精度(如 INT8/INT4/INT3)的过程,通过减少数值表示的位数来:
- 减小模型体积(存储占用更低)
- 降低内存带宽需求(推理更快)
- 减少计算资源消耗(适合边缘设备)
量化版本命名规则
以 llama.cpp
的量化方案为例,名称格式一般为 **Q<位数>_<分组策略>
**:
Q3
,Q4
,Q6
,Q8
:表示量化的位数(如 3-bit、4-bit、6-bit、8-bit)。_K_L
,_K_M
,_K_S
:表示分组量化策略,其中:K
:使用 k-means 聚类优化量化(非均匀量化,更适应权重分布)L/M/S
:分组粒度(Large/Medium/Small),即权重的分块大小:- 大块(L):每组包含更多权重,压缩率更高,但精度损失可能更大。
- 小块(S):每组权重更少,保留更多细节,精度更高,但压缩率低。
常见量化版本对比
量化版本 | 位数 | 分组策略 | 模型体积(以7B模型为例) | 精度损失 | 适用场景 |
---|---|---|---|---|---|
Q2_K | 2-bit | K-means + 大块分组 | ~2.8GB | 高 | 极致压缩,低资源设备快速推理 |
Q3_K_L | 3-bit | K-means + 大块分组 | ~3.3GB | 较高 | 速度优先,接受一定精度损失 |
Q3_K_M | 3-bit | K-means + 中块分组 | ~3.5GB | 中 | 平衡速度和精度 |
Q4_K_M | 4-bit | K-means + 中块分组 | ~4.2GB | 较低 | 推荐默认选择,性价比最高 |
Q5_K_M | 5-bit | K-means + 中块分组 | ~5.0GB | 低 | 接近FP16精度,资源较充足 |
Q6_K | 6-bit | K-means + 小块分组 | ~6.0GB | 极低 | 高精度需求,牺牲部分压缩率 |
Q8_0 | 8-bit | 均匀分组(无优化) | ~7.5GB | 可忽略 | 接近原始模型,用于调试或研究 |
关键区别
- 量化位宽(精度):
- 位数越低(如
Q3_K
),模型体积越小,但可能丢失更多细节(如罕见词或复杂推理能力)。 - 位数越高(如
Q8_0
),模型越接近原始FP16精度,但体积和内存需求更大。
- 位数越低(如
- 分组策略(块大小):
- 大块(L):压缩效率更高,但量化误差可能在组内累积(适合对长文本生成要求不高的场景)。
- 小块(S):保留更多局部权重细节(适合需要高精度的数学推理或知识问答)。
- 是否使用k-means优化:
- 带
K
的版本(如Q4_K_M
)通过聚类优化量化区间分配,相比均匀量化(如Q8_0
)能更好地适应权重分布,减少精度损失。
- 带
实际效果对比
- 生成质量:
Q4_K_M
在大多数任务(对话、摘要)中与原始模型差异较小。Q3_K_L
可能在生成复杂逻辑文本时出现错误或重复。
- 推理速度:
- 低精度模型(如
Q3_K_M
)在CPU/低端GPU上速度更快(减少内存带宽压力)。 - 高精度模型(如
Q6_K
)需要更多计算资源,适合高端GPU。
- 低精度模型(如
蒸馏 (Distillation)
LM 蒸馏 (Distillation) 是一种技术,用于将大型语言模型 (LLM) 的知识转移到较小的模型中。其主要目的是在保持模型性能的同时,减少模型的大小和计算资源需求。通过蒸馏技术,较小的模型可以在推理时更高效地运行,适用于资源受限的环境。
蒸馏过程
蒸馏过程通常包括以下几个步骤:
训练教师模型:首先训练一个大型且性能优越的教师模型。
生成软标签:使用教师模型对训练数据进行预测,生成软目标 (soft targets) ,这些目标包含了教师模型的概率分布信息。
训练学生模型:使用软目标 (soft targets) 和原始训练数据 (hard targets) 来训练较小的学生模型,使其能够模仿教师模型的行为。 这种方法不仅可以提高模型的效率,还可以在某些情况下提高模型的泛化能力。
蒸馏可能存在的问题
- 信息丢失:由于学生模型比教师模型小,可能无法完全捕捉教师模型的所有知识和细节,导致信息丢失。
- 依赖教师模型:学生模型的性能高度依赖于教师模型的质量,如果教师模型本身存在偏差或错误,学生模型可能会继承这些问题。例如,尽管参数量接近,DeepSeek-R1-0528-Qwen3-8B 比 DeepSeek-R1-Distill-Qwen-7B(后者基于 Qwen2.5)具有比较明显的性能优势。
- 适用性限制:蒸馏技术可能不适用于所有类型的模型或任务,尤其是那些需要高精度和复杂推理的任务。