8장. PEFT와 LoRA 학습
용어 짚고 가기
Full Fine-tuning(전체 미세 조정): 모델의 모든 파라미터를 학습하는 방법입니다. 건물 전체 리모델링과 같습니다.파라미터(parameter): 모델 안에서 학습으로 정해지는 숫자 하나하나입니다. Qwen2.5-0.5B 에는 494,032,768 개가 있습니다.가중치(weight): 파라미터를 모은 표(행렬)입니다.q_proj의 가중치는 896×896 표입니다.그래디언트(gradient): 손실을 줄이려면 가중치를 어느 쪽으로 얼마나 바꿔야 하는지 알려 주는 값입니다. 내리막길의 기울기와 같습니다.옵티마이저(optimizer): 그래디언트를 보고 가중치를 실제로 고치는 담당입니다. 자주 쓰는 Adam(AdamW)은 가중치마다 지난 기록을 숫자 두 개로 기억합니다.옵티마이저 상태(optimizer state): 옵티마이저가 가중치마다 기억해 두는 숫자들입니다. FP32 로 두 개면 8바이트입니다.activation(활성값): 학습 중 층마다 나온 중간 계산 결과입니다. 역전파 때 다시 쓰려고 메모리에 잠시 둡니다.역전파(backpropagation): 손실에서 거꾸로 거슬러 올라가며 가중치마다 그래디언트를 구하는 계산입니다.PEFT(Parameter-Efficient Fine-Tuning): 파라미터를 효율적으로(적게) 쓰는 미세 조정 방법들의 총칭입니다. 대부분은 얼리고 일부만 학습합니다.동결(freeze): 가중치를 학습 대상에서 빼는 일입니다. 계산에는 쓰지만 값은 바뀌지 않습니다.어댑터(adapter): PEFT 로 학습한 작은 결과물입니다. 기반 모델에 갈아 끼우는 렌즈와 같습니다.LoRA(Low-Rank Adaptation): 가중치의 변화량을 작은 행렬 두 개(A, B)의 곱으로 나타내 학습하는 방법입니다. 원본 위의 얇은 투명 필름입니다.랭크(rank, r): A 와 B 사이의 중간 차원입니다. 필름의 두께라고 보면 됩니다. 작을수록 학습할 숫자가 적습니다.lora_alpha: LoRA 길의 결과에 곱하는 배율을 정하는 값입니다. 실제 배율은 alpha ÷ r 입니다.lora_dropout: 학습 중 LoRA 길의 값 일부를 일부러 끄는 비율입니다. 답만 외우는 것을 막는 장치입니다.target_modules: LoRA 를 붙일 층의 이름 목록입니다. Qwen 에서는q_proj,k_proj같은 선형층 이름을 적습니다.병합(merge): 학습한 A·B 를 원래 W 에 더해 한 장으로 합치는 일입니다. 필름을 원본에 코팅해 붙이는 것과 같습니다.SFTConfig: SFT 학습의 설정표입니다. 배치 크기, 학습률, epoch 같은 값을 담습니다.SFTTrainer: supervised fine-tuning trainer, 모범 답안 학습 담당입니다. 템플릿 적용, 토큰화, labels 마스킹, 학습 반복을 한 번에 처리합니다.학습률(learning rate): 한 번 고칠 때의 보폭입니다. LoRA 는 2e-4(0.0002) 안팎을 많이 씁니다.그래디언트 누적(gradient accumulation): 작은 배치 여러 번의 그래디언트를 모았다가 한 번에 가중치를 고치는 방법입니다. 동전을 모아 지폐로 바꾸는 것과 같습니다.cosine 스케줄러(cosine scheduler): 학습률을 처음에는 크게, 끝으로 갈수록 코사인 곡선 모양으로 천천히 줄이는 방식입니다.epoch(에포크): 학습 데이터를 한 바퀴 다 보는 단위입니다. 문제집 한 바퀴입니다.학습 손실과 검증 손실(training loss, validation loss): 학습 데이터(문제집)와 검증 데이터(모의고사)에서 잰 벌점입니다.과적합(overfitting): 학습 데이터는 점점 잘 맞히는데 처음 보는 데이터는 오히려 못 맞히는 상태입니다. 문제집 답만 외운 학생입니다.