Falcon-Edge:强大、通用且可微调的 1.58 位 LLM
Falcon-Edge 是一系列基于 BitNet 架构的三元语言模型,旨在在边缘设备上实现极致效率。通过使用三元权重({-1, 0, 1}),这些模型实现了“无矩阵乘法”(matmul-free)设计,与传统浮点模型相比显著降低内存使用并提升推理速度。
关键模型变体及可用性
Falcon-Edge 提供两种规模——1 Billion 和 3 Billion 参数,每种规模都有基础版和指令微调版。为满足多样的部署和开发需求,团队引入了一种预训练范式,可从单一训练过程生成三种不同的变体:
- 原生 BitNet 模型:针对超高效推理优化的标准三元格式模型。
- bfloat16 变体:一种非量化版本,通过注入权重尺度来近似 BitNet 模型,使其能够通过标准 Hugging Face transformers 加载。
- 预量化变体:专为轻松微调和持续预训练而设计的权重。
技术架构与性能
Falcon-Edge 模型使用 WSD 学习率调度器,在约 1.5 Tera Tokens 的内部数据混合上进行预训练。
在使用 Hugging Face leaderboard v2 基准进行评估时,Falcon-Edge 的性能与其他同等规模的模型持平或更佳。模型在 leaderboard v1 任务上也展现出对微软 BitNet 模型的竞争力,证明 BitNet 架构可以在各领域训练出强大的模型。
通用性近似
团队发现,在对权重进行量化后注入权重尺度,可以创建 BitNet 模型的 bfloat16 对应版本。该近似使模型能够以非 BitNet 模型的形式运行,同时保持高性能,这一点已通过对 1B 和 3B 基础模型的端到端评估得到验证。
使用 onebitllms 进行微调
为突破仅限推理的发布,Falcon-LLM 团队推出了 onebitllms Python 包。该工具包提供了微调预量化 BitNet 模型所需的实用工具,否则在标准 nn.Linear 层中运行会产生乱码输出。
onebitllms 提供以下核心功能:
- 检查点转换:将预量化模型检查点转换为 BitNet 训练格式,以便在如 Hugging Face 的
trl库等微调框架中使用。 - 量化工具:将已训练的检查点量化为 BitNet 和
bfloat16两种格式的工具。 - 底层组件:裸
BitnetLinear层和 Triton 内核,可集成到自定义预训练框架中。
目前,该包支持完整微调;针对 BitNet 模型的参数高效微调(PEFT)仍是一个未解的研究问题。
未来研究方向
Falcon-Edge 与 onebitllms 的发布指出了三元 LLM 未来发展的若干关键方向:
- GPU 推理内核:开发专用内核,使 BitNet 模型在 GPU 上的速度超过原生浮点模型,类似于
bitnet.cpp的目标。 - PEFT 支持:探索对 1 位模型应用参数高效微调的可能性。
- 通用性优化:进一步缩小 BitNet 检查点与其
bfloat16对应版本之间的性能差距。 - 多模态扩展:利用这些基础模型打造首个多模态 BitNet 视觉语言模型(VLM)。
- 训练效率:优化 BitNet 训练内核,降低相较于非 BitNet 模型在预训练期间约 20% 的额外开销。