LittleBit: LLM을 가중치당 1비트 미만으로 압축하는 잠재 분해 기법
Sub-1-Bit LLM Compression via Latent Factorization
TL;DR Highlight
가중치를 저랭크로 쪼개 이진화하니 0.1비트/가중치까지 압축이 가능해졌다
Who Should Read
로컬 GPU에서 큰 LLM을 돌리려고 극단적 양자화 방법을 찾아보는 추론 최적화 담당 개발자
Core Mechanics
- 가중치를 쪼개서 이진화한다
- 각 dense 가중치 행렬을 저랭크 잠재 인자(low-rank latent factor)로 분해한다.
- 그 인자들을 이진화하고, 크기 정보는 가볍게 학습한 스케일로 복원한다.
- 0.1bit/weight까지 내려간다
- 가중치당 1.0~0.1비트 구간을 목표로 설계했다.
- 추론 시에도 원래 모델 구조를 그대로 유지한다.
- LittleBit-2는 초기화만 바꾼다
- SVD로 얻은 잠재 인자를 이진 초대형 정육면체(binary hypercube)에 맞춰 회전시킨다(Joint-ITQ).
- 추론 오버헤드는 늘지 않고, 배포되는 분해 레이어도 그대로다.
- 학습이 필요한 방식이다
- QAT(양자화를 고려해 다시 학습하는 방식)를 쓰고 SmoothSign과 residual 분해를 지원한다.
- 예제는 Llama-2-7b를 c4_wiki 데이터로 5 epoch 학습하는 설정이다.
- 지원 모델과 라이선스
- OPT, Llama 2/3, Phi-4, Qwen2.5·QwQ·Qwen3, Gemma 2/3을 지원한다.
- 라이선스는 CC BY-NC 4.0이라 상업 이용이 제한된다.
Community Reactions
- 성능 하락이 크다는 지적
- Wikitext-2에서 성능이 80%에서 47%로 떨어진다는 의견이 있었다.
- 4.25~4.5비트 예산의 FP4 방식이 80% 성능을 유지하는데 비교가 없다는 의견이다.
- 하이브리드 방식이 낫겠다는 의견
- 정보가 덜 필요한 뒤쪽 레이어 등에만 sub-bit를 쓰는 혼합 방식이 더 의미 있겠다는 의견이 있었다.
- 1비트 연산 여러 개로 4비트 행렬곱을 근사하는 아이디어도 나왔다.
- 축이 틀렸을 수 있다는 의견
- 로컬 AI에서는 MoE 전문가 오프로딩, NVMe 스트리밍 쪽이 더 효과적이었다는 의견이 있었다.
- 기존 1비트 양자화는 같은 메모리의 더 작은 모델보다 덜 쓸모 있었다는 경험담도 있었다.
- 실사용 정보는 아직 없다
- 공개된 체크포인트나 Apple Silicon 벤치마크가 있는지 묻는 댓글이 있었다.
- 논문이 품질 손실이 크다고 밝혔어도 부정적 결과는 아니라는 의견도 있었다.
How to Apply
- 오늘 eval.py로 성능 하락 폭부터 재 보기
- 허깅페이스 허브에 올라온 LittleBit 체크포인트가 있으면 --model_id로 넣고 wikitext2 perplexity를 측정한다.
- 우리 서비스 모델의 기존 4비트 결과와 같은 조건에서 비교한다.
- Llama-2-7b로 QAT 한 번 돌려 보기
- README의 단일 GPU 명령을 그대로 실행하고 --eff_bit 값을 1.0에서 낮춰 가며 품질 변화를 기록한다.
- 초기화 비교가 필요하면 --use_itq True를 켜서 SVD-only와 비교한다.
- 상용 서비스 도입 전 라이선스 확인하기
- CC BY-NC 4.0이므로 상업 서비스에는 바로 쓰지 않는다.
- 내부 실험·메모리 예산 검토 용도로만 사용한다.
Try It
# 터미널에서 실행 (GPU, Python 3.12, README 설치 절차 완료 후)
pip install "transformers==4.51.*"
CUDA_VISIBLE_DEVICES=0 python -m main \
--model_id meta-llama/Llama-2-7b-hf \
--dataset c4_wiki \
--save_dir ./outputs/Llama-2-7b-LittleBit-2 \
--num_train_epochs 5.0 \
--per_device_train_batch_size 4 \
--lr 4e-05 \
--warmup_ratio 0.02 \
--report wandb \
--quant_func SmoothSign \
--quant_mod LittleBitLinear \
--residual True \
--eff_bit 1.0 \
--kv_factor 1.0 \
--min_split_dim 8 \
--l2l_loss_scale 10.0 \
--use_itq True
# 학습 후 평가
CUDA_VISIBLE_DEVICES=0 python eval.py \
--model_id ./outputs/Llama-2-7b-LittleBit-2 \
--seqlen 2048 \
--ppl_task wikitext2,c4
# 이어서 해 볼 것: --use_itq True를 빼고 같은 설정으로 돌려 perplexity를 비교하기Terminology
관련 논문
Mercury 3: 규모를 키운 diffusion LLM, 초당 1,000토큰 이상
Diffusion LLM을 40배 키웠더니 속도 4~8배, 품질은 속도 특화 모델 수준
Timestral: Mistral의 시계열 파운데이션 모델
209M 파라미터 시계열 모델이 3대 벤치마크 1위, CPU에서도 돌아간다
DeepSeek V4.1 Flash 1017 (Max) 성능·속도·가격 분석
DeepSeek V4.1 Flash 1017 Max는 지능 지수 45에 211 tok/s, 입력 $0.30
LLM 프록시를 직접 안 돌리면 무슨 일이 벌어지는지 어떻게 아나
자체 LLM 프록시를 세웠더니 키·모델·캐시 미스를 직접 볼 수 있다
DeepSeek V4.1 Flash 1017: 싼 가격에 1M 컨텍스트를 주는 에이전트용 모델
DeepSeek V4.1 Flash 1017은 입력 $0.05/M, 1M 컨텍스트의 에이전트용 모델
DeepSeek-V4.1-Flash-1017 공개: 더 짧게 생각하고 더 빠르게 일하는 에이전트용 모델
DeepSeek V4.1 Flash 마이너 업데이트로 코딩·에이전트 벤치 점수↑, 실행 시간·출력 길이↓
Llmspeed: 로컬 LLM 속도를 하드웨어 구매 전에 체감해 보는 시뮬레이터
GPU·모델을 고르면 로컬 LLM 속도를 미리 체감하게 해 주는 시뮬레이터