kyegomez/BitNet

Implementation of "BitNet: Scaling 1-bit Transformers for Large Language Models" in pytorch

解决的问题

BitNet 是 1-bit Transformer 的 PyTorch 实现,旨在显著降低大型语言模型 (LLM) 的内存和计算需求。它通过将标准线性投影替换为二值化层,实现模型权重的超压缩。

工作原理

该项目实现了 BitLinear 模块,用于替换 Transformer 中的标准 nn.Linear。该过程涉及层归一化、二值化和 abs-max 量化以及随后的反量化序列。该仓库提供了使用 replace_linears_in_pytorch_modelreplace_linears_in_hf 替换现有 PyTorch 或 Hugging Face 模型中线性层的工具。

适用对象

面向想要实现 1-bit LLM 或探索文本、图像或音频处理超压缩技术的 AI 研究人员和开发人员。请注意,使用这些层的模型必须从头开始训练或微调才能正常工作。

亮点

  • 广泛的架构支持:包括 BitNetTransformerBitAttention(使用 Multi-Grouped Query Attention)、BitFeedForwardBitMoE (Mixture of Experts) 和 BitMamba 的实现。
  • 集成工具:提供用于轻松替换标准 PyTorch 和 Hugging Face 模型中线性层的实用函数。
  • 视觉支持:包括用于对 Vision Transformer 应用 1-bit 压缩的 OneBitViT
  • 性能优化:具有用于低比特 GEMM 操作的优化 CUDA 内核。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目