[기고] 일반인공지능(AGI)을 향하여

A Generalist Agent: Gato

2022-06-17     CCTV뉴스 편집부

[글=노규남 | (주)위블 CEO]
bardroh@weable.ai

 

알파고로 유명한 딥마인드가 새로운 모델을 공개했다. 이번에 내놓은 모델은 ‘Gato’라는 이름인데, 혹자는 이를 ‘AI 모델을 위한 스위스 군용 칼(Swiss army knife for AI models)’이라고 부르기도 한다.

스위스 군용 칼, 통칭 ‘맥가이버칼’은 도구 하나로 칼, 드라이버, 가위, 톱, 깡통 따개, 와인 오프너 등 다양한 용도로 사용할 수 있는데, Gato도 마찬가지로 하나의 모델로 이미지 캡셔닝, 텍스트 생성, 게임 플레이 등 다목적으로 사용할 수 있기 때문이다.

이처럼 Gato는 604개의 task를 단일 모델로 처리하는 멀티모달(Multi-modal), 멀티태스크(Multi-task) 모델로, 다양한 목적으로 활용할 수 있기 때문에 딥마인드에서는 Gato의 논문을 발표하면서 ‘A Generalist Agent’라는 부제를 붙였다.

 

Gato는 무엇이 다른가

다른 인공지능 모델들은 대개 특정 분야에서 SOTA(State-ofꠓthe-Art: 최고 수준) 레벨의 결과를 내는 것을 목표하고 있다. 예를 들어 ImageNet 데이터 분류의 경우 인간이 대략 5%의 오류를 낸다고 알려져 있는데, 이 부문에서는 합성곱 신경망(CNN)의 다양한 모델들이 오류율에서 인간을 능가한지 이미 몇 년이 되었다.

이 정도 수준이 된다면 사람이 하던 이미지 분류를 기계에게 맡겨도 효율이 떨어지지 않으며, 오히려 사람이 한 것보다 더 좋은 결과를 기대할 수 있으므로 상업적으로 AI를 사용하는데 전혀 문제가 없을 것이다.

그런데 Gato는 좀 다르다. Gato는 단일 모델로 600개가 넘는 task를 수행할 수 있으나, 대부분의 task가 훈련 데이터보다 못한 성능을 보인다. 즉 SOTA 레벨의 훈련 데이터로 학습시켰다고 하더라도 그 수준에 근접하는 task는 많지 않으며, 아무리 잘 하더라도 훈련 데이터 이상의 성능을 보일 수는 없다.

다시 말해 Gato는 단일 모델로 많은 task를 수행할 수 있으나 각각의 task를 최고 수준으로 수행할 수는 없는 것이다. 더불어 근래 계속 발표되고 있는 초대형 모델들에 비하면 파라미터의 숫자가 현저하게 적어서 12억 개밖에 되지 않는다(참고로 GPT-3의 파라미터 숫자는 1750억 개나 된다).

따라서 이 모델을 당장 실무에 적용하는 건 별로 좋은 생각이 아닐 것이다. 그런데 딥마인드는 왜 이것도 저것도 아닌, 이렇게 애매해 보이는 모델을 만든 것일까?

x축은

 

전이 학습(Transfer Learning)

필자의 의견을 말하자면, 현재 Gato는 각 task들에 대해서 SOTA를 달성하는 걸 목표하고 있지 않는 것으로 보인다. 시간이 지나고 나면 여러 가지 task를 수행하면서도 각각의 task에 대해 SOTA 레벨의 결과를 내는 모델을 만들 수도 있겠지만 지금은 그것보다 더 중요한 목표가 있다.

Gato가 확인해 보려고 하는 것은 사람이 배우는 것처럼, ‘한 종류의 task에서 얻은 지식을 다른 종류의 task로 transfer할 수 있는가’라는 질문에 대한 답이다.

AI 모델들은 점점 커지고 있고, 이들을 학습시키는 데는 많은 데이터와 시간이 든다. 그렇기 때문에 매번 특정 task를 수행하기 위한 모델을 만들 때마다 이들을 학습시키는 것은 너무 비효율적이다.

이에 대응하는 방법으로 한 모델을 미리 학습시킨 후 레이어를 일부 변경하거나 목표하는 데이터로 미세 조정(fine-tuning)하면 학습 시간을 대폭 단축할 수 있는데 이러한 학습 방법을 일괄하여 전이 학습(Transfer Learning)이라 한다.

