정말 오랜만에 브레인 소식을 들고 왔습니다. 이제 막 발행됐으니 정말 따끈한 이야기에요 :)
지금까지는 딥러닝 모델의 아키텍처나 모델의 정확도를 높이는 다양한 기법에 대한 이야기를 다뤘습니다. 그리고 어떤 태스크를 수행하기 위한 적절한 딥러닝 모델을 만드는 데에는 최소 2~3개월(1000시간이라고도 하더라고요)이 투입되어야 한다고도 말했죠. 딥러닝 엔지니어와 개발자가 전적으로 자신의 모든 시간을 투자해야 그 정도입니다. ㅠ.ㅠ
그러니까 어떻게든 딥러닝 훈련 시간을 줄여서 따른 실험을 해볼 수 있도록 하는 환경을 만드는 게 무엇보다 중요합니다. 그래서 GPU/TPU 요녀석을 어떻게 하면 효율적으로 운용할 수 있을지에 대한 부분도 연구되고 있고요. 관련된 연구로 최근 구글 브레인(Google Brain)이 발표한 GPipe가 바로 1개 GPU도 부족할 정도로 거대한 모델을 가능한 효율적으로 훈련하기 위한 모델 학습 매커니즘이 주목을 받았습니다.
하지만 GPipe를 실제 사용가능한 코드로 구현하기 위해서는 GPU 병렬화 기법에 관한 전문 지식이 필요하다고 합니다. 관련 지식 없이도 누구나 손쉽게 가져다쓸 수 있는 형태로 만들어보자고 해서 카카오브레인이 바로! 파이토치용 GPipe 오픈소스 라이브러리를 공개했습니다. 지난 2월 부터 4개월간 진행된 프로젝트 뒷 이야기를 글로 정리했습니다.
참고로 이 글을 보시면 모델 병렬화, 데이터 병렬화, 파이프라인 병렬화 등에 관한 개념을 아주 손쉽게 숙지하실 수 있으실 거라고 생각합니다. 이 글을 쓰는데 기술감수를 맡아주시고 해당 오픈소스 프로젝트를 리딩하신 한스(이흥섭 (Heungsub Hans Lee)수고 많으셨어요! 아 그리고 프로젝트를 함께 하신 폴(정명룡 (Jeong MyungRyong))도 정말 수고 많으셨습니다 ;-0
저도 이 글을 쓰면서 딥러닝 연구 그 자체에 몰입할 수 있는 환경 조성이 얼마나 중요한지를 깨닫게 되었습니다. 아 그리고 이 글 정말 많이 갈아 엎었는데요! 시간은 좀 걸렸지만 그래도 마음에 드는 글이 나와서 너무 좋아요 :)