본문으로 건너뛰기
50% 할인 모든 플랜, 기간 한정. 시작 가격 $2.48/mo
15 min left
AI 및 머신러닝

LoRA vs. QLoRA vs. 풀 파인튜닝: 어떤 방법을 써야 할까?

B 작성자 Brian 15 분 분량
LoRA vs QLoRA vs full fine-tuning compared by VRAM use, quality, and when each method wins

자체 데이터로 7B 모델을 파인튜닝하기로 결정했습니다. 그런데 첫 번째 진짜 갈림길에 부딫힙니다: 세 가지 방법론, 각각 다른 답을 달고 있죠. Unsloth 문서는 QLoRA로 시작하라고 합니다. Axolotl은 하드웨어에 따라 다르다고 합니다. 대충 훑어본 블로그 글 절반은 "대부분 LoRA를 쓰라"고 하고 넘어갑니다. 그러는 동안 당신은 GPU 한 대를 바라보며, 이 방법들 중 하나라도 돌릴 수 있을지 확신이 서지 않습니다.

이것이 다른 모든 것보다 앞서는 결정입니다. 선택한 방법이 VRAM 예산을 결정하고, VRAM 예산이 하드웨어를 결정하고, 하드웨어가 비용을 결정합니다. 방법을 잘못 고르면 필요 없던 GPU 메모리에 돈을 낭비하거나, 애초에 그 작업을 감당할 수 없는 카드에서 메모리 부족 크래시를 잡느라 주말을 통째로 날리게 됩니다.

그러니 확실히 정리해봅시다. LoRA, QLoRA, 풀 파인튜닝이 실제로 어떻게 다른지, 각각 메모리와 품질 면에서 어떤 비용이 드는지, 그리고 자신의 상황을 이 중 하나로 배정하는 규칙을 살펴봅니다.

요약

  • 기본값은 QLoRA입니다. 대부분의 단일 GPU 파인튜닝에서는 QLoRA로 시작하세요. Axolotl의 표에 따르면 7-8B QLoRA 실행은 짧은 컨텍스트와 작은 마이크로 배치를 가정할 때 약 10-14GB의 VRAM이 필요합니다. 이는 많은 12-24GB급 소비자용 또는 프로슈머용 카드에 맞지만, 모든 저용량 VRAM 카드에 맞는 것은 아닙니다. 여유 메모리가 있고 더 빠른 스텝을 원한다면 일반 LoRA를 선택하세요. 풀 파인튜닝은 정말 필요한 드문 경우를 위해 남겨두세요.
  • VRAM 격차는 큽니다. Axolotl가 발표한 수치에 따르면, 7B 모델 파인튜닝에는 풀 파인튜닝의 경우 약 60-80GB, LoRA의 경우 16-24GB, QLoRA의 경우 10-14GB가 필요합니다. 이 격차야말로 파라미터 효율적인 방법들이 존재하는 이유입니다.
  • 품질 손실은 작업에 따라 다르며, 일정하지 않습니다. 대부분의 지시 따르기 및 구조화된 출력 작업에서 LoRA와 QLoRA는 전체 파인튜닝과 몇 퍼센트 차이 안에 들어옵니다. 수학처럼 복잡한 추론에서는 그 차이가 커집니다. 바로 그 지점에서 전체 파인튜닝이 여전히 비용을 정당화합니다.
  • 전체 파인튜닝은 예외이며, 기본값이 아닙니다. 대규모 분포 변화, 사전학습 규모의 변경, 또는 벤치마크에서 차이가 드러나는 추론이 중요한 작업에서 이를 선택하는 것이며, 안전한 기본 선택으로 사용하는 것이 아닙니다.

이 가이드에서 다루지 않는 내용

