데이터센터 6곳 전체 정상

암호화폐 결제 · 신원 확인 없음 · 5분 미만 안에 root 권한

실전 가이드 · 10분 분량

카드 1장으로 70B 모델 파인튜닝.

QLoRA는 랙 하나가 필요하던 학습 작업을 48 GB GPU 1장이면 되는 작업으로 바꿉니다. 무엇이 들어가는지, 한 달에 얼마인지, 그리고 이 기법이 통하지 않는 지점은 어디인지 정리했습니다.

짧은 답

70B QLoRA
약 61 GB — 시퀀스 길이가 짧으면 48 GB 카드 1장에 들어가고, 80 GB 카드에는 넉넉하게 들어감
70B 전체 파인튜닝
약 1,232 GB — 당사가 임대하지 않는 멀티 노드 클러스터
그 비율
메모리는 약 20× 적게 쓰면서, 대부분의 작업에서 품질의 대부분에 도달하는 기법
여기서 드는 비용
$286/월부터, 카드는 실행하는 동안이 아니라 한 달 내내 고객의 것

실제로 들어가는 것

LoRA는 모델을 고정하고 각 가중치 행렬 옆에 작은 저랭크 행렬 한 쌍을 학습시킵니다. QLoRA는 여기서 더 나아가 고정된 가중치를 4비트로 들고 있습니다. 그 결과 메모리에 담고 있어야 하는 것이 완전히 달라집니다.

고정된 가중치파라미터당 4비트70B 모델에서 35 GB. 매 스텝 읽기만 하고 갱신되지 않으므로 그래디언트가 필요 없습니다.
어댑터파라미터의 약 1–2%BF16으로 1~2 GB. 변하는 가중치는 이것뿐이고, 마지막에 남기는 것도 이것뿐입니다.
옵티마이저 상태어댑터에만 적용되는 Adam학습되는 파라미터당 모멘트 2개. 전체 파인튜닝을 지배하고 여기서는 거의 사라지는 항입니다.
활성화 값변동하는 항목배치 크기와 시퀀스 길이에 비례합니다. 그래디언트 체크포인팅은 연산량을 약 30% 더 쓰는 대신 이 값을 크게 줄여 줍니다 — 실행이 들어가지 않을 때 흔히 쓰는 지렛대입니다.

전체 파인튜닝이 들어가지 않는 이유

BF16 전체 파인튜닝은 파라미터당 약 16바이트가 필요합니다: 가중치에 2바이트, 그래디언트에 2바이트, FP32로 저장하는 Adam의 두 모멘트에 8바이트, 그리고 마스터 복사본이 더해집니다. 고정 배수이고, 가혹합니다.

학습 메모리, QLoRA와 전체 파인튜닝 비교
모델QLoRA전체 파인튜닝비율의미
Llama 3.1 8B8B 파라미터 13 GB 141 GB 11× 24 GB 카드 1장 전체: GPU 8장 노드
Gemma 3 27B27B 파라미터 27 GB 475 GB 17× 48 GB 카드 1장 전체: GPU 8장 노드
Qwen 3 32B32B 파라미터 31 GB 563 GB 18× 48 GB 카드 1장 전체: GPU 8장 노드
Llama 3.3 70B70B 파라미터 61 GB 1,232 GB 20× 80 GB 카드 1장 전체: 노드 2개 이상

활성화 값을 소폭 감안한 자릿수 수준의 추정치입니다 — 머신을 고르기에는 충분하지만 특정 실행을 약속하기에는 부족합니다. 시퀀스 길이와 배치 크기는 QLoRA 열을 크게 움직이지만, 전체 파인튜닝 열은 거의 움직이지 않습니다. 파라미터당 고정 16바이트가 지배하기 때문입니다.

모델별

각 모델을 QLoRA로 학습시킬 수 있는 당사 카탈로그의 최저가 노드와, 그 결과를 서빙하는 데 필요한 머신입니다.

