
사전 준비
시작하기 전에 다음 항목을 확인해 주세요:- 크레딧이 충전된 VESSL Cloud 계정(가입하기)
- A100 SXM 80 GB GPU 인스턴스에 접근 가능한 조직
- Python과 Hugging Face Transformers에 대한 기본 지식
Workspace 만들기
1
스토리지 볼륨 설정하기
이 워크플로우에는 두 가지 스토리지가 필요해요:
왜 Cluster storage를
/root에 마운트하나요? 홈 디렉터리($HOME)는 pip이 패키지를 설치하는 기본 경로예요. 여기에 Cluster storage를 마운트하면 pip install을 한 번만 실행하면 돼요. Workspace를 일시정지/재개해도 패키지가 그대로 남아있어요.왜 Object storage를 /shared에 마운트하나요? 파인튜닝한 모델 가중치는 다른 Workspace나 클러스터에서도 접근할 수 있어야 해요. Object storage는 S3 기반이라 어디서든 접근 가능하고, 팀원과 결과를 공유하거나 다른 리전에서 배포하기 편해요.Workspace를 만들기 전에 두 볼륨을 모두 생성해 주세요:2
Workspace 실행하기
아래 설정으로 새 Workspace를 만들어 주세요:
전체 생성 과정은 Workspace 만들기를 참고해 주세요.
4비트 양자화(QLoRA)를 사용하면 E4B 모델의 VRAM 사용량이 약 18-22 GB 수준이에요. A100의 80 GB에서 충분한 여유가 있어서 배치 사이즈를 늘리거나 시퀀스 길이를 더 길게 설정할 수도 있어요.
3
Workspace에 접속하기
Workspace 상태가 Running으로 바뀌면 JupyterLab이나 SSH로 접속해 주세요. Workspace 접속하기를 참고해 주세요.
패키지 설치
Workspace 터미널을 열고 필요한 라이브러리를 설치해 주세요:Cluster storage를
/root에 마운트했다면 이 패키지들은 Workspace를 일시정지/재개해도 유지돼요. 한 번만 실행하면 돼요.모델 로드
load_in_4bit=True가 하는 일: 기본적으로 모델 파라미터는 16비트 부동소수점으로 로드되는데, 4비트 양자화는 QLoRA(NF4) 기법으로 가중치를 4비트로 압축해요. 이렇게 하면 메모리 사용량이 약 4배 줄어들어서, 원래 약 32 GB의 VRAM이 필요한 모델이 약 8-10 GB로 들어가요. 품질 저하는 미미한데, 고정된 기본 가중치만 양자화되고 LoRA 어댑터는 전체 정밀도로 학습하기 때문이에요.

LoRA 어댑터 설정
하이퍼파라미터 설명
데이터셋 준비
이 예제에서는 FineTome-100k 데이터셋에서 3,000개 샘플을 사용해 빠른 데모를 진행해요. 프로덕션에서는 전체 데이터셋을 사용하거나 자체 데이터로 대체해 주세요.3,000개 샘플은 데모 목적이에요. 품질을 제대로 끌어올리려면 전체 10만 개 데이터셋이나 최소 1-2만 개의 고품질 자체 데이터를 써 주세요.
학습
학습 파라미터 설명
train_on_responses_only가 하는 일: 기본적으로 전체 대화(사용자 + 어시스턴트 턴)에 대해 손실을 계산하는데, 이 옵션은 사용자 턴을 마스킹해서 모델이 어시스턴트 응답만 학습하게 해요. 학습 효율이 올라가고 모델이 사용자 프롬프트를 외우는 것을 방지해요.
평가
학습이 끝나면 모델 성능을 정성적, 정량적으로 확인해 보세요.학습 손실 확인
trainer_stats 객체에 학습 로그가 담겨 있어요. 손실 곡선이 감소하면 모델이 학습하고 있다는 뜻이에요:

학습 전후 비교
파인튜닝된 모델로 동일한 프롬프트를 실행해서 효과를 확인해 보세요:홀드아웃 테스트 분할로 평가하기
홀드아웃 테스트 분할로 평가하기
더 엄밀한 평가를 위해 데이터를 미리 분할하고 홀드아웃 부분의 손실을 계산할 수 있어요:이렇게 하면 일정 간격으로 평가 손실을 보고해서, 과적합(학습 손실은 감소하는데 평가 손실은 증가)을 감지할 수 있어요.
모델 저장
파인튜닝된 어댑터와 토크나이저를 Object storage에 저장해요:/shared가 Object storage에 마운트되어 있으므로 저장된 모델은:
- 영속적: Workspace를 종료해도 유지돼요.
- 크로스 클러스터: 어느 리전의 Workspace에서든 접근할 수 있어요.
- 팀 공유 가능: 해당 볼륨에 접근 가능한 팀원 누구나 어댑터를 로드할 수 있어요.

Gemma 4 모델 비교
GPU와 태스크 복잡도에 맞는 Gemma 4 변형을 선택해 주세요:VRAM 추정치는 QLoRA 4비트 양자화, 배치 사이즈 1, 시퀀스 길이 2048 기준이에요. 실제 사용량은 배치 사이즈, 시퀀스 길이, 그래디언트 누적 설정에 따라 달라져요.
다음 단계
- 실행 가능한 레시피 받기: 이 워크플로우를 패키징한 버전(인터랙티브 노트북 +
vesslctl배치 잡 경로, 소규모 도메인 QA 데이터셋으로 학습)이 gemma4-finetuning 쿡북 레시피에 있어요. 실측 비용과 VRAM 벤치마크도 함께 들어 있어요. - 자체 데이터 활용: FineTome-100k를 도메인 특화 대화 데이터로 바꿔서 모델을 내 용도에 맞춰 보세요.
- DPO 또는 ORPO 적용: SFT 이후 선호도 최적화(DPO/ORPO)를 적용해서 모델을 원하는 방향으로 더 정렬할 수 있어요.
- 모델 키우기: 더 높은 품질이 필요하면 12B 또는 27B 모델로 올려 보세요. 대규모 데이터셋에는
r=16또는r=32를 사용하세요. - GGUF 내보내기: 파인튜닝된 모델을 GGUF 포맷으로 변환해서 llama.cpp나 Ollama로 로컬 추론을 할 수 있어요.
- 배치 잡으로 실행: VESSL Cloud 배치 잡을 사용해서 파인튜닝을 스케줄링 가능한 재현 가능 파이프라인으로 실행해 보세요.
- vesslctl로 자동화:
vesslctl job create한 줄로 이 실험을 재현 가능한 배치 잡으로 제출할 수 있어요. Jupyter 셀 대신train.py에 담고, 터미널이나 CI 파이프라인에서 바로 돌려보세요.