이것은 방법 선택 가이드이며, 구현 안내서가 아닙니다. 몇 가지는 의도적으로 다루지 않습니다.

  • LoRA 변형 (DoRA, VeRA, LoRA+). 세 가지 핵심 방법이 먼저 결정해야 할 사항이며, 변형들은 나중에 활용하는 개선 사항입니다.
  • 단계별 코드. 여기에는 설치 명령이나 학습 스크립트가 없습니다. 이는 별도의 실습 안내서로, 여기서는 다루지 않습니다.
  • 멀티 GPU 학습 (FSDP, DeepSpeed ZeRO) 및 데이터셋 준비: 둘 다 그 자체로 방대한 주제다.
  • RLHF, DPO, 선호도 최적화. 이는 감독 학습 파인튜닝과는 다른 목적 함수 계열이다.
  • 파인튜닝을 해야 하는지 여부 자체. 파인튜닝이 retrieval에 비해 적합한 도구인지 확신이 없다면, 여기서 방법을 고르기 전에 그 비교부터 따로 답을 내려야 한다.

LoRA, QLoRA, 전체 파인튜닝은 실제로 무엇이 다른가?

Three ways to adapt a model, each with a different training footprint: full fine-tuning updates all weights with the highest training footprint, LoRA freezes the base model and trains small adapter matrices, and QLoRA trains adapters on a quantized 4-bit frozen base for the lowest VRAM use

전체 파인튜닝은 모델의 모든 파라미터를 업데이트한다. LoRA는 기반 모델을 고정한 채 작은 저랭크 어댑터 행렬을 대신 학습시킨다(전체 파라미터 수의 약 0.1~2%). QLoRA는 LoRA에 한 단계를 더 추가한다. 고정된 기반 모델을 4비트 정밀도로 양자화해서(NF4, NormalFloat라는 데이터 타입을 사용) 어댑터를 학습하는 동안 기반 모델이 훨씬 적은 메모리를 차지하게 한다.

이 셋을 머릿속에 정리하는 가장 깔끔한 방법은 사다리로 생각하는 것이다. 각 단계가 그 아래 단계의 비용 하나를 없애는 식이다.

전체 파인튜닝 가장 아래 단계이며, 가장 무겁다. 모든 가중치가 학습 가능하므로, 옵티마이저는 모델의 모든 파라미터에 대해 그래디언트와 옵티마이저 상태를 추적해야 한다. 메모리가 소모되는 지점이 바로 여기이며, 수치 계산은 다음 섹션에서 다룬다.

LoRA (Low-Rank Adaptation)는 원본 가중치를 고정하고 모델의 레이어에 작은 학습 가능한 행렬을 주입한다. 오직 이 행렬들만 학습하며, 베이스 모델은 그저 따라갈 뿐이다. LoRA 논문에 따르면 이는 175B 모델 기준으로 학습 가능한 파라미터를 최대 10,000배까지 줄이고, 그 규모에서 GPU 메모리를 약 3배 줄이면서도 저자들이 테스트한 모델들에서 "모델 품질 면에서 파인튜닝과 동등하거나 더 나은" 성능을 보였다. 변경되는 파라미터가 이렇게 적기 때문에, 학습된 결과물은 매우 작다. Hugging Face의 PEFT 블로그 두 가지 유용한 참고 값을 제시한다. 하나는 bigscience/mt0-xxl이고, 다른 하나는 저장된 어댑터가 단 19 MB에 불과한 별도의 LoRA 예시다. 요점은 여전히 같다. PEFT 체크포인트는 전체 모델 체크포인트에 비해 대체로 매우 작다.

QLoRA 는 LoRA를 그대로 가져와 LoRA가 손대지 않고 남겨둔 부분, 즉 고정된 베이스를 축소한다. 이 가중치를 4비트 NF4로 양자화한다는 것은 베이스 모델이 16비트일 때의 메모리 중 일부만 차지하게 된다는 뜻이며, 그 위에서 어댑터는 여전히 완전한 정밀도로 학습된다. QLoRA 논문은 NF4를 "정규 분포를 따르는 가중치에 대해 정보 이론적으로 최적"이라고 설명하는데, 이는 4비트 표현이 실제 모델 가중치의 분포 방식에 맞춰 선택된다는 것을 정확히 표현한 말이며, 그 결과 단순한 4비트 라운딩보다 손실이 적다.

이것이 전체 개념 스택이다. 전체 파인튜닝은 모든 것을 학습시키고, LoRA는 베이스를 고정한 채 어댑터를 학습시키며, QLoRA는 고정된 베이스를 압축하면서 어댑터를 학습시킨다. 나머지 모든 것(VRAM, 품질, 언제 무엇을 쓸지)은 이 세 가지 선택에서 비롯된다.

