안녕하세요. 


docker image를 이용해 windows PC에서 텐서플로우를 사용하는 방안 에 덧붙여 이번에는 클라우드 환경에서 텐서플로우 딥러닝 개발을 할 수 있는 방안을 검토해 본 결과를 공유합니다.

요약하면, 다음과 같습니다.

  • 아마존 웹 서비스 기반 
    • 장점: GPU를 활용한 컴퓨팅 파워로 방대한 데이터로 인해 학습 시간이 많이 소요될 경우 활용 가치가 높음
    • 단점: 시간 당 사용 비용 모델(성능에 따라 대략 시간 당 천원에서 4천원 꼴)로 모델링 검증 완료 후 효과적으로 활용 필요

  • 구글 클라우드 플랫폼 기반
    • 장점: 베타 버전이라 요금이 싸고 텐서플로우를 개발하는 주최가 구글이라 빠른 개선이 기대됨.
      60일 무료 기간을 이용해  온라인에서 놀이터(playground) 목적으로 모델링을 하거나 학습이 오래 걸리더라도 상관없는 경우에 활용할 가치가 많음
    • 단점: 지금까지는 GPU 기반 컴퓨팅을 활용할 수 없는 것으로 보이고 preview인 cloud machine learning 서비스가 오픈되면 재 검토 필요




다량의 컴퓨팅 능력을 요하는 텐서플로우의 특성 때문에 연구에 있어 컴퓨팅 기기의 수요가 많은데 클라우드 서비스를 통해 대여해서 사용할 수 있다는 점에 착안하여 다음 양대 클라우드 서비스를 필두로 조사를 시작했습니다.

  1. 아마존 웹서비스(AWS)
  2. 구글 클라우드 플랫폼 (GCP)

1. 아마존 웹 서비스로 텐서플로우 구축하기


전자의 경우, 인스턴스를 구축하고 직접 관련 서비스를 설치하는 IaaS 형태로 필요한 하드웨어를 직접 설정하거나 정해진 목적에 따라 marketplace를 통해 손쉽게 인스턴스를 구축할 수 있도록 제공합니다. 검색 결과 64 bit linux 기반에 GPU를 이용하는 아마존 머신 이미지 (AMI) 가 등록되어 있음을 찾을 수 있었습니다. 



현재 소프트웨어 사용료 없이 EC2 사용료만 부과되고 아마존은 지역(region)에 따라 사용료가 달라지는 특성 상 글을 작성하는 시점에서 가장 저렴한 지역 (미국 동부지역) 기준으로 시간당 0.65 달러 / 2.6달러이며 (한국 돈으로 환산하면 대략 천원 내외/ 4천원 내외 예상) 각각의 하드웨어 스펙은 다음과 같습니다.

가격 발생 부담 때문에 직접 사용해보고 평가하지는 못했는데 추후 각각의 성능을 검토해 볼 예정입니다.


2. 구글 클라우드 플랫폼으로 텐서플로우 구축하기

후자인 GCP는 AWS와 다르게 PaaS 나 SaaS 형태가 두드러지며 각각 Products 를 활용해 Solutions 을 구축하는 방법을 가이드 하는 형태로 제공합니다.


최근 소식에 따르면 구글에서 TensorFlow 를 활용한 클라우드 기계학습 플랫폼을 준비중인데 아직 limited preview 단계라 활용 사유를 적고 대기해서 선정되어야만 활용할 수 있어 아쉬웠습니다.


그렇다고 클라우드에서 텐서플로우를 사용할 수 없는 것만은 아닙니다. 아래 링크는 시계열 금융 데이터로 기계학습한 사례를 다루고 있는데 이때 GCP의 또다른 제품인 Cloud Datalab를 활용하고 있음을 알 수 있었습니다.

https://cloud.google.com/solutions/machine-learning-with-financial-time-series-data


이 서비스의 특징은 원 클릭으로 Google App Engine과 Google Compute Engine을 이용해 Google BigQuery, IPython 및 TensorFlow를 지원하는 jupyter server를 생성해 주는데 다음과 같이 VM 기본 설정이 그다지 좋지는 않습니다.

  • 머신유형: n1-standard-1 (CPU 1개에 4GB 의 메모리를 가진 Intel Haswell 플랫폼)
  • 100 GB 스토리지

AWS 에 비해 활용 측면과 가격 측면이 유리하다고 판단되는데 datalab의 경우 현재 베타 버전인 관계로 App Engine 가격 정책만 따른다고 명시되어 있어 부담없이 신규 인스턴스를 만들어 수행해 볼 수 있습니다. 자세한 사용법은 다음 링크를 참고하시면 됩니다.

https://cloud.google.com/datalab/docs/quickstart   

GCP는 현재 신규 가입 시 60일 간 무료 사용에 500달러를 추가 제공하고 있으니 이 기간동안 활용해 보면서 성능을 평가해보려고 합니다.

다음은 생성된 인스턴스로 동작하는 jupyter service 입니다.

기존 활용했던 docker image 기반의 설치형 jupyter와 가장 큰 차이점은 git 리포지토리와 연결 할 수 있도록 기본 제공한다는 점입니다. 클라우드 서비스의 특성 처럼 시간이 지날 수록 개선될 것으로 보입니다.

이후 이 서비스를 기반으로 학습 시간이 많이 소요되는 benchmark를 선정해 수행하고 수행시간을 비교해 보고자 합니다.

이상입니다.


P.S. 마지막으로 설치된 텐서플로우의 버전이 궁금해서 확인할 방법을 찾았으나 마땅히 검색되는 것이 없더군요. 흥미로운 점은 python 텐서플로우 모듈의 버전을 출력해 보면 0.8.0 기준으로 설치한 docker image와 Cloud Datalab 모두 0.7.1 로 출력됩니다.

갑자기 텐서플로우의 버전 관리 (versioning) 가 제대로 이뤄지고 있는지 의구심이 들었습니다. :-(

  


+ Recent posts