LoRA를 두 방향으로 강화해
기본 LoRA만으로 대부분의 작업을 끝낼 수 있어. 더 적은 메모리에 큰 기반 모델을 넣고 싶다면 QLoRA, 전체 파인튜닝과의 품질 차이를 줄이고 싶다면 DoRA를 써. mlx-lm은 둘 다 추가 설정이 거의 필요 없어.
QLoRA — 양자화한 기반 위에서 학습해
QLoRA는 기반 모델을 4비트로 두고 그 위의 전체 정밀도 LoRA 어댑터만 학습해. 기반이 fp16 메모리의 약 25%만 쓰고 어댑터도 작아서, fp16 70B가 추론조차 안 들어가는 기계에서 70B를 파인튜닝할 수 있어.
mlx-lm에서는 --model을 mlx-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나 드문 전체 파인튜닝으로 갈 때만 학습 방식을 명시적으로 바꾸면 돼.