2023. 7. 13. 21:31ㆍ인공지능
KoAlpaca로 아주 아주 작은 데이터셋을 가지고 파인튜닝을 하고 있습니다. 트레이닝 중에 아래와 같이 step과 Training Loss라는 용어가 나와서 한번 알아보았습니다.
스텝(Step)이란?
파인튜닝에서 "스텝(step)"은 모델을 학습시키는 과정에서의 반복 횟수를 나타냅니다. 일반적으로 많은 스텝을 거칠수록 모델의 학습이 더 많이 이루어지기 때문에 성능이 향상될 수 있습니다. 그러나 스텝이 많다고해서 항상 더 좋은 결과를 보장하는 것은 아닙니다.
파인튜닝에서는 적절한 스텝의 개수를 선택하는 것이 중요합니다. 너무 적은 스텝을 거치면 모델이 충분히 학습되지 않아 성능이 미흡할 수 있습니다. 반대로 너무 많은 스텝을 거치면 과적합(overfitting)의 위험이 있을 수 있고, 학습 시간과 계산 비용이 증가할 수 있습니다.
적절한 스텝의 개수는 데이터의 규모, 모델의 복잡도, 하드웨어 성능 등 여러 요인에 따라 다를 수 있습니다. 일반적으로는 초기에는 스텝을 적게 설정하여 모델이 전체 데이터에 대한 특징을 파악하도록 하고, 이후에는 점진적으로 스텝을 늘려가며 모델을 더욱 세밀하게 조정할 수 있습니다.
따라서, 파인튜닝에서는 적절한 스텝의 개수를 찾기 위해 실험을 통해 모델의 성능과 학습 시간을 평가하고 조정하는 과정이 필요합니다.
트레이닝로스(Training Loss)란?
트레이닝 로스(Training Loss)는 학습 과정에서 모델이 학습 데이터에 대해 얼마나 잘 예측하는지를 측정하는 지표입니다. 일반적으로는 손실 함수(Loss Function)를 통해 계산됩니다.
손실 함수는 실제 값과 모델의 예측 값 간의 차이를 정량화한 값으로, 모델의 예측 성능을 평가하는데 사용됩니다. 트레이닝 로스는 이 손실 함수를 통해 계산되며, 학습 데이터에 대한 예측과 실제 값의 차이를 나타냅니다. 트레이닝 로스는 보통 모델의 매개변수(가중치와 편향)를 업데이트하는데 사용되는 학습 알고리즘의 최적화 과정에서 중요한 역할을 합니다.
트레이닝 로스의 값은 일반적으로 에폭(Epoch) 또는 미니배치(Mini-batch) 단위로 계산되며, 학습이 진행됨에 따라 감소해야 합니다. 즉, 트레이닝 로스가 작을수록 모델은 학습 데이터에 대해 더 정확한 예측을 수행하고 있음을 의미합니다. 학습이 충분히 이루어지면 트레이닝 로스는 점차 감소하며, 모델의 예측 성능이 향상됩니다.
트레이닝 로스는 모델의 학습 진행 상황을 판단하고 모델의 성능을 개선하기 위한 지표로 사용됩니다. 학습 과정에서 트레이닝 로스를 최소화하기 위해 모델의 매개변수를 조정하고 최적화하는 과정을 반복하면서 모델을 개선시킵니다.
실제사례
제가 step 개념이 없어서 많이 하면 좋은건 줄 알고 있었습니다. 그래서 10개정도 되는 아주 데이터셋을 500번 돌렸는데 아래 그림처럼 Step이 많아질수록 트레이닝 로스가 줄어드는것을 확인할 수 있었습니다. 게다가 110에 로스가 0이 되더니 그 다음부터는 0으로 계속 유지됩니다. 이미 로스가 0이 되었으므로 굳이 더이상 트레이닝 할 필요는 없는것 같다고 생각이 들더라고요. 그래서 이정도 복잡도를 가진 데이터셋이라면...한 110~130 사이인 120으로 스텝을 정하면 될것 같습니다.
'인공지능' 카테고리의 다른 글
F1 Score 측정하는 프로그램 (0) | 2023.10.30 |
---|---|
Deepl API를 이용하여 영어를 한국어로 변환하기 (1) | 2023.09.20 |
github의 llama_cpp.server에 lora 기능을 추가해달라고 요청했다! (0) | 2023.09.19 |
WSL에 우바부가 설치하기 (1) | 2023.08.27 |
딥러닝 기초 용어 정리( Epoch, Loss, Accuracy) (0) | 2023.08.26 |
[LLM] 인공지능 챗으로 동맥경화에 대해서 상담을 받아보았습니다. (0) | 2023.08.21 |
[LLM] 우바부가 API로 gradio 연동하기 (0) | 2023.08.17 |
임베딩 개념 이해 (0) | 2023.08.02 |