패딩 토큰
패딩 토큰(padding token)은 길이가 제각각인 문장을 한 번에 묶어서(배치로) 모델에 넣기 위해 “빈칸을 채우는 용”으로 쓰는 특별한 토큰이다.
LLM(Transformer) 같은 모델은 한 번에 들어오는 시퀀스의 길이가 같아야 연산이 효율적이다. 그런데 실제 텍스트는 길이가 제각각이다.
"안녕"
"오늘 날씨 어때?"
"내일 점심 뭐 먹지?"
이걸 한 배치(batch)로 만들려면 길이가 긴 문장에 맞춰 짧은 문장을 빈칸으로 채워 길이를 같게 해야 한다. 이 때 쓰는 빈칸 토큰이 패딩 토큰이다.
BERT vs GPT-2
BERT 같은 모델은 [PAD]라는 토큰이 원래 정의돼 있어서 그냥 padding=”max_length”하면 자동으로 패딩해준다. GPT-2는 “빈칸”이라는 개념이 없어서 [PAD] 토큰이 없다. 그래서 직접 pad_token을 지정해줘야 한다. 가장 흔한 트릭이 “pad_token을 eos_token으로 지정”하는 것이다.
정리하자면 패딩 토큰은 시퀀스 길이를 맞추기 위한 더미 토큰이라고 할 수 있고 모델이 학습할 때는 이 토큰의 로스를 무시하거나 가중치를 0으로 두도록 처리한다.
텐서(tensor)
텐서는 숫자를 여러 차원으로 배열한 것(일종의 고차원 행렬)이고, 딥러닝 프레임워크가 데이터를 처리하는 기본 단위이다.
- 직관적 예시
| 이름 | 모양 | 설명 |
|---|---|---|
| 스칼라(scalar) | 3 | 숫자 하나 (차원 0) |
| 벡터(vector) | [3,5,7] | 숫자들이 일렬로 (차원 1) |
| 행렬(matrix) | [[3,5,], [7,9]] | 2차원 격자 (차원 2) |
| 텐서(tensor) | [[[…]]] | 그 이상 차원의 배열 (차원 3, 4, …) |
딥러닝에 들어가는 입력, 가중치, 출력은 전부 이런 식의 숫자 배열이다. 이미지(가로, 세로, 색채널)도 3차원 텐서, 미니배치(batch_size, seq_length, hidden_size)는 3차원 텐서로 표현된다.
- 파이토치/텐서플로에서의 텐서
파이토치 예시
import torch
x = torch.tensor([1, 2, 3]) # 1차원 텐서 (벡터)
y = torch.tensor([[1, 2], [3, 4]]) # 2차원 텐서 (행렬)
print(x.shape) # torch.Size([3])
print(y.shape) # torch.Size([2, 2])
모든 입력, 가중치, 출력 계산이 이런 텐서 연산으로 이루어진다.
- 왜 “텐서”라는 말을 쓰나?
- 스칼라/벡터/행렬을 모두 일반화한 개념이 텐서라서, 하나의 단어로 부를 수 있다.
- GPU에서 이런 고차원 배열 연산을 병렬로 빠르게 처리할 수 있다.
Processor란?
processor는 모델의 입력과 출력을 전처리/후처리 하는 객체.
멀티모달 모델에서는 텍스트와 이미지, 또는 둘 다를 모델이 이해할 수 있는 토큰 형태로 변환해야 한다.
- 텍스트 → 토큰화(tokenization) → 숫자 ID 배열
- 이미지 → 픽셀/특징 추출 → 모델 입력에 맞는 텐서(tensor)
즉 processor는 사람이 보는 형태를 모델이 보는 형태로 바꿔주는 역할을 한다.
- 텍스트 전처리
tokens = processor(text="안녕", return_tensors="pt")
- 이미지 전처리
image_tensor = processor(images=image, return_tensors="pt")
- 멀티모달 처리
inputs = processor(text="질문", images=[image1, image2], return_tensors="pt")
- 출력 후처리(decode)
answer = processor.decode(output_ids, skip_special_tokens=True
모델마다 processor가 다른 이유는 모델마다 토크나이저 방식, 이미지 전처리 방식, 특수 토큰이 달라서 같은 AutoProcessor라도 내부에서 모델별로 적합한 전처리/후처리 파이프라인을 자동으로 설정해주게 된다.
'AI' 카테고리의 다른 글
| LangGraph란 (0) | 2026.03.12 |
|---|---|
| 딥러닝 간단 정리 (0) | 2026.03.12 |