Cloud TPU 초보자 가이드

Google이 설계한 커스텀 주문형 집적회로(ASIC)를 사용하여 머신러닝(ML) 모델을 경제적으로 빠르게 학습시키세요.

Tensor Processing Unit(TPU)은 머신러닝 애플리케이션의 연산 수요를 처리하도록 특별히 설계된 ASIC 기기입니다. Cloud TPU 제품군은 확장 가능하고 사용이 쉬운 클라우드 컴퓨팅 리소스를 통해 Google Cloud에서 최첨단 ML 모델을 실행하는 모든 ML 연구자, ML 엔지니어, 개발자, 데이터과학자에게 TPU의 혜택을 제공합니다. Cloud TPU는 8코어 TPU v2 노드에서 2048코어 풀 TPU v3 노드로 확장할 수 있는 기능을 통해 100페타플롭 이상의 성능을 제공할 수 있습니다.

Compute Engine에서 Cloud TPU 시작하기

주요 기능

머신러닝 애플리케이션 속도 향상 Cloud TPU는 딥 러닝 연산의 속도를 높이기 위해 Google이 특별하게 설계한 커스텀 ASIC 칩을 기반으로 합니다.
애플리케이션을 빠르게 확장 단일 Cloud TPU 기기(180테라플롭)로 저렴하게 프로토타입 제작을 시작한 후 코드 변경 없이 더 큰 Cloud TPU 노드에서 확장할 수 있습니다.
머신러닝 작업 부하를 비용 효율적으로 관리 Cloud TPU의 합리적인 가격은 머신러닝 모델 학습 및 실행에 수반되는 비용을 절감하는 데 큰 도움이 됩니다.
최적화된 오픈소스 참조 모델로 시작 점점 다양해지는 오픈소스 참조 모델 집합을 활용할 수 있습니다. 여기에는 Google의 연구개발 팀이 게시하고 최적화하며 지속적으로 테스트하는 Mask R-CNN, AmoebaNet 등의 수많은 최첨단 모델이 포함됩니다.

기본 원리

머신러닝 애플리케이션에서 신경망이 작동하는 원리를 공부하면 Cloud TPU가 개발자와 머신러닝 애플리케이션에 어떠한 혜택을 주는지를 이해하는 데 도움이 됩니다.

지난 몇 년간 이루어졌던 획기적인 인공지능(AI) 발전의 원동력은 바로 심층신경망이라는 기술입니다. 신경과학의 연구 성과가 이 신경망의 동작에 어느 정도 영향을 주었지만, 이제 신경망이라는 용어는 생물학적 연구 결과로 국한되지 않고 폭넓은 수학적 구조에 적용됩니다. 가장 많이 사용되는 대부분의 신경망 구조 또는 아키텍처레이어의 계층 구조로 조직화됩니다. 가장 정확하고 유용한 모델은 수많은 레이어를 포함하는 경우가 많기 때문에 심층이라는 용어가 추가되었습니다. 대부분의 심층신경망은 입력 데이터(예: 이미지, 오디오, 텍스트, 구조화된 데이터)를 수용하고, 일련의 변환을 적용하고, 예측을 수행하는 데 사용할 수 있는 출력을 생성합니다.

다음 다이어그램과 같이 숫자 필기 이미지를 인식하는 단일 레이어 신경망을 예시로 들어 보겠습니다.

신경망의 숫자 표현

이 예에서 입력 이미지는 28 x 28 그레이 스케일 픽셀로 이루어진 그리드입니다. 첫 단계에서는 각 이미지를 784개 숫자 값의 문자열로, 수학적으로 표현하자면 784차원 벡터로 변환합니다. 이 예시에서는 숫자 8에 해당하는 출력 뉴런이 입력 픽셀을 직접 수용한 뒤 가중치라 하는 매개변수 값 집합을 곱해 결과를 전달합니다. 위 다이어그램에서 각각의 빨간 선에 개별 가중치가 있습니다.

뉴런은 가중치와 입력을 대조함으로써 다음과 같이 유사성 필터처럼 작동합니다.

매개변수 작동을 표현하는 그림

기본적인 예를 살펴보았지만, 수신된 입력 데이터에 대해 여러 중간 변환을 수행하는 수많은 레이어가 포함된 훨씬 복잡한 신경망도 핵심 동작은 같습니다. 각 레이어는 이전 레이어로 크게 변경되었을 수 있는 수신 입력 데이터를 신경망에 포함된 각 뉴런의 가중치와 대조합니다. 이러한 뉴런의 응답은 다음 레이어에 입력으로 전달됩니다.

