구글이 클라우드 기반 머신 러닝 시대를 열기 위해 직접 만든 Cloud TPU(Tensor Processing Unit)가 드디어 베타로 공개되었습니다. 이제 곧 시간, 성능, 비용 걱정 없이 마음껏 텐서플로우 기반 머신 러닝 모델 트레이닝을 구글 클라우드 플랫폼(GCP)에서 Cloud TPU로 할 수 있는 시대가 옵니다.
Cloud TPU는 구글이 직접 설계한 ASIC 칩과 하드웨어 기반 머신 러닝 가속기입니다. 성능이 굉장한데요, 단일 보드 기준으로 180테라플롭스의 성능, 64GB 용량의 메모리가 제공됩니다. Cloud TPU 보드들을 연결하면? 머신 러닝 전용 슈퍼컴퓨터가 만들어지는데요, 용량이 페타플롭스 수준에 이른다고 합니다. 구글은 여러 개의 Cloud TPU 보드를 연결한 슈퍼컴퓨터 단위를 TPU pods로 부릅니다. TPU pods 서비스는 2018년 말에 나온다고 하네요. Cloud TPU는 현재 베타가 공개되었는데, 비용이 참 끌립니다. 시간당 6달러 50센트입니다. 참고로 베타를 써보고 싶다면 따로 신청하면 됩니다.
Cloud TPU는 텐서플로우 워크로드를 처리하는 데 있어 가성비 갑의 자리에 오를 것 같습니다. 머신 러닝 엔지니어들이 두 손 들어 환영하는 이유를 두 가지로 추려 보겠습니다.
첫 번째는 시간입니다. 사내에 대규모 클러스터를 구축해도, 머신 러닝을 수행하려면 스케줄을 예약해 작업을 돌려야 합니다. 아무리 성능이 좋은 클러스터라 해도 여러 사람, 여러 부서의 공유 자원이라면? 작업 걸어놓고 대기하는 것은 일상이 됩니다. Cloud TPU를 쓰면 나만의 전용 머신 러닝 클러스터가 생기는 것과 같습니다. 대기 시간이 사실상 사라지는 것이죠.
두 번째도 시간입니다. 머신 러닝 모델을 만들어 클러스터에서 트레이닝을 수행하여 결과를 얻으려면 몇 날 며칠, 길게는 몇 주의 시간을 투자해야 합니다. Cloud TPU는 트레이닝에 필요한 자원의 한계가 없습니다. 필요한 만큼 연결해 성능을 확보하면 됩니다. 작업을 걸어 둔 다음 날 트레이닝을 마친 모델을 확인할 수 있다는 것! 네, GCP에서는 현실입니다.
Cloud TPU가 제공하는 시간의 이점을 직접 느껴 볼 수 있습니다. 이미지넷 대회에서 우승을 거머쥔 모델 중 하나인 ResNet-50을 한번 돌려 보세요. 구글이 제공하는 튜토리얼을 따라 하면 쉽게 Cloud TPU에 올려 트레이닝을 해볼 수 있는데요, 하루가 안 걸립니다. 사용료를 계산해 보면 200달러가 안 되네요.
“Cloud TPU의 매력 – 텐서플로우 기반 유명 모델을 바로 올려 볼 수 있다는 것!”
보통 커스텀 ASIC을 탑재한 슈퍼컴퓨터를 다루려면 해당 장비에 특화된 전문성을 갖추어야 하고 기존에 만들어 놓은 모델이나 코드도 손봐야 합니다. 반면에 Cloud TPU는 따로 배울 것이 하나도 없습니다. 텐서플로우 기반으로 작업한 것을 바로 올려 볼 수 있습니다. ResNet-50 이미지 분류 모델, Transformer 번역 모델, RetinaNet 객체 식별 모델 등 유명 텐서플로우 기반 머신 러닝 모델을 추가적인 프로그래밍 작업 없이 돌릴 수 있습니다.
구글은 지속해서 오픈 소스 머신 러닝 모델을 Cloud TPU에 최적화하는 데 힘을 쏟을 것이라 하니 앞으로 더 기대해도 되겠습니다. 실력이 뛰어난(?) 머신 러닝 전문가라면 텐서플로우 기반 모델을 Cloud TPU에 원하는 데로 최적화할 수도 있습니다. 사실 약간만 노력하면 머신 러닝 전문가 누구나 자신이 만든 모델을 Cloud TPU에 최적화할 수 있습니다. 시간을 약간 들여 구글이 제공하는 문서를 좀 읽어 보고 Cloud TPU 관련 도구를 손에 익히면 됩니다.
“머신 러닝 전문가가 꿈꾸어 왔던 무한 확장 가능한 ML 플랫폼 ~ 현실이 되다!”
머신 러닝, 딥러닝 하면 GPU가 먼저 떠오를 겁니다. 그렇다면 Cloud TPU는 GPU의 대안인가? 이런 생각을 해볼 수 있는데요. 그건 아닙니다. 머신 러닝, 딥러닝은 프레임워크와 모델의 특징에 따라 하드웨어 기반 가속 방식을 골라 써야 합니다.
CPU만으로 충분한 경우, CPU와 GPU 조합이 유리한 경우, GPU가 최선인 경우, Cloud TPU가 최적인 경우 등 다양한 조건을 생각해 볼 수 있습니다. 이런 측면에서 볼 때 구글의 클라우드 서비스인 GCP는 업계 최강 선택지를 제공합니다. 인텔 스카이레이크 등 CPU 기반 고성능 컴퓨팅, 엔비디아 테슬라 V100 등 GPU 기반 고성능 컴퓨팅 환경, Cloud TPU 기반 슈퍼컴퓨팅 환경을 모두 제공하기 때문이죠. 일반 기업이나 연구소에서 이런 조합으로 대규모 클러스터를 꾸미려면? 비용도 문제지만, 운영과 관리도 사실상 불가능합니다.
GCP가 제공하는 Cloud TPU 그리고 CPU와 GPU 기반 고성능 컴퓨팅 서비스는 상면, 냉각, 전력을 확보하고 서버, 스토리지, 네트워크 장치를 구입해 구성하는 노력을 필요 없게 만듭니다. 그리고 매일 같이 이루어지는 관리도 할 필요가 없습니다. 머신 러닝 수요 증가에 대응하기 위해 인프라를 확장할 이유도 없습니다. 필요한 때, 필요한 모델을, 필요한 성능에 맞춰 트레이닝하면 됩니다.
Cloud TPU에 관심이 있다면 미국 시각 기준으로 2월 27일 열리는 웨비나가 도움이 될 것입니다. 영어로 진행되지만, 용어만 놓치지 않고 들어도 대략 흐름을 따라갈 수 있을 것입니다. 혹시 친절한 한국어(?) 설명이 필요하다면 메가존으로 문의 바랍니다.