BitNet 소개
BitNet은 1비트 대규모 언어 모델(Large Language Model, LLM)을 위한 공식 추론 프레임워크입니다. LLM을 더 작은 비트 표현으로 줄여 빠르고 효율적인 추론을 가능하게 합니다. 1.58비트 모델을 기반으로 한 BitNet은 특히 CPU 환경에서 매우 최적화되어 있으며, ARM 및 x86 기반 시스템에서 우수한 성능을 발휘합니다. 향후 NPU 및 GPU 지원이 추가될 예정입니다.
BitNet의 첫 번째 릴리스는 CPU 환경에서의 추론에 중점을 두고 있으며, 이를 통해 전력 소모를 줄이고 처리 속도를 높이는데 큰 기여를 합니다. 대형 모델이 CPU에서 실행될 때도 빠르고 손실 없는 추론이 가능합니다.
BitNet.cpp성능 개요 및 특징
BitNet은 다양한 CPU 아키텍처에서 뛰어난 성능을 제공합니다. 다음은 BitNet이 제공하는 성능 향상 요소입니다:
- ARM CPU에서의 성능:
- 속도 향상: 1.37배에서 5.07배 향상
- 에너지 절약: 55.4%에서 70% 감소
- x86 CPU에서의 성능:
- 속도 향상: 2.37배에서 6.17배 향상
- 에너지 절약: 71.9%에서 82.2% 감소
BitNet은 100B 파라미터 규모의 모델도 단일 CPU에서 구동할 수 있으며, 인간 수준의 읽기 속도(초당 5~7 토큰)에 필적하는 속도로 텍스트를 처리할 수 있습니다. 이러한 기능 덕분에 BitNet은 노트북이나 임베디드 시스템 등 로컬 장치에서도 LLM을 구동할 수 있는 가능성을 열어줍니다.
다음은 Apple M2에서 BitNet b1.58 3B 모델을 실행하는 데모 영상입니다:
3. 지원하는 모델
BitNet은 Hugging Face에서 제공하는 1비트 LLM을 사용하여 추론 성능을 입증합니다. Microsoft에서 직접 학습하지 않은 모델들도 BitNet에서 사용할 수 있으며, 이를 통해 더 많은 개발자가 1비트 LLM을 확장하여 대형 모델을 구현하는 데 영감을 줄 수 있습니다.
다음은 BitNet이 지원하는 대표적인 모델들입니다.
모델명 | 파라미터 수 | x86 지원 | ARM 지원 |
---|---|---|---|
bitnet_b1_58-large | 0.7B | ||
bitnet_b1_58-3B | 3.3B | ✘ | |
Llama3-8B-1.58-100B-tokens | 8.0B |
이 모델들은 BitNet의 추론 프레임워크를 통해 **양자화(quantization)**된 형식으로 변환되어, CPU에서 더욱 효율적인 추론을 수행할 수 있습니다.
사용 방법 및 예시
기본 사용 방법
GitHub 저장소의 README를 따라 의존성 설치 및 환경 설정을 마친 후, 다음과 같이 양자화된 모델을 사용하여 추론을 수행할 수 있습니다:
python run_inference.py -m models/Llama3-8B-1.58-100B-tokens/ggml-model-i2_s.gguf -p "Where is Mary?\nAnswer:" -n 6 -temp 0
이 명령어는 다음과 같은 출력을 생성합니다:
Answer: Mary is in the garden.
주요 옵션
-m
: 모델 파일 경로를 지정합니다.-p
: 생성할 텍스트의 프롬프트를 입력합니다.-n
: 예측할 토큰 수를 설정합니다.-temp
: 생성되는 텍스트의 무작위성을 제어하는 하이퍼파라미터인 **온도(Temperature)**를 조절합니다.
벤치마크 및 성능 테스트
BitNet은 다양한 환경에서 성능을 테스트할 수 있는 벤치마크 스크립트를 제공합니다. 아래 명령어는 추론 속도 및 성능을 측정하는 데 사용됩니다:
python utils/e2e_benchmark.py -m /path/to/model -n 200 -p 256 -t 4
이 명령어는 주어진 모델에 대해 200개의 토큰을 생성하고, 프롬프트 크기를 256으로 설정하며, 4개의 스레드를 사용하여 성능을 테스트합니다.
또한 BitNet은 사용자 정의 모델 레이아웃을 지원하지 않는 경우에도 더미 모델을 생성하고 벤치마크를 수행할 수 있는 스크립트를 제공합니다.
감사의 글
BitNet은 llama.cpp 프레임워크를 기반으로 개발되었으며, T-MAC 팀의 저비트 LLM 추론을 위한 LUT 메서드와 관련한 논의에 큰 도움을 받았습니다.
라이선스
Microsoft는 BitNet.cpp를 MIT 라이선스로 공개하였습니다. 자세한 라이선스 내용은 GtiHub 저장소를 확인해주세요.
BitNet: Scaling 1-bit Transformers for Large Language Models
The Era of 1bit LLMs: All Large Language Models are in 1.58 Bits
BitNet GitHub 저장소
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래쪽에 좋아요를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~