모든 뉴런 집합의 가중치는 어떻게 계산될까요? 바로 학습 과정을 통해 계산됩니다. 이 과정에서 라벨이 지정된 대규모 데이터세트를 반복적으로 처리하는 경우가 많습니다. 이러한 데이터세트에 포함된 라벨이 있는 예는 수백만, 심지어 수십억 개에 이르기도 합니다. 대규모 데이터세트로 최첨단 ML 모델을 학습시키려면 강력한 하드웨어로도 몇 주가 걸릴 수 있습니다. Google이 TPU를 설계하고 개발한 목적은 이러한 대규모 연산 작업 부하를 몇 주가 아닌 몇 분 내지 몇 시간 만에 완료할 수 있도록 하여 생산성을 높이는 것입니다.

CPU의 작동 원리

위 섹션에서는 신경망을 실무적으로 정의하고 어떠한 유형의 연산이 필요한지를 알아보았습니다. 이러한 신경망에서 TPU의 역할을 이해하려면 다른 하드웨어 기기가 이러한 연산 과제를 어떻게 처리하는지부터 알아야 합니다. 우선 CPU부터 살펴보겠습니다.

CPU는 폰 노이만 구조에 기반한 범용 프로세서입니다. 따라서 CPU는 다음과 같이 소프트웨어 및 메모리와 연동합니다.

CPU의 원리를 표현하는 그림

CPU의 가장 큰 장점은 유연성입니다. 폰 노이만 구조를 따르므로 다양한 소프트웨어로 수백만 가지 응용이 가능합니다. CPU를 사용하여 PC로 문서를 작성하거나, 로켓 엔진을 제어하거나, 은행 거래를 처리하거나, 신경망으로 이미지를 분류할 수 있습니다.

그러나 CPU는 유연성이 너무 크기 때문에, 소프트웨어에서 다음 명령을 읽기 전까지는 하드웨어가 다음 연산을 예측할 수 없습니다. CPU는 각각의 연산 결과를 L1 캐시라고 하는 CPU 레지스터에 저장합니다. 이 메모리 액세스는 CPU 아키텍처에서 폰 노이만 병목현상이라고 하는 단점으로 작용합니다. 그런데 신경망 연산은 규모가 거대하므로 다음 단계가 완전히 예측 가능합니다. 각 CPU의 산술 논리 장치(ALU)는 승산기와 가산기를 보유하고 제어하는 구성요소로서 한 번에 하나의 계산만 실행할 수 있습니다. CPU가 메모리에 매번 액세스해야 하므로 총 처리량이 제한되고 막대한 에너지가 소비됩니다.

GPU의 작동 원리

GPU는 CPU보다 높은 처리량을 얻기 위해 단일 프로세서에 수천 개의 ALU를 배치한다는 단순한 전략을 사용합니다. 실제로 최신형 GPU는 단일 프로세서에 보통 2,500~5,000개의 ALU를 포함합니다. 따라서 수천 개의 곱셈과 덧셈을 동시에 실행할 수 있습니다.

GPU의 원리를 표현하는 그림

이 GPU 아키텍처는 신경망의 행렬 곱셈과 같은 대규모 병렬처리 애플리케이션에 적합합니다. 실제로 일반적인 딥 러닝 학습 워크로드에서 GPU는 CPU보다 훨씬 더 많은 처리량을 제공할 수 있습니다. 그로 인해 GPU는 딥 러닝에서 가장 널리 사용되는 프로세서 아키텍처로 자리잡았습니다.

그러나 GPU도 수많은 애플리케이션과 소프트웨어를 지원해야 하는 범용 프로세서입니다. 따라서 GPU도 CPU와 같이 폰 노이만 병목현상이라는 문제를 겪습니다. 수천 개의 ALU에서 이루어지는 각각의 연산에서 GPU는 레지스터 또는 공유 메모리에 액세스하여 중간 계산 결과를 읽고 저장해야 합니다. GPU는 수천 개의 ALU에서 보다 병렬적으로 연산을 수행하므로 그에 비례하여 메모리 액세스에 더 많은 에너지를 소비하며 배선 등 하드웨어적인 부담이 가중됩니다.

TPU의 작동 원리

