위치 인코딩(Positional Encoding)

•
2026년 10월 18일 발행•2026년 10월 18일 수정
요약

순서 정보가 없는 어텐션 기반 모델에 토큰의 위치를 알려 주기 위해 벡터나 연산으로 위치 정보를 주입하는 기법

중급
트랜스포머와 셀프 어텐션의 동작, 삼각함수와 회전 행렬 등 기본 선형대수에 대한 이해가 필요하다.

#개념

위치 인코딩(Positional Encoding)은 트랜스포머(Transformer)처럼 순서를 직접 다루지 않는 모델에 토큰의 위치 정보를 주입하는 기법이다. 각 위치에 고유한 벡터나 연산을 부여해 모델이 "몇 번째 토큰인지"와 "토큰 사이가 얼마나 떨어져 있는지"를 구분할 수 있게 한다.
위치 인코딩이 필요한 이유는 셀프 어텐션(Self-Attention)의 순서 불변성에 있다. 어텐션은 쿼리와 키의 내적으로 가중치를 계산하고 값을 가중합하므로, 입력 토큰의 순서를 뒤섞어도 출력은 같은 방식으로 뒤섞일 뿐 내용은 달라지지 않는다. 즉 위치 정보가 없으면 "개가 사람을 문다"와 "사람이 개를 문다"를 같은 단어 집합으로 취급하게 된다.
순환 신경망(RNN)은 토큰을 차례대로 처리하면서 순서를 자연스럽게 반영하고, 합성곱 신경망은 국소 커널로 상대 위치를 일부 포착한다. 반면 트랜스포머는 모든 토큰을 병렬로 처리하므로 위치를 별도로 알려 주어야 한다. 위치 정보를 주입하는 방식은 크게 다음과 같이 나뉜다.
위치 정보 주입 방식의 분류
  • 고정 절대 위치 인코딩: 사인·코사인 같은 정해진 함수로 위치별 벡터를 만들어 입력 임베딩에 더한다. 학습 파라미터가 없다.
  • 학습형 절대 위치 임베딩: 위치마다 학습 가능한 벡터를 두고 입력 임베딩에 더한다. BERT, GPT-2, ViT가 이 방식을 쓴다.
  • 상대 위치 표현: 토큰 쌍의 거리 $i-j$에 따라 어텐션 점수나 키·값을 보정한다. Shaw 등(2018)과 T5가 대표적이다.
  • 회전형 위치 임베딩: 쿼리와 키를 위치에 비례한 각도로 회전시켜 내적에 상대 위치가 드러나게 한다. RoPE가 해당한다.
  • 어텐션 편향형: 위치 벡터 없이 어텐션 점수에 거리 비례 패널티를 더한다. ALiBi가 대표적이다.
