첫 학습은 작게, 기록은 자세히
처음부터 오래 돌리지 말고
짧은 LoRA 실험으로
학습 흐름을 확인합니다.
오늘은 성능 개선을 확정하는 날이 아니라 학습 파이프라인이 끝까지 동작하는지 확인하는 날입니다. loss 하나로 품질을 판단하지 않고, 설정·로그·어댑터를 함께 기록합니다.
이전 산출물
6강의 SFT 데이터셋 V1 설계와 JSONL 초안
오늘 산출물
첫 LoRA 어댑터와 학습 실행 기록
다음 입력
8강 비교 평가에 사용할 어댑터 경로
01 · 학습 단위
LoRA 학습은 기반 모델 위에 작은 변화량을 더합니다
원본 모델을 직접 덮어쓰지 않고 어댑터를 따로 저장하면 실험을 되돌리기 쉽습니다.
- 기반 모델
google/gemma-4-E2B-it를 같은 버전으로 불러와 실험의 출발점을 고정합니다. - 어댑터LoRA가 학습한 작은 변화량 파일이며, 비교할 때 기반 모델과 함께 사용합니다.
- 기록rank, alpha, learning rate, epoch, 데이터 버전을 모두 적어야 재현할 수 있습니다.
01모델 로드4bit/16bit 선택
02LoRA 삽입rank와 대상 모듈
03데이터 연결chat template 확인
04SFT 실행짧은 epoch
05어댑터 저장경로와 설정 기록
02 · 첫 설정값
작은 rank와 짧은 epoch로 시작합니다
E2B는 빠르게 반응이 바뀔 수 있으므로 첫 실험은 보수적으로 잡습니다.
- rankLoRA 어댑터의 표현 용량입니다. 처음에는 16 정도로 시작해 비교합니다.
- learning rate너무 크면 원래 능력이 흔들릴 수 있어 1e-4~2e-4 근처에서 작게 실험합니다.
- epochV1 데이터에서는 1~3 epoch 안에서 빠르게 비교하고 과적합을 경계합니다.
학습 강도 선택
판정
보수적 시작
rank 16, lr 1e-4, epoch 1~2로 파이프라인과 방향성만 확인합니다.
첫 실험 권장| 항목 | 첫 값 | 기록 이유 |
|---|---|---|
| LoRA rank | 16 | 작은 어댑터로 변화 방향 확인 |
| learning rate | 1e-4~2e-4 | 너무 큰 업데이트를 피함 |
| epoch | 1~3 | 과적합 전 빠르게 평가 |
03 · 실행 코드
학습 코드는 한 번에 길게 돌리지 않습니다
처음에는 작은 데이터 샘플과 짧은 스텝으로 데이터 형식 오류를 먼저 잡습니다.
- 로드모델, 토크나이저, 데이터셋을 명확한 이름과 버전으로 불러옵니다.
- 훈련SFTTrainer에 데이터셋과 학습 인자를 연결하고 짧게 실행합니다.
- 저장어댑터 경로, 학습 로그, 실행 명령을 같은 폴더에 보관합니다.
train_lora_v1.pymodel, tokenizer = FastLanguageModel.from_pretrained(
model_name="google/gemma-4-E2B-it",
load_in_4bit=True,
)
model = FastLanguageModel.get_peft_model(
model,
r=16,
lora_alpha=16,
)
trainer = SFTTrainer(
model=model,
tokenizer=tokenizer,
train_dataset=dataset_v1,
args=training_args,
)
trainer.train()
model.save_pretrained("outputs/gemma-e2b-lora-v1")중요loss가 내려갔다고 좋은 모델이 된 것은 아닙니다. 8강에서 같은 평가 프롬프트로 전후 비교해야 합니다.
04 · 로그 읽기
학습 로그는 품질 판정표가 아니라 이상 징후 알림입니다
loss, step, 저장 경로를 보고 학습이 정상 진행됐는지 확인합니다.
- loss학습 데이터에 대한 예측 오차입니다. 낮아져도 평가 성능을 보장하지 않습니다.
- step몇 번 업데이트했는지 보여 주며 batch와 gradient accumulation의 영향을 받습니다.
- artifact학습 뒤 남는 어댑터와 설정 파일이 실제 비교 평가의 입력입니다.
loss방향만 확인품질 보장 아님
step업데이트 횟수재현 기록 필요
VRAM실행 가능성OOM 여부 확인
adapter비교 입력경로 보관
학습 epoch 가정
2 epoch가볍게 확인첫 실험과적합 주의
05 · 실행 기록
어댑터가 생기면 실험 카드에 남깁니다
나중에 V2와 비교하려면 오늘의 조건이 정확히 남아 있어야 합니다.
- 데이터 버전어떤 JSONL과 몇 개 예시를 썼는지 기록합니다.
- 학습 인자rank, alpha, lr, epoch, batch 관련 값을 빠짐없이 적습니다.
- 결과 위치어댑터 폴더와 로그 파일 경로를 8강에서 바로 불러올 수 있게 남깁니다.
첫 LoRA 실험 카드이 브라우저에 저장됨
06 · 확인 퀴즈
첫 LoRA 학습의 판단 기준을 확인합니다
학습이 끝났다는 사실과 좋은 모델이 됐다는 판단을 구분합니다.
- 핵심LoRA 어댑터, 설정값, loss 해석, 저장 경로를 확인합니다.
- 주의첫 실험은 검증용이며 긴 학습보다 재현 가능한 기록이 중요합니다.
- 완료체크 6개와 퀴즈 4점 이상을 만족해야 합니다.
07 · 마무리
첫 어댑터는 평가 전까지 후보일 뿐입니다
- 정리오늘 확인한 것은 학습 실행, 로그, 어댑터 저장의 전체 흐름입니다.
- 주의loss 하나로 품질을 확정하지 말고 고정 평가로 판단합니다.
- 다음 단계8강에서는 같은 프롬프트로 원본과 LoRA 적용 모델을 비교합니다.
7강 완료 기록
확인 항목 6개와 퀴즈 4점 이상을 완료하면 버튼이 활성화됩니다.
공식 참고 자료 보기
- Unsloth · Gemma 4 fine-tuning ↗Gemma 4 학습 코드와 저장 흐름
- Hugging Face TRL · SFTTrainer ↗SFTTrainer 사용 방식
- Hugging Face · PEFT ↗LoRA/PEFT 어댑터 개념
- Google AI · Gemma docs ↗Gemma 모델 계열과 사용 기준