kyegomez/BitNet

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

해결하는 문제

BitNet은 대규모 언어 모델(LLM)의 메모리 및 계산 요구 사항을 크게 줄이도록 설계된 1-bit Transformer의 PyTorch 구현체입니다. 표준 선형 프로젝션을 이진화된 레이어로 교체하여 모델 가중치의 초압축을 가능하게 합니다.

작동 원리

이 프로젝트는 Transformer의 표준 nn.Linear를 대체하는 BitLinear 모듈을 구현합니다. 프로세스에는 레이어 정규화, 이진화, abs-max 양자화 및 역양자화 시퀀스가 포함됩니다. 이 저장소는 replace_linears_in_pytorch_modelreplace_linears_in_hf를 사용하여 기존 PyTorch 또는 Hugging Face 모델의 선형 레이어를 교체할 수 있는 도구를 제공합니다.

대상 사용자

1-bit LLM을 구현하거나 텍스트, 이미지 또는 오디오 처리를 위한 초압축을 탐구하고자 하는 AI 연구자 및 개발자를 대상으로 합니다. 이러한 레이어를 사용하는 모델은 올바르게 작동하려면 처음부터 학습 또는 미세 조정(fine-tuning)되어야 한다는 점에 유의하십시오.

주요 특징

  • 폭넓은 아키텍처 지원: BitNetTransformer, BitAttention (Multi-Grouped Query Attention 사용), BitFeedForward, BitMoE (Mixture of Experts) 및 BitMamba 구현이 포함되어 있습니다.
  • 통합 도구: 표준 PyTorch 및 Hugging Face 모델에서 선형 레이어를 쉽게 교체할 수 있는 유틸리티 함수를 제공합니다。
  • Vision 지원: Vision Transformer에 1-bit 압축을 적용하기 위한 OneBitViT가 포함되어 있습니다。
  • 성능 최적화: 저비트 GEMM 연산을 위한 최적화된 CUDA 커널을 특징으로 합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트