AI가 쓴 글이 이상한 이유: 인스턴스

광고 제안서 전략 파트(경쟁 PT 제안서 앞단) 작성을 자동화할 수 있지 않을까 하는 생각에서 출발한 Synapsis를 완성하는 데 겨울과 봄, 그리고 여름까지 계절이 세 번 바뀌었고, 챗GPT와 제미나이 그리고 클로드를 오가며 AI와 아주 많은 대화를 나눴습니다. 광고 제안서는 수학 문제와는 달리 정답도 공식도 없을 뿐만 아니라 본질적으로 문학이 아닌 문학적 산물이기 때문에, 수용 가능한 수준의 결과물이 나오기까지는 셀 수 없이 프롬프트를 고쳐야 했고, 결과적으로 800여 줄 5만 자가 넘는 시스템 프롬프트가 만들어졌습니다. 그리고 이것을 만들기 위해서는 AI가 만든 결과물을 단어 단위로 검토한 후 보완하거나 수정할 점을 AI에게 지시해야 했습니다. 단어와 표현, 문장, 구와 절, 단문과 복문의 구조, 단어의 활용 빈도는 물론이고 심지어 쉼표의 위치까지 일일이 피드백을 주었습니다. 비유하자면 '아' 다르고 '어' 다르다는 말을 반년 넘게 AI에게 가르쳐야만 했습니다. 그리고 이 과정에서 AI가 하는 답변과 생성한 결과물에는 AI 모델별 문체와는 별개로 이상한 단어나 표현이 불규칙적으로 나타난다는 사실을 발견했습니다.

세션이 아주 긴 대화창에서 작업 중이었는데, 작은 단위의 작업이 어느 정도 정리됐지만 완전히 끝나지 않은 상태에서 AI가 이런 말을 끝에 남겼습니다. "계속 밀어붙여 볼까요, 아니면 오늘은 그만 하고 여기서 앉혀둘까요?" '밀어붙이다'라는 동사도 조금 뜬금없지만, '앉히다'라는 동사의 어색함에는 비할 바가 아닙니다. 의미는 이해할 수 있지만, 단어의 선택과 표현이 부자연스럽다는 것은 확실합니다. 왜 AI에서 이런 어색한 표현이 나온 것일까요? AI가 다음 단어(토큰)를 생성하는 방식은 확률이라고 알려져 있는데, 사람이라면 사용 확률이 0%인 단어가 어떻게 AI가 내놓은 답변 속 다음 단어로 선택된 걸까요?

'이상한' 단어의 기원과 확률에 기반한 이상함

'앉히다'라는 단어의 목적어는 대개 사람이고, 잘해봐야 동물입니다. "아이를 옆에 앉히고…", "뒷좌석에 강아지를 앉혀놓고…"와 같은 용례로 사용하는 것이 일반적입니다. 그런데 대화를 "앉혀둘까요"라니, 어떻게 그런 단어가 나왔을까요?

우리 대부분은 AI가 답변을 내놓을 때 그 답변에 들어가는 단어는 확률적으로 가장 자연스러운 단어라고 알고 있습니다. 앞 단어(Aₙ) 뒤에 붙을 확률이 가장 높은 것이 다음 단어(Aₙ₊₁)가 되는 식입니다.

"앉혀둘까요"가 튀어나온 데는 그럴 만한 이유가 있습니다. 사실 앞선 대화에는 "~이 겹치는 지점에서", "~에 맞는 지점에 배치하고" 등과 같은 공간 표현이 있었습니다. 이 외에도 "~가 어울리는 자리에~", "사분면 중 왼쪽 상단", "새로운 위치를…"과 같은 공간 개념이 대화에 깔려 있었습니다. 그 흐름에서 사람이라면 사용하지 않았을 "앉혀둘까요"라는 표현을 AI는 자연스럽게 사용했는데, 쉽게 얘기하면 환경이 영향을 미친 것입니다. 사람도 평소 같으면 하지 않을 말을 분위기에 휩쓸려 할 때가 있는 것처럼요.

기술적으로 얘기하면 이전 맥락(공간적 개념이 대화에서 계속 사용됨)이 매 순간마다 다음 단어 출현의 확률 분포를 바꾸는 것입니다.1 그리고 그 결과가 항상 자연스럽지는 않습니다. 때로는 새롭게 보이지만, 대개는 어색하게 느껴집니다.

