BitRun 제작: 1비트 LLM을 위한 독립 실행형 러너
요약
BitRun은 일반 노트북의 전력 소모나 복잡한 환경 설정 없이 1비트 테르너리(ternary) LLM을 실행할 수 있게 만든 독립형 러너입니다. 이 도구는 Apple M4 Pro CPU에서 초당 98~127 토큰, Intel Core i5 PC CPU에서 초당 40~45 토큰의 성능을 보여주며, GPU 사용률 없이 최소 전력으로 작동합니다.
핵심 포인트
- GPU나 복잡한 환경 설정 없이 LLM 실행 가능
- Apple M4 Pro CPU에서 높은 효율성 입증 (98-127 t/s)
- 저수준 C++ 커널 버그 수정 및 업스트림 기여 포함
- Ollama 스타일 워크플로우로 간편하게 사용 가능
저는 일반 노트북에서 배터리를 과도하게 소모하거나 전용 GPU를 구동하거나 복잡한 빌드 환경과 씨름하지 않고 1비트 테르너리(ternary) LLM을 실행하고 싶었기 때문에 BitRun을 만들었습니다. 현재 BitRun은 Apple M4 Pro CPU에서 초당 98127 토큰, Intel Core i5 PC CPU에서 초당 4045 토큰으로 작동하며, GPU 사용률 0%로 최소한의 전력을 소모합니다. 이것이 최신 하드웨어에서 실제로 작동하게 만들려면, 저는 Microsoft의 연구 코드베이스(bitnet.cpp) 내의 여러 저수준 C++ 커널 수학 버그를 수정해야 했습니다.
- 메모리 스트라이드 오염 (Memory stride clobbering): ggml-bitnet-mad.cpp에서 배치 스트라이드가 쓰기 백(write-back) 단계에서 무시되어, 평가된 배치 행들이 메모리에서 서로 조용히 덮어쓰게 만들었습니다.
- ARM NEON의 무한 @ @ @ 루프: ggml-cpu-i2s.c에서 블록 크기가 GGUF 표준인 128 요소가 아닌 64로 하드코딩되어 있었습니다. 이 50% 포인터 산술 시프트는 NEON DotProd 어댑터에 뒤섞인 바이트를 주입했습니다.
- 활성화 불일치 (Activation mismatch): 모델 그래프가 FFN 게이트를 SiLU로 초기화했지만, 해당 2.4B 모델은 제곱 ReLU(squared ReLU)로 학습되었습니다. SiLU를 사용하자 활성화 범위가 왜곡되어 의미 없는 결과만 나왔습니다.
- 다중 턴 BLAS 충돌 (Multi-turn BLAS crashes): BLAS는 컨텍스트 토큰이 32개를 초과하면 행렬 곱셈을 수행하며, 정렬되지 않은 바이트 오프셋으로 매핑되지 않은 메모리로 점프했습니다.
- Windows MSVC 잠금 (Windows MSVC lockout): 네이티브 Visual Studio 컴파일을 막는 인위적인 CMake 검사를 제거했습니다.
저는 이 수정 사항들을 Microsoft에 업스트림 제출했습니다: PR #642: https://github.com/microsoft/BitNet/pull/642, PR #644: https://github.com/microsoft/BitNet/pull/644 이후 패치된 엔진을 BitRun으로 패키징하여 누구나 Ollama 스타일의 워크플로우로 60초 만에 테르너리 모델을 테스트할 수 있게 했습니다. CMake도, Clang 툴체인도, Python 가상 환경도, 무거운 Docker 이미지도 필요 없습니다.
실행 방법 (컴파일 불필요) Mac / 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 가져오기 및 채팅 (순수 CPU 사용): bitrun pull falcon3-1b bitrun run falcon3-1b 또한 "bitrun serve falcon3-1b"를 실행하여 포트 11435에서 OpenAI와 호환되는 REST 서버를 얻을 수 있습니다 (Cursor, Continue.dev 또는 Open WebUI를 연결하세요). 사용자 정의 페르소나는 표준 Modelfile을 사용하여 생성할 수 있습니다 (bitrun create engineer -f Modelfile). 검증된 CPU 속도 (순수 CPU SIMD, GPU 0%) Apple M4 Pro CPU (12 코어): Falcon3 1B Instruct (1.30 GB): 초당 98127 토큰 (~1.9 GB RAM) BitNet b1.58 2.4B (~1.13 GB): 초당 ~40 토큰 (1.8 GB RAM) BitNet 70M (45 토큰 현실적인 범위 삼진법 가중치(Ternary weights)는 처음부터 양자화 인식 학습(Quantization-Aware Training, QAT)이 필요합니다. 기존의 70B FP16 모델을 가져와서 파괴하지 않고 1.58비트로 후처리 양자화(post-quantize)할 수 없습니다. 이 때문에 현재 공개된 모델 카탈로그는 3B 미만의 모델로 제한됩니다 (falcon3-1b, bitnet-2b, falcon3-3b, bitnet-70m). 무거운 코딩 작업에서는 Claude나 GPT-4를 대체하지 못할 것입니다. 하지만 저전력 엣지 장치, 배터리 절약형 노트북 사용, 그리고 순수 CPU에서 초당 100 토큰 이상을 원하는 백그라운드 자동화의 경우 오늘 바로 실행할 준비가 되어 있습니다. GitHub 저장소: https://github.com/IshekKhal/bitrun 상위 PR: https://github.com/microsoft/BitNet/pull/642 및 https://github.com/microsoft/BitNet/pull/644 미리 컴파일된 릴리스: https://github.com/IshekKhal/bitrun/releases/tag/v0.1.0-alpha 사용해보고 CPU 벤치마크 수치를 공유해주세요! submitted by /u/The_VibePreneur [link] [comments]79 MB): 초당 1,350+ 토큰 (< 150 MB RAM) Windows x86_64 (Intel Core i5-12600K, AVX2): Falcon3 1B Instruct: 초당 3945 토큰 (프롬프트 처리 209.6 t/s) BitNet 70M: 초당 492 토큰 Linux (WSL2 / 4 코어, AVX2): Falcon3 1B Instruct: 초당 40
AI 자동 생성 콘텐츠
본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기