QLoRA 학습용 최저가 노드와 결과 서빙용 최저가 노드
모델학습 메모리학습용 최저가 노드서빙용 최저가 노드
Llama 3.1 8B 13 GB NVIDIA L4카드당 24 GB · $125/월 NVIDIA L4$125/월
Mistral Small 24B 25 GB NVIDIA RTX A6000카드당 48 GB · $286/월 NVIDIA L4$125/월
Gemma 3 27B 27 GB NVIDIA RTX A6000카드당 48 GB · $286/월 NVIDIA L4$125/월
Qwen 3 32B 31 GB NVIDIA RTX A6000카드당 48 GB · $286/월 NVIDIA L4$125/월
Llama 3.3 70B 61 GB NVIDIA A100 PCIe카드당 80 GB · $1,091/월 2 × NVIDIA L4$285/월

학습에는 메모리가 필요하고, 서빙에는 메모리 대역폭이 필요합니다. 학습에 맞는 카드는 대용량 메모리의 저렴한 카드이고, 서빙에 맞는 카드는 비싸고 빠른 카드인 경우가 흔합니다 — 여기서는 둘 다 월 단위이므로 두 작업을 서로 다른 머신에서 돌리는 편이 한 대로 타협하는 것보다 저렴할 때가 많습니다.

실행하기

Axolotl은 구성 도구의 이미지 중 하나로 미리 설치됩니다. 아래는 빈 머신에서 시작해 단일 카드로 진행하는 전체 실행 과정입니다.

카드 1장에서 QLoRA 실행하기
$ mkdir -p /scratch/ft && cd /scratch/ft
$ cat > qlora.yml <<'YAML'
base_model: meta-llama/Llama-3.3-70B-Instruct
load_in_4bit: true
adapter: qlora
lora_r: 16
lora_alpha: 32
lora_dropout: 0.05
lora_target_linear: true

sequence_len: 2048
sample_packing: true
gradient_checkpointing: true
micro_batch_size: 1
gradient_accumulation_steps: 16
num_epochs: 2
learning_rate: 0.0001
optimizer: paged_adamw_8bit
bf16: true

datasets:
  - path: /scratch/ft/data.jsonl
    type: chat_template
output_dir: /scratch/ft/out
YAML

$ docker run --rm --gpus all --ipc=host --shm-size=16g \
    -v /scratch/ft:/workspace -v /scratch/models:/root/.cache/huggingface \
    -e HF_TOKEN="$HF_TOKEN" \
    axolotlai/axolotl:main-latest \
    axolotl train /workspace/qlora.yml
처음 2분은 손실이 아니라 메모리 확인
$ nvidia-smi dmon -s um

# If memory sits just under the card's total, you are one long batch
# away from an out-of-memory error four hours into the run.
# Lower sequence_len or micro_batch_size now, not then.

중요한 설정

lora_r16~64랭크이자 품질과 메모리를 조절하는 주된 다이얼입니다. 16이 무난한 기본값입니다. 형식이나 문체가 아니라 정말로 새로운 지식을 가르치는 경우가 아니라면 64를 넘겨서 얻는 것은 거의 없습니다.
lora_target_lineartrue어텐션만이 아니라 모든 선형 레이어를 적응시킵니다. 비용은 거의 들지 않고, 어텐션에만 적용하는 기본값보다 일관되게 좋습니다.
sequence_len가장 큰 메모리 지렛대활성화 값이 이 값에 비례합니다. 이 값을 절반으로 줄이면 메모리의 변동 부분도 대략 절반이 됩니다. 모델의 최대치가 아니라 실제 데이터의 길이에 맞추십시오.
gradient_checkpointingtrue, 거의 항상약 30% 느려지지만, 70B 학습을 카드 1장에 들어가게 만드는 것이 바로 이것입니다. 메모리에 여유가 있을 때만 끄십시오.
micro_batch_size & 누적서로 맞바꿔 조정실효 배치는 둘의 곱입니다. 메모리가 빠듯하면 마이크로 배치는 1로 두고 누적 단계를 올리십시오 — 그래디언트는 같고, 최대 메모리는 줄고, 조금 느려집니다.
optimizerpaged_adamw_8bit안전장치로 CPU 페이징을 쓰는 8비트 옵티마이저 상태입니다. 그대로 두면 4시간째에 실행을 끝장낼 급증을 흡수합니다.

