2020.02.11

‘파이토치 속도 극대화’·· MS, 최적화 라이브러리 공개

Serdar Yegulalp | InfoWorld
마이크로소프트가 오픈소스 프로젝트, 딥스피드(DeepSpeed)를 선보였다. 딥러닝 프레임워크 파이토치(PyTorch) 사용자라면, 최소한의 코드 변경으로 딥스피드를 사용할 수 있다. 

마이크로소프트가 2월 10일 자사 리서치 블로그기트허브를 통해 딥스피드를 공개했다. 딥스피드는 파이토치의 연산과 개발 속도를 더욱 가속화하는 최적화 라이브러리다. 이는 기존 하드웨어에서 딥러닝 모델을 학습시키는 데 있어 메모리 사용량을 줄이면서도, 더 나은 병렬처리를 이용할 수 있도록 설계됐다. 
 
ⓒPeter Griffin (CC0)

마이크로소프트 블로그에 따르면 딥스피드는 메모리 최적화 기술을 통해 파이토치 모델의 학습 속도를 향상한다. 또한 해당 모델로 이용할 수 있는 파라미터의 개수를 늘리고, GPU 로컬 메모리를 효과적으로 활용하며, 기존 파이토치 애플리케이션을 재사용하려고 할 때 변경 작업을 최소화한다.

기존 파이토치 코드에 미치는 영향이 최소화됐다는 점이 중요하다. 현재 여러 머신러닝 라이브러리들이 확고하게 자리를 잡고, 많은 애플리케이션이 이 라이브러리들을 기반으로 개발되고 있다. 그 때문에 새로운 프레임워크를 개발하기 보다는 기존 프레임워크를 더 확장하고, 성능을 더 향상시키는 방향이 더욱 활성화되고 있다. 

파이토치가 연산과 개발 속도 측면에서 이미 빠르더라도, 더 이상 개선될 여지가 없다는 의미는 아니다. 충분히 향상될 수 있다. 파이토치로 개발한 애플리케이션은 최소한의 코드 변경으로 딥스피드를 사용할 수 있다. 다른 프레임워크로 처음부터 시작할 필요가 없다. 

딥스피드가 파이토치의 속도를 더욱 가속화하는 방법은 해당 프레임워크의 기본 병렬처리를 향상시키는 데 있다. 딥스피드 공식 문서는 파이토치의 분산 데이터 병렬 시스템에서 엔비디아 V100 GPU 32GB를 사용해 모델을 학습시키는 경우를 예로 들고 있다. 이때 15억 개의 파라미터를 이용하는 데 GPU에서 메모리 부족이 발생했다. 하지만 딥스피드를 사용하면 동일한 GPU에서 60억 개의 파라미터를 이용할 수 있었다고 MS는 밝혔다. 

GPU 메모리를 효율적으로 사용하는 것도 딥스피드의 또 다른 개선점이라고 MS는 강조했다. GPU 전체에서 모델 학습을 분할해 필요한 데이터를 가까이에 둘 수 있고, 각 GPU의 메모리 사용량과 GPU 사이의 통신 오버헤드를 감소시킨다. 

또한 딥스피드는 모델 학습 중에 더 많은 파라미터를 허용해 예측 정확도를 향상시킨다. 파라미터 또는 학습 과정 자체의 변수를 조정하는 것을 일컫는 하이퍼파라미터 최적화(Hyperparameter optimization)도 예측 정확성을 향상시킬 수 있지만, 이는 전형적으로 연구자의 경험이나 지식에만 의존하며 수동으로 이뤄진다. 

이러한 수동 작업을 없애기 위해 현재 많은 머신러닝 프레임워크가 일종의 자동화된 하이퍼파라미터 최적화를 지원한다. 마이크로소프트는 “딥스피드를 사용하면 현 세대 GPU 클러스터에서 1,000억 개의 파라미터를 가진 딥러닝 모델을 학습시킬 수 있다”라고 주장하면서, “이는 현재 가장 우수한 성능을 갖춘 시스템 처리량의 3~5배에 달한다”라고 설명했다. 

딥스피드는 MIT 라이선스에 따라 무료 오픈소스로 제공된다. 마이크로소프트 애저에서도 딥스피드를 사용할 수 있다. ciokr@idg.co.kr



