1P by GN⁺ 3시간전 | ★ favorite | 댓글 1개
  • bitnet.cpp는 1비트 대형언어모델(LLM)의 공식 추론 프레임워크로, CPU와 GPU에서 빠르고 손실 없는 추론을 지원
  • ARM CPU에서 1.37~5.07배 속도 향상55.4~70% 에너지 절감, x86 CPU에서 2.37~6.17배 속도 향상71.9~82.2% 에너지 절감을 달성
  • 병렬 커널 구현과 임베딩 양자화를 추가해 기존 대비 1.15~2.1배 추가 성능 향상을 제공
  • BitNet b1.58 모델을 단일 CPU에서 초당 5~7토큰 속도로 실행 가능, 로컬 환경에서 초대형 모델 운용 가능성 확대
  • llama.cppT-MAC 기반으로 개발되어, 저비트 LLM 추론 효율화를 위한 오픈소스 생태계 확장에 기여

bitnet.cpp 개요

  • bitnet.cpp는 1비트 LLM(예: BitNet b1.58) 을 위한 공식 추론 프레임워크로, CPU와 GPU에서 최적화된 커널을 제공
    • NPU 지원은 향후 추가 예정
  • 첫 릴리스는 CPU 추론을 지원하며, ARM과 x86 아키텍처 모두에서 속도와 에너지 효율 개선을 입증
    • ARM CPU: 1.37~5.07배 속도 향상, 55.4~70% 에너지 절감
    • x86 CPU: 2.37~6.17배 속도 향상, 71.9~82.2% 에너지 절감
  • 100B 파라미터 BitNet b1.58 모델을 단일 CPU에서 초당 5~7토큰 속도로 실행 가능

최신 최적화

  • 병렬 커널 구현타일링 구성, 임베딩 양자화 기능이 추가되어, 기존 대비 1.15~2.1배 추가 속도 향상 달성
  • 다양한 하드웨어 플랫폼과 워크로드에서 성능 개선 확인
  • 세부 기술 내용은 optimization guide 문서에서 제공

데모 및 공식 모델

  • Apple M2에서 BitNet b1.58 3B 모델을 실행하는 데모 제공
  • 공식 모델로 BitNet-b1.58-2B-4T가 Hugging Face에 공개되어 있으며, x86 및 ARM CPU에서 지원
  • 지원 모델에는 bitnet_b1_58-large(0.7B), bitnet_b1_58-3B(3.3B), Llama3-8B-1.58, Falcon3, Falcon-E 시리즈 포함

설치 및 빌드

  • 요구사항: Python 3.9 이상, CMake 3.22 이상, Clang 18 이상
    • Windows 사용자는 Visual Studio 2022 설치 필요
    • Debian/Ubuntu 사용자는 자동 설치 스크립트 제공
  • Conda 환경 사용을 권장하며, setup_env.py로 모델 환경 설정 가능
  • Hugging Face에서 모델 다운로드 후 로컬 경로로 실행 가능

사용법 및 벤치마크

  • run_inference.py양자화된 모델 추론 실행
    • 주요 인자: 모델 경로(-m), 프롬프트(-p), 스레드 수(-t), 컨텍스트 크기(-c), 온도(-temp)
  • e2e_benchmark.py 스크립트로 토큰 수, 프롬프트 길이, 스레드 수를 지정해 성능 측정 가능
  • 공개 모델이 없는 경우, generate-dummy-bitnet-model.py더미 모델 생성 후 벤치마크 수행 가능

모델 변환 및 FAQ

  • .safetensors 체크포인트를 gguf 포맷으로 변환하는 스크립트 제공
  • FAQ에서는 llama.cpp 빌드 오류(std::chrono 관련) 해결 방법과 Windows에서 clang 환경 설정 절차 안내
    • Visual Studio 개발자 명령 프롬프트 또는 PowerShell에서 환경 초기화 필요

