AI는 글을 어떤 숫자로 바꿀까
언어모델은 글을 작은 토큰으로 나누고 각 토큰을 숫자 ID와 벡터로 표현한다. 계산이 진행되면서 같은 단어도 주변 문맥에 따라 서로 다른 내부 표현을 갖게 된다. 검색에 쓰는 문장 임베딩은 이 과정과 관련이 있지만, 문장 전체를 처음부터 하나의 벡터로 바꾸는 절차와는 구분해야 한다.
오늘의 요약
임베딩, 벡터, 토큰 같은 말이 낯설어도 핵심은 단순하다. 컴퓨터는 숫자만 계산할 수 있기 때문에 의미도 숫자 표현으로 바꿔야 한다는 점이다. 이 원리를 알면 왜 AI 검색, 추천, 요약이 모두 숫자 공간 위에서 움직이는지 이해가 쉬워진다.
컴퓨터가 글을 계산하려면 숫자 표현이 필요하다
사람은 문장을 보면 의미를 떠올리고 단어 사이의 관계를 파악한다. 컴퓨터에서 실행되는 언어모델은 글을 그대로 붙잡아 계산하지 않는다. 입력된 글을 숫자로 표현한 다음 수학 연산을 수행한다.
그렇다고 문장 하나를 곧바로 숫자 하나로 바꾸는 것은 아니다. 생성형 언어모델이 글을 처리하는 과정에는 토큰, 토큰 ID, 임베딩, 문맥화된 내부 표현처럼 서로 다른 단계가 있다.
첫 단계는 토큰으로 나누는 일이다
언어모델은 입력 문장을 토큰이라는 작은 단위로 나눈다. 토큰 하나가 단어 하나와 정확히 일치하는 것은 아니다. 자주 쓰는 단어는 하나의 토큰이 될 수 있고, 긴 단어나 낯선 표현은 여러 토큰으로 나뉠 수 있다. 문장부호도 별도 토큰으로 처리될 수 있다.
각 토큰에는 사전에 정해진 정수 번호인 토큰 ID가 붙는다. 이 번호는 토큰을 구별하기 위한 표지다. 번호가 가깝다고 뜻도 비슷한 것은 아니다. 예를 들어 ID가 150번인 토큰과 151번인 토큰 사이에 특별한 의미 관계가 있다고 볼 수 없다.
토큰 ID는 계산에 쓸 벡터로 바뀐다
모델은 각 토큰 ID를 토큰 임베딩이라는 숫자 묶음, 즉 벡터로 바꾼다. 벡터는 모델이 학습 과정에서 단어의 쓰임과 관계를 계산할 수 있게 해주는 표현이다.
여기서 끝이 아니다. 같은 단어도 앞뒤 문장에 따라 뜻이 달라진다. “은행에서 돈을 찾았다”의 은행과 “강가의 은행나무를 보았다”에 들어 있는 비슷한 글자 조합은 주변 토큰이 다르다. 언어모델은 여러 계산 단계를 거치며 각 토큰의 표현에 주변 문맥을 반영한다. 이를 문맥화된 내부 표현 또는 은닉표현이라고 부른다.
생성형 언어모델은 보통 문장 전체를 먼저 하나의 고정 벡터로 압축한 뒤 답을 만드는 방식으로 작동하지 않는다. 여러 토큰의 표현을 계속 갱신하면서 다음에 올 토큰의 확률을 계산한다.
검색용 문장 임베딩은 목적이 다르다
문장이나 문서 전체를 하나의 벡터로 표현하는 방식도 있다. 검색창에 입력한 질문과 자료 목록에서 의미가 비슷한 문서를 찾을 때 쓰는 문장 임베딩 또는 문서 임베딩이 대표적이다.
예를 들어 “첫 직장을 구하는 방법”과 “신입 취업 준비 요령”은 사용한 글자가 다르지만 검색용 임베딩에서는 비슷한 표현을 가질 수 있다. 검색 시스템은 두 벡터를 비교해 관련 자료의 후보를 찾는다.
문장의 길이와 벡터를 구성하는 숫자의 개수는 직접 비례하지 않는다. 긴 문장이라고 검색용 임베딩의 차원이 더 커지는 것은 아니다. 같은 임베딩 모델을 사용한다면 짧은 문장과 긴 문서도 보통 정해진 수의 숫자로 표현된다. 다만 너무 긴 입력은 모델의 입력 한도를 넘거나 세부 정보가 하나의 벡터에 뭉개질 수 있다.
한 줄로 정리하면, 언어모델은 글을 토큰 ID로 바꾸고 토큰 임베딩과 문맥화된 표현을 계산한다. 검색용 문장 임베딩은 문장이나 문서를 하나의 벡터로 만들어 비교하는 별도의 활용 방식이다.
다음 글에서는 검색용 임베딩이 문장 사이의 연관성을 어떻게 비교하는지 살펴본다.
Next Step
이 글을 읽은 뒤 바로 이어볼 수 있는 추천
더 읽기로 감을 넓히고, 사례를 본 뒤, 필요하면 참여나 도구로 넘어가면 됩니다.
다음 행동
아직 댓글이 없습니다. 첫 댓글을 작성해보세요!