
ChatGPT는 글자를 읽지 않는다? Token과 Embedding의 구조 정리
요약
LLM이 텍스트를 처리하는 핵심 원리인 Tokenization과 Embedding의 개념을 설명합니다. 문장이 토큰 단위로 분할되어 숫자로 변환되고, 다시 의미를 담은 벡터로 변환되는 과정을 다룹니다.
핵심 포인트
- LLM은 글자가 아닌 토큰(Token) 단위의 숫자 배열로 문장을 인식함
- 토큰은 단어와 일치하지 않으며 모델에 따라 분할 방식이 다름
- Token ID는 단순 식별자일 뿐 단어 간의 의미 관계를 나타내지 않음
- Embedding을 통해 토큰을 고차원 벡터로 변환하여 의미적 유사성을 계산함
ChatGPT를 사용하다 보면, "정말로 문장을 이해하고 있는 것이 아닐까?"라는 생각이 들 때가 있습니다.
하지만 실제로 LLM (Large Language Model)은 인간처럼 일본어를 읽고 있는 것이 아닙니다.
우리가 보고 있는 "글자"는 내부에서 다음과 같은 흐름으로 처리됩니다.
문장
↓
Token화 (Tokenization)
...
이번에는 생성형 AI를 이해하는 데 있어 필수적인 "Token"과 "Embedding"에 대해 개발자 관점에서 정리해 보겠습니다.
Token이란 무엇인가?
예를 들어, 다음 문장을 살펴보겠습니다.
안녕하세요. 오늘은 날씨가 좋네요.
우리는 이것을 하나의 문장으로 인식합니다.
하지만 LLM은 문장을 그대로 다루고 있는 것이 아닙니다.
모델에 따라 다소 차이가 있지만, 내부에서는 다음과 같이 분할됩니다.
안녕하세요
。
오늘은
...
혹은 더 세밀하게 분할되는 경우도 있습니다.
안녕
하세요
...
여기서 중요한 점은, "Token = 단어"가 아니라는 것입니다.
예를 들어,
영어
playing
↓
play
...
일본어
東京都 (도쿄도)
↓
東京 (도쿄)
...
일본어 (다른 예시)
ありがとうございます (감사합니다)
↓
ありがとう (감사)
...
이와 같이, LLM은 문장을 "Token의 집합"으로 취급하고 있습니다.
Token은 숫자가 된다
Token으로 분할된 후, 각각의 Token에는 ID가 할당됩니다.
예를 들어, 다음과 같은 이미지입니다.
안녕하세요 → 39172
오늘은 → 8241
날씨 → 512
...
그러면 입력은 다음과 같은 숫자의 나열이 됩니다.
[39172, 8241, 512, 915]
여기서 중요한 것은, 이 시점에서 LLM은 이미 글자를 보고 있지 않다는 점입니다.
인간이 보기에는,
안녕하세요. 오늘은 날씨가 좋네요.
이지만, AI가 보기에는,
[39172, 13, 8241, 122, 512, 915, 205]
와 같은 숫자의 배열일 뿐입니다.
하지만 숫자만으로는 의미를 알 수 없다
여기서 한 가지 의문이 생깁니다.
고양이 → 100
강아지 → 101
자동차 → 102
이 숫자만 보면,
- 고양이와 강아지는 의미가 가까운가?
- 강아지와 자동차 사이에는 어떤 관계가 있는가?
와 같은 점을 알 수 없습니다.
예를 들어,
100 + 1 = 101
라고 해서,
고양이 + 1 = 강아지
라는 의미가 되지는 않습니다.
Token ID는 어디까지나 Token을 식별하기 위한 번호에 불과하기 때문입니다.
그래서 등장하는 것이 Embedding입니다.
Embedding이란 무엇인가?
Embedding이란 Token을 "의미를 가진 수치의 집합"으로 변환하는 메커니즘입니다.
예를 들어,
고양이
↓
[0.23, -0.18, 1.24, ...]
강아지
↓
[0.27, -0.15, 1.18, ...]
자동차
↓
[-1.85, 2.71, 0.42, ...]
실제로는 수백~수천 차원의 벡터 (Vector)로 변환됩니다.
그러면 의미가 가까운 단어끼리는 벡터 공간상에서도 가깝게 배치됩니다.
고양이 ←→ 강아지
(가까움)
고양이 자동차
(멂)
즉, AI는 "고양이와 강아지는 비슷하다", "고양이와 자동차는 별로 관계가 없다"와 같은 것을 글자가 아닌 수치 간의 위치 관계로 표현하고 있는 것입니다.
ChatGPT는 문장을 어떻게 보고 있는가?
예를 들어,
오늘은 비가 오니까 우산을 가져갑니다.
라는 문장이 입력된 경우, 내부에서는 다음과 같은 처리가 이루어집니다.
오늘은 비가 오니까 우산을 가져갑니다.
↓
Token화 (Tokenization)
...
여기서 중요한 것은,
ChatGPT는 문장을 "이해"한다기보다, "다음에 올 가능성이 높은 Token"을 예측하고 있다.
라는 점입니다.
그럼에도 불구하고, 인간이 보기에는 마치 생각하면서 대화하는 것처럼 느껴집니다.
이것이 LLM의 흥미로운 점입니다.
왜 Token을 아는 것이 중요한가?
Token의 구조를 알게 되면, 생성형 AI에 관한 다양한 의문들이 연결됩니다.
- 왜 긴 대화를 나누면 과거의 내용을 잊어버리는가?
- 왜 Token 수에 제한이 있는가?
- 왜 영어 쪽이 더 효율적인 경우가 있는가?
- 왜 프롬프트(Prompt)를 조금만 바꿔도 결과가 달라지는가?
이 모든 질문은 "문장은 Token으로 취급되고 있다"라는 전제 위에 성립합니다.
마치며
ChatGPT는 글자를 그대로 읽고 있는 것이 아닙니다.
문장
↓
Token
...
생성형 AI (Generative AI)를 이해하는 첫걸음은,
"AI는 글자가 아니라 숫자를 보고 있다"
라는 사실을 아는 것일지도 모릅니다.
다음에는 "Transformer란 무엇인가? Attention의 구조 정리"를 주제로 정리해 보겠습니다.
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기