Part 3 · Word Representation - From Token IDs to Meaning

단어의 의미는 어디에 저장되어 있을까

토크나이저는 문장을 Token ID로 바꾸지만, 언어 모델은 이 번호를 그대로 계산하지 않습니다. Token ID는 의미를 찾기 위한 주소 역할만 할 뿐, 실제 계산은 Embedding Table에서 가져온 벡터를 이용해 시작됩니다. 이 장에서는 Token ID가 어떻게 의미를 담은 벡터로 변환되는지, 그리고 Embedding Lookup이 왜 모든 언어 모델의 첫 번째 계산 단계가 되는지 살펴봅니다.

Review

앞 장에서 확인한 내용

토크나이저는 문장을 토큰으로 나눈 뒤, 각 토큰을 Vocabulary에 저장된 Token ID로 바꿉니다.

문장 A cute bear
토큰 A · cute · bear
Token ID 17 · 842 · 391
Embedding Lookup 해당 행 찾기
벡터 시퀀스 언어 모델의 입력
Token ID는 의미를 직접 담고 있지 않습니다. 대신 Embedding Table에서 어떤 행을 가져올지 지정하는 주소로 사용됩니다.
Concept

임베딩이란?

임베딩(Embedding)은 토큰을 언어 모델이 계산할 수 있는 숫자 벡터로 바꾸는 표현 방식입니다.

토큰마다 하나의 벡터가 준비되어 있으며, 이 벡터들은 하나의 큰 표인 Embedding Table에 행 단위로 저장됩니다.

이번 장에서는 벡터 안의 숫자가 어떤 의미를 가지는지는 아직 다루지 않습니다. 먼저 Token ID로 표의 한 행을 찾아 벡터를 꺼내는 과정을 이해합니다.
Analogy

Embedding Table은 번호로 찾는 보관함과 비슷하다

도서관의 책 번호

도서관에서 책 번호는 책의 내용을 설명하지 않습니다. 책이 꽂힌 위치를 찾기 위한 번호입니다.

책 번호 1523
→
1523번 위치의 책
Embedding Table의 Token ID

Token ID도 토큰의 의미를 설명하지 않습니다. Embedding Table에서 벡터가 저장된 행을 찾기 위한 번호입니다.

Token ID 1523
→
1523번째 행의 벡터
Token ID는 표의 행 번호, 임베딩 벡터는 그 행에 저장된 실제 데이터라고 이해할 수 있습니다.
Embedding Table

Embedding Table의 구조

Embedding Table은 행과 열로 이루어진 숫자 표입니다. 각 행은 하나의 Token ID에 대응하고, 각 열에는 해당 토큰을 표현하는 숫자가 저장됩니다.

Token ID Token 숫자 1 숫자 2 숫자 3 숫자 4
0 <pad> 0.01 -0.04 0.07 0.02
1 the -0.21 0.15 0.32 -0.08
⋮ ⋮ ⋮ ⋮ ⋮ ⋮
1523 apple 0.12 -0.55 0.81 0.24
1524 tree 0.09 -0.31 0.74 0.18
⋮ ⋮ ⋮ ⋮ ⋮ ⋮

이해를 위한 4개 숫자 예시입니다. 실제 모델은 한 토큰을 훨씬 많은 숫자로 표현할 수 있습니다.

행(Row) 하나의 Token ID와 하나의 토큰에 대응합니다. Token ID가 1523이면 1523번 행을 찾습니다.
열(Column) 토큰을 표현하는 여러 숫자의 위치입니다. 열의 개수는 다음 장에서 배울 임베딩 차원과 연결됩니다.
Embedding Table도 모델의 가중치입니다.
이 표의 숫자는 사람이 고정해서 입력하는 값이 아니라, 모델이 학습하면서 예측 오류가 줄어드는 방향으로 계속 수정되는 학습 가능한 파라미터(Parameter)입니다.
Terminology

Embedding Table, Matrix, Layer는 무엇이 다를까?

임베딩을 설명할 때는 비슷해 보이는 여러 용어가 함께 등장합니다. 각 용어는 완전히 다른 대상을 뜻하는 것이 아니라, 같은 구조를 서로 다른 관점에서 설명한 표현입니다.

용어 의미 주로 사용하는 맥락
Embedding Table 모든 토큰의 임베딩 벡터를 행(Row) 단위로 저장한 표입니다. 교재, 실무 설명, 프레임워크 문서
Embedding Matrix Embedding Table을 수학적인 행렬(Matrix) 관점에서 부르는 이름입니다. 논문, 수식, 연구 문헌
Embedding Layer Token ID를 입력받아 임베딩 벡터를 출력하는 신경망의 레이어입니다. 내부적으로 Embedding Table을 사용합니다. PyTorch, TensorFlow 같은 딥러닝 프레임워크
Lookup Table 번호를 이용해 해당 항목을 찾아오는 표라는 동작 관점의 표현입니다. 구현 원리와 동작 설명
Embedding Lookup Token ID에 해당하는 행을 선택해 임베딩 벡터를 가져오는 과정입니다. 알고리즘과 처리 과정 설명
Embedding Layer Token ID를 벡터로 바꾸는 신경망 레이어
→
Embedding Table 토큰 벡터를 저장한 표
=
Embedding Matrix 같은 표를 수학적으로 본 행렬
→
Embedding Lookup Token ID로 한 행을 선택하는 동작
이 교재에서는 이해하기 쉽도록 Embedding Table이라는 용어를 기본으로 사용합니다. 논문이나 수식에서는 같은 대상을 Embedding Matrix라고 부르는 경우가 많습니다.
Embedding Layer는 신경망의 구성 요소를 가리키고, Embedding Table 또는 Embedding Matrix는 그 레이어 내부에 저장된 학습 가능한 가중치 행렬을 가리킵니다.
Embedding Lookup