각 방법에는 얼마나 많은 VRAM이 필요할까요?

VRAM needed by fine-tuning method and model size: full fine-tuning needs 24-32 GB for 1-3B models, 60-80 GB for 7-8B models, and 4-8x 80 GB for 70B+ models, versus much lower requirements for LoRA and QLoRA, with QLoRA fine-tuning a 65B model on a single 48 GB GPU

7B 모델의 경우 대략적인 수치는 전체 파인튜닝에 약 60-80 GB, LoRA에 16-24 GB, QLoRA에 10-14 GB이며, 이는 Axolotl가 공개한 표. 실질적인 결과는 다음과 같습니다. QLoRA는 짧은 컨텍스트와 작은 배치 설정에서 12-24 GB의 단일 소비자용 또는 프로슈머용 GPU 다수에 흔히 들어맞지만, 7B 모델의 전체 파인튜닝은 데이터센터급 메모리나 다중 GPU 구성이 필요합니다.

전체 파인튜닝이 왜 이렇게 무거울까요? 간단한 계산입니다. 모든 파라미터를 학습시키면 GPU는 파라미터마다 세 가지를 유지합니다. 가중치 자체, 그 gradient, 그리고 옵티마이저 상태입니다(Adam류 옵티마이저는 가중치마다 추가로 두 개의 값을 유지합니다). 그래서 메모리 비용이 모델 자체 크기의 몇 배로 늘어납니다. LoRA는 베이스를 동결하므로 이 gradient 및 옵티마이저 부담을 작은 어댑터 행렬에만 지불합니다. QLoRA는 여기에 더해 동결된 베이스를 16-bit 대신 4-bit로 저장해 남은 비용 중 가장 큰 부분을 줄입니다.

다음은 세 가지 방법을 모델 크기별로 비교한 것으로, Axolotl 문서와 대형 모델 수치를 위한 QLoRA 논문을 기반으로 합니다.

방법1-3B 모델7-8B 모델70B+ 모델
Full fine-tuning (bf16 + AdamW)24-32 GB60-80 GB4-8x 80 GB
LoRA (bf16)8-12 GB16-24 GB2x 80 GB
QLoRA (4-bit NF4)6-8 GB10-14 GB40-48 GB

출처: 모든 모델 크기에 걸친 세 가지 방법에 대한 Axolotl 문서; QLoRA 논문은 단일 48GB GPU에서 65B 모델을 "완전한 16비트 파인튜닝 작업 성능을 유지하면서" 파인튜닝했다고 독립적으로 보고하며, 이는 70B QLoRA 수치와 일치한다. Hugging Face의 4비트 양자화 블로그 별도로 단일 16GB T4에서 학습한 13B 모델과 QLoRA를 사용해 24GB GPU에서 학습한 33B 모델을 보여준다. 목표가 표의 행들 사이에 있다면 이는 유용한 참고 지점이 된다.

기억해 둘 만한 단 하나의 숫자: 48GB 카드 한 장으로 돌리는 65B 모델. 이것이 QLoRA의 핵심 결과이며, "GPU가 하나뿐"이라는 말의 의미를 다시 정의한다.

이 섹션의 결론: VRAM 사용량 순서는 full >> LoRA > QLoRA이며, full에서 QLoRA로의 차이는 작업을 멀티 GPU 랙에서 단일 카드로 옮길 수 있을 만큼 크다.

LoRA나 QLoRA는 실제로 품질을 희생시킬까?

대부분의 지시 따르기 및 구조화된 출력 작업에서 LoRA와 QLoRA는 전체 파인튜닝과 몇 퍼센트 포인트밖에 차이 나지 않는다. 복잡한 추론(특히 수학)에서는 그 차이가 커지며, 전체 파인튜닝이 여전히 확실히 앞선다. 그러므로 답은 "거의 동등하다"도 "더 나쁘다"도 아니다. 작업에 따라 다르며, 작업 유형이 당신이 그 경계선의 어느 쪽에 있는지 알려준다.

