1비트 LLM을 위한 추론 프레임워크 BitNet

3 hours ago 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 사용을 권장
  • 오픈소스 커뮤니티 기여자들에게 감사 표명

Read Entire Article