微软推出bitnet-b1.58-2B-4T:极致的量化,小巧而强大

简介: 随着大语言模型的发展,参数量逐渐扩大,大语言模型的训练和运行通常需要大量的计算资源,这也限制了大语言模型在一些场景尤其是端侧的应用,所以,探索剪枝,蒸馏等量化方式,已经成为大语言模型研究的一个重要方向。

引言

随着大语言模型的发展,参数量逐渐扩大,大语言模型的训练和运行通常需要大量的计算资源,这也限制了大语言模型在一些场景尤其是端侧的应用,所以,探索剪枝,蒸馏等量化方式,已经成为大语言模型研究的一个重要方向。

近期微软开源了bitnet-b1.58-2B-4T模型,bitnet是一种在极低比特权重运行的模型架构。传统的量化如int8量化,甚至更低int4,int2等,通过进一步的降低精度,理论上提升了模型的工作效率,降低了模型工作需要的计算资源,但同时按照经验来看,量化的性能下降风险很大,随着精度的降低,保持模型的准确率越发的困难。

而量化的最终理论极限是1位,其中权重被限制为仅两个值(例如 +1 和 -1)。这就是二值神经网络 (BNN) 的领域。BitNet 的核心思想是通过采用 1 位权重表示来大幅降低 LLM 的计算成本。如果权重为二进制 (+1/-1),那么 Transformer 中计算最密集的运算——矩阵乘法——可以在很大程度上被简单的加减运算所取代。这有望带来以下优势:

  1. 大幅减少内存:存储权重仅需要一位,而不是 16 位或 32 位。
  2. 显著加速:加法在计算上比浮点乘法便宜得多。
  3. 更低的能耗:操作越简单,消耗的电量就越少。

然而,训练稳定且准确的 BNN,尤其是在 LLM 规模上,已被证明极其困难。在训练过程中直接将权重量化为 +1/-1 可能会阻碍学习过程,通常会导致与全精度模型相比质量损失显著。

虽然最初的 BitNet 概念可能旨在实现纯 1 位权重,但“b1.58”是另一种一种具体的、略有不同的量化方案。此名称对应于1.58 位表示,这在数学上源于使用三进制权重。三进制量化允许权重取三个值: +1、0 或 -1,而不仅仅是两个值 (+1, -1)。

为什么是三进制的?

  1. 引入稀疏性:将权重表示为“0”的能力使模型能够有效地“关闭”某些连接,从而引入稀疏性。这有利于提高模型容量,并且可能比纯二元网络(每个连接都必须为正或负)更容易训练。
  2. 提升表示能力(相对于 1 位):虽然精度仍然极低,但三种可能状态(+1、0、-1)比两种状态(+1、-1)提供了略高的灵活性。这种小幅提升对于维持复杂语言任务的性能至关重要。
  3. 保持效率:与二进制权重类似,三进制权重仍然允许矩阵乘法以加法/减法为主(乘以 +1、-1 或 0 较为简单)。相比 FP16,其核心效率优势基本保持不变。

“1.58 位”来自信息论计算:log₂(3) ≈ 1.58。每个参数大约需要 1.58 位信息来存储其状态(+1、0 或 -1)。

该实现可能涉及用nn.Linear自定义层替换 Transformer 架构中的标准层,该自定义BitLinear层在前向和后向传递期间对其权重强制实施此三元约束。

同时模型的size为20亿参数量,训练用的tokens为4T。

模型效果

BitNet b1.58 2B4T 与类似规模的领先开放权重全精度LLM 进行了比较。以下是主要结果(所有模型均为指令调优版本):

Benchmark

LLaMA 3.2 1B

Gemma-3 1B

Qwen2.5 1.5B

SmolLM2 1.7B

MiniCPM 2B

BitNet b1.58 2B

Memory (Non-emb)

2GB

1.4GB

2.6GB

3.2GB

4.8GB

0.4GB

Latency (CPU Decoding)

48ms

41ms

65ms

67ms

124ms

29ms

Energy (Estimated)

0.258J

0.186J

0.347J

0.425J

0.649J

0.028J

Training Tokens (Pre-train)