가장 명확한 작업별 근거는 2023년 9월 Anyscale의 Llama 2에 대한 Anyscale 연구. 구조화된 기능 표현 작업인 ViGGO에서 LoRA는 7B 및 13B 모델에서 완전 미세조정 정확도의 약 95%에 도달했습니다. 저자들은 이 2% 차이를 받아들일 만한 트레이드오프로 평가했습니다. SQL 생성에서는 LoRA가 완전 미세조정과 거의 일치했고, LoRA 13B 모델이 완전 미세조정된 7B 모델을 실제로 앞섰습니다. 수학 추론 벤치마크인 GSM8k에서는 LoRA가 7B와 13B에서 완전 미세조정보다 일관되게 낮은 성능을 보였고, 그 차이는 70B에서만 줄어들었습니다. Anyscale 팀의 해석은 LoRA의 저랭크 근사가 다단계 수학처럼 복잡한 능력은 포착하지 못할 수 있다는 것입니다.

이 숫자에 대한 하나의 유의점: 이 연구는 2023년 9월 Llama 2로 진행되었습니다. 작업 유형별 패턴(구조화된 출력은 가깝고, 복잡한 추론은 더 멀다)은 그 이후로도 본질적으로 유지된 지속적인 결론입니다. 하지만 정확한 백분율은 Llama 3나 Mistral 같은 더 새로운 기반 모델에서 다를 수 있으므로, 이 수치를 여러분의 모델에 대한 보장이 아니라 트레이드오프의 형태로 받아들이세요.

QLoRA의 품질 이야기는 독자적입니다. QLoRA 논문에 따르면 QLoRA로 훈련된 65B 모델인 Guanaco는 Vicuna 벤치마크에서 ChatGPT 성능의 99.3%에 도달했습니다. 강력하지만, 그 특정 벤치마크와 2023년 비교에 국한된 것이며 "QLoRA는 ChatGPT와 동등하다"는 일반적인 주장은 아닙니다. 순수 LoRA와 비교했을 때, Axolotl은 QLoRA가 "양자화 노이즈로 인한 약간의 성능 저하"를 가진다고 설명합니다. 4비트 기반은 LoRA의 완전 정밀도 기반에는 없는 작은 오류를 유발합니다. 대부분의 작업에서는 이것이 보이지 않지만, 작은 정밀도 변화에 민감한 작업이라면 가정하기보다 확인해볼 만한 부분입니다.

팁: 가장 흔한 품질 서프라이즈는 QLoRA 대 LoRA가 아닙니다. 시작한 기반 모델보다 더 나쁘게 나온 미세조정 모델입니다. 이는 보통 훈련이 의도하지 않은 무언가를 했다는 것을 의미합니다. 좁은 데이터셋에서 너무 과격했거나, 일반 능력이 조용히 퇴화하는 동안 새 작업에서만 평가되었을 수 있습니다. 미세조정 모델을 신뢰하기 전에 항상 훈련 분포 밖의 몇 가지 프롬프트로 테스트하세요. 그곳에서의 퇴화는 되돌리라는 신호이며, 출시하라는 신호가 아닙니다.

이 섹션의 결론: 품질 동등성은 작업에 따라 달라집니다. 구조화된 출력과 지시 이행은 LoRA/QLoRA에 안전하며, 복잡한 추론은 완전 미세조정이 여전히 비용을 정당화하는 영역입니다.

각 방법을 언제 선택해야 할까요?

Decision tree for picking a fine-tuning method: check available VRAM first, then task type and quality requirement, then speed needs, routing to QLoRA as the default, LoRA as the speed and headroom upgrade, or full fine-tuning as the maximum-performance choice

대부분의 단일 GPU 미세조정에는 QLoRA로 시작하세요. VRAM 여유가 있고 더 빠른 스텝이나 약간 더 높은 품질 상한을 원한다면 일반 LoRA로 올라가세요. 완전 미세조정은 정말로 필요한 경우, 즉 큰 분포 변화, 사전훈련 규모의 변화, 또는 벤치마크 차이가 실재하는 추론이 중요한 작업에만 남겨두세요. 세 가지 입력을 순서대로 따르세요. 사용 가능한 VRAM, 작업 유형과 품질 요구사항, 그다음 속도입니다.

