이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
BitNet 원리, 가중치 -1·0·1로 CPU에서 AI 돌리는 법
BitNet(비트넷)은 마이크로소프트 연구진이 내놓은 초경량 언어 모델 방식입니다. 이 글은 BitNet이 가중치를 -1, 0, +1 세 값으로만 저장하는 원리, 그 덕분에 GPU 없이 CPU로도 모델이 돌아가는 이유, 공식 수치와 직접 실행하는 명령, 그리고 아직 남은 한계를 정리합니다.

왜 AI에는 GPU가 필수처럼 여겨졌나
오픈클로(OpenClaw) 같은 AI 에이전트를 내 컴퓨터에서 돌리려는 사람이 늘면서 맥미니나 비싼 그래픽카드를 사는 일이 흔해졌습니다. 개인 컴퓨터에서 쓸 만한 AI 모델을 돌리려면 고성능 GPU나 큰 통합 메모리가 있어야 한다는 것이 거의 상식처럼 굳어 있습니다.
이유는 모델 안의 숫자에 있습니다. 언어 모델은 다음 단어를 예측하고, 문장을 이어 가고, 답의 방향을 정할 때 가중치라는 조절값을 씁니다. 그 개수가 수십억에서 수천억 개에 이릅니다. 모델이 커질수록 저장할 숫자도, 곱하고 더할 계산도 엄청나게 늘어납니다. BitNet 연구진도 기존 대형 언어 모델은 클수록 메모리 사용량, 연산량, 에너지 비용이 함께 커진다는 점을 문제로 꼽습니다. 숫자를 한꺼번에 빠르게 곱하고 더하는 데 특화된 GPU가 사실상 필수가 된 이유입니다.
BitNet의 핵심: 숫자 세 개면 충분하다
BitNet이 던지는 질문은 과감합니다. 그 많은 숫자를 정말 소수점까지 정밀하게 저장해야 할까, -1, 0, +1 세 값이면 충분하지 않을까.
대표 모델인 BitNet b1.58은 모든 가중치를 -1, 0, +1 가운데 하나로만 둡니다. 세 가지 값을 담는 데 드는 정보량이 log₂3, 약 1.58비트라서 이름에 1.58이 붙었습니다. 일반 모델이 가중치 하나에 16비트를 쓰는 것과 비교하면 10분의 1 수준입니다. 2024년 2월 논문으로 처음 공개됐습니다.
다이얼 대신 스위치
비유하면 이렇습니다.
- 기존 모델: 수십억 개의 다이얼을 아주 미세하게 돌려 맞추는 방식
- BitNet: 다이얼을 없애고 오른쪽(+1), 왼쪽(-1), 꺼짐(0) 세 칸짜리 스위치만 남기는 방식
기존 양자화와 다른 점
이미 학습이 끝난 모델의 숫자를 4비트나 8비트로 줄이는 일반 양자화(정밀도를 낮춰 용량을 줄이는 것)와는 출발이 다릅니다. BitNet은 처음부터 세 값만 쓰도록 모델을 학습시킵니다. 그래서 잘 학습된 일반 모델을 나중에 1.58비트로 깎는 것과 달리 성능 손실을 학습 과정에서 흡수합니다. 대신 BitNet의 장점을 누리려면 BitNet 방식으로 학습된 모델이 따로 있어야 합니다. 계산 중간에 오가는 활성값은 8비트로 둡니다.
성능은 괜찮을까
이렇게 단순하게 해도 되느냐는 의문이 당연히 듭니다. 연구진은 같은 크기, 같은 학습 조건의 일반 모델과 비교해 성능은 비슷하게 유지하면서 메모리·속도·에너지 면에서는 더 유리하다고 설명합니다.
근거로 많이 인용되는 것이 2025년 4월 공개된 기술 보고서의 BitNet b1.58 2B4T입니다. 약 20억 개 규모의 가중치를 4조 개 토큰으로 학습한 모델로, Llama 3.2 1B, Gemma-3 1B, Qwen2.5 1.5B, SmolLM2 1.7B, MiniCPM 2B 같은 비슷한 크기의 공개 모델과 견줄 만한 점수를 냈습니다. 모델 카드에 적힌 효율 수치는 이렇습니다.
- 임베딩을 뺀 메모리: 0.4GB
- CPU에서 단어 하나를 만드는 시간: 29밀리초
- 추정 에너지: 0.028줄
비교 대상은 모두 10억~20억 규모의 작은 모델입니다. 챗GPT나 클로드 같은 대형 모델과 같은 수준이라는 뜻은 아닙니다.
CPU에서 돌아가는 이유
숫자를 세 개로 줄였다고 어떻게 CPU에서 돌아갈까요. 이유는 두 가지입니다.
모델이 가벼워진다
저장할 정보량 자체가 크게 줄어 모델을 메모리에 올리는 부담이 확 줄어듭니다. 20억 규모 모델의 핵심 가중치가 0.4GB에 들어가니 일반 노트북 메모리로도 넉넉합니다.
계산이 단순해진다
기존 모델은 정밀한 숫자끼리 계속 곱하고 더해야 했습니다. BitNet은 가중치가 세 값뿐이라 계산이 이렇게 바뀝니다.
- +1이면 더한다
- -1이면 뺀다
- 0이면 건너뛴다
무거운 곱셈이 빠지고 덧셈·뺄셈과 건너뛰기만 남습니다. GPU처럼 곱셈을 대량으로 처리하는 장치가 없어도 CPU가 감당할 만한 계산이 됩니다.
전용 실행기 bitnet.cpp
마이크로소프트는 CPU에서 BitNet 모델을 잘 돌리도록 bitnet.cpp라는 전용 실행기를 공개했습니다. 정확도 손실 없이 빠르게 실행하도록 최적화된 계산 코드가 들어 있습니다. 공식 저장소에 적힌 수치는 이렇습니다.
- ARM CPU(애플 실리콘 맥, 스마트폰 칩 등): 속도 1.37~5.07배 향상, 에너지 55.4~70.0% 절감
- x86 CPU(일반 인텔·AMD PC): 속도 2.37~6.17배 향상, 에너지 71.9~82.2% 절감
- 1,000억(100B) 규모의 BitNet b1.58 모델을 CPU 하나로 초당 5~7토큰, 사람이 글을 읽는 속도에 가깝게 돌릴 수 있음
생각보다 큰 모델이 생각보다 빠르게, 생각보다 적은 전력으로 돌아갈 수 있다는 결과입니다. 다만 지금 공식으로 내려받아 쓸 수 있는 대표 모델은 20억 규모의 2B4T입니다.
직접 실행해 보기
공식 저장소(github.com/microsoft/BitNet)에는 브라우저에서 바로 써 보는 데모 링크가 있고, 내 노트북에서 CPU로 빌드해 실행할 수도 있습니다. 준비물은 파이썬 3.10 이상, CMake 3.22 이상, Clang 18 이상이고, 콘다(Conda) 사용을 권장합니다. 윈도우는 비주얼 스튜디오 2022와 관련 구성 요소가 필요합니다.
- 저장소를 내려받고 폴더로 들어갑니다.
git clone --recursive https://github.com/microsoft/BitNet.git
cd BitNet
- 콘다 환경을 만들고 필요한 패키지를 설치합니다.
conda create -n bitnet-cpp python=3.10
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
- 대화 모드로 실행합니다.
python run_inference.py -m models/BitNet-b1.58-2B-4T/ggml-model-i2_s.gguf -p "You are a helpful assistant" -cnv
확인: 터미널에 입력 줄이 뜨고, 질문을 치면 CPU만으로 답이 나옵니다.
-t-c
아직 남은 한계
- 모델 선택지가 좁습니다. BitNet 방식으로 처음부터 학습한 모델만 이 이득을 누리고, 공개된 대표 모델은 20억 규모 하나 정도입니다.
- 2B4T는 한 번에 4,096토큰까지만 읽습니다. 긴 문서를 통째로 넣는 용도에는 맞지 않습니다.
- 작은 모델이라 복잡한 추론이나 한국어 품질은 대형 모델에 못 미칩니다.
- 모델을 학습시키는 데는 여전히 GPU가 필요합니다. BitNet이 줄이는 것은 실행(추론) 비용입니다.
GPU 없는 AI 시대가 오나
BitNet이 보여 주는 교훈은 언어 모델이 꼭 거대한 정밀 숫자 덩어리일 필요는 없다는 점입니다. 숫자를 단순화하면 비싼 GPU에 기대는 정도를 낮출 수 있습니다. GPU가 쓸모없어진다는 이야기가 아니라 다른 길이 하나 더 열렸다는 이야기에 가깝습니다.
이런 경량 방식이 널리 채택되면 개인 노트북이나 스마트폰 안에서 AI 모델과 AI 에이전트를 돌리는 온디바이스 AI가 더 빨리 퍼질 수 있습니다. 인터넷 없이, 데이터를 밖으로 보내지 않고 쓰는 AI라는 점에서도 의미가 있습니다.
자주 묻는 질문
BitNet b1.58의 1.58은 무슨 뜻인가요?
가중치 하나가 -1, 0, +1 세 값 중 하나라서 담는 정보량이 log₂3, 약 1.58비트라는 뜻입니다. 일반 모델이 가중치 하나에 16비트를 쓰는 것에 비해 훨씬 작습니다.
BitNet을 쓰면 그래픽카드가 필요 없나요?
실행만 보면 CPU로도 됩니다. 20억 규모 BitNet b1.58 2B4T는 핵심 가중치가 0.4GB라 일반 노트북에서 bitnet.cpp로 돌아갑니다. 다만 모델 학습에는 여전히 GPU가 필요하고, 대형 모델 수준의 답을 기대하기는 어렵습니다.
이미 쓰던 모델을 BitNet으로 바꿀 수 있나요?
그대로 바꾸기는 어렵습니다. BitNet은 처음부터 세 값만 쓰도록 학습한 모델이라, 일반 모델을 나중에 1.58비트로 줄이면 성능이 크게 떨어집니다. BitNet 방식으로 학습된 모델을 내려받아 써야 합니다.
bitnet.cpp는 얼마나 빠른가요?
공식 저장소 기준으로 ARM CPU에서 1.37~5.07배, x86 CPU에서 2.37~6.17배 빨라지고 에너지는 55~82% 줄었습니다. 1,000억 규모 모델도 CPU 하나로 초당 5~7토큰을 낼 수 있습니다.
이 글의 본문은 아래 원본 유튜브 영상의 내용을 바탕으로 쓸모연구소가 다시 정리해 쓴 것입니다. 세부 내용과 최신 정보는 원본 영상과 공식 안내에서 확인해 주세요.
원본 영상 보러가기 ↗