NLP 모델을 학습할 때 tokenizer의 output은 tokenized된 text 꾸러미들이다. (text_embedding이 아님)
LLM(대규모 언어 모델)의 가장 앞단에서는 토크나이저의 출력(Token IDs)이 입력으로 사용되며, 이를 임베딩(Embedding)으로 변환하는 과정을 거치게됨. 이를 단계적으로 살펴보면 다음을 따름:
입력 텍스트 → Token IDs 변환
tokenizer("Hello, world!")
# 출력: [15496, 11, 995]
여기서 각 숫자는 해당 토큰의 ID입니다.출력: Vocabulary Size의 정수값 (Token IDs)
[0, vocab_size-1]
.Embedding Layer
에서 Dense Vector로 매핑됨.embedding_dim
(예: 768, 1024 등).vocab_size
(어휘 크기)의 one-hot vector로 변환된 뒤, Embedding Matrix와 곱해져 Dense Embedding을 만듬.[vocab_size, embedding_dim]
vocab_size=50,000
, embedding_dim=768
→ [50,000, 768]
token_ids = [15496, 11, 995] # 토크나이저 출력
# 임베딩 벡터로 변환
embedding = Embedding(vocab_size, embedding_dim)
output = embedding(token_ids)
# 출력: Tensor of shape [3, embedding_dim]
tokenizer
)Embedding Layer
)[batch_size, seq_len, embedding_dim]
LLM의 입력 단계:
1. Tokenizer가 텍스트를 Token IDs로 변환 (범위: [0, vocab_size-1]
).
2. Embedding Layer가 각 Token ID를 Dense Embedding Vector로 변환.
3. 변환된 임베딩 벡터와 Position Embedding을 더하여(일반적인 경우) 모델의 첫 번째 Transformer 블록에 입력.