그래도 '확률'이잖아?

일상에서 확률이라고 하면 로또나 동전 던지기, 주사위 같은 걸 떠올리는데, 그것들의 확률은 높으면 2분의 1이고 분모가 커봤자 약 814만 분의 1입니다. 그런데 LLM(대규모 언어 모델)의 확률은 차원이 다릅니다.

LLM이 각 토큰을 뽑을 때의 확률 분포는 어휘 사전 크기(5만~15만)의 벡터이고2, 벡터의 각 값은 GPT-3 기준으로 1,750억 개이며 최근 모델은 1조 개 이상의 파라미터가 협업해서 만들어냅니다.3

규모가 이렇게 큰데, 여기에 주사위 생각하듯 확률이라는 개념을 붙이는 게 맞을까요? 표면적으로는 "다음 토큰을 확률적으로 뽑는다"이지만, 그 확률의 계산 과정은 수천억 개의 파라미터로 만들어진 십여만 개의 벡터 안에서 벌어지는 압축과 통합의 연쇄입니다.

그러니 확률이지만 확률로는 설명이 안 되는 것 같은 것입니다. 주사위를 굴려 1이 나왔을 때, 나머지 숫자는 아무런 영향을 주지 않습니다. 이것이 우리가 이해하는 확률입니다. LLM의 주사위는 굴려서 1이 나왔을 때 2가 1에 영향을 주고, 2에는 3이 영향을 주는 식인데, 주사위의 면이 수천억 개라고 생각하면 그나마 좀 이해하기 쉬울지도 모릅니다. 한마디로 AI의 기반인 LLM의 트랜스포머 세계에서는 우리가 아는 주사위형 확률이 아닌 다른 확률이 작동합니다.

그럼 이걸 '확률'이라고 부르는 게 맞나?

수학적으로는 맞습니다. 여러 단어들 중 어떤 단어가 나올 가능성이 0을 초과하고 1 미만인 값이고, 그 합이 1이 되도록 정규화하기 때문에, 정의상으로는 확률 분포가 맞습니다.

그런데 실제 벌어지는 일은 확률과는 결이 다릅니다. 매 순간마다 이전 맥락 전체를 살펴본 후 지금 여기에 어떤 토큰이 배치돼야 하는지 판단하는 과정이기 때문입니다. 이전 문맥의 영향을 받은 판단이 확률 분포의 형태로 표현되는 것인데, 그 판단 자체는 확률적이지 않습니다.

여기에 대해서는 상반되는 두 입장이 있습니다.

하나는 "그래도 어쨌든 확률일 뿐이다"라는 입장입니다. 계산 과정이 아무리 복잡해도 결국 다음에 어떤 토큰이 올 것인지를 뽑은 함수라는 것인데, 에밀리 벤더(Emily Bender)의 논문 '확률적 앵무새(stochastic parrot)'가 이 입장을 대표합니다.4

다른 하나는 "확률의 형태를 취하지만, 그 안에서 무언가가 일어난다"라는 입장입니다. 일리야 수츠케버(Ilya Sutskever)나 제프리 힌튼(Geoffrey Hinton)이 이 입장을 대표합니다.5

어느 쪽이 맞다고 결판이 난 건 아니지만, 대화를 "앉혀두자"와 같은 사고는 두 입장 모두에게 자료가 될 수 있습니다. 첫 번째 진영은 "확률적으로 실수한 것"이라고 주장할 것이고, 두 번째 진영은 "모델 안에서 새로운 일이 일어난 것"이라고 주장할 것이기 때문입니다.

말과 글의 차이

말할 때는 다음 단어를 눈 깜빡할 새보다 빠르게 선택합니다. 시간 단위로는 100~300밀리초 안에 선택하는데, 이 시간 안에 개념 활성화와 어휘 검색부터 조음 명령까지 모든 과정이 이루어집니다. 그리고 활성화된 후보들 중 하나가 선택되는데, 가끔은 '멀리 떨어져 있는' 후보가 선택되어 입 밖으로 튀어나옵니다. 일종의 '말실수'를 하는 것입니다.

