
대형 언어 모델(Large Language Model, LLM)이 문장을 이해하고 생성하는 과정에서 중요한 단계는 바로 토큰화(Tokenization)와 임베딩(Embedding)이다.
이 글에서는 이 두 과정을 실제 예시를 들어 설명하며, LLM이 어떻게 ‘문자’를 ‘의미 있는 벡터’로 바꾸는지 살펴보고자 한다.
1. 토큰화
문장을 기계가 읽을 수 있도록 나누다.
토큰화는 문장을 의미 있는 단위(토큰)로 분할하는 과정이다. 일반적으로 자연어처리에서는 단어 단위로 자르지만, GPT 모델은 더 세분화된 방식인 서브워드(subword) 토크나이징을 사용한다. 이는 Byte Pair Encoding(BPE)이나 SentencePiece와 같은 알고리즘을 통해 이루어지며, 자주 등장하는 단어 조각들을 기반으로 문장을 분해한다.
“나는 사과를 좋아해.”
‘▁’ 기호는 공백(띄어쓰기)을 나타낸다.
이러한 조각들은 각각 토큰 사전에 있는 고유 번호(ID)로 매핑된다.
['▁나는', '▁사과', '를', '▁좋아', '해', '.'] → [1201, 4302, 12, 6723, 102, 4] (가상의 토큰 ID)
이렇게 하면 자연어가 모델이 이해할 수 있는 숫자 형태로 변환된다.
2. 임베딩
숫자에 의미를 부여하다
토큰 ID는 단순한 정수에 불과하다. 모델은 이 숫자들을 입력값으로 받아들이기 위해 고차원 벡터로 변환하는 과정이 필요하다. 이때 수행되는 작업이 바로 임베딩(Embedding)이다.
벡터로의 변환
각 토큰 ID는 사전에 정의된 임베딩 행렬(Embedding Matrix)을 통해 고정된 크기의 실수 벡터로 변환된다. 예를 들어 GPT-2 기준으로는 768차원 벡터로 임베딩된다.
1201 → [0.18, -0.04, ..., 0.12]
4302 → [0.25, 0.02, ..., -0.09]
...
임베딩의 의미
- “사과”와 “배”처럼 유사한 단어는 벡터 간 거리도 가까움
- “좋아해”와 “사랑해”처럼 같은 계열의 감정 표현도 유사한 방향의 벡터를 가짐
- 이는 LLM이 언어의 의미 공간(Semantic Space)을 형성하고 활용하고 있다는 것을 의미한다
3. 전체 흐름 정리
아래는 전체 흐름을 시각화한 요약이다:
[입력 문장]
“나는 사과를 좋아해.”
↓
[토큰화]
['▁나는', '▁사과', '를', '▁좋아', '해', '.']
↓
[토큰 ID]
[1201, 4302, 12, 6723, 102, 4]
↓
[임베딩]
→ 각 토큰이 768차원의 벡터로 변환됨
↓
[모델 입력]
→ 문맥 파악, 예측, 생성 등 고차원 연산 수행
4. 마치며
토큰화와 임베딩은 LLM이 언어를 ‘그냥 텍스트’가 아닌 계산 가능한 정보로 바꾸는 핵심 단계이다. 단어를 숫자로, 숫자를 벡터로, 벡터를 다시 의미로 연결하는 이 정교한 구조 덕분에, 우리는 인공지능이 마치 사람처럼 글을 쓰고, 요약하며, 대화를 이어가는 모습을 볼 수 있게 된 것이다.
'Text Gen AI > 자연어 처리 (NLP)' 카테고리의 다른 글
| LLM 개요 - 대규모 언어 모델 개요와 모델 종류 (0) | 2026.05.03 |
|---|---|
| 자연어 처리(NLP) - Seq2Seq 모델과 Self-Attention 메커니즘 (0) | 2026.05.02 |
| Seq2Seq 모델 - Encoder와 Decoder 구조 이해 (0) | 2026.05.01 |
| LSTM 모델 - 자연어 처리와 시계열 예측에 왜 적합할까 (0) | 2026.05.01 |
| 순환신경망 RNN - 텐서플로 코드로 동작 원리 쉽게 이해 (0) | 2026.05.01 |
댓글