2023년 3월 5일 일요일

ChatGPT 이모저모 - (1) 서론 및 기술적 원리 개괄

대화형 인공지능 ChatGPT를 처음 접한 것은 작년 12월 초였는데, 당시에 워낙 높은 성능과 창의적인 과제 수행 덕분에 하루종일 이것만 가지고 놀게 되는 등, 걱정스러울 정도로 재미있는 바람에 하루이틀 시험하다가 오히려 심리적 거리를 두고 접어 두었었다. 그때 열심히 사용해 보고, 보다 최근에 큰 화제가 된 후 다시 사용해보며 느낀 점들을 정리해 보고자 한다. 작동 원리에 대한 이야기는 가장 단순화된 레벨에서는 아마 대체로 정확할 테지만, 기술적인 세부는 맥락에 다소 어긋나거나 부정확할 수도 있다. 따라서 이번 포스트를 제외한 이 시리즈의 내용 대다수는 실제 기술적인 원리보다는, 철저히 사용자 입장에서 느낀 점을 다룰 것이다.


또한 이 글을 작성하는 사이에 이미 ChatGPT뿐만 아니라 각 유수 기업에 의한 대화형 거대언어모델들도 속속 공개되었고, 각 부문에 특화된 서비스들도 구름떼처럼 등장하고 있다. 특히 가장 최근에는 거대언어모델이 검색엔진 Bing에 결합되어서 실시간 정보도 처리해 주면서, 정말로 검색을 효과적으로 보완하는 역할을 시범적으로 해주고 있다. 또한 바로 며칠 전인 3월 1일에는 ChatGPT의 API가 공개되어, 정식 버전이 여러 가지 서비스에 활발하게 이식될 길이 열렸다. 또한 12월 초에 공개되었을 때에 비해서 쿼리를 처리하는 비용을 90% 이상 절약했다고 한다.

(관련 openAI 아티클: 링크ChatGPT를 누구나 자신이 개발하는 서비스에 이식하여 활용할 수 있도록 API (application programming interface) 를 공개한 OpenAI의 소식.)


이렇게 급변하는 상황에서, ChatGPT가 거대언어모델의 대표 예시로 나름 오래 갈 것으로 상정하고 그 특징 및 장단점을 논하는 이 글의 접근은 거대언어모델에 대한 general perspective라기에는 벌써 퇴색되는 감이 있다. 독자분들의 너른 이해를 구한다. 그럼에도 불구하고 ChatGPT는 광범위한 대중적 관심뿐만 아니라 산업계의 비상한 관심을 끌 만큼 충분히 고성능이며, 그러면서도 특정한 목적보다는 격식있는 언어 일반에 대한 능력을 갖추고 있으므로, 앞으로 나올 여러 언어모델들의 대표이자 하나의 전형이라고 여기며 생각해보는 것은 여전히 의미가 있다.

계획 중인 목차는 다음과 같으며, 이 포스트에서는 '2. 기술적 원리 개괄'까지 다룬다.


1. 서론
2. 기술적 원리 개괄
3. 사용자 입장에서의 특징 및 장단점
    (1) 조리있음, 논리적 상상력, 그리고 강박적 우호성
    (2) 주요 한계
4. 우려
    (1) 자기확신과 인지편향의 강화
    (2) 신호와 잡음의 구분이 어려워지는 문제
5. 해석
    (1) 생성 인공지능: 우연성 예술과 합리적 조수 사이에서
    (2) '의미 엔지니어링'으로서의 거대언어모델
    (3) 텍스트 바깥에는 아무것도 없다?
6. 기타


2. 기술적 원리 개괄

먼저 기술적 원리를 짧게만 정리해보면서 이하에 나올 내용들을 예고해본다. ChatGPT는 AI 중에서도 거대언어모델 (Large Language Model)의 일종이다. 대부분의 거대언어모델, 특히 ChatGPT가 직접적으로 기반을 두고 있는 GPT의 기본적인 원리는 바로 다음 토큰 예측 (next token prediction) 이다. 토큰이란 텍스트를 적당한 기본 구성 단위로 나누어서, AI가 다룰 수 있게 번호를 부여한 것을 뜻한다. 즉 단순화하자면 다음 단어 혹은 다음 문장 예측이라고 할 수 있다. 이로써 어떤 글이 주어졌을 때 그 글의 다음에 등장할 법한, 즉 가장 그럴듯한 문장을 예측한 후 확률에 따라 생성해서, 가장 자연스럽게끔 글을 완성시켜 주게 된다.