Google이 설계한 Cloud TPU는 신경망 작업 부하에 특화된 행렬 프로세서입니다. TPU는 문서 작성, 로켓 엔진 제어, 은행 거래 처리에 사용할 수는 없지만 신경망의 방대한 곱셈과 덧셈을 초고속으로 처리할 수 있으며 소비 전력이 훨씬 낮고 하드웨어적인 부담도 적습니다.

다른 기기와 비교한 TPU의 장점 중 하나는 폰 노이만 병목현상이 훨씬 적다는 것입니다. 이 프로세서의 주 임무는 행렬 처리이므로 TPU 하드웨어 설계자는 해당 작업을 수행하는 모든 연산 단계를 미리 알고 있습니다. 따라서 수천 개의 승산기와 가산기가 서로 직접 연결되도록 배치하여 해당 연산자의 대규모 실제 행렬을 형성할 수 있습니다. 이 방식을 시스톨릭 배열 아키텍처라고 합니다. Cloud TPU v2는 128 x 128 시스톨릭 배열 2개로 16비트 부동 소수점 값용 ALU 32,768개를 단일 프로세서에 집적합니다.

시스톨릭 배열이 신경망 연산을 어떻게 실행하는지 살펴보겠습니다. 우선 TPU가 메모리의 매개변수를 승산기 및 가산기의 행렬에 로드합니다.

TPU가 메모리에서 매개변수를 로드하는 방식을 표현하는 그림

그런 다음 TPU가 메모리에서 데이터를 로드합니다. 각 곱셈이 실행된 결과가 다음 승산기로 전달되는 동시에 합산이 이루어집니다. 따라서 출력은 데이터와 매개변수 간의 모든 곱셈 결과의 합입니다. 대규모 연산 및 데이터 전달 과정 전체에서 어떠한 메모리 액세스도 필요하지 않습니다.

TPU가 메모리에서 데이터를 로드하는 방식을 표현하는 그림

따라서 TPU는 신경망 연산에서 탁월한 연산 처리량을 달성하는 동시에 소비 전력과 하드웨어 부담을 크게 줄일 수 있습니다.

Cloud TPU 기본 요건

GCP 계정 설정 Cloud TPU 리소스를 사용하여 모델을 학습시키려면 Google Cloud(GCP) 계정과 프로젝트를 설정해야 합니다.
Cloud TPU API 활성화 모델을 학습시키려면 Compute Engine 및 Cloud TPU API를 활성화해야 합니다.
Cloud Storage 버킷에 대한 Cloud TPU 액세스 권한 부여 Cloud Storage 버킷을 사용하면 데이터세트를 저장할 수 있습니다.
TPU 서비스 선택 Cloud TPU를 실행하고 관리하는 데 사용할 Google Cloud 서비스를 선택합니다. Compute Engine, Google Kubernetes Engine, AI Platform 중에서 선택할 수 있습니다.
TPU 유형 선택 Cloud TPU는 여러 가지 유형으로 제공됩니다. 성능과 비용 효율성이 가장 적절하게 조합된 버전을 선택합니다. 선점형 TPU를 사용하여 비용을 절약할 수 있습니다. 자세한 내용은 선점형 TPU 사용을 참조하세요.
Cloud TPU 만들기 및 삭제 Cloud TPU에서 머신러닝(ML) 모델을 실행하려면 Compute Engine VM 및 Cloud TPU 리소스가 필요합니다.
도구 구성 Compute Engine과 TPU를 동시에 관리하려면 강력한 명령줄 도구인 ctpu를 사용합니다. 이미 익숙한 텐서보드 등의 도구를 사용할 수도 있습니다.
모델 실행 Google이 제작한 여러 가이드 중 하나를 사용하여 애플리케이션에 가장 적합한 머신러닝 모델을 선택합니다.

다른 머신러닝 서비스를 찾으시나요?

Cloud TPU는 Google Cloud에서 사용할 수 있는 여러 머신러닝 서비스 중 하나입니다. 다음과 같은 리소스도 참고해 보시기 바랍니다.

