트랜스포머·PEFT 2일 과정2장 · Transformer 입력 표현6 / 15← 이전목차다음 →MetaContents

2장. Transformer 입력 표현

토큰 수가 중요한 이유

택시 요금을 생각해 봅니다. 요금은 내가 몇 글자를 말했는지가 아니라 몇 킬로미터를 달렸는지로 매깁니다. LLM 에서 킬로미터에 해당하는 단위가 토큰입니다. 한 번에 갈 수 있는 거리(컨텍스트 길이), 내는 돈(API 요금), 걸리는 시간(계산량)이 모두 토큰 수로 정해집니다.

컨텍스트 길이, API 요금, 계산 속도의 세 상자를 나란히 놓은 비교 그림

그림의 세 상자 가운데 오른쪽 "계산 속도" 가 가장 무섭습니다. 3장에서 배울 Attention 은 토큰마다 다른 모든 토큰과 점수를 매기므로, 토큰이 n 개면 n × n 칸의 점수표를 채웁니다. 토큰이 두 배가 되면 칸은 네 배가 됩니다.

토큰과의 관계

항목토큰과의 관계택시로 치면
컨텍스트 길이모델이 한 번에 볼 수 있는 최대 토큰 수(Qwen2.5-0.5B-Instruct 는 32K 토큰)연료 한 통으로 갈 수 있는 거리
API 요금입력·출력 토큰 수에 비례해 과금미터기 요금
학습·추론 속도Attention 계산량이 토큰 수의 제곱에 비례거리가 두 배면 시간이 네 배인 길

짧은 예시

Python
# 실습 2에서 센 값: 같은 뜻의 문장이 한국어 13토큰, 영어 10토큰
ko_tokens, en_tokens = 13, 10

# Attention 점수표의 칸 수 = 토큰 수 × 토큰 수
print(ko_tokens * ko_tokens, en_tokens * en_tokens)  # 결과: 169 100

# 토큰이 1,000개에서 2,000개로 두 배가 되면 칸은 몇 배일까
print((2000 * 2000) / (1000 * 1000))  # 결과: 4.0

# 컨텍스트 32,768 토큰에 13토큰짜리 문장이 몇 개 들어갈까(// 는 몫만 구하는 나눗셈)
print(32768 // ko_tokens, 32768 // en_tokens)  # 결과: 2520 3276

이 코드가 뜻하는 것

택시 미터기를 직접 눌러 본 코드입니다. 손으로 계산하면 13 × 13 = 169, 10 × 10 = 100 이라서 같은 뜻인데도 한국어 문장의 점수표가 1.69배 큽니다. 토큰이 두 배가 되면 2 × 2 = 4 배가 됩니다. 마지막 줄은 같은 연료 통에 한국어 문장이 영어 문장보다 적게 들어간다는 뜻입니다.

줄하는 일쉽게 말하면
ko_tokens * ko_tokens점수표 칸 수를 구한다n × n 표의 크기
(2000*2000)/(1000*1000)토큰이 두 배일 때의 비거리 두 배, 시간 네 배
32768 // ko_tokens컨텍스트에 들어가는 문장 수연료 한 통으로 몇 번 갈까

주의할 점

  • 한국어 데이터의 길이를 정할 때는 글자 수 대신 실제 토크나이저로 센 토큰 수를 씁니다. 7장에서 SFT 데이터의 최대 길이를 정할 때도 토큰 수로 잽니다.
  • 토큰 수는 토크나이저마다 다릅니다. 같은 문장이라도 BERT 와 Qwen 의 토큰 수가 다르므로, 비교할 때는 같은 토크나이저로 셉니다.
← 이전 절2장 · 서브워드 사전을 만드는 방법다음 절 →2장 · 임베딩: 번호를 성격표로