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 核心。
相關
- 專案
- 專案
- 專案
- 專案
- 專案