Microsoft의 BitNet C++ 커널 수정: 순수 CPU에서 1비트 LLM 구동 방법
요약
Microsoft의 BitNet 논문이 제시한 1비트 테르너리 모델을 순수 CPU 환경에서 구동하는 방법을 다룹니다. 기존 연구 코드는 여러 플랫폼(Windows, Apple Silicon)에서 컴파일 및 실행 오류가 많았으나, 작성자는 네이티브 C++ 엔진 버그를 수정하고 'BitRun'이라는 독립 실행형 바이너리를 패키징하여 범용성을 확보했습니다.
핵심 포인트
- 1비트 테르너리 모델은 CPU 추론 시 에너지 효율을 극대화합니다.
- 작성자가 핵심적인 플랫폼별(ARM64, MSVC) 버그를 수정했습니다.
- BitRun은 SIMD 커널 기반의 독립 실행형 러너로 범용성을 높였습니다.
- 이 기술은 엣지 및 저전력 디바이스에서의 연구 프로토타입에 적합합니다.
올해 초, Microsoft Research는 BitNet b1.58 논문을 발표하며, 1비트 테르너리 모델 ${-1, 0, +1}$이 플로팅 포인트 행렬 곱셈을 CPU에서 간단한 정수 덧셈으로 대체할 수 있음을 입증했습니다. 이론적으로 이는 에너지 소비를 70–80% 낮추고 극도의 CPU 추론 처리량(throughput)을 제공합니다.
하지만, Microsoft의 공식 연구 저장소(bitnet.cpp)를 컴파일하는 것은 대부분의 개발자에게 문제가 있었습니다:
- 하드코딩된 CMake 컴파일러 가드가 Windows 환경의 MSVC에서 치명적인 오류를 발생시켰습니다.
- 배치 스트라이드 메모리 덮어쓰기(Batch stride memory overwrites)가 Apple Silicon (ARM64)에서 반복적인 세그폴트(segfaults)를 유발했습니다.
- 해당 저장소는 재귀적 서브모듈, 특정 Clang 버전, Python virtualenvs, 또는 5-10 GB의 Docker 이미지를 요구했습니다.
엔지니어링 수정 사항 (The Engineering Fixes)
저는 네이티브 C++ 엔진 버그들을 패치하고 두 개의 풀 리퀘스트(pull requests)를 상위 저장소에 제출했습니다:
- PR #642: ARM64 2B 배치 스트라이드 메모리 덮어쓰기, FFN 활성화 정렬 (SiLU vs ReLU²), 그리고 토크나이저 추론 버그들을 수정했습니다.
- PR #644: Windows 환경에서 네이티브 MSVC 컴파일러 지원과 CLI 빌드 타겟을 추가했습니다.
제로-컴파일 단일 바이너리: BitRun
이 모델들을 범용 하드웨어에서 마찰 없이(zero-friction) 구동하기 위해, 저는 BitRun을 패키징했습니다. 이는 네이티브 SIMD 커널(Mac의 NEON DotProd, Windows/Linux의 AVX2)과 제로 빌드 의존성을 가진 독립 실행형 정적 링크 러너입니다.
검증된 벤치마크 (100% CPU, 0% GPU)
- Apple Silicon M4 Pro (12 Cores, ARM NEON):
- Falcon3 1B Instruct: 프롬프트 137.5 t/s | 생성 98.6 t/s (1.9 GB RAM)
- BitNet 70M: 프롬프트 8,758 t/s | 생성 1,355 t/s (<150 MB RAM)
- Windows 10/11 x86_64 (Intel Core i5-12600K, AVX2):
- Falcon3 1B Instruct: 생성 40–45 t/s
- Linux x86_64 (WSL2 / Ubuntu, AVX2):
- Falcon3 1B Instruct: ~130 ms TTFT | 생성 40–45 t/s
현실적인 범위 (Realistic Scope)
이 1비트 체크포인트(Falcon3-1B, BitNet-2.4B)는 클라우드 프론티어 API를 대체하는 것이 아니라, 엣지 및 CPU 추론을 위한 저전력 연구 프로토타입입니다. 이들의 주된 목적은 저와트 디바이스에서 테르너리 정수(ternary integer) 실행을 테스트하는 것입니다.
빠른 시작 (원라인 설치)
macOS & Linux:
curl -fsSL https://raw.githubusercontent.com/IshekKhal/bitrun/main/install.sh | sh
Windows (PowerShell):
irm https://raw.githubusercontent.com/IshekKhal/bitrun/main/install.ps1 | iex
터미널에서 실행:
bitrun pull falcon3-1b
bitrun run falcon3-1b
OpenAI 호환 REST API를 통해 서비스 제공:
bitrun serve falcon3-1b --port 11435
- GitHub Repository: https://github.com/IshekKhal/bitrun
- Upstream Pull Requests:
microsoft/BitNet의 #642 및 #644 - Release Binaries: v0.1.0-alpha
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기