AI는 언어를 어떻게 이해하는가?
우리가 인공지능과 대화하며 느끼는 경이로움의 이면에는, 아주 차갑고 냉정한 수학적 계산이 자리잡고 있습니다. AI는 우리가 던지는 질문의 '의미'를 이해하는 것이 아니라, 다음에 올 가장 적절한 '숫자'를 계산할 뿐이죠. 이 거대한 계산기가 어떻게 인간의 복잡한 언어를 흉내내게 되었는지, 그 여정을 따라가보겠습니다.
▸ AI가 확률에 집착하는 앵무새가 된 까닭
인간의 언어는 본질적으로 '모호함'의 바다입니다. 모든 대화에는 '의도'라는 것이 숨어있죠. 우리가 "잘하는 짓이다"라고 말할 때, 그것은 칭찬이 아닙니다. 그런데 컴퓨터는 0과 1의 세계에서 살기 때문에, 이런 비꼬는 말을 쉽게 이해하지 못합니다.
초기 AI 연구자들은 모든 문법 규칙을 직접 입력하려 했습니다. 그러나 언어는 살아있는 생물처럼 매 순간 변했고, 예외는 규칙보다 많았습니다. 결국 연구자들은 발상을 바꿉니다. "언어를 이해시키려 하지 말고, 통계적으로 예측하게 하자"는 전략이었죠.
초기의 거대언어모델이 하는 일은 단순했습니다. 앞에 나온 단어들을 보고, 다음 칸에 올 확률이 가장 높은 단어를 골라내는 것이죠. '학교에' 다음에는 '가다'가 올 확률 70%, '있다'가 올 확률 20%처럼 점수를 매기는 방식입니다. 그래서 학계는 AI를 '확률적 앵무새Stochastic Parrot'라고 부르기 시작했습니다. 뜻도 모른 채 주인과 대화하며 보상을 바라는 앵무새처럼, AI도 그저 데이터의 바다에서 배운 확률의 노래를 부르고 있을 뿐이라는 냉소적인 비판이었습니다.
하지만 이 앵무새가 단순한 흉내쟁이를 넘어 진정한 대화 상대로 진화하려면, 단어를 단순한 텍스트가 아닌 '의미'로 분석할 수 있는 특별한 장치가 필요했습니다.
▸ 단어에도 이웃이 있다 : 워드 투 벡터가 발견한 언어의 사회성
확률 계산을 하려면 단어를 숫자로 바꿔야 합니다. 처음에는 단어마다 고유번호를 붙였습니다. 그런데 1번 '사과'와 2번 '바나나' 사이에는 아무런 수학적 관계가 없었습니다. 컴퓨터 눈에는 '사과'와 '자동차'가 '사과'와 '바나나'만큼이나 무관해보였던 겁니다. 이 문제를 해결하며 등장한 것이 바로 워드 투 벡터Word2Vec입니다.
이 기술은 '단어의 의미는 그 단어 자체가 아니라, 함께 어울리는 이웃들에 의해 결정된다'는 언어학적 발견에 주목했습니다.
• '왕'이라는 단어 주변에는 늘 '궁궐', '왕관', '권력'이 등장합니다.
• '왕비' 주변에도 '궁궐', '왕관', '우아함'이 등장하죠.
연구자들은 이 '이웃들의 목록'을 바탕으로 단어를 좌표 평면 위에 점으로 찍기 시작했습니다. '왕'과 '왕비'는 비슷한 이웃을 가지니 서로 가까이 배치되고, '왕'과 '냉장고'는 이웃이 전혀 다르니 멀리 떨어집니다.
이것이 바로 '임베딩Embedding'의 시작입니다. 이제 컴퓨터는 단어를 '기호'가 아닌, 좌표 공간의 '거리'로 인식합니다. 왕과 왕비는 서로 당기는 힘, 벡터Vector가 강한 관계가 되고, 왕과 냉장고는 아주 먼 관계가 되는 것이죠.
임베딩에서는 방향과 거리, 관계에 따라 찾으려는 결과값을 추론하고 연산할 수 있도록 해줍니다.
그래서 이런 유명한 수식이 탄생했습니다: 왕 - 남자 + 여자 = 왕비. 우연이 아닙니다. 공간 위에서 '남자'에서 '여자'로 가는 방향과 거리를 '왕'의 좌표에 적용했더니, 바로 그 자리에 '왕비'가 있었던 겁니다. 단어들이 맺는 사회적 관계가 수학적인 지도로 변한 순간이었습니다. 이렇게 단어들이 공간에서 차지하는 좌표를 우리는 '임베딩'이라고 부릅니다. 임베딩과 이 수식을 이용하면, "왕이 남자가 아니고 여자라면 뭐라고 부르지?"라고 물어보면, "여왕입니다."라고 AI가 답하게 되는 거예요.
▸ 1,536차원의 우주 : 영화 〈인터스텔라〉의 그 장면을 떠올려보세요
초기의 임베딩은 2차원이나 3차원 공간에서 이루어졌습니다. 그런데 인간의 언어는 너무나 입체적입니다. '사과'라는 단어 하나에도 과일, 스마트폰 기업, 아담의 사과, 용서, 청사과, 단맛, 신맛 등 수많은 맥락이 얽혀있습니다. 2D 지도에 이 모든 정보를 담으려 하니, 정보가 겹치고 뭉개지는 문제가 생겼죠.
그래서 현대의 AI, 특히 GPT-4 같은 모델은 이 지도의 차원을 대폭 늘렸습니다. 무려 1,536차원으로 말이죠. 영화 〈인터스텔라〉의 주인공 쿠퍼가 블랙홀 속 테서렉트에 갇혔을 때를 떠올려보세요. 그 고차원의 공간에서 쿠퍼는 딸 머피의 방을 시간대별로, 각도별로 동시에 내려다봅니다. 3차원에서는 불가능했던 일이 4차원에서는 가능했죠. 그런데 AI가 사용하는 공간은 1,536차원입니다. 상상하기조차 어렵습니다.
'사과'라는 단어 하나가 AI에게 던져졌을 때, AI는 그 단어를 1,536가지 서로 다른 관점에서 바라봅니다. 1번 차원에서는 '식물성인가?', 2번 차원에서는 '스마트폰인가?', 3번 차원에서는 '어떤 맛이 나는가?'를 따지는 식이죠. 차원이 늘어날수록 단어들 사이의 미세한 맥락 차이는 겹치지 않고 정교하게 구분됩니다. 덕분에 AI는 우리가 '사과'라고 말할 때 그것이 '미안함'인지 '과일'인지 구분하는 정밀한 눈을 갖게 됩니다.
▸ 기억의 우주를 항해하는 나침반 : 벡터 데이터베이스
1,536차원의 우주에는 너무나 많은 별(데이터)이 떠 있습니다. AI가 필요한 정보를 찾기 위해 이 방대한 우주를 매번 처음부터 끝까지 뒤질 수는 없죠. 그래서 필요한 것이 벡터 데이터베이스입니다.
벡터 데이터베이스는 우리가 저장하는 정보를 임베딩의 형태로 저장해 둔 것이라고 보면 됩니다.
전통적인 데이터베이스가 별의 이름을 가나다순으로 정리한 '목록표'라면, 벡터 DB는 1,536차원 우주에 떠 있는 별들의 위치를 기록한 '항성 지도'입니다. 기존 데이터베이스 검색은 '사과'라는 정확한 글자가 포함된 문서를 찾아야 하지만, 벡터 DB는 '빨갛고 아삭하며 뉴턴에게 영감을 준 것'이라는 설명으로 좌표를 찾고, 그 근처에 있는 데이터들을 보여줍니다. 마치 '식초와 겨자 넣어서 차갑게 먹는 면 음식'이라고 설명하면 '냉면', '초계국수'와 같은 결과를 알려주는 것처럼요.
우리가 AI와 나누는 대화는 결국 숫자로 그려진 거대한 지도 위를 함께 걷는 일입니다. 이 차가운 숫자의 공간이 역설적으로 인간의 가장 복잡한 언어적 맥락을 가장 정교하게 담아내고 있죠.
