LLM은 이 모든 문장을 처리하기 위해 언어를 한 입 크기로 씹어 삼키는 것처럼 소화할 수 있는 작은 조각(chunk)으로 나누며, 이 과정을 분할(chunking)이라고 합니다.
LLM은 문장을 토큰(token)이라는 더 작은 부분으로 잘게 쪼갭니다. 개별 단어, 부분 단어, 구두점과 같은 특수 문자가 토큰이 될 수 있습니다.
문장을 분할하고 나면 각각의 토큰을 수치 벡터(numerical vector)에 임베딩(embedding)하거나 부호화(encoding)하는데, 이 작업은 토큰에 수학적인 표현을 부여하는 작업입니다. 예를 들면 ‘개’를 컴퓨터가 처리할 수 있도록 [0.51, 0.72, 0.33, ...]으로 변환하는 것이죠. 이 과정을 임베딩이라고 합니다.
다르게 표현하면 영어 문장을 숫자로 번역하는 것과 같습니다. 이제 각 토큰에는 단어 대신 컴퓨터가 이해할 수 있도록 대응되는 숫자 벡터가 있습니다.
임베딩 과정에서 LLM은 광범위한 사전 학습을 통해 학습한 패턴을 기반으로 각 토큰의 의미에 대한 정보를 포착합니다. 비슷한 의미를 가진 토큰은 벡터 공간(vector space)에서 서로 가깝게 임베딩됩니다.
이렇게 처리된 숫자 토큰 벡터는 모두 LLM의 벡터 데이터베이스에 저장되며, 이후 토큰을 조회하거나 다른 토큰과의 관계를 분석하는 데 사용됩니다. 벡터 데이터베이스는 LLM에게 있어 수학적 도서관의 색인과 같습니다.