brunch

You can make anything
by writing

C.S.Lewis

by 사만다 Dec 23. 2019

[후기] torchlars가 탄생하기까지

1)일잘하는 이흥섭 연구원을 사수로 두며 2)카카오브레인에서 인턴 프로그램을 마치고 3)현재는 KAIST에서 석사 과정을 밟고 있는, 또다른 일잘하는 사람인 박천명 연구원과 함께 글작업을 진행했습니다!!


배치(batch) 크기를 키운 대규모 학습이 보다 안정적으로 이루어질 수 있도록 돕는 최적화 알고리즘인 LARS가 있습니다.


카카오브레인 AutoLearn 연구팀은 이 LARS를 누구나 쉽게 사용할 수 있도록 GPU 동작헤 최적화된 파이토치용 LARS 라이브러리인 torchlars를 개발했습니다. CPU와 GPU 동기화 문제를 해결하는 한편, 다른 최적화 함수에도 LARS를 쉽게 적용할 방안을 탐색하는 데 집중했습니다. 그리고 관련 성과는 지난 10월 깃허브 링크를 통해 공유한 바 있습니다.


이번 글에서는 지난 7월부터 2개월간 진행된 이 프로젝트의 개발 뒷이야기를 정리했습니다. 이를 위해 torchlars 개발 프로젝트를 이끈 박천명 연구원을 만난 거죠.  

    torchlars가 LARS를 구현한 방법론에 설명하기 위해서는 배치 크기가 모델 학습 시간 및 학습 곡선에 미치는 영향에 대한 설명이 선행되어야 한다고 판단했습니다. 이런 이유로 해당 부분을 설명하는 데 많은 시간을 할애했습니다.  

    배치 크기를 키운 대규모 학습이 보다 안정적으로 이루어질 수 있도록 돕는 최적화 알고리즘에는 여러가지가 있습니다. 관련된 많은 연구에서는 적절한 학습률을 적용하는 방식으로 배치 크기가 큰 상황에서 발생하는 문제를 해결하는 데 집중하고 있습니다. 이번 글에서는 구글(배치 크기를 키운 만큼 학습률 키우기), 페이스북(기울기 방향을 신뢰할 수준에 이를 때까지 학습률을 서서히 키운 다음, 이 수준에 도달하면 배치 크기를 키운 만큼 학습률 키우기), 엔비디아(층별로 학습률을 키우기) 방식을 소개합니다.  

    torchlars가 LARS를 구현한 다른 코드의 한계를 극복한 방법론에 대해서도 소개합니다.  


딥러닝 연구 쪽에서 매우 기본적인 내용(배치 크기 블라블라)을 다루는 터라 저와 박 연구원 모두 이를 설명하는 데 심혈을 기울였습니다. 정말 수십번은 고쳐쓰고 제안을 하고 제안을 받고 했던 거 같아요. 초안과 비교했을 때 글의 완성도가 매우 높아져서 저는 개인적으로 만족했는데 박 연구원님은 어떻게 생각하실지 모르겠네요 ㅎㅎ


이번 편도 많이 읽어주세요. 감사합니다:)

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari