[MAC] 맥북에서 딥러닝 시작하기 - 구글 코랩(Google Colab)
맥북에서 딥러닝 시작하기 - 구글 코랩 설정 방법
✔ 딥러닝 워크스테이션
딥러닝에 관심있으신 분들은 워크스테이션이라는 말을 들어보셨을 겁니다.
워크스테이션이란 고성능 연산이 필요한 분야에서 사용되는 고사양 스펙의 데스크탑을 의미합니다.
✔ 딥러닝과 GPU
딥러닝에서 좋은 모델을 구축하기 위해서는 많은 양의 데이터를 학습시키는 것이 중요합니다.
따라서 다차원 데이터를 병렬 처리하는 GPU가 필수적입니다.
과거의 GPU는 그래픽을 렌더링(Rendering)하는 역할이 전부였습니다.
하지만 CPU보다 많은 코어 수를 가진 GPU가 등장하며 딥러닝에서는 CUDA와 같은 병렬 컴퓨팅 플랫폼이 사용되고 있죠.
✔ 딥러닝과 NVIDIA
CUDA는 NVIDIA에서 개발한 병렬 컴퓨팅 플랫폼으로 GPU의 병렬 연산을 활용하여 데이터 처리 속도를 가속화합니다.
OpenCL과 같은 GPU용 API, AMD와 같은 GPU 하드웨어도 존재하지만, Tensorflow와 Pytorch와 같은 딥러닝프레임워크와 호환성 때문에 딥러닝 분야에서는 CUDA의 활용성이 가장 높습니다.
✔ 애플과 NVIDIA
흔히들 개발을 위해서는 맥을 사용하는 것이 좋다고 말합니다.
실제로 많은 개발자 분들이 사용하고 계시고, 윈도우와 맥을 같이 사용하시며 개발 업무에 맥을 사용하시는 분들도 계시죠.
하지만 13/14년형 맥북 프로에 탑재된 GeForce GT 750M을 마지막으로 애플 제품에서는 NVIDIA의 그래픽 카드를 볼 수 없는 상황입니다.
따라서 NVIDIA그래픽 카드가 장착되지 않은 맥북에서는 CUDA를 활용한 병렬 연산을 할 수 없으며, 가상환경에 Tensorflow-gpu를 설치할 수 없습니다.
✔ 맥북으로 딥러닝 시작하기
그럼 맥북에서는 딥러닝을 할 수 없을까요?
물론 pyenv, conda로 파이썬 가상환경을 구축하고 딥러닝 모델을 개발할 수 있습니다.
하지만 위의 방법 보다는 구글 코랩을 사용하는 것을 추천드립니다.
✔ 구글 코랩
구글 코랩은 클라우드 기반의 무료 노트북 개발 환경입니다.
많은 장점들이 있지만, 저는 이중에서 GPU 하드웨어 가속기를 사용할 수 있다는 점이 가장 마음에 들었습니다.
다음은 구글 코랩의 장점들입니다.
- 비싼 GPU장비를 구축한 개발환경을 무료로 사용할 수 있다.
- 클라우드 기반으로 언제 어디서든 개발환경에 접속하여 코드 수정이 가능하다.
- 위와 같은 장점을 가진 개발환경 구축이 쉽다.
구글 코랩은 무료 소프트웨어이기 때문에 하루 최대 12시간으로 제한되어 있습니다.
12시간이 지나면 자동으로 가상머신과의 연결이 끊겨 학습이 초기화 될 수 있습니다.
1. 구글 드라이브로 구글 코랩 연동하기
구글 계정에 로그인 한 후 구글 드라이브에 접속합니다.
접속한 후 내 드라이브에서 새 폴더를 생성합니다.
새 폴더를 생성한 후에는 내 드라이브를 우클릭 > 더보기 > 엽결할 앱 더보기 를 선택합니다.
'colab'을 검색한 후 'Colaboratory'를 선택합니다.
설치를 클릭합니다.
설치를 완료한 후 생성한 폴더에 접근하여 더보기 > Google Colaboratory를 선택합니다.
그러면 ipynb파일이 생성됩니다.
프로젝트를 생성하기 이전에 환경설정을 클릭합니다.
원하시는 환경설정을 완료한 후 저장을 클릭합니다.
환경설정을 완료한 후 런타임 > 런타임 설정 변경을 클릭합니다.
하드웨어 가속기를 GPU로 설정합니다.
마지막으로 연결을 클릭합니다.
2. 연결된 GPU 확인하기
앞에 과정을 모두 완료한 후 생성한 프로젝트에서 GPU를 사용할 수 있는지 확인해보겠습니다.
다음 코드를 입력한 후 실행합니다.
import tensorflow
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
사용할 수 있는 GPU는 테슬라, VRAM은 14GB, compute capability는 7.5인 것을 확인할 수 있습니다.
코랩은 파이썬 가상환경을 생성하고 CUDA, CUDNN을 설치하는 모든 과정을 진행하지 않고 딥러닝 개발환경을 구축할 수 있다는 것만으로 충분히 메리트 있는 것 같네요.