방식 | 핵심 아이디어 | 장점 | 단점 | 단점을 어떻게 다른 방식이 보완/극복했는지 |
---|---|---|---|---|
Absolute Positional Embeddings | - 문장 내 각 토큰 위치 (i)에 대해 ‘절대 위치’ 임베딩 pᵢ를 부여 - 일정 길이(예: 최대 시퀀스 길이)까지 pᵢ를 미리 정의(학습형 또는 사인/코사인 기반) | - 구현이 단순하고 직관적 - (특히 학습형의 경우) Transformer 아키텍처에 바로 결합 가능 - 기존 Transformer(Attention Is All You Need)에서 성능 검증 | - 시퀀스 길이가 달라지면(더 긴 문장 등) 일반화가 어려움 - 문장 재배치나 중간 일부 제거 시, 절대 위치 번호가 달라져 학습 시점과 괴리 발생 - ‘상대적 거리’가 중요한 패턴(예: 인접 단어)을 직접 포착하기 어려움 | - Relative 방식이 (j - i) 기반 임베딩으로 ‘길이 변화’와 ‘상대적 관계’ 문제를 개선 - Rotary 방식도 시퀀스 길이 확장이나 토큰 재배치에서 좀 더 유연하게 적응 가능 |
Relative Positional Embeddings | - 토큰 쌍 (i, j)의 상대 위치(j - i)에 따라 임베딩을 달리 부여 - 키/밸류 계산 시 aᵏᵢⱼ, aᵛᵢⱼ을 더해 점곱에 반영 | - (i, j)의 떨어진 거리에 대한 직접적이고 일반화된 패턴 학습 - 시퀀스 길이 변화, 부분적 잘림, 재배치 등에 강함 - 인접 토큰이나 몇 칸 떨어진 토큰처럼 “문맥적 거리” 정보를 명시적으로 반영할 수 있음 | - 절대 위치 정보를 완전히 배제하면(설계에 따라) 특정 과제에서 보완이 필요할 수 있음 - (j - i)가 크게 벌어지는 장거리 상황에서는 상대 임베딩 테이블 크기가 커질 수 있음 | - Rotary는 벡터 자체를 회전시키므로 대규모 길이에도 부드러운 확장이 가능 - Rotary는 (j - i) 테이블을 두지 않으므로, Relative 대비 메모리나 파라미터 증가 부담이 적으며 장거리 확장에도 유리 |
Rotary Positional Embedding (RoPE) | - 입력 벡터(x)를 위치에 따라 복소 평면에서 회전하는 방식 - 주로 Q, K 벡터에 각도(θ)를 적용해 dot-product 시 위치 정보 반영 | - sin, cos 기반 회전으로 위치 증가 시에도 연속적 변화 보장 - 최대 시퀀스 길이를 초과해도 비교적 유연하게 일반화 가능 - 별도의 룩업 테이블 없이 수식만으로 구현 가능해 파라미터 증가가 적음 - 대규모 언어 모델에서 효율적 | - “회전(순환) 특성”을 가정하기 때문에, 매우 극단적으로 긴 시퀀스(학습 범위 밖)에선 성능 저하 가능 - 특정 거리 자체를 명시적 파라미터로 다루지 않아, 세밀한 제어가 필요한 태스크에는 부족할 수 있음 | - 상대 거리별 파라미터가 필요한 경우에는 Relative 방식이 유리 - 반면 Rotary는 Absolute/Relative의 시퀀스 길이 제약 문제를 더욱 완화해, 다양한 길이 확장에 대해 상대적으로 유연한 편 |
Base 값 조정
상황별 Wavelength 조정
상황별 Wavelength 조정