C.W.K.
Stream
Lesson 02 of 08 · published

양자화 포맷 cheat sheet

~24 min · ops, quantization

Level 0스카우트
0 XP0/50 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

목적별 포맷 constellation

목적포맷이유
작게 학습bnb-nf4 (QLoRA)학습용 디자인. NF4 가 정규 분포 가중치 fit.
GPU 서빙 (TGI/vLLM)AWQ, GPTQEngine-aware, 빠른 인퍼런스 커널.
Hopper/Ada 서빙fp8Native fp8 tensor core.
Mac/Linux 랩탑 로컬 실행GGUF (Ollama / llama.cpp)CPU + Metal + lite GPU 최적화.
Apple Silicon 네이티브MLXMetal 가속 네이티브 커널, unified memory.
Edge / 모바일ONNX (with INT8/INT4)Cross-runtime portability.

멘탈 모델

양자화 포맷이 bits-per-weight, calibration scheme, 런타임 기대 인코드. 그 중 mismatch 면 모델 로드 fail 또는 느리게 실행. 항상 너 서빙 엔진이 포맷 런타임과 매치 검증: vLLM 이 AWQ/GPTQ 인지; TGI 가 둘 다 + bnb 인지; Ollama 는 GGUF 원함; MLX 는 .mlx 원함.

Code

transformers 로 4-bit bnb 양자화 모델 로드·python
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
import torch

bnb = BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_quant_type="nf4",
                          bnb_4bit_compute_dtype=torch.bfloat16)

model = AutoModelForCausalLM.from_pretrained(
    "meta-llama/Llama-3.1-8B-Instruct",
    quantization_config=bnb,
    device_map="auto",
)
Hub 모델을 ONNX 로 변환·python
# pip install optimum[onnxruntime]
from optimum.onnxruntime import ORTModelForCausalLM
from transformers import AutoTokenizer

repo = "Qwen/Qwen2.5-1.5B-Instruct"
ort_model = ORTModelForCausalLM.from_pretrained(repo, export=True)
ort_model.save_pretrained("./qwen-onnx")

# 이제 어떤 ONNX 런타임이든 로드

External links

Exercise

1B-3B 모델. 그것의 양자화 variant 넷 생성: bnb-nf4, AWQ (variant 있거나 autoawq 통해), GGUF (llama.cpp converter), ONNX (optimum). 메모: 어떤 포맷이 Hub 에 re-upload 가능, 어떤 로더가 각각 read, 각 최종 디스크 사이즈.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.