[AI] 허깅페이스 튜닝 옵션 복기...(정리중)

늘 공부하는 괴짜·2025년 8월 4일
0

AI : Fine Tuning

목록 보기
16/16

1. TrainingArguments 파라미터 정리

옵션명설명예시
num_train_epochs전체 학습 에폭 수 (과소적합, 과적합 회피)3
per_device_train_batch_size학습 시 디바이스(GPU) 당 배치 크기 (클수록 더 한꺼번에 처리)8
per_device_eval_batch_size평가 시 배치 크기 (evaluation_strategy 에 따라 달라짐)8
learning_rate학습률 (가중치 크기 업데이트 잣대.)5e-5
weight_decay가중치 감쇠 (가중치가 커지지 않게 패널티 부여, 과적합 방지)0.01
save_steps체크포인트 저장 빈도 (스텝 단위, 체크포인트마다 폴더 생김)500
save_total_limit저장할 체크포인트 최대 개수 (저장 후 삭제하는 방식)3
evaluation_strategy평가 주기 설정 ("no", "steps", "epoch")"steps"
eval_steps평가 실행 빈도 (스텝 단위, evaluation_strategy=steps일 때)500
load_best_model_at_end학습 종료 시 가장 성능 좋은 모델 로드 여부True
metric_for_best_model가장 좋은 모델 판단 기준 메트릭명 (클수록 좋음 : accuracy, f1, rouge, 작을수록 좋음 : loss, eval_loss, perplexity)"accuracy"
greater_is_better메트릭이 클수록 좋은지 여부 (메트릭명에 따라 결정)True
fp1616-bit 혼합 정밀도 사용 여부 (기본은 32bit 인데 단순하게 16비트로 할 것이냐..., 정밀도는 낮아짐.)True
gradient_accumulation_steps그라디언트 누적 스텝 수 (가중치를 변경하는 또다른 잣대... 배치를 몇번 돌리고 가중치 계산 할거냐?)4
seed랜덤 시드 (학습 데이터 shuffle 순서 고정)42
report_to로그 기록 및 모니터링 서비스 지정 (tensorboard)"tensorboard"
disable_tqdmtqdm 진행바 비활성화False

2. lora 옵션 중

2-1. r 값

가중치 W의 값은 그냥 값이 아닌 행렬로 이루어져 있음.
입력값에 곱해져서 출력값 계산하는데 [[1,2,3,4], [5,6,7,8]] 이런식의 큰 행렬임.

근데 이 W는 크기가 크기 때문에 전체를 학습시키는 것 보다
근사(Approximation) 하는 방식이 필요함. 그걸 lora 에서는 W' = W + A x B 로 표현
원래의 고정된 가중치 W 에 학습 가능한 작은 보정값(Delta W) 을 더하는 것과 같은 의미.
여기서 A 와 B 의 크기를 결정하는 것이 r 값임.
A : 원래출력차원 x r
B : r x 원래입력차원
A와 B의 크기가 작으면 저장해야 할 파라미터 수가 줄어들고, 연산량도 줄어들어 빠르게 학습할 수 있음.

행렬 A, B는 학습이 시작되기 전에 랜덤 초기화 됨.
예를 들어, A와 B 모두 작은 난수 값들로 채워져 있음. (예: 정규분포, 균등분포 등)

모델이 입력 데이터를 받아서 출력과 정답(레이블) 사이의 오차(손실)를 계산한다.
그 손실을 줄이기 위해 역전파(Backpropagation) 가 진행.
이 과정에서 A와 B의 값들이 서서히 조정(업데이트) 됨.
원재료는 그대로 두고 조미료(B, A)를 치는거와 비슷함.

2-2. alpha 값

alpha 값은 행렬곱에 a/r 를 곱하는 용도로 쓰임.
너무 작으면 효과가 미미하고 너무 크면 가중치값이 너무 커지므로 결과가 이상해짐.
α는 얼마나 강하게 조미료를 칠지 정하는 값

profile
인공지능이라는 옷을 입었습니다. 뭔가 멋지면서도 잘 맞습니다.

0개의 댓글