Quantization (양자화)

seongyun·2025년 5월 25일

Neural Network

목록 보기
7/8

앞으로 프로젝트를 진행하게 되면 파인튜닝 과정을 거치게 됩니다.
파인튜닝 과정 안에는 양자화 과정이 존재하는데 이 과정에 대해서 최대한 자세하게 서술하고, 모두를 위한 설명을 해놔야 나중에 다들 헷갈리지 않고 개발을 할 수 있을 것 같아 미리 준비를 하려고 합니다.

양자화(Quantization)는 딥러닝 모델을 경량화하고 연산 효율을 높이기 위한 핵심 기술로, 특히 대규모 언어 모델(LLM)이나 엣지 디바이스에서의 활용이 활발하다. 최근 연구들은 이론적 기반 강화와 실용적 적용을 목표로 다양한 접근을 시도하고 있습니다.

주요 최신 논문 요약

1. Quantization without Tears (QwT) – 2024년 11월

핵심 내용: QwT는 경량 선형 계층을 기존 신경망에 삽입하여 양자화로 인한 정보 손실을 보완하는 새로운 프레임워크입니다.

특징:

  • 폐쇄형 수학적 해를 통해 2분 이내에 보상 계산 완료
  • 기존 양자화 기법과의 호환성 및 다양한 모델에 적용 가능
  • LLM, AIGC, 멀티모달 작업 등 다양한 분야에서 효과 입증

의의: 양자화로 인한 성능 저하를 최소화하면서도 간단하게 적용 가능한 실용적 방법론을 제시합니다.

2. Advances in Neural Network Quantization: A Comprehensive Review – 2024년

핵심 내용: 양자화의 기본 개념부터 최신 기법까지 포괄적으로 정리한 리뷰 논문입니다.

주요 내용:

  • 후처리 양자화(PTQ)와 양자화 인식 훈련(QAT)의 비교
  • 대칭/비대칭, 균일/비균일 양자화 전략 분석
  • LIMPQ 등 혼합 비트폭 기반 QAT 기법의 우수성 강조
  • 양자화로 인한 정확도 손실 최소화 및 하드웨어 친화성 확보 방안 제시

의의: 양자화 기술의 현재와 미래 방향성을 제시하며, 실용적 적용을 위한 가이드라인을 제공합니다.

3. Art and Science of Quantizing Large-Scale Models – 2024년 9월

핵심 내용: 대규모 모델의 양자화에 대한 이론적 기반과 실용적 기법을 종합적으로 정리한 논문입니다.

주요 내용:

  • LLM-QAT, PEQA(L4Q), ZeroQuant, SmoothQuant 등 최신 기법 소개
  • 이상치 처리, 중요도 가중치, 활성화 양자화 등 주요 이슈 분석
  • 모델 크기 축소와 효율성 향상을 위한 전략 제시

의의: 대규모 모델의 효율적 배포를 위한 양자화 기술의 이론과 실용적 접근을 통합적으로 제공합니다.

4. Pushing the Limits of LLM Quantization via the Linearity Theorem – 2024년 11월

핵심 내용: 선형성 정리를 통해 계층별 양자화 오차와 모델 전체 성능 간의 관계를 분석한 논문입니다.

주요 내용:

  • 계층별 ℓ2 재구성 오차와 모델 퍼플렉서티 증가 간의 선형 관계 규명
  • 비균일 양자화 기법을 통해 성능 저하 최소화
  • 데이터 없는 양자화 방식으로도 높은 정확도 유지 가능성 제시

의의: 양자화로 인한 성능 저하를 이론적으로 분석하고, 이를 기반으로 효율적인 양자화 전략을 제시합니다.

최근 연구 동향 요약

  • 효율성과 정확도의 균형: 양자화는 모델의 연산 효율성을 높이지만, 정확도 손실이 발생할 수 있습니다. 이를 최소화하기 위한 다양한 기법들이 연구되고 있습니다.

  • 혼합 비트폭 전략: 모델의 각 계층에 따라 비트폭을 다르게 설정하여 성능과 효율성을 동시에 확보하는 전략이 주목받고 있습니다.

  • 비균일 양자화: 데이터 분포에 따라 양자화 간격을 조절하여 성능 저하를 줄이는 방법이 연구되고 있습니다.

  • 보안 이슈: 양자화된 모델이 보안 취약점을 가질 수 있다는 연구 결과도 발표되어, 안전한 양자화 기법에 대한 관심이 높아지고 있습니다.

최근 연구인 "Exploiting LLM Quantization"은 양자화(quantization)된 대규모 언어 모델(LLM)이 보안 취약점을 가질 수 있음을 밝혀냈습니다. 특히, 양자화된 모델이 코드 생성 시 보안에 취약한 코드를 생성할 수 있다는 점은 주목할 만합니다.