이렇게 확률적 예측이라는 학습 방식뿐 아니라, 거대언어모델의 성공에 관여하는 또다른 요소는 모델을 이루는 인공신경망이 커다란 비선형시스템으로서 수많은 함수를 표현해 낼 수 있는 능력 (expressibility) 그 자체, 그리고 커다란 학습 데이터이다. 후술하겠지만 더 세부적으로는, 언어라는 시계열 정보를 멀리까지 (long-range) 조리있게 만들어낼 수 있는 능력은 뉴럴 네트워크 중에서도 트랜스포머 구조와, 그것을 훈련시키는 어텐션 방법에서 주요하게 기인한다.

하여튼 이것들을 이용해서 이 정도까지 long-range로 조리있는 언어를 만들어낼 수 있으며, 상당수준의 창의적인 과제까지 수행해준다는 점은 생각할수록 흥미로운 일이다. 고성능 언어모델의 등장을 통해서 언어현상에 대한 구체적인 언어학적 설명과 별개로, 그것들이 정확히 얼만큼 신기한 현상인지에 대한 사람들의 암묵지적 이해 (다르게 말하자면 ‘감’) 역시 발전할듯하다.

이미 2년 정도 된 이야기지만, 사용자가 스토리를 만들면 GPT-3가 스토리를 이어서 쓰는 식의 던전 탐험 게임인 ‘AI Dungeon’이 화제가 되기도 했었다. 이하에 자세히 쓰겠지만, ChatGPT가 화제가 되는 방향은 꽤 오랜 시간 동안 사실관계 대답 및 자료 해석 위주로 과도하게 쏠려 있었다. 그런데 이 AI Dungeon이야말로, 다음 내용 예측이라는 기본 원리에 의해 ‘논리적이면서도 창의적인’ 특징이 창발되는 GPT의 특징을 단적으로 예고하는 서비스였던 것 같다. 말하자면, 결국 공부와 일 이전에 놀이와 재미가 있는 것이다.

그런데 만약에 이렇게 ‘다음 내용 예측’ AI를 이용해서 원하는 출력을 얻으려면, 인풋을 상당히 sophisticated하게 디자인해서 넣어야 한다. 내가 원하는 답을 AI가 다음 문장으로 출력해줄 법한, 어떠한 ‘구멍 뚫린’ 글을 내가 마련해야 된다는 것 아닌가. 이것은 마치 사람한테 직접적 명령이 아닌 간접적인 수단만으로 어떤 행동을 유도하는 것처럼 비효율적이고 어렵다. 만약에 우리가 AI한테 무언가를 물어볼 때에 이렇게 어렵게 머리를 써서 하지 말고, 사람한테 명령을 하듯이 직접 명령하는 게 기본이 되면 편할 것이다.

다들 알다시피 ChatGPT에서는 이것이 가능하다. 어떻게 한 것일까? 그 원리 자체는 생각보다 간단하다. ChatGPT도 기본적으로는 위의 GPT와 똑같이 어떤 텍스트의 다음 내용을 예측하는 방식으로 작동한다. 다만, 그렇게 해서 완성되는 글이 ‘한 사람이 쓰는 글’이 아니라 ‘두 사람의 문답 반복’ 즉 dialogue의 형태를 갖는 글이 되게끔 사람들이 직접 평가하고 보상을 주어서 강화학습을 한 것이다. 이를 RLHF (Reinforcement Learning from Human Feedback) 라고 한다.

(관련 openAI 아티클: 링크. ChatGPT의 핵심 원리인 RLHF를 설명하는 OpenAI의 논문(?) 웹사이트. 정확히는 InstructGPT에 대한 설명이다.)



듣기에는 간단하지만, 아마 실제로 지금의 성능을 얻기 위해서는 엔지니어링적 노력과 노동작업이 매우 많이 들어갔을 것이다. 특히 유해한(toxic) 출력을 걸러내기 위한 케냐 노동자들의 저임금 노동과 정신건강에의 악영향은 최근에 거대 AI 모델의 어두운 면으로 잘 알려지기도 했다.

