Gihak111 Navbar

딥러닝 시 중단

사실상, Epoch 수가 높다고 해서 무조건 다 좋은 것 같진 않다.
직전에 했던 립러닝에서도, 소폭 감소하더니 나중가선 미친듯한 발산을 보여주기도 했고, 그 외에도 이것저것 문제가 많다.

그래서, 우리는 채크썸을 활용해서 중간중간 값을 가지고, 이를 통해서 유동적으로 학습율 값을 변동시키는 드으이 방식으로 딥러닝을 보다 효율적으로 돌아가게 하곤 한다.
또한, loss값이 개선되지 않으면 조기에 딥러닝을 종료하고 꺼버리는 등의 다양한 방식으로 딥러닝을 진행한다.

하지만, 체크썸의 데이터가 많아지면 50기가가 넘어갈 떄도 다반수이며, 3070 정도의 GPU를 사용하더라고 몇십 시간식 걸리는 것도 일상 다반사 이다. 이러면 어떻게 해야 이걸 좀 더 효율적으로 딥러닝 할 수 있을까?

딥러닝 시 집어넣을 만한 기믹들

이런거 쑤셔 박으면, 엄청 걸리고, 자원도 많이 먹지만, 그래도 F1 스코어는 엄청 잘 나온다.

1. 드롭아웃 (Dropout)


2. 옵티마이저 (Optimizer)


3. 체크포인트 (Checkpoint)


4. 레이블 인코딩 (Label Encoding)


5. GPU 체크 및 디바이스 설정 (GPU Check and Device Setup)


6. 데이터 불균형 처리 (Class Imbalance Handling)


7. NaN 데이터 처리 (NaN Handling)


8. 혼합 정밀도 학습 (Mixed Precision Training)


9. 코사인 학습률 스케줄러 (Cosine Learning Rate Scheduler)


10. 그래디언트 클리핑 (Gradient Clipping)


11. 레이블 스무딩 (Label Smoothing)


12. 진행도 표시 (Progress Bar with tqdm)


13. 데이터 토큰화 및 커스텀 데이터셋 (Tokenization and Custom Dataset)


14. 평가 메트릭 (Evaluation Metric)


15. 웜업 스텝 (Warmup Steps)


16. 그래디언트 누적 (Gradient Accumulation)

현실

사실, 딥러닝 시간과 성능은 서로 비례한다.
가법게 한다 접근하면 이게 잘 될 수가 없다.
더 많으 자원을 소모할수록, 더 많은 시간을 부을수록 완성되는 AI의 F1스코어는 올라간다.
아쉽게도, 이거 안변하는거 같다.
여기서 효율 치는거에 성공하면, DeepGEMM처럼 혁신에 성공하는 그런거다.
역시 집에서의 딥러닝에는 한계가 너무 명확하다.
연구실 가야하는 이유가 이렇게 또 하나 늘어나는 것 같다.