지금까지 문장은 어디까지 변했을까?
앞 장에서는 문장을 토큰으로 나누고, 각 토큰을 Vocabulary에서 찾아 Token ID로 바꾸는 과정을 살펴보았습니다.
Token ID는 숫자인데, 왜 그대로 사용하지 않을까?
모델은 숫자를 계산할 수 있습니다. 그렇다면 Token ID도 숫자이므로 그대로 계산하면 될 것처럼 보입니다. 하지만 Token ID는 의미를 표현하기 위해 만든 숫자가 아닙니다.
cat → 100dog → 101airplane → 900
번호만 보면 cat과 dog가 가깝고
airplane이 멀어 보입니다.
하지만 이는 단지 번호를 부여한 결과일 뿐입니다.
모델이 실제로 필요한 정보는 어떤 단어가 비슷하고, 어떤 단어가 다른 상황에서 사용되는지입니다.
따라서 단순한 번호가 아니라 토큰의 특징과 관계를 표현할 수 있는 숫자 묶음이 필요합니다.
Token ID는 학번과 비슷하다
학생에게 학번을 부여하면 학교 시스템은 학생을 빠르게 구분할 수 있습니다.
20260015
그러나 학번만 보고 학생의 성격, 관심 분야, 실력이나 친구 관계를 알 수는 없습니다.
토큰에도 Token ID를 부여하면 모델 시스템은 토큰을 빠르게 구분할 수 있습니다.
apple1523
하지만 1523만 보고 사과가 과일인지,
바나나와 비슷한지 알 수는 없습니다.
번호를 붙이는 것과 의미를 표현하는 것은 다르다
| 구분 | 역할 | 예시 |
|---|---|---|
| Token | 텍스트를 나눈 입력 단위 | apple |
| Token ID | Vocabulary에서 토큰을 찾기 위한 번호 | 1523 |
| 의미 표현 | 토큰의 특징과 다른 토큰과의 관계를 계산할 수 있는 숫자 표현 | 다음 장에서 학습할 임베딩 벡터 |
모델은 apple이 과일과 관련 있고,
banana와 비슷한 문맥에서 사용되며,
airplane과는 다른 성격을 가진다는 관계를 계산해야 합니다.
Token ID만으로 의미를 판단할 수 있을까?
아래 토큰을 선택해 보세요. Token ID는 서로 다르지만, 번호만으로 의미 관계를 판단할 수 있는지 확인해 보겠습니다.
1523
1523이라는 번호만으로는 apple이 과일이라는 사실이나 banana와 비슷하다는 관계를 알 수 없습니다.
그렇다면 무엇이 더 필요할까?
언어 모델은 토큰을 서로 비교하고, 문맥 안에서 어떤 관계를 갖는지 계산해야 합니다. 이를 위해 각 토큰을 하나의 번호가 아니라 여러 숫자로 이루어진 표현으로 바꿉니다.
apple
1523
토큰을 찾는 번호
[0.12, -0.55, 0.81, ...]
다음 장: 임베딩
Token ID가 이미 숫자인데 왜 다른 숫자로 바꾸는가?
다음 장에서 배울 내용
- 문장은 토큰으로 나뉩니다.
- 토큰에는 Token ID가 부여됩니다.
- Token ID는 의미가 아니라 구분 번호입니다.
- Token ID로 임베딩 테이블의 행을 찾습니다.
- 해당 행에서 임베딩 벡터를 가져옵니다.
- 언어 모델은 이 벡터를 입력으로 사용합니다.
학습 내용 정리
- Token ID는 Vocabulary에서 토큰을 구분하기 위한 고유 번호입니다.
- Token ID의 숫자 크기에는 의미가 없으며, 토큰 사이의 유사성도 나타내지 않습니다.
- 언어 모델은 토큰의 특징과 관계를 계산할 수 있는 숫자 표현이 필요합니다.
- 임베딩은 Token ID를 의미를 표현하는 숫자 벡터로 연결하는 역할을 합니다.
- 전체 흐름은 Token → Token ID → Embedding → 언어 모델입니다.