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 量化对生成质量的实际影响。

开源 free 开源模型
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1945
维护状态 活跃
是否开源
定价模式 free

项目数据

分类开源模型
开发团队kyegomez
所属国家
官网地址
定价模式free
价格说明开源免费,遵循开源许可证
访问状态
是否开源
开源协议MIT
主要语言Python
技术栈/模型artificial-intelligence,deep-neural-networks,deeplearning,gpt4,machine-learning,multimodal,multimodal-deep-learning
GitHub 星标★ 1945
30天Star增速
HF 下载量
上线时间2023-10-18 00:00:00
最近更新2026-09-14 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-09-15
浏览次数0

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 5 步

环境要求

  • Python 环境,且可使用 pip3 安装包
  • 已安装 PyTorch(示例代码中 import torch)
  • 使用 HuggingFace 用法时需安装 transformers
  • 示例代码使用 CUDA 与 float16,如需照抄示例建议有 NVIDIA 显卡

安装与启动步骤

  1. 1安装 bitnet

    README 给出的唯一安装方式,直接用 pip3 从 PyPI 安装 bitnet 包,建议在虚拟环境中执行。

    pip3 install bitnet
  2. 2验证导入成功

    安装完成后导入包内函数,确认环境无缺失依赖,能导入即说明基础安装成功。

    python -c "from bitnet import replace_linears_in_hf"
  3. 3用 BitLinear 替换线性层

    BitLinear 内部流程为 tensor→layernorm→二值化→abs max 量化→反量化;把 Transformer 里的 nn.Linear 换成 BitLinear,还可把 BitLinear 接入注意力得到 BitMGQ

  4. 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. 5参考示例脚本

    README 指出 examples 目录下有大量示例脚本,按自己的使用场景挑选对应脚本阅读或运行,具体文件名请以仓库 examples 文件夹为准。

关键配置

配置项必填说明示例
device示例张量所在设备,README 中统一使用 CUDAcuda
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

项目介绍

BitNet 是一个开源模型领域的开源项目,官方简介:Implementation of "BitNet: Scaling 1-bit Transformers for Large Language Models" in pytorch。项目使用 Python 开发,在 GitHub 上获得 1946 星标。

上一篇:Qwen3.8

下一篇:ml-slowfast-llava

同类项目推荐

Machine-Learning 开源

跟着博客笔记,边看边跑机器学习代码

All content related to machine learning from my blog

★ 115 2026-08-09
CoreML-Models 开源

下载即用的苹果端 AI 模型库,免去转换烦恼

Core ML model zoo for iOS/macOS — PyTorch models converted to ready-to-use .mlpacka···

★ 1870 2026-08-10