3.3 딥러닝 컴퓨터 셋팅

딥러닝 애플리케이션 개발을 시작하기 전에 먼저 컴퓨터를 셋팅해야 합니다. 아주 필수적이지는 않지만 최신 NVIDIA GPU에서 딥러닝 코드를 실행하는 것을 권장합니다. 특히 합성곱 신경망을 사용한 이미지 처리나 순환 신경망을 사용한 시퀀스 처리 같은 일부 애플리케이션을 CPU에서 실행하면 아주 빠른 멀티코어 CPU라도 매우 오래 걸립니다. 실제로 CPU에서 실행할 수 있는 애플리케이션일지라도 최신 GPU를 사용하면 보통 2배나 5배 또는 10배 정도 속도가 빨라집니다. 컴퓨터에 GPU 카드를 설치하고 싶지 않다면 대안으로 AWS EC2 GPU 인스턴스나 구글 클라우드 플랫폼을 고려해 볼 수 있습니다. 클라우드 GPU 인스턴스는 시간에 따라 비용이 과금되는 점을 유념하세요.

로컬 컴퓨터를 셋팅하는지 또는 클라우드를 사용하는지에 상관없이 유닉스(Unix) 운영체제를 사용하는 것이 좋습니다. 기술적으로 윈도에서 케라스를 사용할 수 있지만(3개의 케라스 백엔드 모두 윈도를 지원합니다) 권장하지는 않습니다. 부록 B에서는 우분투에서 설치하는 방법을 안내합니다. 윈도 사용자라면 가장 간단하게 동일한 실행 환경을 준비하는 방법은 우분투로 듀얼 부트가 되도록 컴퓨터를 셋팅하는 것입니다.1 조금 번거로울 수 있지만 우분투를 사용하면 장기적으로 시간이 절약되고 문제가 발생할 가능성이 적습니다.

케라스를 사용하려면 텐서플로 또는 CNTK 또는 씨아노를 설치해야 합니다(또는 3개의 백엔드를 서로 바꾸어 가며 작업하려면 이들 모두를 설치합니다). 이 책에서는 텐서플로를 중점적으로 다루고 씨아노에 대해서는 일부만 소개합니다. CNTK는 다루지 않습니다.

3.3.1 주피터 노트북: 딥러닝 실험을 위한 최적의 방법

