Granite 4.1 大语言模型:构建之道
速览
IBM近日发布了Granite 4.1系列大语言模型,并公开了其详细的构建方法。该系列模型通过优化数据质量与训练策略,显著提升了性能与效率。这一举措展示了IBM在垂直领域大模型研发上的最新技术进展。
AI 深度解读
Granite 4.1 LLMs: How They’re Built 深度解读
背景
在大语言模型(LLM)的发展进程中,提升小型模型的性能往往被视为比单纯堆砌算力更具挑战性的任务。IBM 的 Granite 团队发布了 Granite 4.1 系列模型,这是一组密集架构(Dense)、仅解码器(Decoder-only)的 LLM,包含 3B、8B 和 30B 三种参数规模。
该系列模型的核心设计理念是“数据质量优于数据数量”。与以往通过大规模扩展计算资源来提升模型能力的做法不同,Granite 4.1 强调在整个训练生命周期中严格把控数据质量。模型在约 15 万亿(15T)token 的数据集上进行了从头训练,并采用了多阶段预训练管道,包括将上下文窗口扩展至 512K token 的长上下文训练。随后,模型通过监督微调(SFT)在约 410 万高质量人工筛选样本上进行精炼,并采用基于策略的强化学习(On-policy GRPO)结合 DAPO 损失函数进行进一步优化。
值得注意的是,尽管 Granite 4.1 8B 指令模型采用了更简单的密集架构且参数量更少,但其性能匹配甚至超越了前代 Granite 4.0-H-Small(一个拥有 32B 激活参数、9B 活跃参数的混合专家模型 MoE)。所有 Granite 4.1 模型均基于 Apache 2.0 许可证开源。
核心内容
Granite 4.1 的构建过程是一个高度系统化、分阶段的数据精炼与模型优化过程,主要涵盖模型架构、五阶段预训练、监督微调(SFT)以及多阶段强化学习(RL)四个核心部分。
1. 模型架构
Granite 4.1 系列模型均采用密集 Transformer 架构,仅包含解码器层。其核心设计选择包括:
- Grouped Query Attention (GQA):提升推理效率。
- Rotary Position Embeddings (RoPE):用于位置编码。
- SwiGLU Activations:激活函数。
- RMSNorm:归一化层。
- Shared Input/Output Embeddings:共享输入和输出嵌入层。
三种不同规模的模型共享相同的训练管道和数据策略,仅在架构维度上有所区别。
2. 五阶段预训练策略
Granite 4.1 基于约 15 万亿 token 的数据从头训练,分为五个阶段,逐步从广泛的网络数据过渡到高质量、特定领域的内容。
-
阶段 1:通用预训练(10T tokens) 建立广泛的语言理解能力。数据混合比例如下:
- CommonCrawl(通用网络数据):~59%
- Code(编程语言及仓库):~20%
- Math(数学推理数据):~7%
- Technical(科学论文、技术文档):~10.5%
- Multilingual(非英语数据):~2%
- Domain Specific(特定领域内容):~1.5% 采用幂律学习率调度(Power learning rate schedule)及预热(Warmup)。
-
阶段 2:数学/代码预训练(2T tokens) 大幅提高代码和数学数据的比例,以增强推理能力,同时保持通用语言覆盖。
- Math:~35%(较阶段 1 增加 5 倍)
- Code:~30%(较阶段 1 增加 1.5 倍)
- CommonCrawl-HQ(高质量 CommonCrawl 子集):~12%
- Synthetic(合成高质量数据):~9%
- Technical:~10%
- Multilingual:~3%
- Domain:~1%
-
阶段 3:高质量数据退火(2T tokens) 进入中期训练,采用更平衡的高质量数据混合,并使用指数衰减学习率调度。此阶段开始引入思维链(Chain-of-Thought)和合成指令数据。
- CommonCrawl-HQ:~16.67%
- Math:~16.67%
- Code:~16.67%
- Synthetic:~8.5%
- Technical:~12.5%
- Multilingual:~4.5%
- Long Chain-of-Thought(推理轨迹):~12.5%
- Language Instructions(指令微调数据):~7.5%
- Code Instructions(指令微调数据):~4.5%
-
阶段 4:高质量数据退火——精炼(0.5T tokens) 继续中期训练,学习率线性衰减至零,专注于最高质量的数据。
- CommonCrawl-HQ:~40%
- Code:~20%
- Math:~20%
- Long Chain-of-Thought:~6%
- Code Instructions:~5%
- Language Instructions:~9%
-
阶段 5:长上下文训练(LCE) 作为中期训练的一部分,通过分阶段过程将上下文窗口从 4K 扩展至 512K。
- 32K 扩展:使用与阶段 4 相同的数据混合。
- 128K 扩展:使用与阶段 4 相同的数据混合。
- 512K 扩展(仅 8B 和 30B 模型):80% 书籍数据 + 20% 代码仓库数据。
该阶段使用从 1e-4 开始并衰减至 0 的指数学习率调度。为确保模型原生处理长序列且不损害短上下文性能,每个 LCE 阶段后都会进行模型合并。
3. 监督微调(SFT):数据准备与质量控制
SFT 是将基础模型转化为可靠指令遵循助手的关键步骤。为了防止错误样本导致模型产生不良行为,团队采用了严格的 LLM-as-Judge(大模型作为裁判) 框架结合基于规则的过滤。
- 评估机制:
- 仅评估助手回复,将系统提示、用户输入、检索文档和工具输出视为上下文信息。
- 在 RAG(检索增强生成)场景下,未基于检索上下文生成的回复会被标记为幻觉。
- 工具使用输出会根据允许的工具集及其参数模式进行验证。
- 多维度评分:
针对多轮对话、RAG 增强回复、工具调用交互和多语言对话等不同类型的 SFT 数据,使用专门的裁判提示词。每个回复在六个加权维度上进行评分:
- 指令遵循 (Instruction following)
- 正确性 (Correctness)
- 完整性 (Completeness)
- 简洁性 (Conciseness)
- 自然度 (Naturalness)
- 校准度 (Calibration,可选批判性思维检查)
- 硬性拒绝规则: 无论得分如何,存在严重缺陷(如幻觉、错误前提、计算错误)的样本会被自动拒绝。
- 基于规则的过滤: 包括文本规范化、截断和长度过滤、模式验证以及泄漏检测。最后进行全局去重,确保数据集的唯一性。所有过滤和修正操作均可审计。
- 训练规模: 经过上述流程筛选后,使用约 410 万高质量样本对基础模型进行微调。
4. 强化学习:多阶段 RL 管道
在 SFT 之后,团队应用多阶段强化学习管道,针对特定领域进一步优化模型能力,而非仅进行一次 RL 训练。
- 方法论: 使用 On-policy GRPO(Group Relative Policy Optimization,组相对策略优化)
