
BitNet
把大模型权重压到1-bit,省显存省算力
BitNet 是微软论文《BitNet: Scaling 1-bit Transformers for Large Language Models》的 PyTorch 开源实现,核心思路是把 Transformer 中的线性层权重压缩到 1-bit(三值 -1/0/1),从而大幅降低大语言模型的显存占用与计算开销。项目提供可训练的三值线性层(BitLinear),用 BitNet 架构替换标准 nn.Linear,让研究者能在普通显卡上训练和推理更小的类 GPT 模型。它解决的是大模型参数膨胀带来的部署成本问题,通过量化感知训练让模型在低比特下仍保持可用语言建模能力。代码结构简洁,包含模型定义、训练脚本与示例配置,适合作为低比特 LLM 研究的起点,也可用于验证 1-bit 量化对生成质量的实际影响。
项目数据
使用教程
环境要求
- Python 环境,且可使用 pip3 安装包
- 已安装 PyTorch(示例代码中 import torch)
- 使用 HuggingFace 用法时需安装 transformers
- 示例代码使用 CUDA 与 float16,如需照抄示例建议有 NVIDIA 显卡
安装与启动步骤
-
1安装 bitnet
README 给出的唯一安装方式,直接用 pip3 从 PyPI 安装 bitnet 包,建议在虚拟环境中执行。
pip3 install bitnet -
2验证导入成功
安装完成后导入包内函数,确认环境无缺失依赖,能导入即说明基础安装成功。
python -c "from bitnet import replace_linears_in_hf" -
3用 BitLinear 替换线性层
BitLinear 内部流程为 tensor→layernorm→二值化→abs max 量化→反量化;把 Transformer 里的 nn.Linear 换成 BitLinear,还可把 BitLinear 接入注意力得到 BitMGQ
-
4替换 HuggingFace 模型
README 示例从 bitnet 导入 replace_linears_in_hf,用于把 HuggingFace 模型中的线性层批量替换为 BitLinear,随后即可加载模型推理。
import torch from transformers import AutoModelForSequenceClassification, AutoTokenizer from bitnet import replace_linears_in_hf -
5参考示例脚本
README 指出 examples 目录下有大量示例脚本,按自己的使用场景挑选对应脚本阅读或运行,具体文件名请以仓库 examples 文件夹为准。
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
device | 否 | 示例张量所在设备,README 中统一使用 CUDA | cuda |
dtype | 否 | 示例张量精度,README 中统一使用半精度 | torch.half |
w_scale | 否 | 权重量化使用的缩放因子示例值 | 1.0 |
x_scale | 否 | 激活量化使用的缩放因子示例值 | 1.0 |
如何确认成功
能执行 python -c "from bitnet import replace_linears_in_hf" 且无报错,即表示 bitnet 包安装成功。
常见问题
Q:可以只用 CPU 运行吗?
A:README 的示例张量都写在 device='cuda' 且用 torch.half,说明默认面向 GPU;纯 CPU 运行需自行把设备改为 cpu 并注意半精度支持问题,README 未给出 CPU 示例。
Q:怎么把已有 HuggingFace 模型改成 BitNet?
A:README 提供了 replace_linears_in_hf,从 bitnet 导入后对模型调用即可将线性层替换为 BitLinear,再配合 AutoModelForSequenceClassification/AutoTokenizer 使用。
Q:BitLinear 1.5 可以用了吗?
A:README 明确说 BitLinear 1.5 仍在开发中,反量化算法等还有 bug,且尚未把乘法换成逐元素加法,暂不建议用于正式场景。
Q:具体示例脚本怎么跑?
A:README 只说示例在 examples 文件夹中,没有给出脚本名和运行命令;请打开仓库 examples 目录按文件名自行选择。
注意事项
- 本仓库是论文的 PyTorch 研究实现,README 未提供训练数据集、显存需求或性能指标。
- BitLinear 1.5 与 1.58-bit 新迭代仍在开发中,存在已知 bug,不建议直接用于生产。
- README 中的量化/反量化只给出流程描述与缩放因子示例,具体数值需按自己的模型调整。
核心亮点
- 提供完整 BitLinear 三值线性层实现,可直接替换 nn.Linear 做量化训练
- 代码基于 PyTorch,结构清晰,便于二次修改和复现论文实验
- 支持在消费级显卡上训练小规模类 GPT 模型,降低低比特研究门槛
不足之处
- 仅实现论文核心思路,缺少大规模预训练权重与完整评测结果
- 仓库更新与社区活跃度有限,文档和示例相对简单
适用场景
- 研究 1-bit/三值量化对语言模型效果的影响
- 在显存有限的设备上训练小型 GPT 类模型
- 作为低比特 Transformer 教学与论文复现的代码参考
替代项目
GPTQ-for-LLaMa、llama.cpp、bitsandbytes
项目介绍
上一篇:Qwen3.8
同类项目推荐
awesome-claude-fable-5-prompt-va···
开源
一站式掌握 Claude Fable 5 玩法,快速选型不踩坑
Ultimate Claude Fable 5 Guide 2026: Use Cases, Integrations & Benchmarks
Machine-Learning
开源
跟着博客笔记,边看边跑机器学习代码
All content related to machine learning from my blog
Diffusion-Models-Papers-Survey-T···
开源
学视频生成怕绕路?这份资料库帮你理清
Diffusion model papers, survey, and taxonomy
CoreML-Models
开源
下载即用的苹果端 AI 模型库,免去转换烦恼
Core ML model zoo for iOS/macOS — PyTorch models converted to ready-to-use .mlpacka···