9T*

2T**

18T

11T

1.1T

4T

ARC-Challenge

37.80

38.40

46.67

43.52

44.80

49.91

ARC-Easy

63.17

63.13

76.01

62.92

72.14

74.79

OpenbookQA

34.80

38.80

40.80

46.00

40.20

41.60

BoolQ

64.65

74.22

78.04

75.78

80.67

80.18

HellaSwag

60.80

57.69

68.28

71.71

70.81

68.44

PIQA

74.21

71.93

76.12

76.12

76.66

77.09

WinoGrande

59.51

58.48

62.83

68.98

61.80

71.90

CommonsenseQA

58.48

42.10

76.41

63.55

71.74

71.58

TruthfulQA

43.80

38.66

46.67

39.90

41.41

45.31

TriviaQA

37.60

23.49

38.37

45.97

34.13

33.57

MMLU

45.58

39.91

60.25

49.24

51.82

53.17

HumanEval+

31.10

37.20

50.60

28.00

43.90

38.40

GSM8K

38.21

31.16

56.79

45.11

4.40

58.38

MATH-500

23.00

42.00

53.00

17.60

14.80

43.40

IFEval

62.71

66.67

50.12

57.91

36.81

53.48

MT-bench

5.43

6.40

6.12

5.50

6.57

5.85

Average

44.90

43.74

55.23

48.70

42.05

54.19

最佳实践

使用transformers进行推理:

环境安装:

!pip install git+https://github.com/shumingma/transformers.git

示例代码

import torch
from modelscope import AutoModelForCausalLM, AutoTokenizer
model_id = "AI-ModelScope/bitnet-b1.58-2B-4T"
# Load tokenizer and model
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.bfloat16
)
# Apply the chat template
messages = [
    {"role": "system", "content": "You are a helpful AI assistant."},
    {"role": "user", "content": "How are you?"},
]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
chat_input = tokenizer(prompt, return_tensors="pt").to(model.device)
# Generate response
chat_outputs = model.generate(**chat_input, max_new_tokens=50)
response = tokenizer.decode(chat_outputs[0][chat_input['input_ids'].shape[-1]:], skip_special_tokens=True) # Decode only the response part
print("\nAssistant Response:", response)

使用bitnet.cpp推理

git clone --recursive https://github.com/microsoft/BitNet.git
cd BitNet
# 在个人电脑建议安装虚拟环境
# 在魔搭免费CPU notebook资源不需要安装虚拟环境
# python3.11 -m venv 3.11   
# source 3.11/bin/activate 
pip install -r requirements.txt
pip install modelscope
modelscope download AI-ModelScope/bitnet-b1.58-2B-4T-gguf --local_dir models/BitNet-b1.58-2B-4T
python setup_env.py -md models/BitNet-b1.58-2B-4T -q i2_s
python run_inference.py -m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf -p "You are a helpful assistant" -cnv

推理性能(MAC M2芯片)

image.png

点击链接,即可跳转体验~

https://www.modelscope.cn/models/AI-ModelScope/bitnet-b1.58-2B-4T