한 달 비용

학습에서 월 단위가 서빙에서보다 더 중요한 이유: 파인튜닝 프로젝트는 한 번의 실행이 아닙니다. 데이터 버그로 실패하는 첫 번째 실행, 과적합되는 두 번째, 제대로 되는 세 번째, 그리고 랭크를 달리한 다섯 번이 더 있습니다.

머신별 파인튜닝 프로젝트 비용
머신카드 메모리월 요금적합 용도
NVIDIA L4300 GB/s 24 GB $125/월 QLoRA 8B까지
NVIDIA RTX 50901,792 GB/s 32 GB $335/월 QLoRA 32B까지
NVIDIA A100 PCIe1,555 GB/s 40 GB $392/월 QLoRA 32B까지
NVIDIA RTX A6000768 GB/s 48 GB $286/월 QLoRA 32B까지
NVIDIA A100 PCIe1,935 GB/s 80 GB $1,091/월 QLoRA 70B까지

이를 한 번의 실행이 아니라 프로젝트 전체에 걸친 시간 단위 요금과 비교해 보십시오: 손익분기점 가이드가 그 계산을 해 둡니다. 반복 작업을 하는 3주 동안 존재하는 머신이야말로 시간당 과금이 이용 기간보다 비싸지는 경우입니다.

LoRA가 통하지 않는 지점

분명한 경계가 있는 아주 좋은 기법이며, 무엇을 임대하기 전에 자신이 그 경계의 어느 쪽에 있는지 아는 것이 좋습니다.

정말로 새로운 도메인을 가르치는 경우. LoRA는 행동을 맞추는 데는 뛰어나지만 지식을 더하는 데는 약합니다. 고객의 분야를 한 번도 본 적 없는 모델은 저랭크 어댑터로 그 분야를 배우지 못합니다.

어휘나 토크나이저를 바꾸는 경우. 새 토큰은 임베딩을 학습해야 하는데, 이는 어댑터가 건드리는 범위 밖입니다.

수십억 토큰으로 사전 학습을 이어 가는 경우. 그것은 전체 파인튜닝이며, 위 표의 오른쪽 열에 있는 머신이 필요합니다 — 노드 하나를 넘어서고, 당사가 임대하는 범위도 넘어섭니다.

벤치마크 점수 마지막 2점을 쥐어짜는 경우. 그 미세한 차이에서는 여전히 전체 파인튜닝이 앞섭니다. 그 차이로 보수를 받고 계시다면 LoRA는 맞지 않는 도구입니다.

그 밖의 모든 경우에는 — 말투, 형식, 스키마, 베이스 모델이 이미 절반쯤 아는 도메인 — 단일 카드의 QLoRA가 훨씬 작은 머신으로 품질의 대부분에 도달합니다. 그것이 이 거래이고, 사람들이 실제로 파인튜닝하는 모델에서는 좋은 거래입니다.

카드를 고르고, 프로젝트 내내 그대로 두십시오.

모든 구성이 월 단위이고, root 권한이 있으며 사용량 과금이 없습니다 — 파인튜닝을 반복하는 데 실제로 필요한 조건입니다.

로그인

콘솔, 청구서, 대역 외 접근.

계정이 없으십니까?

별도의 회원가입은 없습니다. 첫 주문을 진행하는 동안 계정이 만들어집니다 — 결제 단계에서 이메일과 비밀번호를 직접 정하시고, 머신이 준비될 때쯤이면 콘솔도 이미 열려 있습니다.

서버 구성하기

Language