AI.zip
  • AI 모델
  • 방법론
  • AI 서비스
  • 가격 비교
  • 블로그

AI.zip

AI 모델, 서비스, 방법론을 큐레이션하는 에디토리얼 플랫폼

탐색

  • AI 모델
  • AI 서비스
  • 방법론
  • 블로그

커뮤니티

  • 소개
  • 디스코드 참여
  • 문의

법적고지

  • 이용약관
  • 개인정보처리방침

© 2026 ai.zip. All rights reserved.

Discord 커뮤니티
방법론Transfer LearningFine-tuningQLoRA

QLoRA

Fine-tuning

쉽게 이해하기

QLoRA는 큰 AI 모델을 아주 작은 메모리로 학습시킬 수 있게 해주는 기술입니다. LoRA가 "학습할 파라미터를 줄이자"는 아이디어라면, QLoRA는 여기에 "모델 자체를 압축팩에 담자"는 아이디어를 결합한 것입니다.

진공 압축팩 비유를 들면 이해하기 쉽습니다. 두꺼운 이불을 보관할 때 진공 압축팩을 쓰면 부피가 8분의 1로 줄어듭니다. QLoRA도 마찬가지로, 65B 크기의 거대 모델을 4비트로 압축하면 메모리를 약 4배 이상 줄일 수 있습니다. 이 압축된 모델을 기반으로 LoRA 방식으로 학습하면, 소비자용 GPU 하나(예: RTX 3090 24GB)로도 65B 모델을 파인튜닝할 수 있습니다.

QLoRA가 등장하기 전에는 65B 파라미터 모델을 학습하려면 A100 80GB GPU가 8개 이상 필요했습니다. 이는 수억 원짜리 장비를 갖춘 대기업이나 연구소만 가능한 일이었습니다. QLoRA는 이 장벽을 낮춰서 개인 연구자, 스타트업도 대형 모델을 파인튜닝할 수 있게 했습니다.

Hugging Face의 Guanaco 모델이 QLoRA로 학습한 대표 사례로, LLaMA-65B를 단일 GPU로 24시간 안에 파인튜닝하여 ChatGPT와 유사한 성능을 보여 큰 주목을 받았습니다.

기술 심층 분석

📚 선수학습: LoRA 핵심 수학 구조와 양자화(quantization) 기초 개념을 먼저 숙지하세요.

세 가지 혁신의 결합

QLoRA는 세 가지 핵심 기술을 결합하여 메모리 효율을 극대화한다:

1. 4비트 NormalFloat (NF4) 양자화

정보 이론적으로 최적인 새로운 데이터 타입이다. 사전학습 가중치가 정규분포 N(0,σ2)\mathcal{N}(0, \sigma^2)N(0,σ2)를 따른다는 관찰에서 출발하여, **분위수(quantile)**를 이용해 각 값이 동일한 비율로 분포하도록 양자화 격자를 설계한다:

qi=QN(i−122b)for i=0,…,2b−1q_i = Q_\mathcal{N}\left(\frac{i - \frac{1}{2}}{2^b}\right) \quad \text{for } i = 0, \ldots, 2^b - 1qi​=QN​(2bi−21​​)for i=0,…,2b−1

여기서 QNQ_\mathcal{N}QN​은 표준 정규분포의 역 CDF(분위 함수), b=4b=4b=4이면 16개의 격자점을 생성한다. 기존 4-bit 정수(INT4)보다 정규분포 데이터 표현에 더 정보 효율적이다.

2. 이중 양자화(Double Quantization)

양자화 상수(scaling factor) 자체를 다시 양자화한다. 블록 크기 64의 경우 파라미터당 양자화 상수 메모리가 16비트 기준 1664=0.25\frac{16}{64} = 0.256416​=0.25 비트이지만, 이를 8비트로 재양자화하면 ≈0.127\approx 0.127≈0.127 비트로 줄어 파라미터당 약 0.37비트 추가 절약이 가능하다.

3. 페이지드 옵티마이저(Paged Optimizer)

GPU 메모리 부족(OOM) 시 옵티마이저 상태를 CPU RAM으로 페이징한다. NVIDIA의 통합 메모리(Unified Memory) 기능을 활용하여, 메모리 급등 시 자동으로 CPU-GPU 간 데이터를 교환한다.

전체 메모리 구성QLoRA의 학습 시 메모리 분해:

Mtotal=MNF4 weights⏟≈N/2 bytes+MLoRA adapters⏟bf16, 소량+Mactivations⏟bf16+Moptimizer states⏟페이징 가능M_\text{total} = \underbrace{M_\text{NF4 weights}}_{\approx N/2 \text{ bytes}} + \underbrace{M_\text{LoRA adapters}}_{\text{bf16, 소량}} + \underbrace{M_\text{activations}}_{\text{bf16}} + \underbrace{M_\text{optimizer states}}_{\text{페이징 가능}}Mtotal​=≈N/2 bytesMNF4 weights​​​+bf16, 소량MLoRA adapters​​​+bf16Mactivations​​​+페이징 가능Moptimizer states​​​

65B 모델 기준: fp16 전체 학습 ~130GB vs QLoRA ~40GB. LoRA 어댑터는 bf16으로 유지되어 학습 정밀도를 보장한다.

LoRA 설정과 성능 트레이드오프

설정파라미터 비율성능(MMLU)권장 용도
r=4~0.01%기준 대비 -1~2%경량 특화
r=16~0.04%기준에 근접일반 권장
r=64~0.16%기준과 동등복잡한 도메인

Dettmers et al. 원논문에서 QLoRA r=64, 모든 linear 레이어 적용 시 전체 파인튜닝과 통계적으로 구분 불가능한 성능을 보였다.

한계 및 주의사항

  • 추론 속도: NF4 양자화는 추론 시에도 역양자화(dequantization) 오버헤드가 발생한다. 순수 속도가 필요하면 GGUF/llama.cpp 형식으로 별도 변환 권장.
  • 배치 크기 제한: 페이지드 옵티마이저는 배치 크기가 클수록 CPU 페이징 빈도가 증가하여 학습이 느려진다.
  • 정밀한 수치 작업: 4비트 표현의 한계로 매우 미세한 수치 정밀도가 요구되는 태스크에는 부적합.

Footnotes

이전글

Prompt Engineering (프롬프트 엔지니어링)

다음글

RAG Fusion

댓글

0개

댓글을 작성하려면

로그인

해주세요

방법론 정보

상위 카테고리

Transfer LearningFine-tuning

관련 게시글

6개

사용 서비스

0개

관련 게시글

온프레미스 AI 구축 가이드: GPU 서버부터 프라이빗 LLM까지

GUIDE

Fine-tuning vs RAG: 어떤 방법을 선택해야 하나?

COMPARISON

Hugging Face 완전 가이드: AI 개발자의 GitHub (2025)

GUIDE

관련 방법론

Adapter Tuning

DPO (Direct Preference Optimization)

LoRA

ORPO

Prefix Tuning

RLHF (Reinforcement Learning from Human Feedback)

Self-Improvement

SFT (Supervised Fine-Tuning)