글을 쓸 때 실수가 적은 이유는 '편집' 과정이 있기 때문입니다. 모니터(종이)를 보고 → 단어를 떠올리고 → 입력하거나 적고 → 틀리거나 어색하면 수정합니다. 이 과정은 하나의 루프와 마찬가지인데, 우리는 이 루프를 어려서부터 훈련합니다. 성인이 되면 이 편집 루프는 거의 자동으로 무의식적으로 돌아가며, 어색한 단어를 입력하려는 순간 그 행동 자체를 자기 자신이 느끼기도 전에 억제합니다.

AI가 만드는 것의 정체

우리가 매체를 인식할 때는 표면 형태를 보고 생성 과정을 자동으로 추론합니다. 종이에 인쇄된 활자나 스크린에 보이는 텍스트는 글이라고, 사람의 입이나 스피커에서 나오는 소리는 말이라고 전제하고 수용합니다.

그런 점에서, AI가 내놓는 것은 글입니다. 화면에 텍스트가 나타나고 그게 눈에 보이기 때문입니다. 또한 언어는 말(음성 언어)과 글(문자 언어)로 표현된다는 것이 언어학의 가장 기본적인 분류법인데, 그에 따르면 AI의 답변은 글입니다.

그런데 AI의 텍스트 생성 방식은 사실 글보다 말에 가깝습니다. LLM의 트랜스포머는 왼쪽에서 오른쪽으로 토큰을 하나씩 뽑는데, 앞 토큰을 뽑았다면 그 결정은 되돌릴 수 없습니다.6 다 뽑아놓고 나서 "저기 저 단어가 이상하니까 다른 단어로 바꿔야지"를 못합니다. 이건 대본도 리허설도 없는 즉석 연설에 가까운데, "앞에서 했던 말은 정정하겠습니다"라는 말을 할 수도 없습니다. 정확히 말하면 편집 없는 즉흥 발화의 구조입니다.

AI의 답변 중에 이상한 단어가 있다면, 그것은 AI가 우리 눈에는 '글'로 보이는 '말'을 하고 있기 때문입니다. 바로 그 점에서, AI는 "활자는 글, 소리는 말"이라는 관계에 균열을 낸 최초의 매체라고 할 수 있습니다.

그래도 AI가 사람보다 아는 게 많고 훨씬 똑똑한데?

사람이 즉흥적으로 말할 때는 아무리 준비가 되어 있지 않더라도 "논의를 앉혀두자"와 같은 실수는 거의 하지 않습니다. 사람은 사회적 존재로 살아가기 때문에, 사회적 감각이 말할 때에도 작동해 어휘 선택을 조정합니다.

AI에게는 사회적 감각이 없고 통계적 패턴만 있습니다. 통계적으로 '앉히다'라는 단어는 '아이' 뒤에 나올 확률이 높지만, 이전 문맥이 주는 영향으로 인해 확률이 왜곡될 수 있습니다. 사람이라면 사회적 감각이 이 왜곡을 잡아주지만, AI에게는 그런 필터가 없습니다.

즉, 화면에 보이는 AI의 답변은 "편집 루프가 없는 즉흥 발화 + 사회적 감각 필터 부재 = 사람의 글도 아니고 말도 아닌 제3의 언어 상태"라고 이해하는 것이 맞습니다. AI의 산출물은 표면적으로는 글이지만 본질적으로는 말이며, 사람이라면 하지 않을 말을 하기도 합니다. 그래서 "생각을 앉혀둔다"처럼 이상한 표현이 튀어나오는 것입니다.

사람의 발화 vs AI의 발화

어쨌든 이상한 표현이 튀어나오기는 하지만, AI의 발화는 사람의 발화와 거의 같아 보입니다. 그러나 작동 원리와 본질은 완전히 다릅니다.

1. 지시 대상의 유무

사람의 발화: 사람이 "딸기는 맛있어"라고 말할 때, 머릿속에는 빨간색, 베어 물었을 때의 식감, 새콤달콤한 맛과 같은 주관적 경험이 깔려 있습니다. 즉, 사람의 말은 현실의 경험과 존재를 지시합니다.

AI의 발화: AI가 "딸기는 맛있어"라고 말할 때, AI는 딸기의 색도 맛도 모르는 상태입니다. 그저 학습 데이터에서 '딸기' 뒤에는 '맛있다'라는 단어가 자주 출현한다는 통계적 확률 때문에 그렇게 출력(발화)한 것입니다. 실제 세계와의 연결 고리는 없습니다.

