본문 바로가기
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

양자화 형식은 목적과 런타임을 함께 담아

목적형식이유
메모리를 아낀 학습bnb-nf4정규 분포 가중치와 QLoRA 학습에 맞아.
TGI·vLLM GPU 서빙AWQ, GPTQ전용 추론 커널을 사용해.
Hopper·Ada 서빙fp8GPU의 fp8 tensor core를 활용해.
노트북 로컬 실행GGUFCPU·Metal·가벼운 GPU 실행에 맞아.
Apple SiliconMLXMetal과 unified memory를 직접 활용해.
엣지·모바일ONNX여러 런타임으로 옮기기 쉬워.

형식에는 비트 수, 보정 방식, 예상 런타임이 함께 들어 있어. vLLM·TGI에는 지원하는 AWQ/GPTQ/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

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

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