lightzero 오델로 env 구현 및 실행은 완료했는데, 문제는 모델을 두텁게 하면 시간이 너무 오래 걸린다.
그렇다고 그냥 돌리자니 학습이 잘 안되어서 현재 상태에서 해결법을 찾기는 해야한다.
장기적으로 모델을 계속 로컬에서 돌릴수는 없기에 클라우드를 써서 작업할 수 있도록 세팅해보았는데, 로컬에서 cpu로 돌리는 것보다는 훨씬 빠르긴 한데 문제는 비용이 너무 비싸다.
1시간 $1.3 짜리 모델로 돌렸을 때, 예상 training 시간은 대략 60시간정도 -> 한번 학습에 대략 10만원정도가 비용으로 나가니까 좀 부담스러운 수준이다.
한번에 확실히 학습이 된다면 충분히 지불 가능하지만 전혀 그렇지 않으니..ㅜ
가능한 대안은 대략 이 정도가 될 것 같다.
1. 로컬에서 M1 gpu를 쓰도록 수정해서 돌리고 + 최종 학습 혹은 더 빠르고 길게 돌려보고 싶을때만 클라우드 활용
2. 클라우드를 계속 쓰되 머신 및 코드 최적화를 통해 시간&비용 절감
3. 코랩 구독
4. GPU 구매
위 대안 중에서 선택하려고 고민중인데, 코랩은 돌려보는데 그리 오래 걸리지 않으니 바로 환경세팅해서 돌려보았다.
코랩 프리미엄 구독은 안한 상태여서, 일단 프리티어에서 열려있는 T4 GPU / TPU v2-8 요 두 가지 옵션을 사용해서 돌려보았다.
모델을 좀 무겁게 쌓긴 했는데, 로컬 CPU 기준 training 100 iter를 도는데 걸리는 시간은 약 18분정도.
AWS ml.g4dn.2xlarge: 약 1분50초 / 코랩 T4 GPU: 대략 2분 20초 / TPU v2-8: 5분
코랩 구독하고 gpu 쓰는 것도 가능해보이는데, 문제는 세션 시간이 최대 24시간이라, 이걸 해지하려면 어차피 gcp VM을 구독해야한다.
결국 코랩은 병렬처리 등 이런저런 최적화 세팅을 위해서 참고해봄직하긴 한데, 완전한 해결책이 되지는 못할 것 같다.
1번은 torch에서 애플 gpu칩과 호환되도록 제공하는 mps device 세팅을 활용해보려고 한다.
코드단 수정이 좀 필요해서 이건 아마 시간이 좀 걸리지 싶다. 무튼 이것도 수정해서 돌려보고 최종적인 파이프라인을 셋업해야 하는데, 지금 느낌으로는 mps 세팅 후에 100 iter에 3~4분 이내로 끝난다면 로컬에서 돌리고 그렇지 않다면 코랩 & AWS 혹은 코랩 & GCP 이렇게 써야할 것 같다.
아니면 GPU 구매도 방법인데, 이건 아예 학습용 데탑을 세팅해야 해서 최대한 나중으로 미루려고 한다.
(mps 세팅 이후에 업데이트 예정)
+ 현재 데탑으로 쓰고 있는 맥미니에서 gpu 써서 학습 돌릴 수 있도록 수정한 결과, 100 iter에 대략 3분 20초 정도 걸리는 것을 확인했다..!
학습 어떻게 시키나 머리가 좀 복잡했는데, 요 세팅 그대로 로컬에서 돌려도 될 것 같다.
기분이 좋다ㅎㅎ
댓글 없음:
댓글 쓰기