다음은 "이것을 하고, 저것은 하지 마라" 형식의 라우팅입니다.

1. 먼저 VRAM을 확인하세요. 24GB 이하의 단일 카드를 사용하는 경우(대부분의 소비자용 및 프로슈머용 GPU가 여기 해당됩니다), QLoRA가 기본 방법입니다. 세 가지 방법 중 이 범위 안에 7B 모델을 안정적으로 담을 수 있는 유일한 방법이기 때문입니다. 단일 소비자용 카드에서 full fine-tuning을 시도하지 마세요. 위 표에서 이미 7B 작업이 들어가지 않는다고 알려주고 있으며, 그걸 힘들게 주말 내내 몸으로 배우게 될 겁니다.

2. 그다음 작업 내용과 품질 기준을 확인하세요. 작업이 지시 따르기, 구조화된 출력, SQL, 또는 일반적인 도메인 적응이라면 Anyscale의 근거에 따르면 LoRA와 QLoRA가 거의 완전한 품질을 제공합니다. 기본값을 그대로 사용하세요. 작업이 추론 비중이 높고(다단계 수학, 복잡한 논리 체인) 품질을 타협할 수 없다면, 이것이 full fine-tuning으로 넘어가는 걸 고려할 첫 번째 진짜 이유입니다. 벤치마크에서 일관된 격차를 보이는 유일한 작업 유형이기 때문입니다.

3. 그다음 속도를 따져보세요. QLoRA는 메모리를 절약하는 대신 스텝당 속도를 어느 정도 희생합니다. 4비트 베이스를 즉석에서 역양자화해야 하기 때문입니다. 일반 LoRA를 실행할 VRAM이 있다면(7B 기준 16-24GB), 더 빠른 스텝을 얻고 양자화로 인한 잡음도 피할 수 있습니다. 그래서 메모리가 제약 조건이 아니고 반복 실험을 많이 한다면 LoRA가 더 나은 선택입니다.

그렇다면 언제 is full fine-tuning이 정답이 되는 걸까요? Axolotl의 가이드는 명확합니다. pre-training에는 필수이며, "GPU 메모리가 충분하거나 멀티 GPU 환경이 갖춰져 있고 최고 성능이 필요할 때" 선택하는 방법이라는 겁니다. 그 조건을 벗어난 경우(그리고 실무에서 이루어지는 fine-tuning의 대다수, 즉 기존 모델을 특정 행동이나 도메인에 맞게 조정하는 경우), 파라미터 효율적인 방법들은 훨씨 적은 하드웨어로도 대부분의 품질을 제공합니다.

Unsloth는 기본 선택 기준을 명확히 밝힙니다.

"모델 학습에 가장 접근하기 쉽고 효과적인 방법 중 하나이기 때문에 QLoRA로 시작하는 것을 추천합니다."

원칙은 이렇습니다. 기본은 QLoRA로 시작하고, 메모리가 충분하면 속도를 위해 LoRA로 올라가고, 작업이나 규모가 요구할 때만 풀 파인튜닝으로 올라갑니다.

이 섹션의 결론: QLoRA가 기본값이고, LoRA는 속도와 여유 공간을 위한 업그레이드이며, 풀 파인튜닝은 분포 변화나 사전 학습, 추론 벤치마크로 정당화해야 하는 예외입니다.

사람들이 파인튜닝 방법에 대해 흔히 오해하는 것은 무엇일까?

낭비된 주말의 대부분은 두 가지 오해에서 비롯된다. 첫 번째는 파인튜닝을 모델에 새로운 사실을 가르치는 방법으로 취급하는 것인데, 실제 주된 효과는 행동을 형성하는 것이다. 두 번째는 손잡이를 돌리는 것만으로 품질을 살 수 있다고 가정하는 것이다. 더 높은 LoRA 랭크나 QLoRA 대신 full fine-tuning을 사용하면 자동으로 더 나은 모델을 얻을 수 있다는 생각이다. 둘 다 반쪽만 맞기 때문에 오히려 오해를 낳는다.

파인튜닝이 모델에 새로운 사실을 가르쳐줄까?

