메뉴 닫기

BitNet b1.58 – 초경량 1-bit LLM 모델

[출처] https://opengraph.githubassets.com

 

최근 AI 자체 구현에 대한 관심도가 높아져 LLM 도 짧은 시간내에 많은 발전이 있었는데, 그중 눈에 띄는 하나가 Microsoft 사에서 만든 BitNet 1-bit LLM(BitNet-b1.58-2B-4T / 24억개 파라미터)모델입니다. 지금까지의 LLM 은 고성능 GPU 를 필요로 했는데, 이 모델은 저사양의 CPU, Memory 로도 구동이 가능하다는 것을 보여주고 있습니다. 이제 LLM을 스마트폰이나 엣지 디바이스, 사물인터넷(IoT)과 같은 온디바이스 환경에서도 구동할 날이 머지않은 것 같습니다.

 

[특징]

– 1.58bit의 정보량을 갖습니다. 이는 전통적인 16비트 또는 32비트 모델에 비해 메모리 사용량을 크게 줄입니다.

– BitNet b1.58은 동일한 크기의 full-precision 모델(FP16 또는 BF16)과 비교하여 최종 작업 성능에서 유사한 결과를 보입니다.

-​ 메모리 사용량과 에너지 소비를 크게 줄이며, 특히 추론 시간과 처리량 측면에서 높은 효율성을 제공합니다.

– ​기존 Transformer와 유사한 스케일링 법칙을 따르며, 대규모 모델로의 확장이 가능합니다.

 CPU에서의 빠르고 손실 없는 추론을 지원하는 공식 추론 프레임워크로, ARM 및 x86 아키텍처를 지원합니다.

 

[단점]

– 한글이 완전하지 않습니다. (탈자 및 영어 혼용)

– 문장 이해력이 부족합니다.

아직은 안정성과 실사용 적합성이 충분히 검증되지 않았기 때문에 많은 테스트를 거치며 눈여겨 볼 필요가 있습니다.

아래 설치 및 사용 과정은 Ubuntu 24.04 를 기준으로 작성하였습니다.

 

1. 환경 설정

[필수 요구 사항]

– python >= 3.9

– cmake >= 3.22

– clang >= 18

 

자동 설치 스크립트를 사용하여 필요한 패키지를 다운로드할 수 있습니다.

# apt update && apt -y upgrade

# bash -c “$(wget -O – https://apt.llvm.org/llvm.sh)”

 

다른 사용자와 환경이 충돌되지 않도록 conda 사용을 추천합니다.

# apt -y install build-essential cmake ninja-build

# wget https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh

# sh Anaconda3-2024.10-1-Linux-x86_64.sh

라이선스 동의 → yes

설치 경로 지정 → 기본값 (Enter)

설치 완료 후 conda init 실행 여부 → yes

# source ~/.bashrc

# conda –version

 

2. 소스를 통한 빌드

BitNet 을 다운로드 합니다.

# git clone –recursive https://github.com/microsoft/BitNet.git

# cd BitNet

 

새로운 conda 가상환경을 생성하고 필요한 패키지를 설치합니다.

# conda create -n bitnet-cpp python=3.11

Proceed ([y]/n)? → y

# conda activate bitnet-cpp

# pip install -r requirements.txt

 

모델을 수동으로 다운로드하고 로컬 경로에서 실행합니다.

# huggingface-cli download microsoft/BitNet-b1.58-2B-4T-gguf –local-dir models/BitNet-b1.58-2B-4T

# python setup_env.py -md models/BitNet-b1.58-2B-4T -q i2_s

 

3. 사용하기

아직은 한글이 완전히 지원되지 않으므로, 한글로 질문할 경우 글자가 빠지거나, 반복적인 답변 또는 영어와 혼용된 답변을 얻게 됩니다.

아래와 같이 모델을 시작합니다.

# python run_inference.py -m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf -p “You are a helpful assistant” -cnv

(생략)

System: You are a helpful assistant
Write a funny story in 5 sentences.

One day, a lazy cat named Whiskers decided to play hide-and-seek in the living room. As the game went on, Whiskers began hiding behind every possible hiding spot, including the sofa cushions, the curtains, and even the refrigerator. The owner of the house, a young boy named Timmy, had never seen a cat so good at hiding before. After an hour of searching, Timmy finally found Whiskers, curled up in the middle of the living room. The cat, tired and content, looked at Timmy and
keep going
Timmy, with a look of confusion, asked, “Whiskers, how did you get here?” Whiskers, not missing a beat, replied, “I’m a good cat, Timmy. I just know how to hide really well.” Timmy, still puzzled, replied, “Well, I’m still not sure I believe you!” Whiskers then looked up at Timmy with a mischievous grin and said, “I think it’s time for your weekly checkup.” Timmy, now even more confused, asked, “What are you talking about?”

>

 

어떠신가요? 이제 복잡한 환경 설정이나 고가의 장비 없이도, 로컬 서버에 직접 설치하고 LLM을 활용해볼 수 있게 되었습니다. 특히 BitNet 1.58b 모델은 저용량 메모리와 제한된 자원에서도 효율적으로 작동하기 때문에, “비싼 GPU 없이도 한번 써보고 싶다”는 분들에게 좋은 출발점이 되어줄 수 있습니다. 학습보다는 추론(실행)에 최적화되어 있어, 개인 서버나 엣지 장비에서도 충분히 테스트해볼 수 있고, 자연어 인터페이스를 직접 다뤄보는 데에도 유용할 것입니다.

 

[참고] https://github.com/microsoft/BitNet

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x