물론 질문에 대한 답변 형태로 출력을 하지 말고, 그냥 한 명의 화자에 의한 글을 완성하는 셈 치고 써 달라고 지시하면 잘 되기는 한다. 그렇지만 이건 후술할 in-context learning 등으로 인해 ChatGPT의 성능이 워낙 좋은 덕분에 다양한 과제에 대한 capability가 있어서 그런 것이지, 기본적으로 확실한 작동 모드 같은것이 존재하여 과제 종류에 따라 전환되는 것은 아닌 듯하다.

즉, ChatGPT를 질문에 대해 뭐든지 답변을 해 주는 AI라고 받아들이기보다는, 질문→답변이 반복되는 dialogue를 가장 그럴듯하게 완성시켜 주는 AI라고 생각하는 것이 오해를 줄일 수 있을 것으로 보인다. 그런데 워낙 성능이 좋고 데이터가 방대하다 보니, 질문에 대해 답변을 해 주는 것으로 느껴지는 것이다.

만약에 인간의 언어 구사도 결국 그럴듯한 빈칸 채우기에 불과한 것이라면, 사실 위 둘의 차이는 무의미할 수도 있다. 나는 이에 동의하는 편이다. 다만, 이후 포스트에서도 다루겠지만 ChatGPT에게는 언어 외부가 없는 반면 인간은 텍스트 바깥의 감각세계와도 연결이 되어있다는 점이, 답변 행위의 authenticity를 결정짓는 중요한 사실이라고 생각한다.

그러나 이것은 탐구와 해석이 필요한 부분이며, 어찌되었든 이 글의 논점은 벗어난다. 따라서 위의 비교는 ChatGPT의 답변 생성 원리가 인간의 언어기제와 원리적으로 분명히 같다 (혹은 분명히 다르다) 는 주장은 아니다. 사용자 입장에서 오해를 줄이기 위한 실용적인 이해의 방식 정도로 해두는 것이 적절하겠다.

다음으로는 ChatGPT를 학습시킨 방법의 이런저런 세부사항을 소개한다.

먼저 ChatGPT는 위에서 이미 언급한 다음 내용 예측과 함께, 글 중간의 토큰을 지우고 맞추는 masked language modeling도 동원하여 학습이 이뤄졌다고 한다. 한편 고성능의 결정적 요인은 바로 트랜스포머 아키텍쳐에서의 어텐션 방법으로, GPT의 T가 바로 트랜스포머를 줄인 것이다.

(A Vaswani et al., "Attention is all you need", arXiv:1706.03762: 링크. 어텐션 메커니즘을 이용하는, 트랜스포머라는 신경망 구조를 최초로 제안한 Google Brain 측의 논문 (Vaswani et al. (2017)). 인공지능 분야에서 가장 주목받는 학회 중 하나인 NeurIPS 2017에 억셉되었다.)



이 트랜스포머 및 어텐션이라는 것은 2017년 발표된 이후로 고성능 딥러닝 모델들의 발전을 주도해온 매우 중요한 방법론이다. 음악, 언어 등과 같이 일렬로 나열된 시계열 데이터를 인공지능이 학습할 때에는 서로 멀리 떨어져 있는 요소들 간에 coherence가 깨지게 된다. 이러한 상황에서, 어텐션 메커니즘은 근처에 있는 글자뿐 아니라 멀리 있는 글자들에도 매우 효과적으로 주목해서 상관관계를 유지할 수 있게 한다는 정도로 일단 이해하자.

또한 맥락-내 학습(In-context learning)도 중요한 키워드인데, 이는 모델을 구성하는 파라미터를 업데이트 하지 않고서도, 커다란 모델 속에 기존에 저장되어 있는 능력을 잘 이끌어내어서 새로운 과제에 대한 수행능력을 구성해낼 수 있게 하는 방법이라고 한다. ChatGPT는 예시를 오직 몇 개만 주거나 (few-shot learning), 혹은 예시가 아닌 자연어로 된 설명만 제공하더라도 (zero-shot learning) 상당히 잘 알아듣고 과업을 수행해준다. 직접 사용해보면서 알게 된 이러한 사실이, 맥락-내 학습이라는 기술적 용어와 연결되는 것이 재미있다.

