LoRA로 미세 튜닝한 결과
숫자의 2%만 훈련해도 스팸을 잘 가려낼까요?
훈련 방법
11강과 같이 5 에포크 훈련합니다
문자 8통을 넣고, 모델의 답을 정답과 견주고, 덜 틀리는 쪽으로 숫자를 고칩니다. 이것이 한 걸음입니다. 훈련 세트를 처음부터 끝까지 한 번 다 쓰는 것이 1 에포크입니다.
8강과 11강에서 본 에포크입니다. 130묶음을 한 번씩 다 쓰니 1 에포크가 130걸음입니다. 11강과 달리 고쳐지는 숫자는 A와 B뿐입니다.
손실
3.820에서 뚝 떨어집니다
얼마나 틀렸는지를 잰 숫자가 손실입니다. 작을수록 좋습니다. 첫 50걸음에 3.820에서 0.346으로 떨어지고, 그 뒤로는 0 가까이에 머뭅니다.
50걸음마다 재서, 마지막으로 잰 것이 600걸음째입니다. 노란 선은 훈련 세트, 청록 선은 훈련에 쓰지 않은 검증 세트입니다.
크게 보면
검증 세트의 손실이 조금 위에 남습니다
훈련 세트의 손실은 0.000까지 내려갑니다. 검증 세트의 손실은 100걸음 뒤로 0.05에서 0.2 사이를 오갑니다.
손실은 그때마다 문자 40통으로만 재서 값이 출렁입니다. 훈련에 쓴 문자만 더 잘 맞히게 되는 것을 과대적합이라고 하는데, 그 조짐이 조금 보이지만 차이는 작습니다.
최종 정확도
절반에서 97%로
훈련을 마치고 세 세트를 통째로 넣어 쟀습니다. 훈련 세트 100.00%, 검증 세트 96.64%, 테스트 세트 97.67%입니다.
훈련 전의 값은 5편에서 잰 49.52%, 53.02%, 50.33%입니다.
테스트 세트
처음 보는 300통 가운데 293통
테스트 세트는 훈련에도 도중 점검에도 쓰지 않았습니다. 처음 보는 문자를 잘 가려내니, 답을 외운 것이 아니라 가려내는 법을 익힌 것입니다.
293은 97.67%에서 거꾸로 계산한 값입니다. 붉은 테두리가 틀린 문자이고, 그 자리는 임의로 정했습니다.
11강과 견주면
훨씬 적게 고치고 비슷하게 맞힙니다
훈련한 숫자는 전부 훈련할 때의 47분의 1입니다. 테스트 정확도는 같은 수준입니다.
11강과는 실행한 컴퓨터가 다르고, 한 걸음에 고치는 폭도 다르게 잡았습니다. 그래서 LoRA가 늘 더 높다는 뜻은 아닙니다.
다음 편