目录
相关文章
|
5月前
|
存储 人工智能 算法
显卡不再是刚需?微软开源“省钱”神技:让100B大模型在普通CPU上跑疯了!
微软BitNet以1.58-bit三值量化技术,将百亿参数大模型压缩至CPU可运行级别:内存降10倍、运算转整数加减,Mac/ThinkPad即可实现5–7 tokens/s推理,功耗降低超70%。开源框架bitnet.cpp让本地私有AI真正普惠。(239字)
946 1
|
存储 缓存 人工智能
1-bit大模型还能再突破!新一代BitNet架构启用4位激活值
BitNet a4.8 是一种新型的 1-bit 大语言模型架构,由微软研究院和中国科学院大学提出。该模型通过混合量化与稀疏化技术,在注意力和前馈网络中使用 4 位激活值,中间状态采用 8 位量化,有效减少量化误差。相比 BitNet b1.58,BitNet a4.8 在性能相当的情况下显著提升了推理速度,并支持 3 位 KV 缓存。其两阶段训练策略从 8 位逐步适应到 4 位激活值,简化了训练过程。尽管存在特定任务上的局限性,BitNet a4.8 为 1-bit LLM 的发展提供了新方向,未来可进一步优化并拓展至更多领域。
469 9
|
4月前
|
机器学习/深度学习 存储 人工智能
还在手写Skill?hermes-agent 让 Agent 自己进化能力
Hermes-agent 是 GitHub 23k+ Star 的开源项目,突破传统 Agent 依赖人工编写Aegnt Skill 的瓶颈,首创“自我进化”机制:通过失败→反思→自动生成技能→持续优化的闭环,让 Agent 在实践中自主构建、更新技能库,持续自我改进。
3741 8
|
人工智能 安全 搜索推荐
一定要知道ChatGPT最新功能:自定义指令 Custom Instructions(下)
一定要知道ChatGPT最新功能:自定义指令 Custom Instructions
|
6月前
|
存储 人工智能 BI
2026年OpenClaw实战攻略:阿里云部署+200个Skills解锁+ClawHub技能生态详解
OpenClaw作为开源Agent框架的标杆,彻底改变了AI的使用逻辑——它不再是单纯的对话工具,而是能调用本地工具、系统程序、第三方服务的“全能执行者”。而Skills(技能插件)正是其核心竞争力所在,如同为AI配备了“超级外挂”,让OpenClaw能完成实时数据查询、PPT生成、邮件管理、代码开发等复杂任务。
2334 1
|
5月前
|
人工智能 Linux API
【保姆级教程】OpenClaw 零基础部署与精选Skills安装指南,含阿里云百炼配置与常见问题解答
2026年开源AI Agent领域的核心工具OpenClaw(曾用名Clawdbot)凭借模块化的Skill扩展生态,实现了从单纯对话到落地执行的能力跃迁,成为众多开发者和办公人士提升效率的重要工具。这款支持MacOS、Linux、Windows11本地部署,也可通过阿里云实现一键部署的AI助手,能通过自然语言指令完成文档处理、自动化工作流、跨平台协作等复杂任务,但新手初次接触时,既会面临部署配置的入门难题,也会因海量Skills陷入选择困境。本文将从零基础部署入手,详解阿里云及多系统本地部署流程、阿里云百炼免费大模型API配置方法,同时梳理核心Skills的安装逻辑与清单,并解答部署和使用中
3102 3
|
5月前
|
存储 API Docker
告别“金鱼脑”!OpenClaw记忆系统完全手册(阿里云/本地部署+记忆优化+避坑指南)
“昨天聊完的需求,今天再问就忘;反复强调的偏好,每次都要重新说明”——这是2026年无数OpenClaw用户的痛点。参考文章精准指出核心问题:AI智能体的记忆能力直接决定使用体验,而OpenClaw的记忆系统并非“自动生效”,需要理解其底层逻辑才能充分利用。
3019 1
|
机器学习/深度学习 自然语言处理 测试技术
Qwen3技术报告首次全公开!“混合推理模型”是这样炼成的
近日,通义千问Qwen3系列模型已开源,其技术报告也正式发布。Qwen3系列包含密集模型和混合专家(MoE)模型,参数规模从0.6B到235B不等。该模型引入了“思考模式”与“非思考模式”的动态切换机制,并采用思考预算机制优化推理性能。Qwen3支持119种语言及方言,较前代显著提升多语言能力,在多个基准测试中表现领先。此外,通过强到弱蒸馏技术,轻量级模型性能优异,且计算资源需求更低。所有Qwen3模型均采用Apache 2.0协议开源,便于社区开发与应用。
8194 30
|
人工智能 边缘计算 自然语言处理
普通电脑也能跑AI:10个8GB内存的小型本地LLM模型推荐
随着模型量化技术的发展,大语言模型(LLM)如今可在低配置设备上高效运行。本文介绍本地部署LLM的核心技术、主流工具及十大轻量级模型,探讨如何在8GB内存环境下实现高性能AI推理,涵盖数据隐私、成本控制与部署灵活性等优势。
10278 0
普通电脑也能跑AI:10个8GB内存的小型本地LLM模型推荐

热门文章

最新文章