테크레시피

머신러닝 아키텍처가 가야할 길

최근 컴퓨터 기술은 AI나 딥러닝, 머신러닝 같은 말을 빼면 설명할 수 없을 정도다. AI는 기계로 재현한 인간의 지성으로 정의할 수 있다. 인간이 주행하는 작업을 컴퓨터가 감당하기 위한 것. 지금 나온 AI는 인간보다 똑똑할 수 있는 상황을 미리 정의한 1개 혹은 몇 개를 처리하는 것으로 제한되어 있다. 여기에는 언어를 이해하고 말을 하는 자연어 처리와 게임을 학습하는 것 같은 걸 들 수 있다.

머신러닝은 경험을 바탕으로 데이터 속에서 패턴을 찾고 학습할 수 있는 AI를 실현하기 위한 방법이다. 머신러닝은 인간이 프로그래밍해 컴퓨터에 능력을 부여한 게 아니라 데이터만 제공하면 스스로 알고리즘을 만들어 패턴을 인식하고 학습할 수 있다. 머신러닝은 스스로 데이터를 검색하고 패턴을 학습해 알려지지 않은 상황이 발생해도 학습한 패턴을 바탕으로 자가 분류할 수 있다. 머신러닝의 장점은 일단 학습한 데이터에 다시 학습을 할 수 있다는 것이다. 여기에 인간이 개입할 필요가 없다는 것도 장점 가운데 하나다.

기존 프로그래밍에는 엄격한 규칙이 필요하다. 하지만 머신러닝 프로그램은 예를 들어 이메일은 분류하고 오류를 줄이기 위해 반복 같은 식의 명령만 주면 나머지는 기계가 알아서 학습을 계속 해준다.

딥러닝은 머신러닝을 수행하는 기술 가운데 하나로 인간의 뇌 구조를 재현하는 신경망 네트워크라는 개념을 포함하고 있다. AI라는 개념 자체는 이미 1950년대부터 나왔지만 1980년대에 들어서면서 머신러닝이 보급되기 시작했고 2000년대 들어 딥러닝이 실용화되면서 AI가 실현되기 시작했다.

머신러닝 시스템이 훈련할 때에는 학습하려는 속성이 주어진다. 예를 들어 과일을 예로 들면 색상과 무게라는 속성이 포함된다. 2가지 속성은 2차원을 의미한다. 사과와 오렌지가 있다면 머신러닝은 데이터 패턴을 인식해 이들 2가지를 구별할 수 있다. 하지만 속성 데이터를 잘못 이용하면 만족스러운 결과를 얻을 수 없다. 사과와 오렌지에 씨앗 수와 익은 상태라는 속성을 준다면 데이터를 구분해 2가지 과일의 차이를 인식할 수 없는 상태가 되어버린다. 다시 말해 어떤 데이터를 바탕으로 학습할 것인지가 머신러닝에 있어서 중요하다는 얘기다. 또 과일의 경우 2가지 속성으로 판단을 했지만 속성은 더 늘어날 수 있다.

다음으로 중요한 건 어떻게 좋은 데이터를 학습용으로 준비하느냐다. 고양이를 학습한다면 좋은 결과를 얻으려면 1만 개 가량 데이터가 필요하다. 주어진 데이터는 이미지 뿐 아니라 여러 요소를 포함한 것이나 텍스트, 계측값, 소리 샘플 등이 될 수 있다.

머신러닝은 모르는 일에 대해선 예측할 수 없다. 예를 들어 동물의 다리 수, 색상, 무게, 종류라는 요소를 바탕으로 4, 검정, 10kg, 개 그리고 2, 오렌지, 5kg, 닭을 학습시키다가 새로운 소 정보에 4, 검정, 200kg라는 정보만 넣는다면 컴퓨터는 이 데이터를 개로 판단한다. 컴퓨터는 개와 닭에 대해서만 학습한 탓에 더 가까운 것으로 예측하기 때문이다.

머신러닝 시스템은 어떻게 학습할까. 기존에는 감독 학습(Supervised Training)이 대표적이다. 라벨링 데이터를 제공해 학습을 진행하는 것이다. 과일에 대해 색, 무게, 유형이라는 요소로 나눠 두면 새로운 정보가 입력될 때 넣는 것이다.

