본문 바로가기
C.W.K.
Stream
Lesson 04 of 06 · published

QLoRA와 DoRA — 기본 LoRA가 부족할 때

~14 min · qlora, dora, advanced-fine-tuning

Level 0호기심
0 XP0/51 lessons0/15 achievements
0/100 XP to next level100 XP to go0% complete

LoRA를 두 방향으로 강화해

기본 LoRA만으로 대부분의 작업을 끝낼 수 있어. 더 적은 메모리에 큰 기반 모델을 넣고 싶다면 QLoRA, 전체 파인튜닝과의 품질 차이를 줄이고 싶다면 DoRA를 써. mlx-lm은 둘 다 추가 설정이 거의 필요 없어.

QLoRA — 양자화한 기반 위에서 학습해

QLoRA는 기반 모델을 4비트로 두고 그 위의 전체 정밀도 LoRA 어댑터만 학습해. 기반이 fp16 메모리의 약 25%만 쓰고 어댑터도 작아서, fp16 70B가 추론조차 안 들어가는 기계에서 70B를 파인튜닝할 수 있어.

mlx-lm에서는 --modelmlx-community/Mistral-7B-Instruct-v0.3-4bit처럼 이미 양자화한 모델로 지정하면 자동으로 QLoRA가 돼. --qlora 선택지는 없어. 학습 수학은 LoRA와 같고 메모리 절약은 기반 모델의 양자화에서 와.

DoRA — 같은 매개변수로 품질을 더 끌어올려

DoRA는 가중치 업데이트를 크기 벡터와 방향 행렬로 나눠 둘 다 학습해. 같은 매개변수 예산에서 LoRA와 전체 파인튜닝 사이의 품질 차이를 많이 줄이지만 단계마다 계산과 메모리가 조금 더 들어.

mlx-lm에서는 --fine-tune-type dora만 바꾸면 돼. 자료 형식과 나머지 선택지는 그대로야.

선택 순서

  • 기본 — 양자화 기반의 LoRA, 곧 QLoRA로 시작해. 90%의 경우를 덮어.
  • 더 큰 모델이 필요해 — 기반을 혼합 정밀도 Q4처럼 더 강하게 줄여. QLoRA가 맡을 영역이야.
  • 순위를 올려도 품질이 멈췄어 — 같은 명령에서 DoRA로 바꿔.
  • 전체 파인튜닝이 떠올라 — 먼저 더 높은 순위의 DoRA를 시험해. 대개 수학이 전체 학습을 지지하지 않아.

LoRA와 QLoRA를 따로 고를 필요는 없어

QLoRA는 양자화된 기반 위의 LoRA일 뿐이고 mlx-lm이 자동으로 처리해. DoRA나 드문 전체 파인튜닝으로 갈 때만 학습 방식을 명시적으로 바꾸면 돼.

Code

QLoRA — 양자화된 기반 모델을 가리키면 돼·bash
# QLoRA is implicit: --model points at an already-Q4 base, mlx-lm
# trains a full-precision adapter on top, base stays quantized in memory.
python -m mlx_lm lora \
  --model mlx-community/Mistral-7B-Instruct-v0.3-4bit \
  --train --data ./my-data \
  --fine-tune-type lora \
  --num-layers 16 \
  --batch-size 4 --iters 200 --learning-rate 5e-5 \
  --adapter-path ./my-qlora-adapter

# Memory footprint stays at the base-model's quantized size + a small adapter.
# Same workflow as vanilla LoRA — no QLoRA-specific flags.
DoRA — `--fine-tune-type dora` 선택지만 바꿔·bash
# Same training run, but using DoRA's weight decomposition for slightly
# better quality at the same trainable-parameter count.
python -m mlx_lm lora \
  --model mlx-community/Mistral-7B-Instruct-v0.3-4bit \
  --train --data ./my-data \
  --fine-tune-type dora \
  --num-layers 16 \
  --batch-size 4 --iters 200 --learning-rate 5e-5 \
  --adapter-path ./my-dora-adapter

# Per-step memory and compute are slightly higher than LoRA;
# converged quality is usually slightly better.

External links

Exercise

같은 자료를 fp16 기반의 LoRA, Q4 기반의 LoRA인 QLoRA, Q4 기반의 DoRA로 각각 50회 학습해. 나머지 선택지는 같게 두고 학습 손실 곡선과 단계당 시간을 비교해. 각 방식이 무엇을 더 쓰고 무엇을 얻는지 현재 하드웨어와 자료에서 직접 느껴봐.

Progress

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

댓글 0

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

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