이 부분은 전문가들 사이에서도 실제로 의견이 갈리는 지점이라, 한쪽을 선택하기보다는 뉘앙스를 정확히 이해하는 것이 중요하다. 여러 실무 가이드는 "파인튜닝이 새로운 사실을 가르친다"는 것을 첫 번째 오해라고 지적한다. 그들의 요점은 파인튜닝이 모델이 사전 학습에서 전혀 접하지 못한 특정 사실을 신뢰성 있게 주입하는 것보다, 모델이 응답하는 방식을 형성하는 데 훨씬 뛰어나다는 것이다. Unsloth의 문서는 이에 직접 반박하며, 파인튜닝이 새로운 지식을 가르칠 수 없다는 주장을 "거짓"이라 부르고, 파인튜닝을 "새로운 도메인 특화 정보를 주입하고 학습하는" 방법으로 설명한다.

둘 다 부분적으로 맞으며, 이를 조화시키는 해석은 다음과 같다. 파인튜닝은 행동을 형성하고 베이스 모델에 이미 잠재된 지식을 강화하는 데 신뢰할 수 있고, 도메인 특화 패턴을 인코딩할 수 있다. 신뢰할 수 없는 부분은 사전 학습에 전혀 없었던 개별적인 사실을 심어 넣는 것이다. 목표가 "이 특정 문서를 암기하기"에 가까워질수록 잘못된 도구를 사용하고 있을 가능성이 높으며, retrieval이 더 나은 해결책일 수 있다. 그러므로 실용적인 지침은 이 논쟁 속에서도 유효하다. 행동과 스타일에는 파인튜닝을 활용하되, 사실 주입 메커니즘으로서는 회의적으로 접근하라.

더 높은 LoRA 랭크는 항상 품질을 향상시킬까?

아니다, 그리고 이것은 가장 쉽게 과도하게 돌리게 되는 손잡이다. 직관적으로는 랭크가 높을수록 어댑터의 용량이 커지므로 많을수록 좋다고 생각하게 된다. Databricks는 이를 실증적으로 테스트했다 그리고 랭크를 두 배로 늘려도 "출력 품질에 눈에 띄는 향상이 발생하지 않는 것으로 보인다"는 것을 발견했다. 그들의 실험에서 실제로 영향을 미친 것은 어떤 레이어를 대상으로 했는지였다(어텐션 블록만이 아니라 모든 선형 레이어를 조정하는 것), 랭크 숫자를 높이는 것이 아니었다. 여기서 얻을 수 있는 교훈은 이렇다. 랭크를 부풀리는 데 노력을 쓰기 전에, 타겟 모듈과 데이터 품질에 튜닝 노력을 집중하라.

LoRA의 품질은 항상 전체 파인튜닝과 동일한가요?

항상 그런 것은 아니며, 최근 연구 논문에서 특정 실패 유형을 밝혀냈습니다. "LoRA vs Full Fine-tuning: An Illusion of Equivalence" (Shuttleworth 등)에 따르면 LoRA 학습은 "침입자 차원"(완전히 파인튜닝된 모델에는 없는 고순위 특이 벡터)을 유발할 수 있으며, 이는 동일한 모델을 반복적으로 파인튜닝하는 연속 학습 시나리오에서의 망각과 연관됩니다. 이는 전면적인 반박이 아니라 구체적인 단서 조항입니다. 하나의 작업에 대해 한 번의 파인튜닝만 수행한다면 품질 동등성에 대한 광범위한 증거는 여전히 유효합니다. 파인튜닝을 연쇄적으로 수행하며 베이스 모델의 전반적인 능력 보존을 중요하게 여긴다면, 이 실패 유형을 주의해야 합니다.

자주 묻는 질문

LoRA, QLoRA, 전체 파인튜닝의 차이점은 무엇인가요?

