跳到正文
北京时间
原文
Hugging Face:Blog·· 2025-05-15精选AI 评分64

TII 发布 Falcon-Edge 系列 1.58bit BitNet 语言模型,含 1B 和 3B 两种规格

Falcon-Edge: A series of powerful, universal, fine-tunable 1.58bit language models.

AI 导读

TII 的 Falcon-Edge 系列基于 BitNet 架构,以三值权重 {-1, 0, 1} 直接预训练,提供 1B 和 3B 两种参数规格,各含 base 和 instruct 版本,模型在约 1.5 Tera Tokens 的内部数据混合上预训练。

推荐理由

原文解释了 BitNet 三值权重的训练范式和微调路径,读者可以据此判断 1.58bit 模型在端侧部署的适用性。

正文 · AI 翻译

Image 1: Hugging Face's logoHugging Face


返回文章

Falcon-Edge:一系列强大、通用、可微调的 1.58bit 语言模型。

团队文章

发布于 2025 年 5 月 15 日

- [x] 点赞 39

  • Image 2
  • Image 3
  • Image 4
  • Image 5
  • Image 6
  • Image 7
  • +33

Image 8: Younes B's avatar

Younes B ybelkada 关注

Image 9: Technology Innovation Institute's avatartiiuae

Image 10: Qiyang Zhao's avatar

Qiyang Zhao qiyang-zhao 关注

Image 11: Technology Innovation Institute's avatartiiuae

Image 12: Hang Zou's avatar

Hang Zou hangzou 关注

Image 13: Technology Innovation Institute's avatartiiuae

Image 14: Rhaiem's avatar

Rhaiem DhiyaEddine 关注

Image 15: Technology Innovation Institute's avatartiiuae

Image 16: Ilyas Chahed's avatar

Ilyas Chahed IChahed 关注

Image 17: Technology Innovation Institute's avatartiiuae

Image 18: Maksim Velikanov's avatar

Maksim Velikanov yellowvm 关注

Image 19: Technology Innovation Institute's avatartiiuae

Image 20: Jingwei Zuo's avatar

Jingwei Zuo JingweiZuo 关注

Image 21: Technology Innovation Institute's avatartiiuae

Image 22: Mike Lubinets's avatar

Mike Lubinets mersinvald 关注

Image 23: Technology Innovation Institute's avatartiiuae

Image 24: Hakim Hacid's avatar

Hakim Hacid HakimHacid 关注

Image 25: Technology Innovation Institute's avatartiiuae

Image 26: Falcon LLM TII UAE's avatar

Falcon LLM TII UAE FalconLLM 关注

Image 27: Technology Innovation Institute's avatartiiuae

Image 28: image/png 在这篇博客文章中,我们介绍 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 基准上评估了我们的模型(基础版和指令版),并在下方报告了与其他类似规模模型相比的归一化结果:

Image 29: image/png

Image 30: image/png

额外结果(排行榜 v1),比较我们的指令模型与微软新的 BitNet 模型:

Image 31: image/png

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 变体进行端到端评估来确认这一点,结果如下:

Image 32: image/png

这些模型的 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 包工具包

Image 33: image/png

在此次发布中,我们还介绍了 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

更多来自该作者

Image 34 ## QIMMA قِمّة ⛰:一个质量优先的阿拉伯语 LLM 排行榜 * Image 35 tiiuae 团队 13 2026 年 4 月 21 日 tiiuae

Image 36 ## Falcon Perception * Image 37 tiiuae 团队 71 2026 年 4 月 1 日 tiiuae

社区

Image 38

mishig

2025 年 5 月 15 日

冲啊

🚀

1

1

回复

Image 39

ThomasTheMaker

2025 年 5 月 15 日

太棒了!迫不及待想在 llama.cpp 上试试这个

  • Image 40
  • 1 条回复

·

❤️

1

1

Image 41

ybelkada

文章作者 2025 年 5 月 15 日

谢谢 @ThomasTheMaker !
其实你现在就可以在 bitnet.cpp 上试用(在合并之前,你需要使用:https://github.com/microsoft/BitNet/pull/268 来使用它)

Image 42

uhlo

2025 年 5 月 16 日

恭喜,这些结果看起来非常有前景。不过,我真的不认为与其他小型模型的 FP-16 版本进行比较是公平的。至少应该使用 8-bit 甚至 4-bit 量化版本,以给出更准确的性能,并反映人们实际使用的版本。

回复

Image 43

mehfuzh

8 月 24 日

•

编辑于 8 月 24 日

我们正在构建一个本地推理/微调解决方案/应用,用作 GPT 的替代品。我想知道,我能否直接使用这个框架,拿 gemma-e2b 模型将其量化为 1-bit,然后进行推理,而不是使用 llama.cpp

回复

编辑预览

通过拖入文本输入框、粘贴或点击此处来上传图片、音频和视频。

点击或粘贴此处以上传图片

评论 ·注册 或 登录 以发表评论

- [x] 点赞 39

  • Image 44
  • Image 45
  • Image 46
  • Image 47
  • Image 48
  • Image 49
  • Image 50
  • Image 51
  • Image 52
  • Image 53
  • Image 54
  • Image 55
  • +27

本文提到的合集 2

BitNet 合集 🔥BitNet 系列大型语言模型(1-bit LLM)。•7 项•更新于 2025 年 5 月 1 日• 65

Falcon Edge 系列合集 一系列强大、通用且可微调的小型语言模型•8 项•更新于 8 月 13 日• 25

系统主题

公司

服务条款隐私关于招聘

网站

模型数据集空间定价文档

来源:Hugging Face:Blog · huggingface.co