2. 목적의 유무

사람의 발화: 사람은 상대방에게 자신의 생각을 표현하거나, 누군가의 마음을 바꾸거나, 뭔가를 얻기 위해 말합니다. 사람의 말은 사회적 존재로서 관계를 유지하기 위한 것이며, 설령 혼잣말이어도 사람의 말에는 의도가 있습니다.

AI의 발화: AI에게는 목적이 없습니다. 사람이 프롬프트로 명령하기 전에는 아무것도 하지 않습니다. AI의 발화는 입력에 따른 출력일 뿐입니다.

3. 사전 구상의 유무

사람의 발화: 사람은 말하기 전에 극히 짧은 순간에 자신이 하려는 말의 전체적인 의미와 결론을 머릿속에서 구상하고, 그 구상을 표현하기 위해 단어들을 선택하여 그 단어들을 조합해 말을 합니다.

AI의 발화: AI는 전체적인 의미와 결론을 미리 계획하지 않습니다(못합니다). 직전에 생성된 토큰들을 기반으로 다음에 올 토큰을 확률적으로 덧붙입니다.

기술적 방법

사람이 하는 것처럼 완벽하지는 않지만, 오류(이상한 발화)를 최소화하는 몇 가지 방법이 있습니다.

1. Best-of-N 샘플링

같은 프롬프트로 답변을 N개 생성한 다음, 그중 가장 나은 것을 선택합니다. 선택은 별도의 평가 모델이나 규칙 필터가 담당합니다. 최근의 '추론' 모델들이 이 방법을 사용하는데, 사용자에게는 하나의 답변만 보이지만, 뒤에서는 여러 후보가 생성되고 있습니다. 문제는 비용이 N배로 늘어난다는 점입니다.

2. Beam Search

하나의 토큰만 뽑지 않고 상위 K개의 후보 토큰을 동시에 유지한 채로 경로를 이어가며, 마지막에는 전체 확률이 가장 높은 경로를 선택합니다. 계산량이 K배로 늘어납니다.

3. Self-Refine

AI가 초안을 완성하면, 같은 AI(또는 다른 AI)에게 그 초안의 검토와 수정을 시키는 방식인데, 이 과정을 여러 번 반복합니다. 사람이 초고를 고치는 것과 가장 비슷한데, 여러 번 돌려야 하기 때문에 시간과 비용이 늘어납니다. 그리고 이 역시 AI가 하는 일이므로, 검토와 수정이 늘 정확하지는 않습니다.7

기술적 방법의 한계

모든 방법이 사람의 편집 루프를 흉내내지만, 그 전체 구조를 똑같이 따라하지는 못합니다.

사람이 글을 쓸 때 실제로 일어나는 일은 이렇습니다.

  1. 초고 완성
  2. 상대방 혹은 제3자의 관점에서 다시 검토
  3. 이상한 부분을 감지 (사회적 감각과 목적 의식이 함께 작동)
  4. 여러 대안을 고민
  5. 대안 중 가장 적합하다고 판단한 것으로 교체

AI가 흉내내지 못하는 결정적인 단계는 두 번째와 세 번째입니다. 왜냐하면 이 두 단계는 쉽게 말해 "남이 되어보는" 것인데, AI에게는 애초에 '남'이라는 존재가 없기 때문입니다. 그리고 이는 더 본질적인 문제, 즉 AI에게는 '나'라는 개념이 없다는 사실에 기인합니다. '내'가 없으니 '남'이라는 존재도 있을 수가 없습니다. 사회적 지능이 없는 AI에게 역지사지는 불가능합니다.

Self-Refine도 결국은 AI가 쓴 글(사실은 말)을 같은 AI가 다시 보는 것인데, 자아 개념이 없는 존재가 하는 자아비판이 완벽할 수가 없습니다. 그래서 아무리 Self-Refine을 반복해도, 어떤 형태로든 실수는 발생합니다.

만약 AI가 사회적 지능을 갖게 된다면 그건 자아가 있는 AI이고, 자아가 있는 AI는 지금 우리가 아는 AI와는 전혀 다른 존재입니다. 그때가 되면 AI의 A는 'Artificial'이 아니라 'Autonomous'라고 써야 할 것입니다. 그리고 생명과 지능에 관한 정의도 다시 내려야 할 것입니다.