2020.02.11

‘파이토치 속도 극대화’·· MS, 최적화 라이브러리 공개

Serdar Yegulalp | InfoWorld
마이크로소프트가 오픈소스 프로젝트, 딥스피드(DeepSpeed)를 선보였다. 딥러닝 프레임워크 파이토치(PyTorch) 사용자라면, 최소한의 코드 변경으로 딥스피드를 사용할 수 있다. 

마이크로소프트가 2월 10일 자사 리서치 블로그기트허브를 통해 딥스피드를 공개했다. 딥스피드는 파이토치의 연산과 개발 속도를 더욱 가속화하는 최적화 라이브러리다. 이는 기존 하드웨어에서 딥러닝 모델을 학습시키는 데 있어 메모리 사용량을 줄이면서도, 더 나은 병렬처리를 이용할 수 있도록 설계됐다. 
 
ⓒPeter Griffin (CC0)

마이크로소프트 블로그에 따르면 딥스피드는 메모리 최적화 기술을 통해 파이토치 모델의 학습 속도를 향상한다. 또한 해당 모델로 이용할 수 있는 파라미터의 개수를 늘리고, GPU 로컬 메모리를 효과적으로 활용하며, 기존 파이토치 애플리케이션을 재사용하려고 할 때 변경 작업을 최소화한다.

기존 파이토치 코드에 미치는 영향이 최소화됐다는 점이 중요하다. 현재 여러 머신러닝 라이브러리들이 확고하게 자리를 잡고, 많은 애플리케이션이 이 라이브러리들을 기반으로 개발되고 있다. 그 때문에 새로운 프레임워크를 개발하기 보다는 기존 프레임워크를 더 확장하고, 성능을 더 향상시키는 방향이 더욱 활성화되고 있다. 

파이토치가 연산과 개발 속도 측면에서 이미 빠르더라도, 더 이상 개선될 여지가 없다는 의미는 아니다. 충분히 향상될 수 있다. 파이토치로 개발한 애플리케이션은 최소한의 코드 변경으로 딥스피드를 사용할 수 있다. 다른 프레임워크로 처음부터 시작할 필요가 없다. 

딥스피드가 파이토치의 속도를 더욱 가속화하는 방법은 해당 프레임워크의 기본 병렬처리를 향상시키는 데 있다. 딥스피드 공식 문서는 파이토치의 분산 데이터 병렬 시스템에서 엔비디아 V100 GPU 32GB를 사용해 모델을 학습시키는 경우를 예로 들고 있다. 이때 15억 개의 파라미터를 이용하는 데 GPU에서 메모리 부족이 발생했다. 하지만 딥스피드를 사용하면 동일한 GPU에서 60억 개의 파라미터를 이용할 수 있었다고 MS는 밝혔다. 

GPU 메모리를 효율적으로 사용하는 것도 딥스피드의 또 다른 개선점이라고 MS는 강조했다. GPU 전체에서 모델 학습을 분할해 필요한 데이터를 가까이에 둘 수 있고, 각 GPU의 메모리 사용량과 GPU 사이의 통신 오버헤드를 감소시킨다. 

또한 딥스피드는 모델 학습 중에 더 많은 파라미터를 허용해 예측 정확도를 향상시킨다. 파라미터 또는 학습 과정 자체의 변수를 조정하는 것을 일컫는 하이퍼파라미터 최적화(Hyperparameter optimization)도 예측 정확성을 향상시킬 수 있지만, 이는 전형적으로 연구자의 경험이나 지식에만 의존하며 수동으로 이뤄진다. 

이러한 수동 작업을 없애기 위해 현재 많은 머신러닝 프레임워크가 일종의 자동화된 하이퍼파라미터 최적화를 지원한다. 마이크로소프트는 “딥스피드를 사용하면 현 세대 GPU 클러스터에서 1,000억 개의 파라미터를 가진 딥러닝 모델을 학습시킬 수 있다”라고 주장하면서, “이는 현재 가장 우수한 성능을 갖춘 시스템 처리량의 3~5배에 달한다”라고 설명했다. 

딥스피드는 MIT 라이선스에 따라 무료 오픈소스로 제공된다. 마이크로소프트 애저에서도 딥스피드를 사용할 수 있다. ciokr@idg.co.kr

X