기존의 많은 거대언어모델에서는 새로운 과제를 종류의 수행하게 하려면 사전학습된 모델 (pre-trained model) 을 미세 조정하는 방법을 사용해야 했는데, 이는 쉽게 말해서 각각의 과제를 위해 학습을 새로 해야 한다는 뜻이고 시간과 비용이 많이 든다. 이와 반대로, 맥락-내 학습에서는 파라미터 업데이트 없이도 원하는 과제를 금방 배울 수 있으니, 특히 ChatGPT와 같은 대화형 인공지능이 사용자의 의도를 효과적으로 파악하고 성공적으로 수행하게 하는 데에 매우 적합하며 사용자의 편의성을 크게 증대시켜 준다.

이러한 zero-shot 추론기계로서의 거대언어모델의 특징에 대한 약간 더 기술적인 내용은 이후 포스트에 나올 ‘의미 엔지니어링으로서의 거대언어모델’ 섹션에서 조금 더 자세히 다루기로 한다.

마지막으로 문장 생성에 있어서 무작위성을 얼만큼 허용할지와 관련된 온도라는 하이퍼파라미터를 많은 사람들이 흥미로워하는 것이 반갑다. 말하자면 고온에서 분자들이 더 무작위적으로 운동하는 것처럼, 언어모델의 온도라는 파라미터를 높게 설정하면, 다음 토큰 예측에서 보다 후순위에 있는 단어들도 인출될 가능성이 높아져서 문장이 무작위하게 된다는 뜻이다.

이는 기본적으로 열역학 및 통계물리학에서의, 그리고 일상적 쓰임에서의 온도 개념과 잘 유비될 뿐만 아니라 실제로 그것으로부터 유래되었다고도 볼 수 있다. 가장 기초적인 생성 인공지능 중에 하나인 제한 볼츠만 기계 (Restricted Boltzmann Machine, RBM) 은 그 자체로 통계물리학의 교과서적 모형인 이징 모델과 거의 똑같은데, 거기서 사용되던 온도의 개념이 지금까지 이어져 온 것이다.

나는 내 전공분야인 통계물리학이 인공지능 발전 역사의 중요 순간들에서 많은 역할을 해 왔다고 늘 주장한다. 통계물리학이란 주어진 조건 하에서 수많은 구성 요소들이 상호작용하는 상황을, 확률이라는 도구를 이용해서 다루는 물리학의 한 분야이다. 에너지의 흐름과 비가역성을 다루는 열역학이 현대적으로 정당화되는 과정에서 볼츠만 등에 의해 확률 개념과 결합하면서 등장하였다. 확률 분포를 다루다 보니  최근의 기계학습 패러다임에 적합한 부분이 많다. 따라서 고전적인 인공신경망인 Hopfield 네트워크 및 RBM부터 최근의 확산 모델(diffusion model)까지를 포괄하는 수많은 인공지능 모델들에서, 그리고 딥러닝의 성공 요인에 대한 이론적 분석 등에서 통계물리학은 상당부분 역할을 하고 있다. 생성인공지능에서 무작위성의 정도를 결정하는 온도라는 파라미터의 존재는, 이러한 오랜 기여에 대한 사소해 보이지만 무척 본질적인 예시에 해당한다.
.
.
.
.
이번 글에서는 ChatGPT의 기술적 원리를 나름대로 개괄해보았다. 나는 인공지능의 발전에 늘 관심을 가지고 팔로우업하고 있으나, 약간의 수학적, 물리학적 배경이론을 공부해 본 것 외에는 인공지능 모델에 대한 직접적인 연구개발 등의 전문성은 없는 입장인지라 걱정이 되기도 한다. 이에 다음 글에서는 기술적 작동원리에 대한 더 깊은 접근은 그만두고, 사용자 입장에서 느낀 ChatGPT의 특징들을 공유해 보고자 한다.

그 특징들은 크게 '조리있음', '논리적 창의성' 그리고 '강박적 우호성'으로 요약된다. 이러한 특징들에도 불구하고, 혹은 이러한 특징들 때문에 ChatGPT가 갖게 되는 한계점들과, 그것들로부터 우리가 가지게 되는 여러 가지 우려사항들과 논점들에 대해서도 다루어 보기로 한다.




Facebook에서 이 글 보기: 링크

alookso에서 이 글 보기: 링크 (소셜 로그인 필요)
(본 포스팅은 2023년 3월 5일에 alookso에 게재하였고 동년 9월 5일자로 블로그에도 옮겨둡니다)

댓글 없음:

댓글 쓰기