전체 파인튜닝은 모델의 모든 파라미터를 업데이트합니다. LoRA는 베이스 모델을 고정한 채 대신 작은 저순위(low-rank) 어댑터 행렬을 학습시키며, 이는 전체 파라미터의 약 0.1-2%에 해당합니다. QLoRA는 LoRA와 동일한 작업을 수행하면서 고정된 베이스 모델을 4비트 NF4 정밀도로 양자화하여, 어댑터 학습 중 베이스 모델이 차지하는 메모리를 훨씬 줄입니다. 그 결과 명확한 메모리 단계가 나타납니다. 전체 파인튜닝이 가장 무겁고, LoRA가 더 가볍고, QLoRA가 가장 가볍습니다.

7B 모델을 파인튜닝하려면 VRAM이 얼마나 필요한가요?

7B 모델의 경우 Axolotl의 수치에 따르면 전체 파인튜닝은 약 60-80GB, LoRA는 16-24GB, QLoRA는 10-14GB가 필요합니다. 세 가지 중 QLoRA만이 일반적으로 12-24GB 단일 소비자용 또는 프로슈머용 GPU 한 대에 들어맞습니다. 7B 모델의 전체 파인튜닝에는 데이터센터급 메모리 또는 다수의 GPU가 필요합니다.

QLoRA의 품질은 LoRA나 전체 파인튜닝보다 떨어지나요?

이는 작업에 따라 다릅니다. 대부분의 지시 이행 및 구조화된 출력 작업에서 QLoRA는 완전 미세조정의 몇 퍼센트 이내에 도달하며, Axolotl은 일반 LoRA에 비해 "양자화 노이즈로 인한 약간의 성능 저하"만 있다고 설명합니다. 수학과 같은 복잡한 추론 작업에서는 차이가 커지며, 여기서 완전 미세조정은 2023년 Llama 2에 대한 Anyscale 연구에서 일관된 우위를 보였습니다.

완전 미세조정은 언제 정말로 가치가 있을까요?

완전 미세조정은 사전훈련, 큰 분포 변화, 벤치마크에서 실제 품질 차이가 나타나는 추론 중요 작업에 대해 비용을 정당화합니다. 또한 충분한 GPU 메모리나 다중 GPU 구성이 있고 최대 품질이 필요할 때의 경로이기도 합니다. 일반적인 경우(기존 모델을 특정 행동이나 도메인에 적응시키는 경우)에는 LoRA나 QLoRA가 하드웨어의 일부만으로 대부분의 품질을 제공합니다.

파인튜닝이 모델에 새로운 사실을 가르쳐줄까?

부분적으로 그렇습니다. 미세조정은 행동을 형성하고 기반 모델에 이미 잠재된 지식을 강화하는 데 신뢰할 수 있으며, 도메인별 패턴을 인코딩할 수 있습니다. 사전훈련에서 완전히 없었던 개별 사실을 주입하는 데는 신뢰할 수 없습니다. 여기에는 진짜 전문가 간 의견 차이가 있습니다. Unsloth의 문서는 미세조정이 새로운 지식을 가르칠 수 있다고 주장하는 반면, 다른 가이드들은 이를 최고의 오해라고 부르며, 조화로운 관점은 행동과 스타일에는 미세조정을 사용하고, 특정 사실을 기억하는 것이 목표일 때는 검색을 활용하는 것입니다.

이것이 남기는 결론

방법 선택은 하나의 기본값과 두 개의 탈출구로 귀결됩니다. QLoRA로 시작하고, 메모리가 제약이 아니고 더 빠른 스텝을 원할 때 LoRA로 올라가고, 분포 변화, 사전훈련, 또는 추론 벤치마크가 강제할 때만 완전 미세조정으로 올라갑니다.

방법이 정해지면, 다음 결정은 그것이 암시하는 하드웨어입니다. 방법 선택은 여러분이 단일 소비자용 카드를 찾는지 데이터센터 메모리를 찾는지를 방금 알려주었습니다. AI 워크로드를 위한 특정 카드를 비교하고 싶다면, H100 vs RTX 4090 벤치마크 그 부분을 다룹니다. 선택한 방법에 맞는 GPU 크기 조정과 훈련 작업 자체를 실행하기 위한 단계별 안내는 각각 별도의 가이드입니다.

Share

블로그 더 보기

계속 읽기.

배포할 준비가 되셨나요? 월 $2.48부터.

2008년부터 독립 클라우드. AMD EPYC, NVMe, 40 Gbps. 14일 환불 보장.