요즘 인공지능 연구의 최전선에는 자연어처리(Natural Language Processing, NLP) 알고리즘이 있습니다. 한국어나 영어, 중국어처럼 인간이 '자연스럽게' 발달시킨 언어를 이해하고 사용하는 컴퓨터 프로그램을 개발하는 분야지요. 이제는 일상적으로 사용하게 된 애플 시리나 삼성 빅스비 같은 AI 비서 서비스, 파파고 같은 구글 번역기, 더 넓게는 심심이 같은 챗봇도 자연어처리 알고리즘에 포함됩니다.
지금까지 발표된 수많은 자연어처리 프로그램 중 가장 강력한 모델은 2020년 5월에 미국의 인공지능 기업인 OpenAI에서 발표한 GPT-3입니다. GPT-3의 성능은 그야말로 감탄이 나오는 수준인데요, 이 녀석이 써낸 글을 함께 볼까요?
기울임체로 쓰인 부분은 사람이 입력해 준 도입부이고, 굵은 글씨로 쓰인 부분은 도입부를 토대로 GPT-3가 쓴 문장입니다. 그럴듯하지 않나요? 우리가 늘 보는 과학기사의 포맷도 거의 완벽하게 갖추고 있습니다. '디올 메이크업' 같은, 사전적인 의미 뿐 아니라 문화적인 코드를 조합해야 하는 단어까지 사용합니다.
똑같은 도입부를 갖고 GPT-3가 만들어낸 다른 샘플도 있습니다.
압권은 역시 마지막의 SNS 공유 버튼입니다. "우리가 세상에 대해 얼마나 모르는지" 문장도 새로운 발견을 알리는 글에서는 상투적으로 쓰는 표현이죠. 영어로 된 원문을 읽어보시면 적어도 문장 단위에서는 아주 매끄럽게, 문법적 오류도 거의 없고 가독성도 나쁘지 않다는 걸 알 수 있습니다.
이 정도 수준의 자연언어 모델은 아주 많은 일을 할 수 있습니다. GPT-3는 번역 같은 특정한 문제에 특화된 알고리즘이 아니고, 대량의 텍스트 자료를 이용해서 영어 문장의 패턴만을 학습해 놓은 모델이어서 사용자가 원하는 방식으로 튜닝해서 쓸 수도 있어요. 약간의 자료와 시간을 더 투자해서 추가 학습을 해 주면 번역 인공지능이나 기사 요약 인공지능 같은 특화된 알고리즘으로 바꿀 수도 있는 거죠. 자동화된 언어처리의 장밋빛 미래를 약속하는 거예요.
그런데 흥분을 조금 가라앉히고 GPT-3가 만들어낸 문장을 유심히 읽다 보면 좀 이상한 부분도 있어요. 유니콘과 양자역학을 토론하기, 뭐 여기까지는 그럴 수도 있습니다. 그런데 유니콘이 지적이라는 얘기를 하기 위해서 "말에게는 비슷한 얘기를 하려고 시도해 본 적도 없"다는 문장은 좀 이상하지 않자역학은 아니더라도, 우리가 말과 대화를 하긴 하나요?
아쉽지만 GPT-3는 자기가 뱉어내는 문장의 의미를 이해한다거나, 어떤 정보나 지식을 기억할 수 있는 모델은 아닌 것으로 보입니다. GPT-3는 엄청나게 크고 복잡한 패턴 인식 장치일 뿐이거든요. 가끔 "GPT-3는 언어를 이해한 최초의 모델" 따위의 기사가 돌아다니는데 완벽한 오해입니다.
지난번 메일에서 소개했듯이, 기계학습으로 훈련된 인공지능 알고리즘의 구성 요소는 두 개입니다. 첫 번째, 업데이트하고 학습할 수 있는 프로그램인 '모델'. 두 번째, 모델을 업데이트하고 훈련할 수 있는 대규모의 '학습 데이터'. 기계학습 훈련을 반복적으로 진행하면서 모델은 데이터에 있는 패턴을 찾아내는 거죠.
중요한 건 패턴을 학습했다고 해서 원리를 이해했다고 볼 수는 없다는 거예요. 지난번 포스트에서도 독일어를 알아듣는 말, 똑똑한 한스 이야기를 했었죠? 한스는 분명 사람이 질문을 하면 발굽을 굴러서 대답을 했지만, 말을 알아듣고 문제를 풀어서 대답한 게 아니고 '정답 근처에 가면 주변 사람들이 움찔거린다'는 패턴만을 파악해서 제때 발 구르기를 멈추는 방법만 학습한 거였죠.
훈련 데이터에 결함이 있을 때도 기계학습 알고리즘은 우리가 원하는 방향으로 작동하지 않습니다. 위 사진에서처럼 흰 강아지와 검은 고양이만 잔뜩 주고 강아지와 고양이를 구분하라고 시키면, 모델은 강아지와 고양이를 구분하는 법을 익히는 대신 '흰 동물은 항상 강아지, 검은 동물은 항상 고양이' 식으로 더 찾기 쉬운 패턴만 찾습니다.
GPT-3는, 기본적으로 '엄청나게 커다란 자연언어 모델'입니다. GPT-3가 학습하고 말하는 기본 원리는 2017년에 발표된 트랜스포머(Transformer) 알고리즘의 패턴을 크게 벗어나지는 않는다고 알려져 있어요. 다만 모델의 크기와 학습 데이터의 크기를 엄청나게 키워 줬습니다. GPT-3의 모델은 1750억 개의 학습 가능한 변수를 담고 있고, 훈련하는 데는 2000억 개의 영어단어가 쓰였습니다. GPT-3를 제작하는 데 들어간 각종 비용만 수백억 원일 거라고 추산되지요.
워싱턴 대학교의 앨런 AI 연구소 소속 최예진(Yejin Choi) 교수는 GPT-3가 "AI 모델의 크기를 극단적으로 키우면 어떤 일을 해낼 수 있는지, 또 크기만 키워서는 어떤 한계가 있는지" 보여준다고 논평합니다. 최예진 교수는 2021년 3월에 발표한 논문에서 GPT-3를 "확률적인 앵무새"라고 불렀는데요, 자기가 무슨 말을 하는지는 이해하지 못하지만 과거에 들어 본 말을 그럴듯하게 뱉어내기만 하기 때문이에요.
GPT-3가 인식하는 패턴도 결국은 학습 데이터에 들어 있는 단어들이 '같이 나올 확률'에 불과합니다. 예를 들어, GPT-3에게 "아침에 일어나서 커피를 (___)"이라는 문장을 준 다음에 빈 칸을 채워 보라고 하면, 자기가 과거에 봤던 자료에서 마셨다/강아지/예쁜/멋있다/먹었다 중 '마셨다'가 등장할 확률이 높았으니까 '마셨다'를 내놓는 거죠. GPT-3에게 '커피'는 '마셨다'와 같이 등장할 확률이 높은 단어니까요.
위에서 예시로 보여드린 '유니콘과 양자역학 대화하기' 문제가 바로 여기서 나옵니다. GPT-3에게 유니콘은 말과 관련이 깊은 단어일 거예요. 유니콘은 보통 말과 비슷하게 생겼다고 다들 상상하니까, '말'이라는 단어와 '유니콘'이라는 단어가 같이 등장하는 문장도 많이 있었겠지요. '과학자'가 등장하는 글에서 '어려운 주제'라는 의미로 '양자역학'을 쓴 문장도 많이 있을 테고요. 'A와는 X를 할 수 있는데, B와는 상상도 할 수 없다'는 문장 패턴도 흔할 것 같죠? 이것들을 단순히 패턴으로 조합하면 "저는 유니콘들과 양자역학에 대해서도 이야기할 수 있었는데, 보통 말에게는 비슷한 얘기를 하려고 시도해 본 적도 없어요"라는, 문장 구조는 그럴듯하지만 사실 말도 안 되는 문장이 튀어나오는 겁니다.
GPT-3가 사상 최초의 인공일반지능(general AI)이 아니냐는 설레발 섞인 의견도 처음에는 조금 나왔었지만, 우리가 '상식적'이라고 생각하는 것들을 전혀 익히지 못한다는 점에서 인공일반지능 근처에도 가지 못한다는 게 지금의 지배적인 평가입니다. AI 전문가 케빈 라커(Kevin Lacker)가 찾아낸 GPT-3의 실수 열전을 볼까요?
질문에 비상식적인 장난을 치면, 그러니까 GPT-3를 훈련시킬 때 사용했을 '인터넷의 대화 자료'에 없을 법한 이상한 질문을 물어보면 여지없이 속아 넘어가서 이상한 대답을 뱉어 내는 게 보입니다. 케빈 라커의 해석에 따르자면 GPT-3가 뱉어내는 대답은 사용자가 어떤 방식으로 질문하느냐, 즉 '프롬프트 텍스트'를 어떻게 입력해 주느냐에 따라 굉장히 달라진다고 하네요.
GPT-3는 분명 대단한 기술적 발전입니다. 적절한 프롬프트를 입력해 주면 아주 많은 텍스트 자료를 상당히 믿을 만한 방식으로 자동 처리해줄 거예요. 저는 기본적으로 상당한 기술 낙관주의자여서 GPT-3로 대표되는 자연언어처리 기술이 이롭게 쓰일 수 있을 거라고 믿습니다. 하지만 이 기술의 한계가 어디까지인지, 또 어떤 점에서 위험한 결과를 만들어낼 수 있는지는 사용자들이 반드시 이해해야 하겠지요.
다음 글에서는 조금 더 나아가서 GPT-3로 대표되는 자연언어 모델이 지금 어떤 '사고'를 치고 있는지도 조금 소개해 보겠습니다.
댓글
의견을 남겨주세요