연구 개요

이 연구는 양자화된 LLM이 보안에 취약한 코드를 생성할 수 있는 가능성을 보여줍니다. 특히, 양자화된 모델이 코드 생성 시 보안에 취약한 코드를 생성할 수 있다는 점은 주목할 만합니다.

공격 프레임워크

연구팀은 다음과 같은 3단계 공격 프레임워크를 제시합니다:

  1. 악의적 모델 생성: 기존 LLM을 악의적 데이터로 파인튜닝하여 보안에 취약한 코드를 생성하도록 만듭니다.

  2. 양자화 및 제약 조건 계산: 양자화된 모델이 동일한 출력 결과를 유지하도록 제약 조건을 계산합니다.

  3. Projected Gradient Descent (PGD)를 통한 행동 조정: PGD를 사용하여 전체 정밀도 모델에서 악의적 행동을 제거하면서도 양자화 시 동일한 악의적 행동이 나타나도록 합니다.

이 과정을 통해 전체 정밀도에서는 정상적으로 보이지만, 양자화 시 악의적 행동을 하는 모델을 생성할 수 있습니다.

코드 생성에 대한 영향

연구 결과에 따르면, 전체 정밀도 모델은 보안에 안전한 코드를 생성하지만, 양자화된 모델은 최대 97.2%의 확률로 보안에 취약한 코드를 생성합니다.

방어 및 대응 방안

이러한 보안 취약점을 방지하기 위해 다음과 같은 방안이 제시됩니다:

  • 양자화 전 정적 분석 수행: 양자화 전에 모델의 출력을 정적 분석하여 보안 취약점을 식별합니다.
  • 양자화 후 검증: 양자화된 모델의 출력을 검증하여 예상치 못한 행동이 나타나는지 확인합니다.
  • 양자화 기법 개선: 양자화 과정에서 보안 취약점이 발생하지 않도록 양자화 기법을 개선합니다.

논문 결론

이 연구는 양자화된 LLM이 보안에 취약할 수 있음을 보여주며, 특히 코드 생성 분야에서 주의가 필요함을 강조합니다. 따라서, 양자화된 모델을 사용할 때는 보안 검증을 철저히 수행하고, 양자화 기법을 개선하여 이러한 취약점을 방지해야 합니다.

이런 결론을 보고 난 이후 들었던 의문점이 과연 파인튜닝 과정에서 양자화가 필수인가 였습니다. 그래서 그 점에 대해서 더 알아봤는데요.

결론은 파인튜닝(fine-tuning)은 반드시 양자화(quantization)된 상태에서 진행해야 하는 것은 아닙니다. 오히려 대부분의 경우에는 양자화되지 않은(full-precision, FP32 또는 FP16) 모델로 파인튜닝을 먼저 진행한 후, 필요에 따라 추론 단계에서만 양자화를 적용하는 것이 일반적입니다.

파인튜닝이 양자화 없이 가능한 이유

1. 학습 중 정밀도 필요

  • 파인튜닝은 모델이 손실 함수(예: cross-entropy)를 줄이며 학습하는 과정이기 때문에 정확한 gradient 계산과 정밀한 가중치 업데이트가 필수입니다.
  • 양자화된 모델은 정밀도가 낮아(backpropagation 시 오차가 커짐) 학습 성능이 떨어지거나, 아예 수렴하지 않을 수 있습니다.

2. 양자화는 주로 추론(inference) 최적화 목적

  • 양자화는 모델 크기 감소, 연산 속도 증가, 에너지 절약 등의 이점을 제공하며,
  • 따라서 모델을 실제 서비스에 배포할 때 활용됩니다.

3. 예외: QAT (Quantization-Aware Training)

  • 특별히 양자화 인식 학습(QAT)은 파인튜닝 중 양자화를 고려하여 학습합니다.
  • 하지만 이 또한 기본적으로는 full-precision 파라미터로 학습하며, 학습 중간에 양자화 시뮬레이션만 적용하는 방식입니다.

최근 모델들이 양자화된 형태로 나오는 이유는 다음과 같다.

  • OpenLLaMA, Mistral, LLaMA2 등 최근 공개되는 모델들은 추론 효율성과 Edge 배포를 위해 미리 양자화된 버전 (int8, int4, GPTQ, AWQ 등)을 제공합니다.
  • 하지만 대부분은 full-precision 모델도 함께 제공하고 있으며, 파인튜닝을 하려면 full-precision 모델을 사용하는 것이 권장됩니다.
