머신러닝AI2023. 3. 29. 00:54

 사실 이 ChatGPT와 알파고(AlphaGo)는 공통점이 있다. 둘다 사람이나 제대로 해낼 줄 알았던 일을 대규모 신경망으로 대량의 데이터를 집어넣어 해결한 셈이다. 그런데 여기에는 더 깊은 공통점이 있다.

 

 조금 비약하자면 바둑과 ChatGPT는 비슷한 일을 한다. 즉 어떤 흐름 속에 다음 수를 예측한다. 바둑은 이미 둔 흑백의 좌표 흐름을 따라 다음에 어디에 두어야 하는지 선택하는 문제이다. 바둑판 19*19의 좌표의 점 중 다음 둘 곳을 선택하는 문제이며 361개의 점 중 하나를 계속 선택해간다.

 

 ChatGPT의 직전 버전인 GPT-2는 흔히 vocab size(단어 사전 크기라고 해보자)라는 전체 token(단어라고 하자)의 종류가 대략 5만건 정도 된다고 알려져있다. 이 녀석은 바둑판의 361개 점이 아니라, 5만여개의 점에서 선택을 하는 것과 같다. 여하튼 token 하나를 뱉으면, 다시 또 그 다음 token을 맞추는 문제이다. 비슷하지 않은가?

 

 여기서 ChatGPT의 핵심 학습의 단순함은 그저 인터넷의 수많은 문장에서 한 단어(토큰)를 일부러 숨기고, 이 정답을 알고 있는 가려진 토큰을 신경망이 맞추는 방식으로 해결했다는데 있다. 알파고는 사람의 기보를 통해 이런 학습 문제를 해결했고, 나중에는 알파제로는 강화학습을 통해 해결한 셈이다. 그런데 여기 관련해서는 ChatGPT가 훨씬 유리한 것은 별 수고도 없이, 학습할 직접적인 정답지를 가지고 있다는 점이다. 바로 문장이 정답을 품고 있다. 빈칸을 맞춘다니, 이 얼마나 멋진 방법인가! 인터넷에 널린 문장에서 한 단어만 가리고 맞추면 상을 주고 틀리면 벌을 내리면 되는 것이다. 그것을 수천억 문장을 반복한다. 기보 수만개를 가지고 학습했던 알파고가 불쌍해지는 순간이다. 사람이 둔 기보는 구하는데 한계가 있다. 그런데 인터넷의 문장은 품질이 좀 문제일 수는 있지만, 차고 넘친다.

 

 물론 알파고와 ChatGPT는 모델의 구조가 다르기는 하다. ChatGPT는 Transformer라는 구조인데 알파고는 좀 다르다. 그래도 역시 수행하는 일은 별반 다르지 않다. 예컨데 정답 기보 데이터만 충분하면(ChatGPT는 5천억 token 이상의 데이터로 학습되었다) ChatGPT의 token을 각각 바둑판의 좌표에 대응시키고, 그 정답 기보로 학습시키면 ChatGPT는 그대로 바둑의 기보를 말처럼 읊는 모습이 되는 것이다. ChatGPT는 곧바로 바둑을 배우게 될것이다. (그런데 현실에서는 기보 데이터가 부족해 이게 잘 안될 수 있겠다)

 

 다시 정리해보면, 제한된 vocab size(단어사전크기)을 갖고 대량의 데이터를 구해서 정답을 제공할 수 있으면, 인간 수준으로 끌어올릴 수 있는 툴을 인간이 갖게 된 셈이다. 바둑은 361개짜리 vocab에 과거 수를 361까지 정도만 되는 문제이고, 사람의 대화는 5만개짜리 vocab(GPT-2)에 과거 token을 4096개(GPT-3.5) 정도 보면 되는 문제이다. 후자인 ChatGPT가 알파고에 비해 유리한 점은, 알파고와 적은 수의 기보와 강화학습에 의지해야 했던 점에 비해서, text corpus의 대규모 문장 속에서 빈칸 맞추기를 통해 직접 학습할 수 있었다. 이렇게 정답이 곧바로 판정되는 데이터는 학습의 지름길이다.

 

 그러면 이 두 AI 모델을 통해 바라볼 수 있는 미래는 어떤 것인가?

 

 넘쳐나는 인터넷의 데이터 관점에서는 이제 남은 것이 사진, 영상, 음성 정도를 활용 검토해 볼 수 있겠다. 별 전처리 없이 정답을 바로 알 수 있는 것은 사진이라면 특정 영역을 가리고 맞추는 방식이 아닐까? 영상도 어딘가 몇 frame 후의 장면을 맞추는 것이 가능해보인다. 음성은 뭔가 특정 구간을 가리고 역시 그 구간을 맞추는 형식을 상상해 볼 수 있겠다. 그렇게 학습하면 각기 이미지, 음성, 영상 유추가 가능해지리라 기대할 수 있다.

 

 그런데 이녀석들은 각기 vocab size(?)도 상당히 크고, 정답지도 균일하지가 않은 단점이 있다. ChatGPT(GPT-2가정)의 5만개 vocab size에 비교해보자. 사진을 특정 크기로 자르고 그 중 하나를 가린다면, 흑백 이미지라고 해도 20*20영역이면 벌써 20*20*256=10만개의 vocab size가 된다. 아 그러고보니 binary 이미지로 하면 꽤 잘 될수도 있겠다! 그래 인터넷 모든 사진을 일정 크기로 resize하고, 일정 크기로 자른 후 엄청나게 학습시키면 무언가 나머지 사진영역을 맞추는 무언가가 나올 수도 있겠다(문장에 기반한 것보다는 더 다양성이 커서 잘 안될것 같은 생각이 들지만)

 

 음성도 역시 적절한 크기로 잘라 똑같은 방식으로 할 수 있지 않을까? 물론 역시 사진과 비슷한 단점들이 있겠다. 이렇게 저렇게 사실 인터넷에 수도 없이 존재하는 사진/영상/음성 등을 생각해보면, 정말 "문장"을 가지고 학습하는 것은 신의 한 수 였다는 생각이 든다. 그렇게 알파고의 바둑이나 문장을 가지고 학습하는 방식이나 비슷하며, 오히려 할만한 문제였다는 생각이 드는 것이다. 인터넷의 대규모 데이터 중 가장 학습시키기 쉬운 것이 바로 문장 데이터였던 것이다! 그래서 돌이켜보면 대규모 언어 모델에서 이 방법을 처음 쓴 ELMO와 BERT를 거쳐 OpenAI의 ChatGPT가 제대로 학습시켜 상용화한 셈이다.

 

 그렇게 제일 유리한 문장 데이터를 통한 학습의 권좌를 빼앗기게 되었다. 하지만 여전히 미래는 열려있다. 이 대규모 정답지 데이터인 text corpus기반의 학습은 아마 여러가지로 다른 형태로 시도될 수 있겠다. 아무리 생각해도 이만한 데이터가 없다. 그리고 앞서 설명한 사진, 영상, 음성, 기타 인터넷에서 구할 수 있는 모든 것 중에 vocab size가 크지 않고, 데이터가 많으며, 과거를 참고해야할 token의 길이가 크지 않는 문제를 발견하는 회사는 ChatGPT의 다음 흐름을 쥐지 않겠는가?

 

 알파고와 ChatGPT는 그래서 위의 공통된 특성을 갖고 있었고, 유사한 특성을 갖는 다음 모델이 그 자리를 찾아 헤매이지 않을까? 그 모델이 할 수 있는 일이 다음 AI가 히트를 칠 능력이 되지 않을까? 이렇게 상상해볼 수 있겠다.

 

반응형
Posted by 작동미학