원조 트랜스포머(Vaswani 등, 2017)는 사인·코사인 위치 인코딩(Sinusoidal Positional Encoding)을 사용했다. 위치 $pos$, 차원 인덱스 $i$, 모델 차원 $d$에 대해 $PE_{(pos,2i)} = \sin(pos/10000^{2i/d})$, $PE_{(pos,2i+1)} = \cos(pos/10000^{2i/d})$로 정의하고, 이 벡터를 토큰 임베딩에 더해 첫 계층에 입력한다.
차원마다 주파수가 다르기 때문에 앞쪽 차원은 빠르게, 뒤쪽 차원은 느리게 진동하며 파장은 $2\pi$부터 $10000 \cdot 2\pi$까지 기하급수적으로 늘어난다. 이 구조 덕분에 위치 $pos+k$의 인코딩은 $pos$의 인코딩에 대한 선형 변환으로 표현되어 모델이 상대 거리를 학습하기 쉽다. 또 함수로 계산하므로 학습 때 보지 못한 길이에도 값을 만들 수는 있다.
학습형 위치 임베딩(Learned Positional Embedding)은 최대 길이만큼의 임베딩 테이블을 두고 역전파로 함께 학습한다. BERT는 512개 위치, GPT-2는 1,024개 위치를 학습했고, 비전 트랜스포머(Vision Transformer, ViT)는 이미지 패치 순서에 1차원 학습형 임베딩을 붙였다. 구현이 단순하고 성능도 좋지만 테이블 크기를 넘는 위치에는 값이 존재하지 않아 길이 확장이 어렵다.
상대 위치 표현(Relative Position Representation)은 절대 좌표보다 토큰 간 거리가 더 중요하다는 관찰에서 출발한다. Shaw 등(2018)은 거리별 학습 벡터 $a_{ij}^K$를 키에 더해 $e_{ij} = x_i W^Q (x_j W^K + a_{ij}^K)^\top / \sqrt{d_z}$로 점수를 계산하고, 일정 거리 이상은 같은 벡터로 잘라(clipping) 사용했다. T5는 이를 단순화해 거리를 로그 간격의 버킷으로 묶고 버킷별 스칼라 편향을 어텐션 로짓에 더한다.
회전 위치 임베딩(Rotary Position Embedding, RoPE)은 Su 등(2021)이 제안했다. 쿼리와 키 벡터를 두 차원씩 짝지어 위치 $m$에 대해 각도 $m\theta_i$만큼 회전시키며, 주파수는 $\theta_i = 10000^{-2i/d}$를 쓴다. 회전 행렬 $R_m$의 성질로 $\langle R_m q, R_n k \rangle = q^\top R_{n-m} k$가 성립하므로, 절대 위치로 회전했는데도 내적에는 상대 거리 $n-m$만 남는다.
RoPE는 추가 파라미터가 없고, 값 벡터는 건드리지 않으며, 거리가 멀어질수록 내적의 상한이 줄어드는 감쇠 성질을 가진다. 또한 어텐션 직전 쿼리·키에만 적용되므로 KV 캐시(Key-Value Cache)와 잘 맞는다. 이런 장점으로 LLaMA, Mistral, Qwen 등 대부분의 최신 대규모 언어 모델(Large Language Model, LLM)이 RoPE를 기본으로 채택하고 있다.
ALiBi(Attention with Linear Biases)는 Press 등(2021)이 제안한 방식으로, 위치 벡터를 전혀 쓰지 않고 어텐션 점수에 $q_i^\top k_j - m_h \cdot (i-j)$처럼 거리에 비례한 패널티를 더한다. 헤드마다 기울기 $m_h$를 기하수열(8개 헤드라면 $1/2, 1/4, \dots, 1/256$)로 고정해 헤드별로 보는 범위를 다르게 한다. 짧은 길이로 학습해도 더 긴 입력에서 퍼플렉시티가 크게 나빠지지 않는다는 점이 핵심 주장이다.
위치 인코딩 설계에서 가장 중요한 쟁점은 길이 외삽(Length Extrapolation)이다. 학습 때 본 최대 길이를 넘는 위치가 들어오면 학습형 임베딩은 값이 없고, 사인·코사인이나 RoPE도 처음 보는 각도 조합이 나타나 어텐션 분포가 무너지기 쉽다. 그래서 LLM의 컨텍스트 창을 늘릴 때는 위치 인코딩을 조정한 뒤 짧게 추가 학습하는 방법이 널리 쓰인다. RoPE 기반 모델의 컨텍스트를 확장하는 대표 기법은 다음과 같다.
컨텍스트 확장 기법
  • 위치 보간(Position Interpolation, PI): 위치 인덱스를 $m \cdot L/L'$로 축소해 확장된 길이 $L'$를 학습 범위 $L$ 안으로 밀어 넣는다. 외삽 대신 보간을 하므로 안정적이지만 가까운 토큰 간 해상도가 떨어진다.
  • NTK 인지 스케일링(NTK-aware Scaling): 모든 주파수를 똑같이 줄이지 않고 RoPE의 기저(base)를 키워 고주파는 거의 유지하고 저주파 위주로 늘린다. 미세 조정 없이도 어느 정도 확장이 가능하다.
  • YaRN: 주파수 대역별로 보간 정도를 달리하고 어텐션 온도를 보정하는 기법이다. 적은 추가 학습으로 긴 컨텍스트를 확보한다.
  • 기저 주파수 증가: 사전 학습이나 장문 추가 학습 단계에서 RoPE 기저를 10,000보다 크게 설정한다. Code Llama는 기저를 1,000,000으로 올려 긴 코드 문맥을 다뤘다.
