본문 바로가기
AI/AI 부트캠프

[AI 부트캠프] DAY 137 - 파이널 프로젝트 28

by HOHHOH 2024. 2. 3.

[오늘의 일지]

프로젝트 - YOLOv8 대용량 데이터 학습 시 주의해할 점

[상세 내용]

YOLOv8 대용량 데이터 학습 시 주의해할 점

- 어제 일지에서 대용량 데이터를 학습하는 과정과 결과에 대해서 정리했습니다. 그럼 오늘은 대용량 데이터를 학습하는 과정에서 겪었던 주의 하면 좋을 거 같은 부분에 대해서 정리해 보겠습니다.

 

RAM 용량 관리

- 자세한 구조나 원리는 모르겠지만 train 데이터를 인식하고 caching 할 때는 램 용량을 많이 사용하지 않은 것으로 보였는데 validation 데이터를 caching 하는 과정에서 생각보다 많이 램 용량을 할당하는 것을 파악했습니다. 그 규모는 약 4만 개의 320픽셀 이미지 데이터를 기준으로 50GB 정도를 할당하는 것으로 보였습니다. 이러한 현상 때문에 리소스가 멈추는 상황이 여러 번 발생했다는 것을 말씀드리고 싶습니다. 마지막으로 램 용량을 많이 할당하는 이유로는 모델이 validation 데이터를 예측하는 과정에서 실제 이미지를 사용해야 하는데 그 데이터를 램 용량에 할당시켜서 사용하는 게 아닐까 하는 느낌을 가장 크게 받았습니다.

 

GPU VRAM 관리

- 대용량 데이터를 학습시킬 때 중요한 부분이 속도를 높이기 위해서 배치 사이즈를 올려주는 것이 중요한데 이 부분에서는 gpu 메모리를 많이 사용하는 것을 파악했습니다. 그래서 여기서도 적절한 배치사이즈를 지정해 줘야만 중간에 멈추는 것을 방지할 수 있을 것입니다. 저는 YOLOv8m 모델을 기준으로 배치사이즈를 256을 지정했을 때 31GB 정도를 할당하는 것으로 보였습니다.

 

최종 설정

- 위에서 주의해야 할 부분들을 1epochs만 설정해서 최대한 빠르게 파악을 한 뒤에 코랩 환경이라면 컴퓨팅 단위를 잘 파악해 주고 로컬이라면 시간을 잘 파악해서 언제쯤 학습이 마무리되는지를 예상해서 최종 epochs를 지정해 주면 좋을 거 같습니다. 특히 코랩 환경에서 잘못된 epochs를 지정했다가 컴퓨팅 단위가 끝난다면 기존에 학습하던 부분까지 모두 날려버리는 대참사를 맞이할 수 있기 때문에 이 부분을 주의해야 할 것입니다.

 

[마무리]

 오늘은 대용량 데이터 학습을 할 때 주의해야 할 부분에 대해서 정리해 보았습니다. 사실주의해야 할 부분은 더 많이 존재하겠지만 제가 경험했던 부분은 이 정도였던 거 같습니다. 다시 한번 느끼지만 딥러닝 학습 특히 이미지 데이터 학습을 할 때에는 충분한 리소스가 뒷받침되어야 원활한 진행과 목표로 하는 결과를 얻을 수 있다는 것을 깨닫게 되었습니다.

반응형

댓글