쉽게 말해 전이 학습은 한 모델에서 학습한 지식을 다른 모델이 사용할 수 있도록 하는 것이다. CNN의 영상이라고 한다면 가로선, 세로선, 대각선 등 단순한 패턴부터 원, 삼각형, 네모 등 점점 더 복잡한 패턴들을 학습할 수 있는데, 이런 패턴들은 대부분의 영상에서 공통적으로 나타난다.

따라서 모든 것을 처음부터 학습하지 않고 미리 학습시킨(pre-trained) 모델을 변경해서 원하는 task에 적용하는 것이 최근의 추세다.

하지만 전이 학습이 모두 긍정적인 효과만 보여주는 건 아니다. 하나의 task를 학습한 후 다른 task를 학습할 때 이전 학습이 현재의 학습에 도움을 준다면 이를 positive transfer라 할 수 있을 것이다.

보통 NLP의 pretrain 과정이 대표적인 예이다. pretrain을 통해 각 단어 간의 관계에 대해 미리 학습하기 때문에, 그 이후의 fine tuning을 통해 목적 task를 학습할 때는 훨씬 빠르게 성능을 끌어올릴 수 있게 되는 것이다.

반대로 하나의 task를 미리 학습했는데 이것이 이후의 다른 task에 부정적인 영향을 준다면 이를 negative transfer라 한다. 하지만 대개 비슷한 종류의 데이터로 pretrain하면 좋은 결과가 나오는 것이 보통이다. 이를 뒤집어 말하자면 다른 종류의 데이터를 가지고 학습하면 대개 안 좋은 결과가 나온다는 것이다.

Gato가 테스트하려고 한 것은 매우 다른 종류의 데이터, 즉 멀티모달(Multimodal) 데이터 간에서도 이런 지식 전달(Knowledge Transfer)이 가능할 것인가라는 점이다. 인공신경망이 단어와 이미지 간의 관계를 학습할 수 있다는 건 CLIP 등 여러가지 모델들을 테스트하여 확인할 수 있었다.

하지만 아타리 게임을 플레이하는 데도 이런 데이터로 pretrain하는 일이 도움이 될 것인가? 로봇 팔을 조작하는 과제에 대해서는 어떤가? 다시 말해 한 task에 대한 학습 결과가 매우 다른 종류 task의 학습에 대해서도 positive하게 transfer될 수 있을 것인가? 딥마인드의 논문이 집중하는 것이 바로 이 부분이다.

Gato의

 

Gato의 학습 방법

Gato는 최근의 MLM(Massive Language Model)에서 학습 아이디어를 얻었다고 밝혔다. MLM에서는 처음부터 원하는 데이터세트를 학습시키지 않고, 대신 아주 많은 양의 데이터세트를 가지고 pre-training한다.

이때 연이은 두 문장 간의 관계가 무엇인지를 예측하거나, 문장의 일부 단어를 가리고 이 단어를 예측할 수도 있고 또는 현재 문장의 다음에 나올 단어가 무엇인지 예측하는 방식으로 학습한다. 이렇게 학습시킨 모델은 각 단어 간의 관계와 해당 단어가 어떤 위치, 어떤 context에 있을 때 어떤 의미인지를 인지하게 된다. 이후 타깃이 되는 데이터세트로 학습하면(fine tuning) 적은 시간을 학습하더라도 좋은 결과를 얻을 수 있게 된다.

Gato는 이 방식을 자언어가 아닌 다른 종류의 데이터들에도 범용적으로 적용하려고 시도한 모델이다. 텍스트는 SentencePiece로 인코딩한 후 tokenize하고, 이미지는 위에서 아래, 왼쪽에서 오른쪽 순서로 16x16의 패치로 나눈 후 -1~1까지의 값으로 정규화하고 패치 크기의 제곱근으로 나눈다.

이산 데이터(discrete data)는 0~1023까지의 정수 값의 배열로 바꾼다. 연속된 값은 -1부터 1까지의 실수 값 배열로 바꾼다. 이런 식으로 모든 종류의 데이터를 token의 sequence로 동일하게 변환한 후 모델에 주어서 학습하게 된다.

Gato는 디코더만을 갖는 Transformer이므로 GPT-3에 가까운 모델인데, GPT-3가 현재 context에서 다음에 나오는 단어를 예측하는 것처럼 Gato 역시 현재의 sequence에서 다음에 나올 token이 무엇인지를 예측한다.