반면 비감독 학습(Unsupervised Training)은 라벨링되지 않은 데이터 집합을 바탕으로 기계가 스스로 학습을 실시하는 것이다. 3가지 덩어리로 구성된 요소가 있다면 컴퓨터는 먼저 3가지 클러스터가 있다는 걸 인식한 뒤 이를 각각 범주화한다. 컴퓨터에 몇 가지 카테고리가 있는지는 사전에 알려주지 않는다는 게 중요하다. 알아서 분류를 해준다는 것이다.

강화학습은 실행과 실패를 반복해가며 서서히 올바른 방향을 찾는 학습 방법이다. 게임을 실행시킨다면 게임 규칙을 몰라도 우연히 좋은 결과를 냈다면 보상을 받도록 해 보상을 극대화하는 걸 목표로 이뤄진 컴퓨터가 수백만 번에 걸쳐 반복을 거듭해가며 결국은 가장 효율적인 정답에 도달할 수 있게 이끌어준다.

AI는 어떻게 활용되고 있을까. 구글의 경우 머신러닝을 구글 포토의 스마트 검색 기능이나 지메일 인박스에 자동으로 답장을 만들어주는 스마트 멘션 기능 등에 활용하고 있다. 구글렌즈의 경우에는 스마트폰 카메라로 대상물을 조준하기만 해도 찍힌 물건을 인식하거나 가게 메뉴 등을 판별해낸다. 머신러닝을 이용하면 서비스 내에서 이용자 환경을 개선하는 데 활용할 수도 있다. 개인화를 위한 설계에 활용할 수도 있는 것.

그 뿐 아니라 로보틱스 같은 분야에서도 로봇이 머신러닝으로 다양한 기능을 학습하도록 할 수 있고 실제로 그림을 그리는 것처럼 사진에 이미지를 생성하거나 다양한 테마를 학습하도록 해 AI가 가상 동영상을 직접 만들게 할 수도 있다. 그 밖에 대규모 패턴과 행동을 파악하는 복잡성 예측, 또 일상생활 속에서 자연스럽게 의사소통을 할 수 있도록 돕는 것도 가능하다.

이렇게 AI는 발전을 거듭하고 있다. 그렇다면 머신러닝 아키텍처는 어떤 방향으로 발전해야 할까. 구글 AI 부문을 맡고 있는 제프 딘(Jeff Dean)은 지난 1월 튜링상 수상자인 데이비드 패터슨과 공동으로 논문을 발표했다. 이 논문에선 머신러닝 전문가와 컴퓨터 아키텍트가 머신러닝의 잠재력을 실현하기 위해 필요한 컴퓨팅 시스템을 공동 설계하도록 권하고 있다.

그는 또 지난 7월 베이징에서 열린 칭화-구글 AI 심포지엄에서 연구자가 학습시키고 싶다고 생각하는 모델 트렌드에 대해서도 언급했다. 그는 논문 아카이브 사이트인 아카이브(arXiv)에 올라온 머신러닝 논문 관련 건수 증가 추이가 1975년 이미 무어의 법칙 상승 곡선을 초과했다고 지적했다.

그는 논문에서 구글이 개발한 머신러닝을 위한 프로세서인 TPU(Tensor Processing Unit) 첫 세대인 TPI v1과 2세대인 TPU v2를 예로 들어 하드웨어 설계를 분석했다. 양쪽은 머신러닝 하드웨어 경쟁력을 유지하기 위해 적어도 2년간 설계와 3년간 도입 기간으로 이뤄진 5년이라는 시간축에 따라 상황을 파악할 필요가 있다. 그는 5년이라는 시간축을 놓고 머신러닝 하드웨어 설계에 대해 6가지를 들었다.

첫째는 학습. 머신러닝 워크플로우에서 가장 중요한 두 단계는 추론이나 예측이라는 생산 단계 그리고 강화 혹은 학습이라고 불리는 개발 단계다. 구글은 지난 2015년 TPU v1, 2017년 TPU v2, 올해 TPU v3을 발표한 바 있다. 제프 딘은 TPU v2 16대를 연결하면 구글 검색 순위 모델 학습 속도를 14.2배, 이미지 모델 학습 속도는 9.8배 끌어올릴 수 있다고 말한다. TPU v2는 원래 64대를 연결해 성능을 발휘하는 시스템 구성이지만 4분의 1 구성만으로 속도를 구현한 것이다.