기술 기반 및 감사

  • bitnet.cpp는 llama.cpp 프레임워크를 기반으로 하며, T-MAC의 Lookup Table 방법론을 활용
  • 3진(ternary) 모델을 넘어서는 저비트 LLM 추론에는 T-MAC 사용을 권장
  • 오픈소스 커뮤니티 기여자들에게 감사 표명
Hacker News 의견들
  • Microsoft가 실제로는 1.58비트가 아닌 2비트를 사용하고 있음
    이 경우 -1, 0, 1, 2 네 가지 값을 표현할 수 있음
    억제성 시냅스가 20~30%를 차지한다는 점에서, 이런 구조가 생물학적 뇌의 구조와 잘 맞는다고 생각함

    • 세 번째 문장, 즉 “억제성 시냅스가 20~30%를 차지한다”는 부분을 좀 더 설명해줄 수 있는지 궁금함
  • 나는 종종 “최소 기능 LLM”이 어떤 형태일지 궁금해함
    즉, 최소한의 정보만 가지고 나머지는 구글링으로 보완해도 충분히 합리적인 답을 낼 수 있는 모델 말임
    Encyclopedia Britannica 같은 곳이 데이터를 LLM에 판매하고 결과 검증 서비스를 제공하면 큰 차이를 만들 수 있을 것 같음
    Wikipedia도 좋지만 인간의 오류와 편향이 많다는 점이 아쉬움

    • Andrej Karpathy의 짧은 영상을 보면 이 주제에 대해 이야기함
      작은 LLM들은 이미 이런 방향으로 발전 중이며, 일반 지식은 부족하지만 도구 활용 능력(예: 구글링) 은 점점 좋아지고 있음
      다만 자신이 아는 것과 모르는 것을 명확히 구분하는 건 여전히 어려운 문제임
    • 내가 생각하는 건 “최소 기능 LLM”이라기보다 언어만 잘 알고 지식은 거의 없는 LLM
      마치 특정 기기를 모르는 엔지니어처럼, 문제 해결 능력은 있지만 세부 지식은 없음
      이런 모델이 단순히 구글링이나 위키 검색으로 해결할 수 있을지는 의문이지만, 엣지 LLM 구조는 앞으로 표준이 될 것 같음
    • 추론 능력은 결국 학습 중 정보량에 의존함
      훈련 데이터에 포함된 정보일수록 검색과 해석이 쉬워짐
      따라서 내부 암기보다는 외부 메모리(검색 등) 의존형 훈련이 실용적일 수 있음
    • 위키피디아의 오류와 편향을 걱정하면서, 동시에 웹 접근이 가능한 LLM이 더 나을 거라 보는 건 모순처럼 느껴짐
      나는 오히려 그 반대라고 생각함
    • “합리적인 답변”이란 표현이 구체적으로 어떤 수준을 의미하는지에 따라 결과가 달라질 것 같음
  • 원 논문(pdf)에 따르면 fp16 모델 대비 약 4~5배의 파라미터가 필요함
    직접 빌드해볼 수는 있지만, 처음부터 학습해야 하므로 선택지는 제한적임
    그래도 최신 4비트·8비트 양자화 모델보다 추론 속도는 빠를 것으로 예상함

  • 진짜 핵심은 에너지 절감 효과
    CPU 추론에서 70~82% 절감이 가능하다고 함
    만약 1비트 모델이 충분히 좋아진다면, GPU 없이도 일반 하드웨어에서 LLM을 돌릴 수 있게 되어 접근성의 판도가 바뀔 것임

  • bitnet.cpp가 1비트 LLM(BitNet b1.58 등)을 위한 공식 추론 프레임워크라고 하지만,
    “1비트냐 1트릿(trit)이냐”는 혼동이 있음

    • “1비트 LLM”은 마케팅 용어에 가깝고, 실제로는 3가지 상태(-1, 0, 1) 를 쓰므로 1.58비트에 해당함
    • log₂(3)≈1.58이므로, 이는 2상태(1비트)가 아니라 3상태(1.58비트) 모델임
      두 개념을 섞어 쓰는 건 혼란스러움
  • 이 프로젝트가 계속 개발되는 걸 보니 반가움
    작년에 관련 글을 보고 가능성을 느꼈지만, 새 모델이 안 나와서 아쉬웠음

    • 하지만 이 접근은 결국 정밀 모델의 양자화일 뿐이라, 추론은 빨라지지만 학습은 빨라지지 않음
      진짜 흥미로운 건 부동소수점 연산 없이 이진 모델을 직접 학습하는 방향임
      관련 논문은 NeurIPS 2024에 있음
  • “100B BitNet을 실행할 수 있다”는 건 모델이 존재한다는 뜻이 아니라 추론 프레임워크가 가능하다는 의미

    • 실제로는 더미 모델을 쓴 것 같음
      “1-bit 100b model”을 검색해도 다운로드 가능한 모델은 없음
  • 모델 출력 품질은 GPT-2 수준의 중얼거림에 가깝고, 문단을 그대로 반복함
    심지어 (Jenkins, 2010) 같은 가짜 인용문을 계속 재사용함

    • 다만 이건 2년 된 3B 파라미터 베이스 모델이며, 100B 토큰만으로 학습된 연구용 버전임
  • 제목이 오해를 부름
    실제로는 학습된 100B 모델이 아니라, 그걸 처리할 수 있는 추론 프레임워크
    나는 M2 Max 96GB에서 llama.cpp + LiteLLM으로 70B 양자화 모델을 돌리고 있는데, 메모리 대역폭이 병목임
    1.58비트 접근은 행렬곱을 덧셈으로 바꾸는 구조라 CPU에서 근본적으로 다른 계산 패턴을 가짐
    만약 CPU 단일 코어에서 100B급 모델을 초당 5~7토큰으로 돌릴 수 있다면, 온디바이스 추론의 전환점이 될 것임
    프레임워크는 준비됐고, 이제 누군가 실제로 모델을 학습해야 함

    • Microsoft가 2년 동안 직접 모델을 학습하지 않았다면, 그들의 주장을 그대로 믿기 어렵다고 생각함
    • “새 모델”이라지만 Hugging Face에 올라온 가중치는 11개월 전 것이고, 2B 파라미터 수준임
      홍보 대비 실질 성과가 빈약
    • 2비트 연산은 하드웨어 구현이 매우 저렴하므로, 전용 칩을 만들면 GPU 없이도 강력한 추론이 가능할 것임
      학습에는 여전히 GPU가 필요하겠지만, 추론용 하드웨어는 훨씬 단순해질 수 있음
    • 초당 5~7토큰 속도는 실제 읽기 속도보다 느림
      나는 7토큰/초로 출력되는 모델을 써봤는데, 느린 사람 뒤를 걷는 듯한 답답함이 있었음
      로컬 환경에서는 최소 10토큰/초 이상을 목표로 해야 함
    • “CPU에서의 계산 프로파일이 근본적으로 다르다”는 주장에는 의문이 있음
      현대 CPU의 FMA(Fused Multiply-Add) 명령은 단순 덧셈과 거의 동일한 처리량을 가짐
  • 앞으로 NPU 탑재 PC들이 본격적으로 성과를 낼 시점이 궁금함
    AMD는 NPU/iGPU 하이브리드 추론 커널에서 좋은 결과를 내고 있음
    이런 대형 모델이 NPU에서 돌아가면 CPU 대비 전력 효율이 훨씬 좋아질 것임

    • 나는 최근 OpenAI의 Whisper를 CPU로 돌렸다가, Intel NPU 최적화 버전을 써봤는데 6배 빠르고 훨씬 조용했음
      이후로 NPU의 팬이 되었음. 물론 RTX 5090급은 아니지만, CPU보다는 훨씬 효율적임
    • Rockchip RK3588 SBC의 NPU에서도 이미 작은 LLM을 돌릴 수 있음
      소프트웨어 생태계가 불안정하긴 하지만, CPU/GPU 사용률 거의 0으로 작동함
    • 다만 NPU가 정말 그렇게 강력한지 의문임
      나는 그것들이 저전력 중심 설계라고 알고 있었음