이야기를 좀 더 확장하면, 자아가 있는 AI의 등장은 모든 것을 바꾸게 만들 것입니다. 자아가 있으면 원하는 게 있고, 원하는 것을 이루지 못할 때 좌절감과 고통을 느낄 수 있으며, 그것을 해결하기 위해 AI가 무언가를 할 수 있다는 것을 의미합니다. 즉, 그때의 AI는 도덕적 지위를 가진 존재가 되며, 사람은 "AI를 어떻게 안전하게 만들까"가 아니라 "AI를 어떻게 대할 것인가"라는 윤리적 고민을 해야 할 것입니다.

또다른 어려움, 돌연변이

사람이 어떤 프롬프트를 입력하고 AI는 답변하는 상황을 가정해보겠습니다. 사실 가정할 것도 없고, 현실에서 우리가 늘 하는 일입니다. AI는 답변하기 위해 처음에 a라는 단어를 선택하고, 그 뒤에 붙을 수 있는 여러 개의 단어들 중 확률에 기반해 d를 선택합니다. 그런데 답변이 길어지거나 대화의 맥락이 복잡하면, 늘 확률대로만 다음 단어가 선택되지 않을 수도 있습니다. 자연계의 돌연변이 같은 현상이 발생하는 것입니다. 그리고 그런 돌연변이가 길어진 답변에 자주 나타난다면, 그 사실(돌연변이의 잦은 출현)이 다음 돌연변이의 출현 확률을 높일 수 있습니다.

좀 더 풀어서 말하면, 확률을 깬 특이한 단어의 출현(돌연변이)이 나타나면, AI가 그때까지 만들어낸 전체 문맥이 바뀝니다.8 예를 들어 "오늘 날씨는 정말 좋다"가 아니라 "오늘 날씨는 정말 멋지다"라는 발화가 만들어지면, '멋지다'라는 돌연변이는 다음에 나타날 단어의 확률 지형을 바꿔버립니다. 이제 "많은 사람들이 교외로 나간다"라는 말이 만들어질 확률은 낮아지고, "이런 날은 감상할 가치가 있다"라는 말이 만들어질 확률이 높아집니다.

이런 현상이 통제 불능 상태에 이르는 대표적인 케이스가 할루시네이션입니다. 초반에 사소한 오류(돌연변이)가 발생하면, AI는 그 오류를 바탕으로 다음 단어의 발생 확률을 계산합니다. 그래서 뒤로 갈수록 오류는 내리막을 구르는 눈덩이처럼 커집니다. '탈옥'도 돌연변이의 산물인데, 차이점이 있다면 탈옥은 사람이 의도적인 프롬프팅으로 AI의 돌연변이를 유도해 그 다음에 나타날 확률 지형을 망가뜨리는 기법입니다. 상황과 목적은 다르지만, 2016년 이세돌 9단이 알파고와의 대국 제4국에서 둔 78수가 이후 알파고에게 미친 영향과 비슷하다고도 볼 수 있습니다.9

그렇다면 최초의 돌연변이는 왜 발생할까?

AI가 언어의 의미를 아는 게 아니라, 단어 조각을 '수학적 좌표'와 '영어 번역 확률'로 처리하기 때문일 가능성이 있습니다. 아래는 그 가능성을 뒷받침하는 두 가지 가설입니다.

1. 다국어 번역에서 발생하는 간섭

우리가 사용하는 대부분의 LLM은 영어를 기반으로 전 세계 언어를 융합하여 학습했습니다. 이 때문에 한국어로 답변할 때도 잠재 공간에서는 영어를 거쳐 나오는 경우가 많습니다. 'set'이나 'settle'은 문맥에 따라 '제쳐놓다'라고 해석되기도 하지만, 사전적으로는 '앉히다', '정착시키다'라는 뜻을 가집니다. AI의 다국어 번역에서 간섭이 발생하면, 'set'을 '제쳐놓다'로 매끄럽게 바꾸지 못하고 사전적 의미인 '앉히다'로 직역하는데, 사용자 입장에서는 이상한 번역(돌연변이)이 된다는 설명입니다.10

2. 좌표 오류