물론 TPU는 값비싼 하드웨어지만 구글은 TFRC(TensorFlow Research Cloud) 프로그램 일환으로 머신러닝 연구를 진행하는 과학자에게 TPU 기기 1,000대를 무료 제공하고 있기도 하다.

두 번째는 배치 사이즈(Batch Size)다. 머신러닝을 진행할 때 중요한 설정 중 하나는 배치 사이즈, 일괄 처리 크기다. 학습에 이용하는 데이터를 작은 배치로 나눠 처리하는 것으로 크기 설정은 머신러닝 속도와 효율에도 큰 영향을 준다. 올해 기준으로 사용된 GPU는 32개 이상 미니 배치 사이즈로 작동하게 한다.

다음은 스파시티(Sparsity). 스파시티는 신경망이 가진 뉴런 중 일부만 반응하는 걸 말한다. 스파시티에는 다양한 형태가 있는 만큼 잘 이용해 데이터 중 0과 작은 값을 생략해 머신러닝의 복잡성을 줄일 수 있다. 보통 대규모 데이터셋에는 더 큰 모델 크기를 필요로 하지만 구글 브레인의 MoE(Mixed of Expert) 같은 경우에는 이전 방식보다 적은 수로 더 정밀도가 높은 학습이 가능하다. 실제로 구글이 보유한 영어에서 불어 번역 데이터셋 MoE 모델은 기존보다 6분의 1 수준 학습만 해도 구글 번역에 쓰이는 GNMT(Google Neural Machine Translation) 모델보다 1.01배 높은 결과를 나타냈다.

다음은 양자화. 양자화는 비용 효율적인 머신러닝 추론에 유용하다는 게 이미 검증됐다. 이미 훈련된 AI 입출력을 그대로 새로운 AI에 학습시키는 것도 효율을 높이는 데 소홀히 할 수 없는 것이라는 인식이 확산되고 있다는 설명이다.

다음은 소프트 메모리 네트워크. 논문에선 일부 딥러닝 기술은 메모리 액세스와 비슷한 기능을 제공할 수 있다고 말한다. 예를 들어 주목 메커니즘(attention mechanism)은 데이터 처리를 할 때 긴 시퀀스 사이 소스 중 선택한 부분에 주의를 지시해 머신러닝의 학습 성능을 개선하기 위해 활용한다. 기존 하드 메모리와 달리 소프트 메모리는 정보량이 많은 콘텐츠 선택을 위해 준비된 모든 항목에 대해 가중 평균을 계산한다. 다만 이는 복잡한 처리로 소프트 메모리 모델을 효율적으로 구현하는 방법에 대한 연구는 아직 진행되지 않고 있다.

마지막은 L2L(Learning to Learn)이다. 학습한 것으로부터 학습하는 것. 대규모 머신러닝 아키텍처 모델 디자인은 대부분 여전히 인간 전문가가 보유한 경험칙과 직관에 의존한다. 머신러닝이 학습한 것으로부터 학습하는 L2L은 인간 전문가가 의사 결정을 하지 않고 자동으로 학습을 할 수 있게 해주는 모델이라는 점에서 혁명적이다. 이 방법은 머신러닝 전문가가 부족한 문제를 해결하는 데에도 도움이 될 수 있다.

이 같은 자동화된 머신러닝의 경우 구글브레인 팀은 강화학습(Reinforcement Learning)을 이용한다. 정확성을 보상 신호로 이용해 시간이 지나면서 자기 개선을 배울 수 있다. NMT(Neural Machine Translation) 모델을 이용한 학습 실험에선 강화학습 기반 학습 속도가 65시간 빠르고 훈련시간도 27.8% 빨라졌다고 한다.

제프 딘은 미래 전망에 대해 대형 모델이지만 스파시티를 통한 활성화, 더 많은 작업을 해결하기 위한 한 가지 모델, 대형 모델을 통해 동적으로 경로를 학습하고 성장하는 것, 머신러닝 슈퍼컴퓨팅에 특화된 하드웨어, 하드웨어에 대한 효율적 맵핑이 가능한 머신러닝 등을 들었다.

추천기사