챗GPT는 채팅을 하기 위해 고안된 인공지능이다. 다른 무엇보다도 질의응답이나 대화에 특화되어 있다. ‘고작 질의응답이 뭐길래?’라고 생각할 수도 있지만, 우리의 일상 활동 대부분이 언어를 통해서 이루어진다는 것을 생각해보면 챗GPT의 가능성이 무궁무진함을 알 수 있다. 의료나 교육, 금융 등 분야를 가리지 않고 막힘없이 대답해줄 수 있는 인공지능 비서가 항상 여러분 곁에 있다면 어떨까? 생각만 해도 든든하지 않을까?
--- 「저자 머리말」 중에서
지금까지 정보 검색 서비스를 이용하며 내가 원하는 정보를 얻을 수 있는 키워드가 무엇인지 몰라서 몇 날 며칠 골머리를 앓았던 경험이 있으신 분들이 적지 않을 것 같다. 결국 시스템을 잘 쓰려면 내가 원하는 정보를 얻기 위해 어떤 키워드를 넣어야 하는지 충분한 경험이 있어야 한다. 늘 보고서를 작성해야 하는 전문가들은 그렇게 정보를 찾는 경험이 많을 수 있다. 하지만 일반적으로 검색 서비스를 사용하는 사람들은 훨씬 적은 경험을 가질 것이다. 예를 들어 감기에 걸렸을 때 어떻게 해야 하는지 검색하는 경험은 일 년에 한두 번, 그 이상 검색하는 경우는 드물 것이다. 하지만 그 정도로 다음에 몸이 아플 때 어떻게 해야 내가 원하는 문서를 찾을 수 있는지 경험을 쌓기는 힘들다. 다시 말씀드리자면 현존하는 정보 검색 시스템은 비전문가에게 꽤 박한 시스템이다.
--- p.17
그런데 챗GPT를 사용하면 이런 문제를 쉽게 풀어나갈 수 있다. 우선 사용자가 찾고 싶은 정보가 있을 때 키워드를 몰라도 괜찮다. 내가 쓰는 일상 언어2로 찾고 싶은 정보를 설명하면 챗GPT가 빠르게 답변을 줄 것이다, 운이 좋다면 원하는 정보가 바로 포함되어 있을지도 모른다. 한 번에 찾지 못해도 괜찮다. 챗GPT는 사용자와 나눈 대화를 기억하고 있다가 그 문맥을 유지하면서 답변을 해나가는 특징을 가지고 있기 때문이다. 즉, 대화를 하면서 점점 더 내가 원하는 정보에 다가갈 수 있다. 다시 말해서 정보 검색 과정에서 대화가 가지는 이점을 그대로 가지고 갈 수 있다.
--- p.18
챗GPT는 ‘질문과 답변’의 개념을 이해하거나 구분하지 않는다. 계속해서 단어조합을 통해 문장들을 만들어나가는 것에 불과하다. 사용자가 어떤 문장을 입력하면, 입력된 문장 뒤에 어떤 단어조합이 들어가는지 계속 찾는 것이다. 설명 중에 여전히 비약과 누락이 많긴 하지만 이것이 챗GPT의 핵심 동작 원리 중 하나다. 결론적으로 챗GPT는 사용자와 실시간으로 이어 말하기를 한다고 봐도 무방하다.
--- p.25
[챗GPT 동작 과정 Step 1]
챗GPT의 1단계는 지도학습 기반으로 미세조정 모형(Supervised Fine Tuning Model)을 만드는 것이다. 지도학습은 인공지능 모형을 만들 때 가장 보편적으로 사용되는 방법으로 입력에 따른 출력 데이터가 존재할 때 사용할 수 있다. 미세조정은 앞서 설명했듯 사전에 학습시켜놓은 일반적인 언어 인공지능 모형을 현재 수행하려는 작업에 맞게 다시 학습시키는 전략을 말한다. 챗GPT는 대화형 시스템이므로 대화 작업에 맞도록 다시 훈련한 것이다. 그렇다면 지도학습 기반의 미세조정에 필요한 것을 정리해보자면 1) 정답이 주어진 대화 데이터, 2) 일반적인 언어 인공지능 모형이 필요하다.
정답이 주어진 대화 데이터를 얻기 위해서 오픈AI는 40명을 고용하여 약 1만3,000개의 자연스러운 대화 데이터를 구축했고, 이를 일반적인 언어 인공지능 모형인 GPT-3.5에 다시 학습시켜 대화를 위한 언어 인공지능 모형으로 미세조정했다.
--- p.103
[챗GPT 동작 과정 Step 2]
1단계를 통해 미세조정된 모형은 이제 질문에 대해 어느 정도 자연스러운 답변을 생성할 수 있을 것이다. 이제 2단계에서는 입력이 질의응답, 출력이 그에 대한 보상 값을 주는 보상 모형(Reward Model)을 만드는 작업을 수행한다. 이 보상 모형은 이후 강화학습 단계인 3단계에서 사용된다. 그렇다면 어떻게 보상 모형을 만들었을까? 보상 모형을 만들려면 인간의 개입이 필요하다. 컴퓨터는 하나의 질문에 여러 응답이 주어졌을 때, 어떤 응답이 가장 좋은 응답인지 모르기 때문이다. 그러므로 중간에 인간이 개입해서 더 사람 같은, 혹은 개입한 사람이 더 선호하는 응답에 보상 모형이 높은 점수를 주도록 유도한다.
자세히 살펴보자면, 1단계에서 생성된 미세조정 모형에 하나의 질문을 입력한다. 그러면 모형은 답변이라고 생각되는 문장을 출력할 것이다. 이를 여러 번 반복하면 하나의 질문에 여러 개의 응답이 만들어진다. 이 단계에서 미세조정 모형은 아직 어떤 응답이 최적의 응답인지 모른다. 따라서 위에 설명한 것처럼 인간이 개입해서 주어진 질문과 응답들을 보고 최적의 응답이라고 생각되는 문장 순서대로 순위를 매긴다. 지금 이 상태에서 우리가 얻은 정보는 무엇일까? (질문, 응답, 순위)를 얻었다. 어떤 질문과 그에 대한 응답이 얼마나 좋은지를 1단계에서 살펴본 지도학습에 적용해볼 수 있다. 이러한 데이터와 지도학습을 통해 만들어진 인공지능 모형이 바로 보상 모형이다. 이 보상 모형은 질문과 응답이 주어지면 인간이 얼마나 선호하는 문장일지를 출력으로 주게 될 것이다.
--- p.105
[챗GPT 동작 과정 Step 3]
이제 대망의 마지막 과정이다. 마지막 단계에서는 1단계에서 나온 GPT-3.5의 미세조정 모형과 2단계에서 나온 보상 모형을 사용한다. 질문을 주면 미세조정 모형이 출력을 생성하고, 보상 모형이 생성된 문장을 인간이 선호하는 문장일지 평가하여 순위를 출력한다. 이 순위를 사람의 피드백으로 미세조정 모형을 다시 조정하는 과정을 반복하면, 미세조정 모형은 인간이 선호하는 문장들을 더 많이 만들게 된다.
오픈AI는 이러한 과정을 강화학습을 이용하여 풀어냈다. 강화학습은 정책(policy)과 보상(reward)으로 이루어지는데, 간단하게 말해서 정책은 모형이 행동하는 방법 혹은 출력을 선택하는 방법 등을 의미하고, 보상은 정책을 통해 나온 결과에 대한 평가라고 볼 수 있다. 그리고 강화학습은 정책에 대한 보상을 최대화하도록 학습하게 된다. 현재 상태에서 정책은 무엇이고 보상은 무엇일까? 정책은 1단계의 결과물인 GPT-3.5의 미세조정 모형이 되겠고, 보상은 2단계의 결과물인 보상 모형의 출력이다. 이를 강화학습에 적용하면 GPT-3.5의 미세조정 모형은 보상 모형이 주는 점수를 최대화하도록 학습된다.
그럼 어떻게 정책을 수정해서 보상을 최대화할 수 있을까? GPT-3.5는 2017년에 오픈AI에서 소개된 ‘근접 정책 최적화(Proximal Policy Optimization, PPO)’를 사용하여 정책을 갱신하고 있다. 근접 정책 최적화는 미세조정 모형의 출력 단어마다 ‘쿨벡-라이블러 페널티’를 적용해서 정책이 보상 모형에 과도하게 학습되어서 우리가 원하는 응답에 너무 크게 벗어나는 것을 방지한다. 쿨벡-라이블러 발산(Kullback-Leibler divergence)는 두 확률분포의 모양이 얼마나 다른지 숫자로 계산할 수 있는 일종의 공식이다. 여기서는 미세조정 모형의 출력 문장과 최적화된 생성 문장의 분포 차이를 계산하여 이 분포가 서로 멀어지지 않게 조정한다.
이러한 학습 과정을 반복하게 되면 최종적으로 인간이 가장 선호하는 문장을 출력하는 미세조정 모형이 만들어지게 되고 이 언어 모형이 바로 챗GPT다.
--- p.107
일반적인 기업이 챗GPT를 도입한다면 어떤 형태일까? 우선 기업이 보유하고 있는 자산을 외부에 공개하는 건 대단히 어렵다는 것을 고려해야 한다. 오히려 산업 스파이로부터 적극적으로 보호해도 부족한데, 외부 공개는 어불성설일 것이다. 여기서 말하는 자산에는 건물이나 가구 같은 유형물뿐만 아니라 기업 내부에서 만들어낸 문서나 기술들과 같은 무형물도 모두 포함된다. 혹시라도 산업 스파이들도 접근할 수 있는 공개된 챗GPT에서 자산이 유출되기라도 하면 큰일이 아닐 수 없다. 이런 조건에서 기업이 챗GPT를 도입한다면 아마 외부로 노출되어 있지 않은 폐쇄적인 형태가 될 가능성이 크다. 기업마다 자신들의 자산을 활용하여 학습을 시킨 고유한 챗GPT를 기업 내부에서 폐쇄된 형태로 활용하리라 생각한다.
--- p.142 .
이 책은 딸과 함께 고향의 집에 내려온 와중에 집필한 것이다. 글을 쓰면서 느낀 것이지만, ‘내 아이가 살아갈 세상은 내가 살아갈 세상과는 많이 다른 모습이겠구나’ 하는 생각이 들었다. 또, 챗GPT의 위력이 참 대단한지 부모님께서도 챗GPT에 대해서 연신 질문을 던지시기도 했다. 솔직히 고백하자면 두 분은 공학과 거리가 멀고, 특히 인공지능을 직접 접해보신 적도 거의 없다.
--- p.316
어머니와의 대화에서도 참 재미있는 주제를 생각할 수 있었다. 어머니께서 말씀하시길, 보통 인공지능이라고 하면 많은 사람이 아주 완벽하고 절대 틀리지 않으리라 생각하고 있는데, 뉴스를 볼 때마다 챗GPT가 틀린 말을 한다는 내용이 나오는 이유가 뭐냐는 것이었다. 이 말을 듣고 깜짝 놀랐다, 아마 대부분의 인공지능 전문가들은 인공지능이 ‘절대 틀리지 않는 답’을 준다고 생각하지는 않을 것이다. 오히려 ‘조금 틀려도 괜찮으니 현실에서 그럭저럭 써먹을 수 있는 답’을 만드는 것이 인공지능의 주요 목표라고 생각한다.
--- p.318
컴퓨터공학의 핵심 교과목은 운영체제와 컴파일러 등이 있는데, 이 둘은 한 치의 오차라도 있으면 컴퓨터가 갑자기 멈춰버리고 소프트웨어를 실행할 수도 없다. 반면에 인공지능의 핵심 교과목은 인공신경망이 대표적인데, 그림을 그려주는 인공지능이 있을 때, 그 그림에 태양이 빨간색이든 주황색이든 전체적으로 자연스러워 보인다면 큰 상관은 없지 않은가? 이렇게 보면 적당히 해도 큰 문제가 발생하지 않는 영역에서는 인공지능이 큰 힘을 발휘할 수 있다고 생각한다. 그런 관점에서 챗GPT가 힘을 발휘할 수 있는 영역도 대충 가늠할 수 있다. 반드시 정답일 필요가 없는 소설이나 주어진 문서를 요약하는 작업이 그럴 것이다. 우리가 어떤 글을 요약할 때 요약문을 반드시 어떤 형태로 작성하라는 지침은 없다. 음악 같은 경우에도 어떤 특정한 형태로 만들어져야 한다는 법이 없으니 이런 분야에서 챗GPT를 활용한다면 생산성을 높이는 훌륭한 도구가 될 것이다.
--- p.320
인공지능은 ‘적당히 쓸만한’ 결과물을 만들 때 아주 능숙하다. 그런데 그것들 모두가 쓸 만한 결과물은 아니라는 것이다. 그렇다면 인간의 역할은 인공지능이 만들어 낸 수없이 많은 결과물 중에서 어떤 것이 좋을지 최종적으로 선택할 수 있어야 할 것 같다. 즉, 진흙 속에서 진주를 골라내는 능력을 키워야 할 것이다.
--- p.321
챗GPT에게 부려지는 사람이 아니라 챗GPT를 부리는 사람이 되셨으면 한다. 인공지능을 공부하는 학자로서 챗GPT는 아직 부족한 점들이 많다. 질문을 던지면 틀린 답을 말하거나 의도를 파악하지 못하는 경우도 많다. 그러니 챗GPT가 보여주는 여러 사례에 휘둘리지 말고 ‘지금의 나라면 어디에 이것을 쓰면 좋을까’라며 고민하고 한번 직접 써보길 바란다. 똑같은 도구를 받아도 쓰는 방법은 자기가 처해있는 상황마다 모두 다를 수 있으니까 말이다.
--- p.321