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 核心。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案