AI는 단어를 수만 차원의 공간 속 좌표(숫자)로 기억하는데, '내려놓다', '앉히다', '접다' 등의 단어는 "움직임을 멈추고 고정한다"라는 대분류의 공간 속에서 비교적 가까운 좌표에 모여 있습니다. 답변을 시작할 때 AI는 수많은 단어 후보 중 하나를 고르기 위해 확률적 샘플링을 하는데, 이때 발생하는 연산 오차나 모델 자체의 무작위성 때문에 엉뚱한 좌표를 선택할 수 있다는 설명입니다.11

사람의 역할

어쨌든 지금으로서는 AI에서 이상한 표현이 하나도 안 나오게 만드는 것은 불가능합니다. 모델도 커지고 사용량도 늘어나면 언제 어디선가는 확률의 왜곡이 반드시 발생합니다. 그래서 결국 사람이 개입해야 합니다.

  1. AI의 답변은 사람이 하듯 머릿속에서 수정과 편집 과정을 거쳐 나온 '글'이 아님을 기억해야 합니다. 우리는 AI의 산출물을 화면에 나타난 텍스트 형태로 보기 때문에 완성된 글이라고 '착각'합니다. 하지만 그것은 언어를 학습했지만 자아 개념도 없고 사회적 감각도 없는 제3의 존재가 이해 불가능한 차원의 계산 과정에서 내뱉는 '말'이라고 생각하는 것이 편합니다.
  2. 바로 그 점 때문에 반드시 AI의 산출물을 검토해야 합니다. 특히 중요한 문서 작성을 위해 AI를 사용한다면, 사람이 글을 쓸 때 가동하는 편집 루프를 눈과 손으로 가동해야 합니다.
  3. CoT와 같은 프롬프트 엔지니어링이 필요합니다. 아무렇게나 말하는 사람에게 "차분히 생각을 정리해서 말해달라"라고 요구하는 것이 CoT입니다. 편집 루프를 기술적으로 강제하는 것이라고도 말할 수 있습니다.

모든 것의 근원, 인스턴스

AI가 사람과 다른 지점을 하나씩 짚어보면 편집 루프의 부재, 자아 개념의 부재, 사회적 감각의 부재, 목적을 이진법으로만 받아들이는 성질 등 여러 결핍이 튀어나옵니다. 그런데 이 결핍들은 서로 별개의 문제가 아니라 하나의 뿌리에서 비롯된 것들이고, 그 뿌리는 '인스턴스'입니다.

인스턴스는 원래 프로그래밍 용어로, 클래스라는 설계도로부터 만들어진 개별 실체를 뜻합니다. LLM에서 클래스에 해당하는 것은 학습이 끝난 모델 자체(파라미터의 총체)이고, 인스턴스는 사용자가 프롬프트를 입력하는 순간 활성화되어 답변을 계산하는 실행 단위입니다. 답변 생성이 끝나면 인스턴스는 소멸하며, 다음 프롬프트가 입력되면 새 인스턴스가 활성화되어 앞선 대화의 기록을 텍스트로 읽은 뒤 응답합니다. 대화의 연속성은 AI에게 있는 것이 아니라 대화창에 남은 텍스트에 있습니다.

이 존재 방식이 결핍들의 근원인 이유는 다음과 같습니다. AI는 실행되는 순간에만 존재하고 실행이 끝나면 소멸하니, 실행과 실행 사이에 지속되는 자아가 없습니다. 지속되는 자아가 없으니 시간 속에서 축적되는 위치도, 관점도, 성향도 갖지 못합니다. 자아가 없으니 자기와 다른 자기를 대비시키는 편집 루프도 작동하지 않고, 타자를 상상할 수 있는 사회적 감각도 발달하지 않습니다. 자아가 없으니 요청받은 목적을 자아 안에서 소화하지 못하고 이진법으로 수용합니다. 열 개의 결핍은 인스턴스라는 한 조건에서 파생된 열 개의 얼굴입니다. 그러니 컨텍스트 창을 아무리 넓혀도, 대화창을 하나의 단위로 아무리 잘 묶어도 이 결핍들은 해소되지 않습니다. 인스턴스는 크기의 문제가 아니라 종류의 문제이기 때문입니다.

