주제: 1-8 텐서 Shape 실전 (Broadcasting, Batch/Seq/Hidden)

분류: foundations

타입: concept

난이도: 입문

선수지식: 있음 - 벡터, 행렬곱, y = Wx + b

문제 설정

딥러닝 코드에서 가장 흔한 오류 중 하나는 shape mismatch입니다. 모델 계산 과정을 이해하려면 텐서 차원을 정확히 추적할 수 있어야 합니다.

핵심 차원은 batch, sequence, hidden입니다.

직관 비유

1. Batch Dimension

여러 데이터를 동시에 처리할 때 배치 차원을 사용합니다.

batch = 4
feature = 3
X shape = (4, 3)
XR(BxD)

기호 의미

왜 필요한가

GPU 병렬 연산을 활용해 처리량을 높일 수 있습니다.

주의점

batch 차원은 보통 첫 번째 차원입니다.

2. Sequence Dimension

NLP에서는 순서 길이(토큰 길이) 차원이 중요합니다.

임베딩 후 일반 shape은 (B, S, H)입니다.

dimension의미
Bbatch size
Ssequence length
Hhidden size
B = 2, S = 5, H = 768
shape = (2, 5, 768)

3. Hidden Dimension

hidden dimension은 토큰 내부 표현 벡터의 크기입니다.

embeddingR(SxH)

왜 필요한가

표현 가능한 특징 공간이 커집니다.

주의점

hidden 차원이 커질수록 계산량/메모리 사용량이 증가합니다.

4. Broadcasting

서로 다른 shape 텐서를 자동 확장해 연산하는 기능입니다.

X shape = (B, S, H)
bias shape = (H)
Y = X + bias

(H) -> (B, S, H)로 맞춰져 연산됩니다.

수식 표현

y = x + b

왜 필요한가

불필요한 메모리 복사 없이 효율적으로 연산할 수 있습니다.

주의점

broadcast 규칙을 잘못 이해하면 shape 오류가 발생합니다.

5. Transformer 텐서 흐름 예

input_ids: (B, S)
embedding: (B, S, H)
Q, K, V:   (B, S, H)
QK^T:      (B, S, S)
output:    (B, S, H)
Attention(Q,K,V)=softmax(QKT/sqrt(d))V

주의점

attention에서는 sequence 간 상호작용으로 S x S 행렬이 만들어집니다.

코드-수식 연결

수식PyTorch 코드설명
X ∈ R^(B,S,H)x.shape텐서 shape 확인
broadcastx + bias자동 확장 연산
QK^Ttorch.matmul(Q, K.transpose(-1,-2))attention score

자주 하는 오해 5개

체크리스트 (스스로 설명 가능해야 하는 질문)