TII 发布 Falcon-Edge 系列 1.58bit BitNet 语言模型,含 1B 和 3B 两种规格
Falcon-Edge: A series of powerful, universal, fine-tunable 1.58bit language models.
TII 的 Falcon-Edge 系列基于 BitNet 架构,以三值权重 {-1, 0, 1} 直接预训练,提供 1B 和 3B 两种参数规格,各含 base 和 instruct 版本,模型在约 1.5 Tera Tokens 的内部数据混合上预训练。
原文解释了 BitNet 三值权重的训练范式和微调路径,读者可以据此判断 1.58bit 模型在端侧部署的适用性。
Falcon-Edge:一系列强大、通用、可微调的 1.58bit 语言模型。
发布于 2025 年 5 月 15 日
Falcon LLM TII UAE FalconLLM 关注
在这篇博客文章中,我们介绍 Falcon-Edge 系列的关键亮点和理念——这是一系列基于 BitNet 架构、以三值格式提供的强大、通用且可微调的语言模型。
借鉴我们在 BitNet 上的经验,Falcon-Edge 引入并验证了一种新的预训练范式,该范式通过单次训练过程即可提供全方位输出,同时生成非量化与量化模型变体。这种全面的方法会生成 bfloat16 格式的非 BitNet 模型、原生 BitNet 模型,以及一个专门为轻松微调而设计的预量化 BitNet 变体,使用户和开发者能够针对其特定应用和需求精确地定制这些模型。
现已提供两种规模——10 亿和 30 亿参数——每种规模均包含基础模型和指令微调模型。请在我们专门的 Hugging Face 合集中探索 Falcon-Edge 系列。
引言
大型语言模型(LLM)在设计上本身就规模庞大且资源密集。随着在边缘设备上高效部署这些模型的需求不断增长,模型压缩研究也随之加速。近期的努力,例如 DeepSeek 和 Llama 4 所做的工作,探索了使用降低精度的格式进行训练——低至 FP8——以提升部署的可扩展性。另一方面,许多最先进的方法强调训练后量化。与这些方法不同,BitNet 引入了一种根本不同的范式:不同于仍然依赖浮点格式的降低精度训练,也不同于在全精度训练后调整权重的训练后量化,BitNet 在训练过程中直接以尽可能低的精度——三值权重({-1, 0, 1})——运行,从而实现端到端的超高效模型设计。
这些三值权重正在为一种“无矩阵乘法”的 LLM 设计铺平道路,这种设计在实践中明显更快,并且内存效率极高。这种创新方法的主要挑战在于必须对 BitNet 模型进行预训练,这对普通用户来说可能在计算上要求很高且成本昂贵。
Falcon-Edge,一系列强大的模型
利用我们中心在预训练数据策略方面的经验,我们在内部数据混合上对模型进行了约 1.5 万亿 Token 的预训练。我们使用经典的 WSD 学习率调度器进行预训练。
我们在前 Hugging Face 排行榜 v2 基准上评估了我们的模型(基础版和指令版),并在下方报告了与其他类似规模模型相比的归一化结果:
额外结果(排行榜 v1),比较我们的指令模型与微软新的 BitNet 模型:
Falcon-Edge 在排行榜 v2 任务上展现出与同等规模模型相当甚至更好的性能,表明可以在所需领域训练强大的 BitNet 模型,同时在其他任务上具有足够的竞争力。
Falcon-Edge,一系列通用模型
如果我们更仔细地查看 BitNet 线性层用于推理的公式(以 Python 代码表示):
def activation_norm_quant(x):
scale = 127.0 / x.abs().max(dim=-1, keepdim=True).values.clamp_(min=1e-5)
y = (x * scale).round().clamp_(-128, 127)
return y, scale
class BitLinear(nn.Linear):
def post_quant_process(self, input, input_scale, weight_scale):
out = input / (input_scale * weight_scale)
return out
def forward(self, input):
w = self.weight
w_quant = unpack_weights(w, dtype=self.dtype)
input_quant, input_scale = self.activation_quant(input)
y = F.linear(input_quant.to(self.dtype), w_quant)
y = self.post_quant_process(y, self.weight_scale, input_scale)
if self.bias is not None:
y += self.bias.view(1, -1).expand_as(y)
return y
归一化 activation_norm_quant 将激活量化为 int8 格式,然后通过将其除以 x_scale 以半精度重新计算激活。由于模型是使用伪造的 8 位激活量化进行训练的,我们认为可以近似为:
x_quant, x_scale = activation_norm_quant(x)
x ~= (x_quant / x_scale)
因此,与其在训练后量化模型,不如在量化权重后注入权重缩放,这应该能得到非 BitNet 版本模型足够好的“近似”:
def _weight_quant(w):
scale = 1.0 / w.abs().mean().clamp_(min=1e-05)
u = (w * scale).round().clamp_(-1, 1)
return u, scale
for param_name, param_value in state_dict.items():
if _is_param_to_not_quantize(param_name):
continue
param_value, param_scale = _weight_quant(param_value)
param_value = param_value / param_scale
state_dict_quant[param_name] = param_value
我们通过对 1B 和 3B 基础模型的 bfloat16 变体进行端到端评估来确认这一点,结果如下:
这些模型的 bfloat16 对应版本可以通过在 from_pretrained 函数中传入 revision="bfloat16",直接通过 Hugging Face transformers 加载:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from trl import SFTTrainer
model_id = "tiiuae/Falcon-E-1B-Base"
tokenizer = AutoTokenizer.from_pretrained(model_id, revision="prequantized")
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
revision="bfloat16"
)
Falcon-Edge,一系列可微调的 Bitnet 模型
据我们所知,除了微软最近发布的版本之外,之前的 BitNet 发布都只关注发布最终量化模型,使其仅能用于推理。与微软的发布类似,我们提议通过发布其预量化权重来扩展 BitNet 模型的研究和应用的可及性。这样,用户既可以针对其目标领域进行微调,也可以对 BitNet 检查点进行持续预训练,只要将 nn.Linear 层替换为 BitnetLinear 层,并确保在训练后以 BitNet 格式量化模型即可。由于这些权重对应的是预量化权重,如果不将 nn.Linear 层替换为 BitnetLinear 层就进行文本生成,将会产生乱码输出。
预量化权重可以通过 Hugging Face 的 transformers 库下载,只需将 revision 参数指定为 prequantized:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "tiiuae/Falcon-E-1B-Base"
tokenizer = AutoTokenizer.from_pretrained(model_id, revision="prequantized")
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
revision="prequantized"
)
这样,我们将帮助社区围绕首批强大的 1-bit 微调模型培育一个生态系统。我们为社区提供了轻松上手的工具,并打包了在预量化权重上执行微调所需的所有实用方法,放在一个名为 onebitllms 的 Python 包中,我们将在下一节介绍,以便社区能够轻松开始并微调自己版本的强大 BitNet 模型。
介绍 onebitllms —— 一个用于 1-bit LLM 训练的轻量级 Python 包工具包
在此次发布中,我们还介绍了 onebitllms —— 一个轻量级 Python 包,可以插入到你最喜欢的 LLM 微调工具中,以便微调任何预量化的 BitNet 模型。在撰写本文时,onebitllms 公开了以下主要功能:
- 实用方法,用于将预量化模型检查点转换为 BitNet 训练格式,以便将其传递给任何你喜欢的 LLM 微调框架。我们目前使用 Hugging Face 的
trl库测试了我们的库。 - 实用方法,用于将训练后的检查点量化为 BitNet 格式以及通常的
bfloat16格式。 - 为了更细粒度的控制:裸
BitnetLinear和 triton 内核,可以注入并用于你的预训练框架。
目前,该框架仅支持全量微调,而在此次发布中模型规模相对较小,为 BitNet 模型支持参数高效微调(PEFT)方法仍然是未来 BitNet 模型一个令人兴奋且具有影响力的开放问题。
要开始使用,只需通过 pip 直接安装该包或从源码安装,并查看源代码中的 examples/ 文件夹。
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from trl import SFTTrainer
from onebitllms import replace_linear_with_bitnet_linear, quantize_to_1bit
model_id = "tiiuae/Falcon-E-1B-Base"
tokenizer = AutoTokenizer.from_pretrained(model_id, revision="prequantized")
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
revision="prequantized"
)
model = replace_linear_with_bitnet_linear(model)
trainer = SFTTrainer(
model,
...
)
trainer.train()
quantize_to_1bit(output_directory)
借助这个包,我们希望加速围绕三值格式 LLM 的研究和开发,并希望看到社区开发出许多 Falcon-Edge 的衍生版本以及其他未来强大的 BitNet 模型。
更进一步
我们相信此次发布开辟了多个有趣的方向——在所有可能的后续方向中,我们目前认为以下开放问题将在不久的将来使 BitNet 模型更具影响力:
- 为 BitNet 架构编写更强大的 GPU 推理内核:利用
bitnet.cpp背后的相同核心思想,我们希望此次发布能说服研究社区专注于开发强大的 BitNet 推理内核,以便在 GPU 上实现更快的推理——从而使它们比 GPU 上的原生模型更快。 - 为 BitNet 微调支持 PEFT 方法:这仍然是一个尚未探索的研究问题,可以为 BitNet 模型开辟多种新的可能性。
- 对 Bitnet 检查点通用性的更严谨研究:虽然我们观察到,仅注入权重缩放就能得到一个性能尚可的非 Bitnet 检查点,但我们相信还可以做更多研究来最小化 Bitnet 检查点与其
bfloat16对应版本之间的性能下降,从而使其完全无性能损失。 - 关于多模态 Bitnet 模型:我们希望这些 Bitnet 基础模型连同
onebitllms包能够作为创建首个多模态 Bitnet VLM(视觉语言模型)等的基础工作。 - 更优化的 Bitnet 训练内核:为了编写我们的内核,我们决定采用两阶段方法,先计算全局最大值,之后再按块用于归一化。这种方法可以改进以编写更高效的内核。在我们的测试中,我们估计非 Bitnet 预训练与 Bitnet 预训练之间的开销约为 ~20%。我们很快将发布关于 Bitnet 训练所引入开销的更详尽数据。
引用
如果您觉得这项工作对您的研究和工作有帮助,请考虑引用我们的工作,以及引用 BitNet 模型背后的所有基础工作:
@misc{tiionebitllms,
title = {Falcon-E, a series of powerful, universal and fine-tunable 1.58bit language models.},
author = {Falcon-LLM Team},
month = {May},
url = {https://falcon-lm.github.io/blog/falcon-edge},
year = {2025}
}
更多参考文献
@misc{ma2025bitnetb1582b4ttechnical,
title={BitNet b1.58 2B4T Technical Report},
author={Shuming Ma and Hongyu Wang and Shaohan Huang and Xingxing Zhang and Ying Hu and Ting Song and Yan Xia and Furu Wei},
year={2025},
eprint={2504.12285},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2504.12285},
}
@misc{wang2025bitnetcppefficientedgeinference,
title={Bitnet.cpp: Efficient Edge Inference for Ternary LLMs},
author={Jinheng Wang and Hansong Zhou and Ting Song and Shijie Cao and Yan Xia and Ting Cao and Jianyu Wei and Shuming Ma and Hongyu Wang and Furu Wei},
year={2025},
eprint={2502.11880},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2502.11880},
}
@misc{,
title={1.58-Bit LLM: A New Era of Extreme Quantization},
author={Mohamed Mekkouri and Marc Sun and Leandro von Werra and Thomas Wolf},
year={2024},
}
@misc{ma2024era1bitllmslarge,
title={The Era of 1-bit LLMs: All Large Language Models are in 1.58 Bits},
author={Shuming Ma and Hongyu Wang and Lingxiao Ma and Lei Wang and Wenhui Wang and Shaohan Huang and Li Dong and Ruiping Wang and Jilong Xue and Furu Wei},
year={2024},
eprint={2402.17764},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2402.17764},
}
@misc{wang2023bitnetscaling1bittransformers,
title={BitNet: Scaling 1-bit Transformers for Large Language Models},
author={Hongyu Wang and Shuming Ma and Li Dong and Shaohan Huang and Huaijie Wang and Lingxiao Ma and Fan Yang and Ruiping Wang and Yi Wu and Furu Wei},
year={2023},
eprint={2310.11453},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2310.11453},
}
本文提到的合集 2
BitNet 合集 🔥BitNet 系列大型语言模型(1-bit LLM)。•7 项•更新于 2025 年 5 月 1 日• 65
Falcon Edge 系列合集 一系列强大、通用且可微调的小型语言模型•8 项•更新于 8 月 13 日• 25
更多来自该作者
## QIMMA قِمّة ⛰:一个质量优先的阿拉伯语 LLM 排行榜 *
tiiuae 团队 13 2026 年 4 月 21 日 tiiuae
## Falcon Perception *
tiiuae 团队 71 2026 年 4 月 1 日 tiiuae
社区
![]()
冲啊
🚀
1
1
回复
![]()
太棒了!迫不及待想在 llama.cpp 上试试这个
·
❤️
1
1
![]()
文章作者 2025 年 5 月 15 日
谢谢 @ThomasTheMaker !
其实你现在就可以在 bitnet.cpp 上试用(在合并之前,你需要使用:https://github.com/microsoft/BitNet/pull/268 来使用它)
![]()
恭喜,这些结果看起来非常有前景。不过,我真的不认为与其他小型模型的 FP-16 版本进行比较是公平的。至少应该使用 8-bit 甚至 4-bit 量化版本,以给出更准确的性能,并反映人们实际使用的版本。
回复
![]()
•
我们正在构建一个本地推理/微调解决方案/应用,用作 GPT 的替代品。我想知道,我能否直接使用这个框架,拿 gemma-e2b 模型将其量化为 1-bit,然后进行推理,而不是使用 llama.cpp
回复
编辑预览
通过拖入文本输入框、粘贴或点击此处来上传图片、音频和视频。
点击或粘贴此处以上传图片
本文提到的合集 2
BitNet 合集 🔥BitNet 系列大型语言模型(1-bit LLM)。•7 项•更新于 2025 年 5 月 1 日• 65
Falcon Edge 系列合集 一系列强大、通用且可微调的小型语言模型•8 项•更新于 8 月 13 日• 25
系统主题
公司
网站
来源:Hugging Face:Blog · huggingface.co