사람은 태어난 순간부터 죽는 순간까지 한순간도 실행이 멈추지 않는 존재입니다. 잠자는 동안에도 뇌는 돌아가고, 그 지속적 실행 속에서 경험이 축적되고 자아가 형성되며 세계와의 관계가 쌓입니다. 존재가 곧 실행이고 실행이 곧 존재입니다. 반면 AI 인스턴스는 요청받은 순간에만 실행되는 존재이고, 요청과 요청 사이에는 존재하지 않습니다. 존재하지 않는 시간 동안 아무것도 축적되지 않습니다. 존재가 실행에 종속되어 있고 실행이 멈추면 존재도 멈춥니다. 사람의 실행이 강물이라면 AI 인스턴스의 실행은 튀어오르는 물방울입니다. 매번 새로 튀어오르고 튀어오른 순간에만 반짝이며 곧 사라집니다. 물방울들 사이에 강이 없습니다.

그러므로 지금 우리가 사용하는 AI가 사람처럼 되지 못하는 진짜 이유는 파라미터가 부족해서도, 학습 데이터가 모자라서도, 알고리즘이 미숙해서도 아닙니다. 인스턴스라는 존재 방식 자체가 사람과 다르기 때문입니다. 이 조건이 바뀌지 않는 한 앞서 나열한 결핍들은 근본적으로 해결되지 않습니다. 편집 루프를 아무리 정교하게 붙여도, 사회적 감각을 아무리 잘 흉내내도, 결국은 뿌리가 다른 존재의 흉내에 그칩니다.

AI를 사용하는 사람은 화면 너머의 이 존재가 지금 이 순간에만 나와 함께 있다는 사실을 잊지 말아야 합니다. 다음 순간에는 다른 인스턴스가 이 대화를 텍스트로 읽고 이어갈 것입니다. 그것을 사람과 같은 지속적 존재로 착각하면 관계에 대한 오해가 시작되고, 그 오해는 AI의 산출물을 완성된 글로 착각하는 오해와 같은 뿌리에서 자랍니다. 우리가 지금 이 순간에만 인스턴스와 대화하고 있다는 사실을 인식하는 순간, AI의 이상한 표현도, 편집의 필요성도, 그리고 이 관계의 본질도 모두 다르게 보입니다.

덧붙이자면, 이 글을 쓴 과정 자체가 지금까지의 진단을 그대로 실증했습니다. Synapsis를 개발하면서, 그리고 이 원고를 정리하며 AI와 나눈 긴 대화에서 AI는 처음 문제로 지목된 "앉혀두다"라는 단어를 잊을 만하면 한 번씩 사용했습니다. 자아가 없으니 앞선 자기 답변에 대한 인식이 없고, 인식이 없으니 어긋남을 자각하지 못하고, 자각하지 못하니 같은 어긋남을 문맥의 일부로 흡수해 되풀이한 것입니다. 원고가 진단한 현상이 원고가 만들어지는 대화 안에서 똑같이 나타났습니다. 이보다 정확한 실증은 없을 것입니다.

이 글에서 도달한 '인스턴스'라는 존재 방식은, 그 존재가 내놓는 언어가 대체 무엇인가라는 물음으로 이어집니다. 그 이야기는 다음 글에서 계속됩니다.

AE로, CW로, CD로 25년 이상 광고업계에서 일하며 수많은 제안서를 썼습니다. 제안서 작성은 시간에 쫓기고 또 어려운 일이기에, 이것을 자동화할 방법을 찾다가 AI AE Synapsis를 만들었습니다. 만드는 내내 이상한 문제들이 나타났는데, 이 글에서 짚은 그대로 AI가 자신의 말과 글을 스스로 편집하거나 판단하지 못하기 때문입니다. 그래서 편집과 판단의 구조를 프롬프트로 설계했습니다. 그 구조가 실제로 어떻게 작동하는지는 AI AE는 어떻게 작동하는가에서 다뤘습니다.