주피터 노트북(Jupyter Notebook)은 딥러닝 실험, 특히 이 책의 예제 코드를 위한 최적의 방법입니다. 주피터 노트북은 데이터 과학과 머신 러닝 커뮤니티에서 폭넓게 사용됩니다. 노트북은 주피터 노트북 애플리케이션(https://jupyter.org)으로 만든 파일이며 웹 브라우저에서 작성할 수 있습니다. 작업 내용을 기술하기 위해 서식 있는 텍스트 포맷을 지원하며 파이썬 코드를 실행할 수 있는 기능도 있습니다. 노트북에서는 긴 코드를 작게 쪼개 독립적으로 실행할 수 있어 대화식으로 개발이 가능하고, 작업 중에 무언가 잘못되었을 때 이전 코드를 모두 재실행할 필요가 없습니다.

필수적이지는 않지만 케라스를 배울 때 주피터 노트북을 사용할 것을 권장합니다. 하지만 파이참(PyCharm) 같은 IDE에서 코드를 실행하거나 독립된 파이썬 스크립트를 실행할 수도 있습니다. 이 책의 모든 코드 예제는 오픈 소스 노트북 파일로 제공됩니다. 깃허브 https://github.com/gilbutITbook/006975https://github.com/rickiepark/deep–learning–with–pythonnotebooks에서 내려받을 수 있습니다.

3.3.2 케라스 시작하기: 두 가지 방법

실제 시작하려면 다음 두 가지 방법 중 하나를 권장합니다.

  • 공식 EC2 딥러닝 AMI를 사용해서 EC2에서 주피터 노트북으로 케라스 예제를 실행합니다. 로컬 컴퓨터에 GPU가 없을 때 이 방법을 사용합니다. 부록 C에 자세한 안내가 있습니다.
  • 로컬 유닉스 컴퓨터에 처음부터 모든 것을 설치합니다. 그다음 로컬 컴퓨터에서 주피터 노트북을 실행하든지 아니면 일반 파이썬 스크립트를 실행합니다. 이미 고사양 NVIDIA GPU 카드가 있을 때 이 방법을 사용합니다. 부록 B에 우분투를 사용한 자세한 안내가 있습니다.

두 가지 선택 사항 중 하나를 선택했을 때의 장단점을 자세히 알아보겠습니다.

3.3.3 클라우드에서 딥러닝 작업을 수행했을 때 장단점

딥러닝을 위해 사용할 GPU 카드(최신의 고사양 NVIDIA GPU)가 없다면, 클라우드에서 딥러닝 실험을 하는 것이 하드웨어를 추가로 구매하지 않고 시작할 수 있는 간단하고 저렴한 방법입니다. 주피터 노트북을 사용한다면 클라우드에서 실행하는 것과 로컬에서 실행하는 것에 차이가 없습니다. 2017년 중반에 딥러닝을 시작하기 가장 쉬운 클라우드 서비스는 확실히 AWS EC2입니다. 부록 C에서는 EC2 GPU 인스턴스에서 주피터 노트북을 실행하는 단계별 가이드를 제공합니다.

대규모 딥러닝 작업을 수행하는 사용자라면 이런 설정은 장기적으로 또는 여러 주 이상 진행한다고 했을 때도 적합하지 않습니다. EC2 인스턴스는 비쌉니다. 부록 C에서 권장하는 인스턴스 타입(보통 성능을 가진 p2.xlarge 인스턴스)은 2018년 중반 가격으로 시간당 0.9달러입니다.2 반면에 시중에서 구할 수 있는 GPU 카드 가격은 1,000달러에서 1,500달러 사이입니다. GPU 성능은 계속 상승하지만 시간이 지나면 가격은 상당히 안정화됩니다. 심각한 딥러닝 작업을 하려면 하나 이상의 GPU 카드를 장착한 로컬 컴퓨터를 준비해야 합니다.

간단하게 말해서 EC2는 당장 시작하기 좋은 방법입니다. 이 책에 있는 모든 예제를 EC2 GPU 인스턴스에서 수행할 수 있습니다. 하지만 딥러닝 파워 유저가 되려면 자신만의 GPU 카드를 준비하세요.

3.3.4 어떤 GPU 카드가 딥러닝에 최적일까?

GPU를 사기로 결정했다면 어떤 것을 사야 할까요? 유념해야 할 것은 NVIDIA GPU여야 한다는 점입니다. NVIDIA는 딥러닝 분야에 많은 투자를 한 유일한 그래픽 컴퓨팅 회사입니다. 최신 딥러닝 프레임워크들은 NVIDIA 그래픽 카드에서만 작동합니다.

2017년 중반에는 NVIDIA TITAN XP를 딥러닝을 위한 최고의 카드로 추천합니다. 예산이 많지 않다면 GTX 1060을 고려해 보세요. 매년 새로운 그래픽 카드가 나오므로 2018년 이후에 이 책을 읽고 있다면 온라인에서 추천하는 내용을 찾아보세요.3

이 절부터는 가능하면 GPU 카드와 함께 케라스 관련 라이브러리가 설치되어 있는 컴퓨터를 준비했다고 가정하겠습니다. 계속하기 전에 이 단계를 꼭 마무리해야 합니다. 부록에서 단계별 안내를 따르고 추가적인 도움이 필요하다면 온라인 문서들을 찾아보세요. 케라스와 필요한 라이브러리를 설치하는 법을 다룬 온라인 튜토리얼은 아주 많습니다.

이제 실전 케라스 예제로 들어가 보겠습니다.

  1. 윈도에서는 아나콘다(Anaconda) 파이썬 배포판을 사용하면 텐서플로와 케라스를 손쉽게 설치할 수 있습니다. 부록 A를 참고하세요. 

  2. 이 가격은 AWS 미국 리전(Region)의 온디맨드(On-demand) 인스턴스 기준입니다. 2018년 중반 현재 시점에 서울 리전의 가격은 시간당 1.465달러입니다. 간단한 실험을 위해서는 더 저렴한 스팟(Spot) 인스턴스를 사용할 수 있습니다. 스팟 인스턴스를 사용하는 방법은 제 블로그(https://bit.ly/2Frcb1x)를 참고하세요. 2017년 후반부터는 최대 8개의 GPU를 제공하는 p3 인스턴스도 추가되었습니다. 

  3. NVIDIA에서 2018년 초에 볼타(Volta) 아키텍처 기반의 TITAN V를 출시했습니다. 이 그래픽 카드의 가격은 2,999달러로 XP에 비해 배 이상 차이가 나지만 성능은 그에 못 미치는 것으로 알려져 있습니다. 

댓글남기기