Video Intelligence API Video Intelligence API는 메타데이터를 추출하고, 주요 명사를 식별하며, 동영상의 콘텐츠를 주석 처리하여 동영상 검색을 가능하게 합니다. 이제 사용하기 간편한 REST API를 호출해 카탈로그에 있는 모든 동영상 파일의 모든 순간을 검색하고, 각각의 주요 명사의 어커런스 여부와 중요도를 확인할 수 있습니다. 동영상, 촬영 샷, 프레임별로 관련 정보를 가져옴으로써 신호와 잡음이 분리됩니다.
Cloud Vision Cloud Vision은 사전에 학습된 강력한 API 모델을 사용해 이미지에서 유용한 정보를 이끌어내거나, AutoML Vision 베타로 커스텀 비전 모델을 손쉽게 학습시킬 수 있습니다. 이 API는 이미지를 수천 가지 카테고리(예: '범선', '에펠탑')로 빠르게 분류하고 이미지 안의 개별 사물과 얼굴을 감지하며 이미지에 인쇄된 단어를 찾아서 판독합니다. AutoML Vision을 사용하면 최소한의 ML 전문 지식으로 커스텀 ML 모델을 구축하고 학습시켜 도메인별 비즈니스 요구를 충족할 수 있습니다.
Speech-to-Text 사용하기 간편한 API로 신경망 모델을 적용하는 Speech-to-Text를 사용하면 개발자가 오디오를 텍스트로 변환할 수 있습니다. 이 API는 120개 언어와 방언을 인식하여 전 세계 사용자층을 지원합니다. 음성 명령어 및 제어 기능을 구현하고 콜센터의 오디오를 텍스트로 변환하는 등의 작업을 할 수 있고 Google의 머신러닝 기술을 사용하여 실시간 스트리밍 또는 사전 녹음 오디오를 처리할 수 있습니다.
텍스트 음성 변환 개발자는 Text-to-Speech를 통해 여러 언어 및 방언이 지원되는 32가지 음성으로 자연스러운 음성을 합성할 수 있습니다. DeepMind의 획기적인 연구 성과를 WaveNet과 Google 신경망에 적용하여 최대한의 사실성을 제공합니다. 사용이 간편한 이 API로 다양한 애플리케이션과 기기에서 사용자와 실제로 대화하듯이 상호작용할 수 있습니다.
Cloud Natural Language API Cloud Natural Language API는 사용이 간편한 REST API에서 강력한 머신러닝 모델을 제공하여 텍스트의 구조와 의미를 보여줍니다. AutoML Natural Language 베타를 사용하면 광범위한 ML 전문 지식 없이도 ML 모델을 쉽게 구축하고 학습시킬 수 있습니다. Cloud Natural Language API를 사용하면 텍스트 문서, 뉴스 기사 또는 블로그 게시물에서 언급된 사람, 장소, 이벤트 등에 대한 정보를 추출할 수 있습니다. 또한 제품에 대한 소셜 미디어의 분위기를 파악하거나 콜센터나 메시지 앱에서 이루어지는 고객 대화의 의도를 분석하는 데 사용할 수 있습니다.
Cloud Translation Cloud Translation은 임의 문자열을 지원되는 언어로 번역하기 위한 간단한 프로그래매틱 인터페이스를 제공합니다. Cloud Translation API는 응답성이 높으므로 웹사이트와 애플리케이션을 Translation API와 통합하면 출발어의 원본 텍스트를 도착어(예: 프랑스어에서 영어)로 빠르게 동적으로 번역할 수 있습니다. 또한 API 외에도 AutoML Translation 베타를 사용하여 프로젝트 또는 분야와 관련된 고품질 모델을 쉽고 빠르게 구축하고 학습시킬 수 있습니다.

더욱 다양한 옵션을 보려면 Cloud AI 제품 페이지를 참조하세요.

다음 단계

Cloud TPU에 대해 더 알고 싶으신가요? 다음 리소스를 참고하시기 바랍니다.

Compute Engine을 사용한 빠른 시작 잠시 시간을 내어 Google Cloud를 사용하여 Cloud TPU를 설정하고 사용하는 방법을 알아봅니다.
TPU Colabs 다양한 무료 Colab를 사용하여 Cloud TPU를 실험해 봅니다.
Cloud TPU 가이드 다양한 ML 모델을 사용하여 Cloud TPU를 테스트해 봅니다.
가격 책정 Cloud TPU가 머신러닝 작업 부하를 얼마나 비용 효율적으로 처리할 수 있는지 확인해 봅니다.
영업팀에 문의 구체적인 구현이나 애플리케이션에 대해 논의하고 싶으신가요? 영업팀에 언제든지 문의하세요.