카카오브레인 : TPU 이용한 대규모 자연어 기반 인공지능 모델 학습, 인공지능의 더 큰 가능성 내다봐
Kakao Brain에 대하여
카카오브레인은 AI의 요소 기술을 개발하는 기업입니다. 자연어 처리부터 이미지, 소리 등 다양한 분야의 인공지능 기반 기술을 개발중이고 최근에는 한국어 자연어 처리 모델 KoGPT와 초거대 멀티모달 AI minDALL-E를 발표하며 AI의 가치를 크게 발휘할 수 있는 가능성을 펼쳐 나가고 있습니다.
어떤 어려움을 겪고 계신지 알려주세요. Google Cloud가 도와드리겠습니다.
문의하기카카오브레인은 대규모 자연어 처리 모델 KoGPT의 개발, 운영에 Google Cloud Platform의 TPU를 이용했습니다. TPU는 KoGPT에 활용된 60억 개 모델 파라미터와 2000억 개 분량의 토큰 데이터들을 빠르게 학습해 한국어를 자연스럽게 이해할 수 있도록 도왔습니다. TPU는 원활한 자원 할당과 강력한 성능, 그리고 지속적인 업데이트로 인공지능 기술의 활용 가능성을 높여주었습니다.
구글 클라우드 사용 효과
- 원활한 대규모 시스템 자원 할당
- 라지스케일 데이터 처리에 대한 부담 감소
- 빠른 데이터 학습으로 기존 딥러닝의 약점 해소 기대
60억 개 모델 파라미터, 2000억 개 토큰 데이터 자연어 학습 비용 대비 높은 머신러닝 학습 처리 시간 효율
카카오브레인이 2021년 11월 KoGPT라는 이름의 대규모 딥러닝 기반 자연어 처리 인공지능 모델을 공개했습니다. 카카오브레인은 그 동안 언어와 이미지 등의 인공지능 기반 분석을 연구해 왔는데, KoGPT는 가장 광범위하게 쓰이는 자연어 처리 모델인 GPT-3를 한국어에 맞추어 개발한 언어 모델입니다.
이미 영어권에서는 GPT-3를 통해 단순히 말을 글로 옮기는 수준을 넘어 말하는 사람의 의도를 정확히 읽어서 편지나 글을 써주기도 하고, 심지어 소프트웨어 코딩까지 활용 범위를 넓혀가고 있습니다. 카카오브레인의 KoGPT를 통해 한글도 다양한 인공지능 분야에 활용될 수 있는 범용 기술이 태어난 것입니다.
하지만 이 자연어 처리 머신러닝 모델을 만드는 과정은 많은 노력이 필요합니다. 특히 대규모 데이터를 빠르게 학습시키는 과정이 필요한데 KoGPT 역시 모델 파라미터 60억 개, 토큰 2000억 개 분량의 막대한 데이터를 학습해 한국어를 이해할 수 있는 인공지능 모델을 만들어냈습니다. 이 데이터의 학습은 곧 어마어마한 시간과 비용으로 이어집니다.
TPU, 막대한 데이터 학습에 최적화된 머신러닝 전용 프로세서
카카오브레인이 이 막대한 데이터를 빠르게 학습할 수 있었던 이유중 중요한 한 가지는 구글 클라우드 플랫폼의 머신러닝 전용 처리 프로세서인 TPU(Tensor Processor Unit)를 꼽을 수 있습니다.
“대부분의 인공지능 관련 연구와 프로젝트는 카카오브레인이 자체적으로 구축한 GPU 기반의 클라우드로 이뤄지고 있습니다. 하지만 더 큰 인공지능 모델과, 더 많은 데이터의 학습이 필요한 일들이 늘어갔고, 이를 원활하게 처리할 수 있는 시스템이 필요했습니다.”
카카오브레인 라지스케일팀 클린트(백운혁)는 GPU와 TPU의 특성을 이해하고 각 역할에 맞추어서 적절하게 활용하는 것이 TPU 활용에서 가장 중요한 출발점이라고 설명합니다. TPU는 강력한 인공지능 데이터 처리 능력을 보여주지만 당장 모든 인공지능 시스템을 TPU로 대체하기만 하면 엄청난 성능 향상을 얻어내는 것은 아니라는 것이 클린트의 설명입니다.
“TPU와 GPU는 서로 특성이 다르고, 상호보완적인 부분이 분명 있습니다. GPU는 가볍게 프로젝트를 시작할 수 있고, 범용적인 환경에 대응하기 쉽다는 장점이 있지만 필요한 만큼의 자원을 할당받는 것이 쉽지 않았습니다. 반면 TPU는 Pod 단위로 자원을 받을 수 있어서 관리가 수월했고, 각 노드 사이의 통신 속도도 빨라서 대규모 데이터의 처리에 아주 유리했습니다.”
구글 클라우드 플랫폼의 TPU는 카카오브레인의 라지스케일 모델과 데이터 학습에 대한 갈증을 풀어줄 수 있을 만큼 강력한 성능을 내 주었고, 무엇보다 필요한 만큼의 자원을 원활하게 할당받을 수 있어서 학습 등 대규모 데이터 처리 시간을 획기적으로 줄여주었다고 합니다. 대규모 연산을 위한 조건들을 갖추기 수월했다는 이야기입니다.
“TPU는 많은 양의 데이터 학습에 최적화되어 있습니다. GPU의 약점인 네트워크 병목 현상이나 막대한 시스템 자원 할당에 대한 부담 없이 언제든 원하는 데이터 학습이 이뤄졌고, 더 많은 TPU를 활용하는 데에 기술적, 비용적 부담도 적었습니다. TPU는 더 많은 시도와 시행착오라는 경험을 주었고, 이를 통해 카카오브레인은 기대하는 결과로 더 빠르고 확실하게 다가서고 있습니다.”
“필요한 순간에 GPU를 원하는 만큼 할당받는 것은 점점 어려워졌습니다. 조금씩 배정을 받아가며 데이터를 학습하다 보니 시간과 비용이 많이 필요할뿐 아니라 결과가 나오는 일정에 대한 확신도 떨어졌습니다. 하지만 TPU는 원하는 만큼의 자원이 확보된 뒤에 데이터를 처리할 수 있을 뿐 아니라, 할당도 상대적으로 매끄럽게 이뤄졌습니다.”
“통신 속도 병목 없이 대규모 자원 할당에 만족”
라지스케일 모델과 데이터를 다루는 과정은 결국 다중처리 성능과 관련이 있습니다. GPU 역시 기본적으로는 칩 하나에 작은 연산 코어를 수 천 개 품어서 작은 연산들을 잘게 나누어 끊임 없이 반복하는 원리입니다. 그래서 서버에 GPU를 여러개 꽂고, 이 서버들을 다시 연결해서 대형 클러스터를 만들어내곤 합니다. 그 과정에서 서버끼리 데이터를 주고받는 네트워크의 통신 속도가 매우 중요하고 최적화에 대한 부담도 늘어나게 됩니다. 그래서 GPU를 100개 쓴다고 해서 성능이 100배 높아지는 것은 쉽지 않습니다. 클린트는 TPU 역시 GPU와 기본적인 원리는 비슷하지만 그 특성을 이해할 필요가 있다고 말합니다.
“TPU는 최적화가 매우 중요합니다. 하드웨어 특성이 다른 만큼 GPU와 최적화의 방법과 포인트가 다릅니다. TPU는 GPU에 비해 메모리가 작지만 처리 속도가 매우 빨랐고, 네트워크의 병목 현상이 없었기 때문에 그 동안 예민하게 따져야 했던 네트워크 환경에 대한 부담을 덜어낼 수 있었습니다. 결과적으로 TPU는 특성을 이해하고 모델과 알고리즘을 설계하면 최적의 성능을 보여주었습니다.”
무엇보다 단위 시간당 비용 구조를 통해 처리 시간을 비약적으로 줄일 수 있었습니다. 예를 들어 32개 TPU를 이용해 4주가 걸리는 일이 있다면 이를 4배 늘려서 128개 TPU를 쓰면서 1주일로 줄일 수 있는 것입니다. 32개 TPU로 4주를 쓰는 것과 4배의 자원을 1주일 쓰는 것의 시스템 이용량이 같은 셈입니다.
실제로 카카오브레인은 KoGPT의 학습 과정에서 TPU V3-32로 1주일이 걸리던 실험이 TPU V3-512를 이용해 단 하루 만에 원하는 결과를 얻어내는 경험을 했습니다. TPU V3-512의 단위 요금은 TPU V3-32의 16배에 달하지만 실험 시간을 14분의 1로 줄이면서 전체적인 비용 차이는 거의 없이 획기적으로 빠른 결과물을 손에 넣을 수 있었던 것이지요.
“TPU는 자원을 적절히 할당하면 선형적으로 성능을 높일 수 있으면서도 이용 요금이 달라지지 않기 때문에 학습 효율성은 높일 수 있었고, 자원 활용에 대한 부담은 크게 줄었습니다. 데이터 처리와 결과에 대한 시간을 예측하고, 필요에 따라서 더 빠르게 운영할 수 있는 요건을 갖추고 있습니다. 늘 시간에 급한 프로젝트에서 원활한 자원 활용만큼 반가운 것은 없죠.”
더 넓은 인공지능의 가능성 내다볼 수 있어
클라우드를 쓰는 기업들이 편리함 만큼이나 해당 서비스를 벗어나기 어려운 ‘락인(Lock in)’에 대한 고민을 하는데, 카카오브레인은 이 부분에 대해서도 ‘괜찮다’는 답을 내놓았습니다.
“이제까지 TPU v3를 써 왔는데 최근 TPU v4를 쓰면서 플랫폼에 대한 우려가 대부분 사라졌습니다. 구글은 TPU와 이를 다루는 시스템에 대한 개선을 지속적으로 하고 있고, 이용자 입장에서 필요하다고 생각하는 부분들이 빠르게 해소되고 있어서 대규모 데이터 처리에는 다른 서비스에 대한 고민이 들지 않고 있습니다.”
TPU의 유연성과 성능이 연구와 개발에만 집중할 수 있는 계기가 될 것이라는 설명입니다. 클린트는 앞으로 더 큰 모델을 개발하고 이미지와 텍스트, 오디오 등 다중 모델을 연구하는 데에 TPU의 컴퓨팅 파워가 주는 여유에 큰 기대를 하고 있다고 강조했습니다.
특히 머신러닝 모델이 안정화되고, 필요한 연산에 대한 정의가 뚜렷해지면 TPU는 Pod 수를 늘리는 것만으로 데이터 병목현상 없이 유연하게 성능을 늘릴 수 있기 때문에 정적이고, 큰 모델의 데이터에서 큰 효과를 내어 주었습니다.
“TPU는 모든 시스템이 구글 클라우드 플랫폼 위에서 제공되기 때문에 도입 초기만 해도 TPU 안에서 데이터가 어떻게 처리되고, 어떤 부분의 효율성이 떨어지는지에 대해서 파악하기가 어려웠는데 그 사이에 TPU 가상머신이 등장하고, 최적화가 수월한 TPU v4가 공개되면서 데이터 프로파일링이 빠르게 개선되고 있습니다. 대규모 연산의 최적화가 계속해서 더 수월해지고 있다는 이야기입니다.”
물론 TPU를 활발히 쓴다고 해서 GPU를 활용하지 않는 것은 아닙니다. 인공지능 분야에서는 여전히 많은 연구 분야가 있고, GPU가 주는 유연성과 즉각성의 이점도 분명합니다. 클린트는 TPU가 GPU와 더불어 각자의 역할을 명확하게 이해하고 구분해서 쓸 때 최적의 성능을 낸다고 강조합니다.
특히 지속적으로 늘어나는 연산 수요에 대응하는 것은 결국 클라우드와 전용 연산 도구의 활용으로 풀어낼 수밖에 없는데, 카카오브레인에게 TPU는 자리가 잡힌 연산에 대해 비용과 성능, 시간 등에서 최적의 환경을 제공했다고 평가합니다.
“온프레미스로 GPU를 구입하는 것은 여러모로 쉽지 않은 일입니다. 필요한 자원을 치밀하게 예측해야 하고, 구매 계획과 설치 일정, 그리고 데이터센터의 상면 공간까지 따져야 할 부분들이 많습니다. TPU는 구글 클라우드 플랫폼을 통해 온 디맨드로 필요한 만큼 자유롭게 할당해서 쓸 수 있습니다. 늘 한정된 리소스를 나누어서 써야 하는 상황에 대한 불편함이 있었는데, 유연한 자원 활용과 빠른 처리는 정해진 연구나 논문 스케줄을 원활하게 맞출 수 있도록 충분한 성능을 끌어 쓸 수 있게 해 주었습니다. 비용 대비 시간적인 이점이 매우 커서 몇 년 걸릴 일들이 몇 달 안에 처리되는 모든 과정에 매우 만족했습니다.”
카카오브레인은 TPU를 더하면서 대규모 데이터를 다루는 부담이 줄어들었고, 자연스럽게 더 넓은 분야로 인공지능에 대한 시야를 넓혀가고 있습니다. 다양한 형태의 데이터를 다루는 것 뿐 아니라 기존 딥러닝 모델의 한계였던 상태 저장, 기억에 대한 부분과 지식 학습 등 다양한 가능성을 현실화할 수 있을 것이라는 자신감을 갖게 됐습니다. 카카오브레인은 그 가능성을 통해 인공지능이 세상에 더 많은 기여를 할 수 있도록 하겠다는 포부를 내비치며 이야기를 마무리했습니다.
“TPU는 여러가지 연구 개발에서 더 빠른 실패와 더 많은 시행착오를 경험하게 해 줄 겁니다. 그 과정은 단순한 실패의 문제가 아니라 카카오브레인 구성원들이 기대하고 예상했던 결과로 더 빨리 갈 수 있도록 해주는 경험의 시간을 비약적으로 줄여주어서 더 좋은 결과물을 만들어낼 수 있을 것이라는 현실적인 기대와 확신을 주었습니다.”
어떤 어려움을 겪고 계신지 알려주세요. Google Cloud가 도와드리겠습니다.
문의하기Kakao Brain에 대하여
카카오브레인은 AI의 요소 기술을 개발하는 기업입니다. 자연어 처리부터 이미지, 소리 등 다양한 분야의 인공지능 기반 기술을 개발중이고 최근에는 한국어 자연어 처리 모델 KoGPT와 초거대 멀티모달 AI minDALL-E를 발표하며 AI의 가치를 크게 발휘할 수 있는 가능성을 펼쳐 나가고 있습니다.