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_model 和 replace_linears_in_hf 替换现有 PyTorch 或 Hugging Face 模型中线性层的工具。
适用对象
面向想要实现 1-bit LLM 或探索文本、图像或音频处理超压缩技术的 AI 研究人员和开发人员。请注意,使用这些层的模型必须从头开始训练或微调才能正常工作。
亮点
- 广泛的架构支持:包括
BitNetTransformer、BitAttention(使用 Multi-Grouped Query Attention)、BitFeedForward、BitMoE(Mixture of Experts) 和BitMamba的实现。 - 集成工具:提供用于轻松替换标准 PyTorch 和 Hugging Face 模型中线性层的实用函数。
- 视觉支持:包括用于对 Vision Transformer 应用 1-bit 压缩的
OneBitViT。 - 性能优化:具有用于低比特 GEMM 操作的优化 CUDA 内核。
相关
- 项目
- 项目
- 项目
- 项目
- 项目