본문 바로가기

Inference/Quantization3

Quantization Formats (GGUF, GPTQ, AWQ, bitsandbytes) 양자화 포맷 완전 정리, 같은 4비트라도 어디서 도느냐가 갈린다요약양자화에는 두 개의 다른 층이 있습니다. 방법(얼마나 잘 줄이나)과 포맷(어떤 형식으로 저장하고 어디서 실행하나)입니다. 배포의 절반은 포맷 선택입니다.핵심 사실 하나. 런타임은 자기가 아는 포맷만 읽습니다. 같은 모델 같은 4비트라도 llama.cpp는 GGUF를, vLLM은 compressed-tensors를, transformers는 bitsandbytes를 기대합니다.그래서 "4비트로 잘 줄였다"만으로는 배포가 끝나지 않습니다. 그 4비트를 내 실행 엔진이 읽을 수 있는 포맷으로 담았는지가 남습니다.흔한 오해. QAT를 했다고 특별한 포맷이 되는 게 아닙니다. QAT로 만든 q4_0과 PTQ로 만든 q4_0은 포맷도 속도도 같고 품.. 2026. 8. 9.
Quantization (PTQ와 QAT) Quantization, PTQ와 QAT요약양자화는 16비트 실수로 저장하던 가중치와 활성값을 8비트나 4비트 정수, 또는 FP8 같은 저정밀 형식으로 바꿔 메모리와 대역폭을 줄이는 압축입니다.방법은 언제 양자화하느냐로 크게 둘로 갈립니다. PTQ는 학습이 끝난 뒤 사후에, QAT는 학습 중에 저정밀을 흉내 내며 적응시킵니다.둘의 차이를 한 줄로 요약하면 이겁니다. PTQ는 싸고 빠르며, QAT는 비싸고 정확합니다. 그리고 저비트로 갈수록 QAT가 필요해집니다.자주 하는 오해. 비트를 줄이면 항상 빨라지는 게 아닙니다. 가중치만 줄이면 메모리와 디코드에 이득이고, 연산 자체를 빠르게 하려면 활성까지 정수로 만들어야 합니다.이 분야의 핵심 난제는 활성값의 outlier입니다. LLM.int8부터 회전 기반.. 2025. 2. 13.
ONNX(Open Neural Network Exchange) ONNX와 ONNX Runtime 완전 정리, 포맷부터 배포 튜닝까지요약가장 먼저 깨야 할 오해. "ONNX로 바꾸면 빨라진다"는 틀렸습니다. ONNX는 교환 포맷일 뿐이고, 속도는 런타임과 실행 백엔드가 결정합니다.ONNX 파일은 연산 그래프와 가중치를 함께 담은 protobuf입니다. 가중치만 담는 safetensors와 달리 모델 구조까지 들어 있어 원 프레임워크 코드 없이 단독 실행됩니다.ONNX Runtime(ORT)은 하나의 엔진이 아니라 EP라는 하드웨어 백엔드를 갈아 끼우는 구조입니다. 같은 파일이 CPU에서도 GPU에서도 NPU에서도 돕니다.성능을 실제로 바꾸는 손잡이는 셋입니다. 그래프 최적화, 스레딩, 입출력 바인딩. 세 번째를 빠뜨려서 "ORT가 느리다"고 오해하는 경우가 특히 많습.. 2024. 11. 4.