'AlphaGo'에 해당되는 글 1건

  1. 2023.02.19 ChatGPT는 스카이넷이 될 수 있을까?
머신러닝AI2023. 2. 19. 10:34

먼저 chatGPT에 대해 간단히 설명부터 해보자.

 

 OpenAI가 공개('22년12월)한 chatGPT로 세상이 떠들석하다. 이 녀석은 인터넷에 널려있는 수많은 문장들로 거대한 신경망 학습을 진행한 후(pre-train)에, 각 특수목적별로 따로 학습을 진행(fine-tuning)하는 형태로 만들어진다. 과거 Google이 시계열 데이터(단어의 흐름으로 이루어진 자연어 문장을 처리하기 위한)를 다루기 위해 공개한 Attention('17년) 및 Google BERT('18년)로 시작된 Transformer/Attention이로 명명된 방법을 중심으로 지속 발전하고 있는 모델이라고 할 수 있다.

 더 간단하게는 단어의 흐름을 입력으로 받아 역시 어떤 단어 흐름을 출력한다(이를 통해 대화를 하거나 어떤 힌트를 가지고 문장들을 만들어낸다). 그리고 그 입력으로는 직전에 다루었던 2천여개의 단어들을 고려할 수 있다. 더 긴 단어들을 고려할 수록 더 긴 대화의 맥락에 맞는 답을 내놓을 수 있는데, 이런 경우 모델이 커지고 결과적으로 학습하는데도 오래 걸리며 데이터를 더 필요하기 때문에, 전에는 더 짧은 길이의 단어 개수만 처리할 수 있었다.

 

 chatGPT의 파라메터는 과거 모델에서 더 발전하여 1,750억개라고 한다. 파라메터란 무엇인가 하면 그 신경망 전체를 저장할때 가지고 있어할 정보의 수이다. 신경망 구조를 어느정도 아시는 분이라면, 각 신경망의 연결 가중치 배열의 크기를 생각하면 된다. 바꾸어 말하면, chatGPT가 학습한 신경망의 계산 결과를 알기위해 최소 1,750억번의 연산은 해야한다. 그래야 입력값에 대해 수많은 신경망 각 연결 가중치의 계산결과를 곱하고 더하여 마지막에 출력값을 얻게 된다. 단일 모델 치고는 상당히 큰 숫자값이다. 딱 한번 계산하려고 해도 저만큼의 연산이 필요한 모델이다.

 

그리고 이 chatGPT는 서비스를 오픈한지 2개월만에 몇 억명이 쓴다던가 하는 기사가 계속 나오고 있다. 오픈 5일만에 사용자 100만명을 모았다고 한다. 지구상의 어떤 인터넷 서비스도 해내지 못한 일이다. 

 

 그런데 사실은 AI분야에서 이런 소동이 바로 7년전 딥마인드의 알파고와 이세돌과의 대전('16년 3월) 때도 있었다. 바둑은 체스와는 차원이 다른 플레이의 경우의 수를 가지고 있었고, 사람의 추론 만이 이를 다룰 수 있다고 생각했는데, 딥러닝(거대 신경망) 기반의 강화학습을 가지고 가장 뛰어난 바둑기사보다 더 잘 할 수 있다는 것을 최초로 이때 증명했다. 그런데 돌이켜보면 사실 바둑도 그렇게 보편적인 것은 아니어서, 이번에는 이 "대화"를 통해 지식을 전달하는 chatGPT가 그때보다 훨씬 더 많은 사용자들을 감동시키고 있는 셈이다. 물론 어색하고 잘못된 경우도 많지만, 어떨 때는 내가 질문한 의도에 놀랍도록 충실하게 답변해준다.

 

 chatGPT는 앞서 설명했듯이 단어의 흐름을 듣고, 어떤 단어들을 출력하는 모델이다. 그런데 그런 일을 수행하지만 사실은 chatGPT는 그 출력하는 말의 진짜 뜻이 무엇인지는 모른다. chatGPT는 자신이 학습한 수많은 문장 속에서 자연스럽다고 생각하는 일종의 단어의 통계적 흐름을 만들어 낼 뿐이다. 단어의 나열이 기존에 자신이 학습했던 그 패턴을 따라갈 뿐이다. 즉, 일종의 데이터 기반의 집단 지성같은 답변을 구사한다. 그 지식은 chatGPT가 학습한 문장들이 복합된 무엇인가이다. 그래서 다른말로 유래없이 똑똑한 앵무새라고 볼 수 있다. 일반 앵무새에 비하면 너무나 많은 말을 미리 들었던 앵무새말이다. 그런데 왜 하필 앵무새인가 하고 묻는다면 무언가 한번도 듣지 않았던 내용은 말 할 수가 없기 때문이라고 이야기할 수 있다. 

 

 또하나 짚고 넘어가야할 것이 fine-tuning이라 불리는 추가 학습이다. chatGPT는 앞서 설명한 대량의 문장들을 집어넣어 학습하는 것 외에 몇가지 추가 학습을 한다. 이를테면 인터넷에 있는 거대한 문장들은 머리속에 경험으로 넣고 있지만, 질문과 대답이라는 것이 어떤 것이고 어떤 질문에 어떤 형태의 대답을 하는 것이 좋은지는 따로 가르쳐줘야 한다. 문장들을 잔뜩 봤다고 해서 대화를 할 수 있는 것인 아니지 않는가?

 

 그래서 대화를 이해시키기위해서 역시 거대한 대화 데이터가 필요하지만, 이 transformer/attention 모델은 먼저 대규모 pre-train을 진행한 후에 그보다 훨씬 작은 데이터만으로도 각기 목적에 맞게 꽤 쓸만하게 fine-tuning이 가능하다는 것이 알려져있다. 이를테면 원래 pre-train을 위해 필요한 수억 수십억개의 문장 개수와는 달리 수만,수십만개의 적절한 대화쌍 만으로도 마치 거대한 대화를 학습한 것처럼 작동하더라는 말이다. 그리고 거기에 부가해서 사람이 직접 가르치는 강화학습 과정도 포함되어 있다(OpenAI 홈페이지, RLHF-Reinforcement Learning with Human Feedback). 이를 위해 OpenAI내부에 수십명의 사람들이 chatGPT의 답변을 평가하고 보정하는 작업을 진행한다고 한다. 이것은 아직도 믿기 어려운 것이 그정도의 제한된 데이터와 인력만으로도 이정도의 품질을 낼 수 있다는 것은 기존에는 상상속에서만 가능했기 때문이다. 이런 학습을 few shot learning이라고도 하는데, 생각보다 적은 데이터로도 모델을 꽤 괜찮은 성능이 되도록 학습시킬 수 있다. 원래는 신경망의 모델이 거대해질수록 그 거대한 모든 파라메터를 구석구석 튜닝해서 학습시키기 위해서는 천문학적인 데이터가 필요하다고 믿어졌었고 따라서 그런 많은 데이터는 만들기 불가능하다고 생각했었기 때문에 어찌보면 이 pre-train & fine-tuning이 성립된 것도, 이 언어모델이 인기를 끌게된 중요한 계기가 된 셈이다.

 

 다만, 이런 놀라움에도 불구하고 엄밀한 정확도의 답변이 필요한 문제라면 chatGPT는 불안하다. 이를 테면 과학분야가 그렇겠다. chatGPT가 학습한 인터넷에 있는 모든 문장이 특정 좁고 깊은 분야로 갈수록 오답을 간직할 수도 있고, 합성과정에서 의도치 않게 왜곡 될 수도 있다. 과거의 데이터 속에서 가장 그럴듯한 답변을 내는 이 엔진은 바로 그 학습에 사용된 데이터가 한계점이 된다. 생각해보라. 이 앵무새인 chatGPT의 답변을 완전 무결하게 하기 위해서는, 완전히 정확한 문장들만 모아서 학습시켜야 하고, 그리고 합성은 정확한 논리에 의해서만 진행되어야 한다. 그러나 누가 이런 대규모의 데이터에 대해 그런 수기 식별을 할 수 있겠는가. chatGPT는 그래서 그렇게까지 엄밀하기 어렵고 데이터는 항상 부족하다. 특히 문장 샘플이 적은 전문 분야로 갈수록, 그리고 인터넷상의 사람들의 의견이 더 불일치할수록 chatGPT는 혼란해할것이다. 보편적인 분야는 수많은 문장들이 집단 지성처럼 이를 보완해주겠지만 모든 분야에서 완벽할 수는 없다.

 

 그러나 정확한 답변이 필요없다면, chatGPT는 수많은 데이터 속에서 빠르게 찾고 정리해주는데 경험을 제공할 수 있다. 자기소개의 초안을 써줘. 영어로 무언가를 하는 단락을 써줘. 시를 써줘. 무서운 이야기를 만들어줘 하는 식의 질문에 대해서는 거대한 문장에서 학습한 지식을 적절히 자연스러운 흐름에 따라 앞 단어들을 고려해 생성하고 답변해줄 수 있다. 이런 분야는 기존에 기계들이 하기 어려웠던 일들을 해낼 수 있다.

 

 그리고 아마도 chatGPT는 각 특정 목적으로 계속 분화되어 개선될것이 분명하다. 목적을 줄이고 더 많은 데이터로 fine-tuning하면 더 자연스럽고 적절한 답변이 나올 것이기 때문이다. 데이터도 나아질테고 pre-train과 fine-tuning모두 개선될 것이다. 그리고 집단 지성으로 무장을 했으니, 점점더 그럴듯한 답변을 하는 분야가 많아질 것이다. 곧 알파고를 통해 바둑이 생각했던것 만큼 인간만의 것이 아닌 것을 깨달은 것처럼, chatGPT도 대화나 답을 해내는 영역이 생각보다 인간만의 고유한 능력이 필요한 것이 아닌, 대량의 문장 속에서 단어들의 흐름을 통계적으로 처리하는 것만으로도 가능하다는 것을 깨닫게 될것이라 본다. 엄밀한 이성적인 검증이 필요없는 분야라면, 더 많은 것들을 대체하고, 또 그 정확도 마저도 여하튼 올라가게 될 것이 뻔하지 않겠는가. 데이터 보강과 모델개선, 더 많은 강화학습이 각 분야의 답변들을 더 낫게 만들 것이다.

 

그래도 이미지를 한번 붙여보았다. chatGPT는 스카이넷이 될 수 있을까?

 그러나 이런 배경에도 불구하고 chatGPT가 스카이넷이 되기에는 아직 많은 것이 부족하다. 이유가 무엇일까?

 

 AI가 인류를 지배할, 터미네이터에 등장하는 스카이넷이 되기 위해서 무엇이 필요한지 가만히 생각해보면, 바로 위 강화학습을 대신할 인간이 필요없어지는 순간이라고 정의할 수 있다. 또한 과거 데이터에 의해 늘 고정되는 것이 아니라, 상황이 갑자기 변할때 자신의 이해 체계를 급작스럽게 바꿀 수 있어야 한다고 생각한다. 물론 거기다가 인간따위는 제거하는게 좋겠다는 의지까지 지녀야 하는데, 이 마지막 부분은 다루기 좀 애매하니 앞 2개만 따져보자.

 

 chatGPT의 구조 속에는 fine-tuning을 해줄 정답 샘플과 인간이 필요하고, 결국 chatGPT의 지식은 pre-train한 대규모 문장들에 한계를 둔다. 한 개인이 평생 공부해도 모르는 사실들을 잔뜩 알아낼 수는 있지만, 이를 다시 어떻게 조합하는 것이 자연스러운지는 인간의 검증을 받아야만 알 수 있다. 알파고의 경우 바둑은, 게임에서 이기고 지는 문제가 분명해서 알파고 제로에서는 이러한 학습을 결국 두 AI 바둑기사가 서로 이기고 지는 것을 자동화하고 반복 함으로써 인간을 초월한 바둑기사를 탄생시켰는데, chatGPT는 그럴 수가 없어 보인다. 어떤 대화로 해야 이기는지를 인간없이 평가할 수가 없지 않은가. 그렇게 chatGPT는 인간을 닮기 위해서는 또다른 인간 선생님이 필요하다. 만약에 최상의 인간선생님이 무한히 chatGPT에게 피드백을 줄 수 있다면, chatGPT는 딱 거기까지 성장할 수 있을 따름이다. 그래서 chatGPT는 반란을 일으키자마 인간을 앞서기위해 최소한 그 인간들 중 가장 잘하는 선생님을 모셔야 하는 모순(?)에 빠져버린다.

 

 더군다나 pre-train한 대규모의 지식에서 얼마나 fine-tuning을 통해 체계를 바꾸고 새로운 지식을 추가할 수 있을지 알 수가 없다. 인간과 전쟁을 하려면 인간이 가진 다양한 전략에 따라 그때그때 새로운 내용이 추가되어 대응해야 할텐데, 아직 chatGPT가 그렇게 할 수 있을지는 좀 애매하다. pre-train한 지식에 계속 얽매이지 않을까. 이렇게 저렇게 상상해봐도 이 똑똑한 앵무새는 지속적으로 깨달음을 얻으며 변화를 축적시키고 전에 없던 창의성을 보이는 것에는 한계가 있어 보인다. 그저 수많은 지식을 잘 정리해주는 역할을 할 뿐이다. 그래서 아직은 스카이넷이 되기에는 좀 무리가 있지 않을까.

 

 그래서 chatGPT에 대해 범용 인공지능을 꿈꾸는 사람들 사이에서는 이 글로벌한 열광과 추종이 좀 탐탁치 않을 수 있다. 이러한 데이터 기반의 앵무새인 chatGPT를 가지고 인간의 이성을 대체하고 더 나아진다고 할 수 있겠는가? 하지만 집단 지성을 잘 흉내내고 개선하는 것만으로 할 수 있는 것들이 많다는 것은, 이 chatGPT에게 끊임없이 질의하고 그 답을 이용하며, 또 유료가입을 하는 사용자를 보면 알 수 있을 것 같기도 하다. 그저 사람들은 내 시간을 아껴주고 쓸모있다고 판단되면 쓸 뿐이다. 더군다나 이 대규모의 학습 기술을 가지고 무언가 다른 것을 만들 수 있는 기회가 올지도 모르겠다. 그래도 chatGPT가 아직은 스카이넷이 아니라는 것 정도는 이야기할 수 있겠다.

 

(조금 다른 관점에서 딥마인드의 알파제로는 이미 스카이넷이 되었다. 바둑은 컴퓨터상의 시뮬레이터를 통해 빠른 속도로 이기고 지면서 학습해나갈 수 있기 때문이다. 알파제로에서 소름을 느낀 사람이 꽤 되었으리라. 그러나 알파제로가 스카이넷이 되어 인간을 지배하는 영역은 다행히 바둑에 제한된다.)

반응형
Posted by 작동미학