위치 인코딩은 텍스트 같은 1차원 시퀀스에만 쓰이지 않는다. 이미지는 패치의 행과 열, 비디오는 여기에 시간 축이 더해지므로 2차원 위치 인코딩(2D Positional Encoding)이 필요하다. 가장 단순한 방법은 임베딩 차원을 절반씩 나눠 행 좌표와 열 좌표를 각각 사인·코사인으로 인코딩해 이어 붙이는 것으로, DETR과 MAE 등에서 쓰였다.
ViT는 1차원 학습형 임베딩으로도 2차원 구조를 상당 부분 학습했지만, 해상도가 바뀌면 임베딩을 보간해야 하는 불편이 있다. 최근에는 행·열 축에 RoPE를 각각 적용하는 2D RoPE, 텍스트·이미지·시간 축을 나눠 회전하는 멀티모달 RoPE 등이 쓰이며, 해상도와 종횡비가 다른 입력을 더 유연하게 다룬다. 실무에서 위치 인코딩을 선택하거나 점검할 때는 다음 사항을 고려한다.
적용 시 고려 사항
  • 목표 길이: 서비스에서 처리할 최대 입력 길이가 학습 길이보다 길다면 RoPE 스케일링이나 ALiBi처럼 외삽에 강한 방식을 우선 검토한다.
  • 사전 학습 모델 호환성: 미세 조정 시에는 원 모델의 위치 인코딩 방식과 기저, 스케일링 설정을 그대로 맞춰야 성능이 유지된다.
  • 추론 효율: 쿼리·키에만 적용되는 방식은 KV 캐시, FlashAttention 같은 최적화 커널과 결합하기 쉽다.
  • 입력 구조: 표, 이미지, 그래프처럼 1차원이 아닌 데이터는 구조에 맞는 다차원 인코딩이나 별도 구조 임베딩을 설계한다.
위치 인코딩은 추천 시스템의 순차 모델에도 쓰인다. SASRec, BERT4Rec 같은 모델은 사용자의 행동 시퀀스에 학습형 위치 임베딩을 더해 최근 행동과 과거 행동을 구분한다. 이때 단순 순번 대신 행동 사이의 실제 시간 간격을 인코딩하면 세션 경계나 재방문 주기를 더 잘 반영할 수 있다.
정리하면 위치 인코딩은 순서를 모르는 어텐션에 순서 감각을 부여하는 장치이며, 절대 위치를 더하는 방식에서 상대 거리를 어텐션 내부에 녹이는 방식으로 발전해 왔다. 오늘날 LLM의 긴 컨텍스트 경쟁은 상당 부분 위치 인코딩의 외삽 성능 개선에 기대고 있으므로, 모델을 다루는 실무자는 사용 중인 모델의 위치 인코딩 방식과 확장 설정을 정확히 알고 있어야 한다.

#관련 용어

셀프 어텐션
시퀀스 내 모든 토큰 쌍의 관련도를 계산해 각 토큰의 표현을 갱신하는 연산
사인·코사인 위치 인코딩
차원마다 다른 주파수의 사인·코사인 함수로 위치 벡터를 만드는 고정형 절대 위치 인코딩
회전 위치 임베딩(RoPE)
쿼리와 키를 위치에 비례한 각도로 회전시켜 내적에 상대 거리를 반영하는 위치 인코딩
ALiBi
어텐션 점수에 토큰 간 거리에 비례한 선형 패널티를 더하는 위치 표현 방식
길이 외삽
학습 때 본 최대 길이보다 긴 입력에서도 모델 성능을 유지하는 능력
임베딩
토큰이나 위치 같은 이산 값을 연속 벡터 공간에 대응시킨 표현

#직무 연관도

DA
Data Analyst
희박
모델의 입력 길이 제약과 긴 문서 처리 한계를 이해하는 배경 지식
DS
Data Scientist
밀접
모델 구조 설계와 긴 컨텍스트 확장 연구에서 위치 인코딩 방식을 선택하고 개선
DE
Data Engineer
높음
사전 학습 모델의 위치 인코딩 설정을 맞춰 미세 조정·서빙하고 컨텍스트 길이 확장을 적용

#사용 사례

인터넷 서비스전자상거래미디어금융의료
개요
위치 인코딩은 기계 번역, 문서 요약, 대화형 AI 등 트랜스포머 기반 언어 모델 전반의 필수 구성 요소다. 전자상거래와 미디어 서비스에서는 사용자 행동 시퀀스를 다루는 순차 추천 모델에, 의료와 제조에서는 이미지·시계열을 다루는 트랜스포머에 2차원 또는 시간 위치 인코딩으로 활용된다.
사례
사내 문서 검색 챗봇에 쓰는 RoPE 기반 LLM의 컨텍스트를 8K에서 32K 토큰으로 늘리기 위해 RoPE 기저를 키우고 장문 데이터로 짧게 추가 학습해, 긴 계약서 전체를 한 번에 요약할 수 있게 한다.

#참고 자료

#추천 포스트

© 2024 diki All rights reserved.