Embedding Lookup은 어떻게 동작할까?

Lookup은 복잡한 계산을 먼저 수행하는 과정이 아닙니다. Token ID를 행 번호처럼 사용하여 Embedding Table에서 해당 행을 선택하는 과정입니다.

Token apple
→
Token ID 1523 1523번 행을 선택
→
Embedding Vector [0.12, -0.55, 0.81, 0.24]
1

토크나이저가 Token ID를 만듭니다.

apple → 1523

2

Token ID와 같은 번호의 행을 찾습니다.

Embedding Table에서 1523번 행을 선택합니다.

3

선택한 행의 숫자 전체를 가져옵니다.

[0.12, -0.55, 0.81, 0.24]

4

가져온 벡터를 언어 모델의 입력으로 전달합니다.

RNN이나 Transformer는 Token ID 자체가 아니라 이 벡터를 처리합니다.

Embedding Lookup은 Token ID → 해당 행 선택 → 벡터 가져오기의 과정입니다.
Interactive Lookup

Embedding Lookup 직접 확인하기

토큰을 선택한 뒤 Lookup 버튼을 누르면 Token ID에 대응하는 행과 벡터를 확인할 수 있습니다.

선택한 토큰 apple
→
Embedding Table의 행 Token ID 1523 1523번 행 선택
→
가져온 벡터
? ? ? ?
버튼을 누르면 선택한 Token ID에 대응하는 벡터를 가져옵니다.
Sentence Lookup

문장에는 여러 개의 임베딩 벡터가 필요하다

문장에는 여러 토큰이 들어 있으므로, 각 Token ID마다 Embedding Lookup을 한 번씩 수행합니다.

Token Token ID Lookup 결과
A 17 [0.31, 0.08, -0.17, 0.52]
cute 842 [-0.12, 0.66, 0.20, 0.41]
bear 391 [0.27, -0.09, 0.73, 0.16]
Token ID 시퀀스 [17, 842, 391]
→
각 행 Lookup 17행 · 842행 · 391행
→
벡터 시퀀스 3개의 임베딩 벡터
토큰이 3개라면 임베딩 벡터도 3개가 만들어집니다. 모델은 이 벡터들의 순서를 유지한 채 다음 단계로 전달받습니다.
Important Distinctions

Token ID, Embedding Table, Embedding Vector 구분하기

용어 역할 예시
Token ID Embedding Table에서 행을 찾는 번호 1523
Embedding Table 모든 토큰의 벡터를 행 단위로 저장한 표 Vocabulary 크기만큼의 행
Embedding Lookup Token ID에 해당하는 행을 선택하는 과정 1523번 행 선택
Embedding Vector 선택한 행에서 가져온 숫자 묶음 [0.12, -0.55, 0.81, 0.24]
Embedding Table 전체를 매번 모델에 넣는 것이 아닙니다. 입력된 Token ID에 해당하는 행만 선택하여 가져옵니다.
Embedding Lookup은 데이터베이스 검색과 같은가?
개념적으로는 번호로 항목을 찾는다는 점에서 비슷합니다. 다만 실제 딥러닝 프레임워크에서는 Embedding Table이 학습 가능한 행렬로 저장되고, 여러 Token ID에 대응하는 행을 한 번에 효율적으로 선택합니다.
Embedding Table의 숫자는 처음부터 의미가 있는가?
일반적으로 처음에는 작은 임의의 값으로 시작합니다. 언어 모델이 학습하면서 예측 오류를 줄이는 방향으로 Embedding Table의 숫자도 함께 조정됩니다. 구체적인 학습 원리는 이후 장에서 살펴봅니다.
Next Step

다음 장에서 배울 내용

이번 장
  • Embedding Table은 벡터를 저장한 표입니다.
  • Token ID는 표의 행을 찾는 번호입니다.
  • Lookup은 해당 행의 벡터를 가져오는 과정입니다.
다음 장
  • 벡터는 왜 여러 숫자로 이루어지는가?
  • 차원(Dimension)은 무엇인가?
  • 벡터의 거리와 유사성은 무엇을 나타내는가?
다음 장에서는 Lookup으로 가져온 Embedding Vector 자체가 무엇을 나타내는지 살펴봅니다.
Summary

학습 내용 정리

  • 임베딩은 토큰을 언어 모델이 계산할 수 있는 숫자 벡터로 표현하는 방법입니다.
  • Embedding Table은 모든 토큰의 벡터를 행 단위로 저장한 학습 가능한 가중치 행렬입니다.
  • Embedding Table과 Embedding Matrix는 같은 대상을 표와 행렬의 관점에서 부르는 이름입니다.
  • Embedding Layer는 내부의 Embedding Table을 사용해 Token ID를 벡터로 변환합니다.
  • Token ID는 Embedding Table에서 해당 토큰의 행을 찾기 위한 번호입니다.
  • Embedding Lookup은 Token ID에 해당하는 행을 선택하여 벡터를 가져오는 과정입니다.
  • 문장에 여러 토큰이 있으면 각 토큰마다 하나의 임베딩 벡터를 가져옵니다.
  • 언어 모델은 Token ID 자체가 아니라 Lookup으로 얻은 벡터 시퀀스를 처리합니다.