이전 글에서 단어의 ‘빈도 수’ 를 세는 방식에 기반한 통계적 언어모델에 대해 다루었다. 하지만, 단어 자체의 빈도수를 세는 것 만으로 단어와 문장을 이해한다고 보기는 어려울 것이다. 예를 들면, “나는 학교에 간다”, “내가 공부하러 간다” 라는 두 문장이 있을 때, 두 문장에서 단어 자체가 같은 것은 “간다” 밖에 없다. AI가 두 문장에서 겹치는 단어를 세서 두 문장의 유사도를 계산한다고 하면, 두 문장의 의미적 연관성을 완벽히 찾기 어려울 것이다. 하지만, 한국어를 이해하는 사람이라면, 두 문장이 유사한 의미를 가진다고 쉽게 이해할 수 있다.
“공부”와 “학교”, “Study”와 “School”처럼, 두 단어의 철자가 완전히 다르더라도, 의미적으로 유사한 단어들이 있다. 우리가 이 단어들의 의미를 이해하는 것처럼 AI도 단어의 의미를 이해할 수 있을까? 컴퓨터는 애초에, 언어도, 감정도, 이미지도, 음성도 모든 정보로 숫자로 변환해서 저장한다. 이처럼 우리가 아는 다양한 정보를 AI가 이해할 수 있도록 수치화하는 작업을 “임베딩” 이라고 한다. 언어를 임베딩하기 위해서, 언어 임베딩 모델을 통해, ‘공부’ 라는 단어는 [ 0.33 0.12 0.37 0.31 0.53…]와 같은 수의 나열인 n차원의 벡터로 변환할 수 있다. 그리고 AI는 그 벡터를 통해, 우리가 아는 공부라는 단어를 이해하게 된다.
대표적으로 언어를 임베딩하기 위한 모델로 Word2vec이 있다. 2013년 구글이 발표한 이 모델은 단어를 벡터 형태로 변환하여 의미를 표현한다. Word2vec은 CBOW와 Skip-gram 두 가지 방식으로 이루어지는데, CBOW는 주변 단어들을 통해 중심 단어를 예측하고, Skip-gram은 중심 단어를 바탕으로 주변 단어를 예측한다. 이 모델들은 수많은 문장 속에서 단어들이 함께 등장하는 문맥을 분석함으로써, 각 단어를 의미 있는 벡터로 변환해낸다. 이를 통해 '공부'와 '학교' 같은 단어들은 의미적으로 가까운 위치의 벡터로 표현된다. 이때 단어 간의 유사도는 보통 코사인 유사도(Cosine Similarity)를 사용해 계산한다. 이는 두 벡터가 이루는 각도의 코사인 값을 구하는 방식으로, 두 벡터의 방향이 얼마나 비슷한지를 수치화한다. 코사인 유사도 계산을 통해, 벡터로 변환된 두 단어의 의미적 유사도를 계산해낼 수 있을 것이다.
언어 외에도 AI가 다양한 정보를 이해하기 위해서는 모두 임베딩 과정이 필요하다. 최근 ChatGPT가 사진을 지브리 스타일로 변환하는 기능이 큰 인기를 끌었다. 이 역시 AI가 많은 지브리 이미지를 학습하고 이미지의 특징을 벡터 형태로 임베딩한 덕분에 가능한 일이다. AI는 이미지 속의 눈, 코, 입과 같은 특정 패턴이나 형태를 기준으로 학습하여, 사용자가 올리는 이미지를 이해하고, 또 생성할 수 있다. 이미지 안에 형태를 나타내는 패턴 뿐만 아니라, 각 이미지의 색감, 질감 같은 스타일도 임베딩할 수 있다.
그런데 ChatGPT는 이미지에 포함된 글자를 종종 이상하게 변환하는 경우가 많다. 그 이유는 아마 이미지 안에 들어있는 글자를 '얼굴', '눈코입', '건물' 등 단순한 시각적 요소로만 인식하기 때문에, 글자의 의미를 보존하는 것이 완벽하지 않기 때문이 아닐까? 수많은 이미지 데이터를 학습했을 텐데, 이미지에 나와 있는 단어의 무궁무진한 조합을 이해하는 것은 좀더 기술의 발전이 필요한가 싶다. 반면, 사람이 사진을 보고 지브리 스타일로 그릴 때, 제일 쉬운 것은 글자를 그대로 옮기는 것일텐데 말이다.
나는 문득, 이제 막 세상의 언어들을 알아가기 시작한 한 아기가 떠올랐다. 작년에 태어난 친한 J언니의 아기 밤톨이다. 밤톨이는 내가 좋아하는 J언니와 J언니의 남편분을 닮아 예쁘고 똘똘한 아기다. 밤톨이를 보면 웃음을 짓게 되는 이유가 밤톨이가 귀엽기 때문이기도 하지만, 밤톨이가 행복한 아기이기 때문인 것 같다. 어느날, J언니와 밤톨이가 보고 싶어서 영상 통화를 걸었는데, 밤톨이는 J언니의 얼굴에 볼을 부비고, 연신 언니를 꿀이 떨어지는 눈빛으로 바라보고 있었다. 행복하고 귀여운 J언니의 아기를 보며, 밤톨이는 지금 행복에 대해서, 내 옆의 엄마라는 존재에 대해서 배워가는 중이구나 라는 생각이 들었다.
AI는 수억개의 텍스트를 읽어내서, ‘엄마’ 라는 단어를 텍스트 안에 들어 있는 문맥 정보를 통해 배워낸다. 밤톨이는 ‘엄마’ 라는 존재 자체에서, 엄마라는 단어를 배워나가고 있다. 밤톨이의 별빛같은 하루하루가 모여서, 밤톨이 마음에 우주가 자라나고 있다.
|