都说大模型行业迭代快,这话一点不假。前两天阿里云和GLM那边刚放出消息要发新模型,评论区就已经炸开了锅。趁着新模型还没正式亮相,不妨先把手里这些已有的开源模型好好捋一捋——从数据、Tokenizer到架构设计,再到最后落地的选型思路,一次性聊透。下个礼拜大概率Qwen2就来了,这篇文章就当是为迎接新模型做的功课吧。
先抛几个核心判断:
- 从数据、Tokenizer到模型架构,Qwen、DeepSeek、LLaMa、Yi各有取舍;
- 开源大模型选型,需要考虑的因素远比想象中多,但理清逻辑后其实有迹可循。
一、Data & Tokenizer 对比
数据层面,有几个维度值得细看:
预训练数据
数据的数量、质量与多样性,是模型泛化能力的“地基”。具体来说,需要关注基座模型的数据量级(几个T?)、数据来源、以及数据处理方式。除了数据本身,预训练策略同样关键。一篇来自arXiv 2309.14316的研究指出,在预训练阶段就引入更多指令微调数据,比把所有问答任务推迟到微调阶段更有利于模型编码知识、提升泛化能力。这个思路在Qwen的技术报告里也有体现。
多语言支持
训练数据所用语言直接决定了模型的应用边界。对我们而言,中文及多语言场景下的表现是核心考量之一。
词表大小
词汇表规模是模型语言理解的“起点”。一个丰富的词库能提升模型表达能力,同时减少推理时所需的Token数量。
Tokenizer 算法
目前主流方向是BBPE,工具方面Google的SentencePiece和OpenAI的tiktoken是两大标杆。BBPE的核心逻辑是:
先理解几个基础概念——Unicode是字符集,为每个符号分配唯一编码,但不规定存储方式;UTF-8是Unicode的实现方式之一,用1-4个字节表示一个符号。简单说,Unicode到UTF-8是编码(encode),反方向是解码(decode)。
BBPE的实现步骤其实不复杂:
- 初始化词表,包含所有字节(256个);
- 统计所有相邻子词对的频率;
- 合并频率最高的子词对,更新词表;
- 重复步骤2-3,直到词表大小或合并次数达到预设值;
- 用最终词表对文本进行分词。
BBPE的优点是不会出现OOV(未登录词)问题,但缺点也很明显——不在词表中的中文会被切得很碎,影响自回归生成效率。因此,词表大小的设定需要格外关注。
最大训练长度
模型能处理的最大序列长度,直接关系到长文本任务的表现。Qwen、LLaMa、Baichuan、DeepSeek、Yi等各参数规模的模型对比结果,可以整理成表格供参考。
(此处分段为原文图片保留位置,此处无法展示)
详细数据及后续更新可在在线文档中查看。
二、Architecture 对比
整体结构
以LLaMa 3-8B为例,标准的Transformer Decoder结构如下:
(此处分段为原文图片保留位置,此处无法展示)
模型架构的重要性
Qwen、LLaMa、Mistral、Yi这些开源基座模型彼此借鉴,大家深知预训练成本高昂,因此架构上很少做碘伏性创新,谁要是在架构上真正做出突破,必然会被行业追捧。比如,LLaMa 2 70B首次使用了GQA,DeepSeek则从MHA改进到了MLA。
一篇来自arXiv 2404.05405的研究,比较了GPT-2、LLaMA和Mistral等不同架构的知识容量,结果很有意思:在充分训练(1000次曝光)下,所有模型都能达到约2比特/参数的存储比率;但在训练不足(100次曝光)时,采用GatedMLP的结构性能下降更明显。这再次印证了网络架构设计的重要性。
重要元素
位置编码
目前几乎是RoPE一统天下。更详细的推导可以参考苏剑林老师的博文。
注意力机制:MHA、MQA、GQA、MLA
从标准多头注意力到更大尺寸模型上的GQA和MLA,本质上是在不牺牲效果的前提下做性能优化。
Pre-RMSNorm
Pre和Post的区别在于归一化是在残差之前还是之后。苏剑林老师推导过,PreNorm本质上增加了模型宽度,会损失一定效果;而PostNorm增加深度效果更好。但《On Layer Normalization in the Transformer Architecture》一文又指出PreNorm更容易训练。有趣的是,目前Qwen、LLaMa、Mistral、DeepSeek等主流大厂无一例外都选择了Pre-RMSNorm。这个问题可以继续观察,暂时没有定论。
RMSNorm移除了均值的计算,简化计算的同时减少了模型的计算量。
激活函数:SwiGLU
激活函数关系到模型对信息的筛选能力——ReLU、GELU、Swish等不同选择,影响不小。
(此处分段为原文代码和图片保留位置,此处无法展示)
隐藏层维度
Intermediate Size(中间层大小)和Hidden Size(注意力隐藏层维度)共同决定了模型的学习能力和复杂度。更大的hidden size能捕获更复杂的特征,但也会带来参数量和计算量的增长。
Qwen、LLaMa、Baichuan、DeepSeek、Yi等各参数规模的模型对比结果,可参见在线表格。
三、领域落地选型因素
Base / Instruct / Chat 版本差异
Base版本只做Next Token Prediction,相当于纯粹学习语言规律;Instruct版本经过指令微调,更“听话”;Chat版本则对齐了Helpful、Harmless、Honest三个目标,但由此带来了“对齐税(Alignment Tax)”的问题。直观理解,这三个目标本身存在冲突:有用的信息可能有害,而边界在整治立场等场景下更难界定。因此,对齐策略对模型知识体系的影响是客观存在的,行业也在不断优化,许多模型提供了Instruct版本供落地使用。
另一方面,Chat版本普遍经过多轮对话训练,在指代消解、信息省略等上下文场景中表现更好。如果目标是构建Agent或多轮对话应用,Chat版本无疑是优选。
选型因素盘点
- 特定领域适应性:模型能否很好地适应专业领域数据,是首要考量。
- 成本效益分析:训练和部署成本(例如MoE模型虽然激活参数少,但显存占用并不低)需要与预期回报权衡。
- 社区与生态:活跃的社区和完善的生态能提供丰富的资源支持。
- 伦理与合规:确保选择和使用符合伦理和法规要求。
- 模型本身设计:包括网络架构的先进性、预训练数据量是否过度训练、模型的时效性和大厂背书(Meta、Mistral、百川、Qwen、DeepSeek等),以及模型规模和类型的覆盖度(Dense和MoE均涵盖)。
- 效果指标:参考MMLU、Math等榜单以及大模型竞技场(LMSYS)排名,能直观反映模型能力。MMLU偏向文科任务,Math偏向理科。
- 功能覆盖:上下文长度、是否支持Tool Calling等功能,影响模型的适用性。
- 任务匹配程度:文本理解类任务(分类、匹配、信息抽取)相对确定性较强,文本生成任务则不确定。需要进行实际微调后对比:理解任务看F1,生成任务看GPT-4 Win Rate。
- 性能指标:推理速度是否满足实时处理需求。
- 多语言和多模态:是否支持多语言和多模态输入。
虽然列出了这么多条条框框,但实际观察最新、最热的模型时,发现它们基本都能覆盖这些要求,比如Meta的LLaMa 3系列、Qwen的1.5全系列(包括Qwen-VL和Qwen-Audio),都是活跃度很高、非常靠谱的选择。关键是在选型时,要确保自己没有遗漏任何关键考量——选型因素可以“不用”,但不能“没有”。
另外,是不是马上就可以换上Qwen 2-72B-Instruct了?值得期待。
总结
选择合适的基座大模型绝非易事,它需要综合考量数据、架构、成本、生态等多方面因素。但在深入理解各种模型及其特点之后,你一定能找到最适合自己的那把钥匙。希望这篇文章能帮你更清晰地了解不同大模型,在选型之路上少走弯路,让每一次决策都成为成功的铺路石。