여기서 예측하는 token은 각 task의 output에 국한한다. 예를 들어 아타리 게임을 플레이할 때 현재 화면에 대한 조작 액션, 텍스트라고 한다면 다음에 나올 단어를 예측하는 것이다. 로봇 팔을 움직이는 시뮬레이션이라면 역시 현재의 상황에 따른 로봇 팔의 액션을 예측한다.

사전 학습 시 주어진 데이터로 지도 학습(supervised learning)하게 되므로 학습하는 데이터는 모범 답안에 가까운 것이어야 한다. 아타리 게임 환경에서는 성공적으로 게임을 잘 플레이하는 데이터를 주어야 하고, 로봇 팔 시뮬레이션도 성공적으로 팔을 움직여 주어진 과제대로 물건을 이동하는 데이터를 사용해야 한다.

지도 학습에서는 모델이 주어진 답안에 최대한 가까워지는 방향으로 학습하므로 학습시키는 데이터의 품질이 매우 중요하다.

 

Gato의 결과와 남은 과제

이렇게 해서 Gato를 학습시킬 경우 단일 모델로 여러가지 게임을 플레이하고, Generative하게 문장을 생성하여 사람과 대화할 수 있을 뿐만 아니라, 이미지에 캡션을 달거나 로봇 팔을 조작하는 일이 모두 가능하다. 다만 앞서 언급한대로 대부분의 task들은 훈련 데이터의 수준에 미치지 못한다.

논문에는 각각 다른 task에서 얻어진 지식의 전달에 대한 흥미로운 실험이 기록되어 있는데, 데이터들을 pretrain할 때 ▲모든 데이터로 학습하거나(all data) ▲조작에 대한 task 데이터만 학습하거나(same domain only data) ▲텍스트와 이미지의 데이터로만 학습하거나(no control data) ▲마지막으로 사전 학습을 시키지 않은(scratch) 모델들에 대해 네 가지 조작 task를 테스트한 결과가 나와 있다.

그래프를 보면 Atari Boxing을 제외한 나머지 task들에 대해 전부 모든 데이터로 학습한 모델, 조작에 대한 task 데이터만으로 학습한 모델, 텍스트와 이미지 데이터만으로 학습한 모델, 사전 학습을 시키지 않은 모델 순으로 성능이 좋았다는 것을 알 수 있다. 즉, Cartpole 게임을 플레이하는데 이미지나 텍스트 데이터가 도움이 되는 positive transfer가 나타난 것이다.

반면 부록에 추가된 다른 그래프에서는 로봇 팔이 블록을 쌓는 과제에 대해 ▲조작 task의 데이터로만 학습한 모델 ▲DM Control Suite의 데이터로만 학습한 모델 ▲모든 데이터로 학습한 모델 ▲텍스트와 이미지로만 학습한 모델 ▲사전 학습을 시키지 않은 모델 순으로 성적이 좋았다는 결과가 나왔다.

이 경우는 모든 데이터로 학습한 것보다 조작 데이터만 사용하는 편이 성능이 좋다는 것이다. 즉, 텍스트나 이미지 데이터는 오히려 모델의 성능을 저하시켰으므로 negative transfer가 나타났다고 볼 수 있다.

로봇

Gato에 대한 사람들의 의견이 엇갈리는 건 이런 일관되지 못한 결과에도 일부 기인한다고 볼 수 있다. 일부에서는 Gato의 접근 방법이 인공일반지능(AGI: Artificial General Intelligence)을 구현하는데 전혀 도움이 되지 않는다고 비판하는 반면, 다른 사람들은 Gato가 AGI의 구현에 있어 혁명적인 돌파구라고 평가하기도 한다.

어떻게 본다면 Gato는 AGI의 한 프로토타입을 제안한 것이지만, 아직 그 효용성에 대해서는 의문이고, 풀어야 할 과제도 여전히 많다. 과연 Gato같은 모델이 더 발전하면 사람이 자연어로 지시하는 모든 업무를 수할 수 있는 범용 에이전트, 또는 AGI가 출현할 것인가? 그때까지 얼마나 시간이 걸릴 것인가? 지금은 누구도 예단할 수 없다. AGI에 대한 인간의 연구는 이제 시작일 뿐이다.