AI: 토큰 및 임베딩 특수 처리 – Relative Positional Embedding
ㅁ 토큰 및 임베딩 특수 처리
ㅇ 정의:
토큰 시퀀스 내에서 위치 정보를 절대값이 아닌 상대적인 거리로 표현하는 임베딩 기법으로, 문장 길이에 관계없이 토큰 간 상대적 순서를 모델에 전달한다.
ㅇ 특징:
– 입력 길이가 달라도 동일한 상대 거리 패턴을 학습 가능
– 긴 문장 처리 시 절대 위치 인덱스보다 일반화 성능이 높음
– 트랜스포머의 Self-Attention에 직접 통합 가능
ㅇ 적합한 경우:
– 문장 길이가 다양하거나 매우 긴 문장을 처리하는 NLP 작업
– 번역, 요약 등 문맥적 거리 정보가 중요한 태스크
ㅇ 시험 함정:
– 절대 위치 임베딩과 혼동하기 쉬움
– ‘상대 위치’를 ‘위치 차이의 크기만 반영’한다고 오해할 수 있음 (방향성 정보 포함 가능)
ㅇ 시험 대비 “패턴 보기” 예시:
O: Relative Positional Embedding은 토큰 간 거리 정보를 활용하여 문맥을 이해한다.
X: Relative Positional Embedding은 각 토큰의 문장 내 절대 위치를 인코딩한다.
ㅁ 추가 학습 내용
Relative Positional Embedding은 입력 토큰 간의 상대적인 거리 정보를 활용하는 방식으로, Transformer-XL, T5, DeBERTa 등에서 사용된다. DeBERTa는 Content-based 정보와 Position-based 정보를 분리하여 성능을 향상시켰다.
절대 위치 임베딩(Absolute Positional Embedding)은 문장 내 각 토큰의 고정된 위치 정보를 임베딩 벡터로 부여하며, 입력 임베딩에 더해 모델에 전달한다. 반면, 상대 위치 임베딩(Relative Positional Embedding)은 두 토큰 사이의 거리(상대 위치)를 직접 고려하여 attention score 계산 시 반영한다. 구현 시 주로 attention score 계산 과정에서 bias term을 추가하는 방식이 사용된다.
장점으로는 문장 길이가 달라지거나 문장 일부가 이동해도 위치 정보가 잘 유지되며, 긴 문맥 처리에 유리하다. 단점으로는 구현 복잡도가 높고, 상대 위치 범위에 제한이 있을 수 있다.
Rotary Positional Embedding(RoPE)은 위치 정보를 임베딩 벡터의 각 차원에 회전 변환 형태로 부여하여, 내적 연산에서 상대 위치 정보가 자연스럽게 반영되도록 한다. 이는 기존 상대 위치 임베딩과 달리 별도의 bias term 없이 연산 과정에 위치 정보를 내재화한다.
메모리 및 연산 효율성 측면에서, 절대 위치 임베딩은 구현이 단순하고 메모리 사용량이 적지만, 긴 문맥 일반화가 어렵다. 상대 위치 임베딩과 RoPE는 긴 문맥 처리에 강점이 있지만, 추가 연산과 메모리 사용이 발생할 수 있다.