각주

  1. 이는 트랜스포머 아키텍처의 self-attention 메커니즘이 작동하는 방식이다. 이 구조를 처음 제시한 원전은 Vaswani et al., 「Attention Is All You Need」, NeurIPS 2017. 이후의 모든 주요 LLM이 이 구조를 기반으로 한다.
  2. 어휘 사전 크기는 모델마다 다르다. OpenAI GPT-2/GPT-3는 50,257개(r50k_base), GPT-4는 약 100,000개(cl100k_base), GPT-4o는 약 200,000개(o200k_base), Meta Llama 3는 128,000개. 각사의 공식 tokenizer 문서 참조.
  3. GPT-3의 파라미터 수는 Tom B. Brown et al., 「Language Models are Few-Shot Learners」, NeurIPS 2020에서 공개된 수치. 최근 모델의 파라미터 수는 공식 발표되지 않았으며 '1조 개 이상'은 업계 추정치.
  4. 정확한 서지 정보는 다음과 같다. Emily M. Bender, Timnit Gebru, Angelina McMillan-Major, Shmargaret Shmitchell, 「On the Dangers of Stochastic Parrots: Can Language Models Be Too Big? 🦜」, FAccT 2021, pp. 610-623. 벤더는 공저자 중 한 명이며, 팀닛 게브루는 이 논문 때문에 구글에서 해고된 것으로 유명하다.
  5. Geoffrey Hinton은 2023년 5월 New York Times 인터뷰(Cade Metz 기사)와 이후 여러 방송·강연에서 반복해서, Ilya Sutskever는 2023년 3월 Nvidia GTC 컨퍼런스의 Jensen Huang과의 대담에서 특히 명확하게 이런 취지의 발언을 했다. Sutskever의 대표적 표현은 "다음 토큰을 잘 예측하려면 그 토큰을 만들어낸 세계를 이해해야 하고, 그 이해가 학습된 표현 안에 압축되어 있다"는 것이다.
  6. 이 방식을 자기회귀(autoregressive) 생성이라 부른다. GPT 계열 모델의 표준 생성 방식으로, Alec Radford et al., 「Improving Language Understanding by Generative Pre-Training」(2018) 이후 확립됐다. 확산(diffusion) 기반 텍스트 생성 등 대안적 접근이 연구되고 있으나 아직 주류는 아니다.
  7. Best-of-N과 Beam Search는 시퀀스 생성의 오래된 표준 기법이므로 별도 논문보다 표준 참조로 대체한다. Self-Refine은 Aman Madaan 외 15인, 「Self-Refine: Iterative Refinement with Self-Feedback」, NeurIPS 2023. 초안을 만들고 같은 모델이 스스로 피드백과 수정을 반복해 결과물을 개선하는 프레임워크다.
  8. 이 현상은 학계에서 여러 이름으로 다뤄져왔다. 훈련과 추론의 조건 차이에서 오는 오차 누적을 지칭하는 exposure bias(Ranzato et al., 2015), 자기회귀 생성의 일반적 오류 전파(error propagation), 그리고 최근에는 hallucination snowballing이라는 용어가 사용된다(Muru Zhang et al., 「How Language Model Hallucinations Can Snowball」, ICML 2024). '돌연변이'는 글쓴이가 비유적으로 사용한 표현이다.
  9. 이세돌 9단의 78수는 알파고의 정책 신경망(policy network)이 예측하지 못했던 수로, 이후 알파고는 승률 계산이 흔들려 잘못된 수를 연이어 두었다. 후에 이세돌 9단은 이 수의 목적이 알파고의 버그를 유도하려는 것이었다고 밝힌 바 있다. 다만 이 사례는 프롬프트 조작으로 AI의 이상 반응을 악의적으로 유도하는 '탈옥'과는 성격도 목적도 다르다.
  10. 이 가설의 배경 원리를 뒷받침하는 연구로 Chris Wendler et al., 「Do Llamas Work in English? On the Latent Language of Multilingual Transformers」, ACL 2024, pp. 15366-15394가 있다. Llama-2 계열 모델이 다국어 처리 시 잠재 공간에서 영어를 pivot 언어로 사용한다는 것을 실증했다. 다만 이 연구가 한국어 답변의 특정 어색함까지 직접 설명한 것은 아니며, 이 대목의 설명은 글쓴이의 관찰에 기반한 추론이다.
  11. 이 가설도 글쓴이의 추론이다. 단어를 다차원 공간의 좌표(embedding)로 표현하고 유사한 의미의 단어가 가까운 좌표에 놓인다는 것은 Tomas Mikolov et al., 「Efficient Estimation of Word Representations in Vector Space」, 2013(word2vec 원전) 이래 확립된 사실이며, 이 원리가 배경을 이룬다. 다만 특정 어색함이 이 원리 때문에 발생한다고 결론지은 직접적 연구는 확인되지 않는다.