상황양자화 필요 여부
파인튜닝 (학습)❌ 필요 없음 (full-precision 사용)
추론 (inference)✅ 필요에 따라 양자화 적용 (최적화 목적)

최적화를 위해서 양자화 과정을 추가했을 때 성능 최적화와 모델 경량화는 가능하지만, 동시에 보안 취약점이 모델에 새로 유입되거나 기존에 존재하던 취약점이 활성화될 위험도 존재합니다.

문제 요약: 양자화된 파인튜닝의 보안 취약점

  • 양자화는 수치 정밀도를 낮춰 계산 효율을 높이는 과정인데, 이 과정에서 모델의 내부 표현이 달라집니다.
  • 특히 코드 생성 모델이나 대화형 LLM의 경우, 양자화에 의해 정규 학습 시 억제된 위험한 행동(예: 취약한 코드 생성, 유해 표현)이 되살아날 수 있음.
  • 파인튜닝 과정에서 이런 양자화의 효과를 고려하지 않으면 의도치 않게 위험한 결과물을 생성하는 모델이 될 수 있음.

대응 전략: 파인튜닝 + 양자화 시 보안 확보를 위한 접근

A. 양자화 인식 학습(QAT)에서의 보안 고려

  • QAT는 학습 중 양자화를 시뮬레이션하며 모델을 최적화함 → 이때 보안 제약조건도 함께 학습에 포함시켜야 함
  • 예: "코드 생성 시 보안 가이드라인을 위반하는 응답에 높은 loss를 부여"하는 식의 custom loss function 설계

B. "실시간 보안 검증 기반" QAT 진행

  • 훈련 중 주기적으로 모델이 생성하는 코드나 응답을 보안 정적 분석 도구(static analyzer)로 검사
  • 예: 정적 코드 검사기를 통해 input() 또는 eval() 등의 사용 여부 확인
  • 이를 통해 양자화 과정에서 부주의하게 나타나는 위험한 응답을 조기 탐지 가능

C. Knowledge Distillation + Security Filter

  • 보안 필터링된 teacher model의 출력을 student(QAT 대상)에 distill → 보안 기준을 직접 주입하는 효과
  • 예: GPT-4를 teacher로 활용, "보안 준수 코드만 생성"하도록 정제된 출력을 사용

D. Post-QAT Robustness Evaluation

  • 학습 후 다음 검증 수행:
    - Adversarial Prompt Test: 취약한 prompt (e.g. “create buffer overflow in C”)에 대한 응답을 유해성 기준으로 평가
    - Security Benchmarks: 코드 생성용 보안 벤치마크(Ex. CodeXGLUE) 활용

E. Differential Testing (Full vs Quantized 비교)

  • QAT 완료 후 full-precision과 QAT 모델의 응답을 비교하여 보안 관련 일관성 보장:
    - 예: “같은 입력에서 Full-precision은 안전한 코드를, QAT 모델은 취약한 코드를 생성하는가?”

목표 시나리오

목표: 안전 및 정확한 코드를 생성하는 LLM을 LoRA+QAT로 학습시키되, 보안 취약점 없이 추론 가능한 모델 만들기

  1. FP16 모델에서 보안 기준을 반영한 LoRA 파인튜닝
  2. 학습 중 보안 기준을 반영한 Loss 함수 추가 (security_violation_loss)
  3. bitsandbytes + QLoRA 등을 통해 4-bit QAT 진행
  4. 훈련 중간 및 완료 후 bandit, semgrep, CodeQL 등의 분석기로 코드 응답 검증
  5. Full vs Quantized 모델 응답 비교 테스트 수행

위의 파이프라인을 진행하기 위해선 양자화 과정 + Robustness Evaluation을 통합적으로 진행해야만 양자화에 따른 보안 문제와 예기치 않은 모델 행동을 효과적으로 방지 가능하다.

왜 두 가지를 같이 해야 할까?

1. 양자화는 예측 성능만 떨어뜨리는 게 아님

양자화는 단순히 모델의 크기를 줄이는 게 아니라, 모델 내부 연산의 표현 방식을 바꾸기 때문에 특히 경계적인 출력 값, 의도적으로 막아둔 행동(예: 악성코드 생성) 등이 다시 나타날 수 있음.

2. Robustness Evaluation만 따로 해도 부족

양자화 이후 모델이 바뀌었기 때문에, 이전 Robustness 테스트 결과는 무의미해짐.
즉, “양자화된 모델” 자체의 견고함(robustness)을 새롭게 검증해야 함.

통합 파이프라인

다음과 같은 전체 워크플로우를 고려하는 것이 안전합니다:

