[Week 7] Tokenizer

[email protected]  |  2025-10-19 11:36


1. 텍스트 → 토큰 (Tokenizer 단계)

  1. **토크나이저(tokenizer)**는 “문장을 모델이 이해할 수 있는 단위(토큰)”로 쪼개는 역할을 합니다.
  2. 예를 들어:

"로봇이 움직인다."
→ ["로", "봇", "이", " ", "움", "직", "인", "다", "."]
  1. 이 각각이 **토큰(token)**입니다.
  2. 영어의 경우 "robot is moving."["robot", " is", " moving", "."]
  3. 즉, 단어 또는 단어의 조각 단위로 분리됩니다.
핵심:
토크나이저는 “숫자 인덱스 벡터”를 만드는 역할.
실제로 모델에 들어갈 때는 각 토큰이 정수 ID로 변환됩니다.

예시:


"robot" → [6884]
"moving" → [15789]

🧠 2. 토큰 → 임베딩 벡터 (Embedding 단계)

  1. 임베딩 모델(text-embedding-3-small)은 이 토큰 시퀀스를 입력받아
  2. **각 토큰의 의미적 관계를 반영한 고정 길이 벡터(=1536차원)**로 변환합니다.
  3. 즉, 모델은 입력 문장의 모든 토큰을 한 번에 읽고,
  4. 그 의미를 요약해 1536차원의 실수 벡터로 압축합니다.

예시 (개념적 표현):


"robot is moving."
→ [0.021, -0.158, 0.334, ..., 0.045] # 길이 1536
⚙️ 이 1536차원은 “한 문서(또는 문장, 청크)를 하나의 점으로 표현하는 공간의 크기”입니다.
즉, 토크나이저가 단어 단위로 분리한 걸 벡터 공간의 한 점으로 매핑한 것.

🧮 3. 임베딩 벡터의 의미

  1. 이 벡터는 “의미 공간(semantic space)”에서의 좌표로,
  2. 비슷한 의미의 문장은 서로 가까운 거리로 위치하게 됩니다.
  3. 예:

"robot is moving" → 벡터 A
"machine is walking" → 벡터 B
  1. → 두 벡터의 코사인 유사도(cosine similarity)가 높음 (≈ 의미가 비슷함).

🔁 정리: 개념의 분리

구분역할결과물예시
Tokenizer문장을 토큰으로 쪼갬정수 ID 시퀀스"robot"[6884]
Embedding Model문장 전체를 의미 벡터로 변환1536차원 실수 벡터[0.12, -0.45, …, 0.03]
1536차원“임베딩 공간의 크기” (특징 수)문장 의미의 요약 표현벡터 간 거리 = 의미 유사도

💡 쉽게 비유하면

단계비유
Tokenizer문장을 “철자 코드”로 바꾸는 과정
Embedding Model그 코드들을 “의미 있는 숫자 좌표(벡터)”로 바꾸는 과정
1536차원벡터 공간의 축 개수 (언어의 의미적 방향 수)