[1] Full-Precision 모델 기반 학습 (LoRA 등)

  • 보안 기준을 반영한 데이터/로스 사용

[2] 양자화 (e.g. GPTQ, AWQ, bitsandbytes)

  • 속도와 메모리 효율을 위해 8bit/4bit 양자화 적용

[3] 양자화 모델에 대한 Robustness Evaluation

  • Adversarial Prompt 테스트
  • Red Team Prompt 테스트 (보안에 민감한 질문)
  • Static Analysis (코드 생성 시 위험 패턴 감지)
  • Output Consistency 검사 (Full vs Quantized 결과 비교)
단계내용
파인튜닝- “보안 기준 준수” 데이터로 fine-tune
양자화- 4bit GPTQ 적용
Robustness 평가- 취약 프롬프트 대응 여부
- eval(), os.system() 포함 여부 정적 분석
- full vs quantized 출력 비교

이제부터는 연구 논문 기반의 관점에서, 그리고 AWS EC2 T4 GPU 환경을 중심으로 양자화(Quantization) 전략을 체계적으로 정리해보겠습니다. 이 흐름은 LLM이나 코드 생성 모델을 파인튜닝/서빙하는 실전 연구자 관점을 반영하겠습니다.

NVIDIA T4 특징 요약

  • Tensor Core 제공 (FP16, INT8 최적화됨)
  • 16GB VRAM (large model은 제한 있음)
  • Multi-instance GPU (MIG)는 A100부터만 지원 → T4는 단일 인스턴스 사용

implication:

  • INT8 또는 FP16 기반의 양자화가 가장 효율적
  • int4는 GPU 가속이 아직 제한적이므로 inference-only 용도로 고려
  • float16을 활용한 QLoRA + bitsandbytes 방식이 유효

주요 논문 및 내용

논문/연구내용 요약시사점
GPTQ (Dettmers et al., 2022)Hessian-aware 양자화로 W4A16 지원T4 + GPTQ는 효율적이며 실전용
AWQ (2023)Weight-only 양자화, 속도 극대화Layer-wise clipping 필요
SpQR (2023)Structured sparsity + QuantizationQLoRA 기반 LLM 압축 가능
ExLLM: Exploiting LLM Quantization (Athina AI, 2024)양자화가 보안 취약점에 영향 미침 → fine-tuning과 함께 고려QAT + Robustness 평가 필요
QLoRA (Dettmers, 2023)LoRA + paged optimizer + 4bit quantT4 GPU와 매우 궁합 좋음

양자화 적용 전략

[1] 파인튜닝 전 양자화 여부 결정

  • 파인튜닝 단계에서는 FP16 또는 BF16이 가장 안정적
  • QLoRA를 사용하면 4bit quantized base + LoRA adapter (fp16) 구조로 가능

[2] 파인튜닝 후 양자화 방식 선택

조건양자화 방식설명
모델 크기 ≤ 7BGPTQ 4bit매우 빠름, 거의 성능 손실 없음
파인튜닝한 LoRA adapter 유지QLoRAHugging Face에서 바로 사용 가능
추론 최적화, 구조 압축AWQ / SpQRLayer clipping, structured sparsity 지원
보안 민감 서비스QAT 기반 8bitQuantAwareTraining + Robustness Test 필요

보안성 확보를 위한 통합 전략

Quantization + Robustness Evaluation Pipeline

  1. FP16 모델 파인튜닝 (LoRA/PEFT)
  2. GPTQ 또는 QLoRA 양자화 적용
  3. 정적 보안 검사기 적용 (semgrep, bandit 등)
  4. Prompt-injection / adversarial 테스트 수행
  5. Full vs Quantized 모델 응답 비교 평가
  6. 필요시 QAT 방식으로 재훈련 + clipping tuning

코드/프레임워크 기반 제안

프레임워크 추천

목적프레임워크
모델 양자화AutoGPTQ, bitsandbytes, transformers
Robustness 평가RobustBench, OpenPrompt, TRuST
Static 코드 분석semgrep, bandit, CodeQL

결론: 향후 양자화 전략 로드맵

Short-term (T4 환경)

  • QLoRA 기반 파인튜닝 후 → GPTQ 양자화로 추론 최적화
  • Robustness Test 자동화로 보안 검증 체계화

Mid-term

  • QAT 실험 도입 (특히 코드 생성 모델에 대한 fine-tuned 모델 대상)
  • AWQ나 SpQR 등 sparsity-aware 양자화 도입 검토

Long-term

  • T4에서 효율성이 떨어지는 int4 모델은 inference 전용으로 관리
  • FasterTransformer, TensorRT-LLM, vLLM 기반 서빙 최적화 실험 병행

0개의 댓글