
시퀀스 데이터를 처리할 때 단어의 순서 즉, Positional 정보는 모델의 이해도를 결정하는 핵심 요소
과거 BERT의 경우, 입력 단계에서 사인 or 코사인 주기함수를 사용하여 위치 정보를 모델에 부여했지만, 이 방법은 최대 토큰 제한이라는 물리적 벽이 존재
토큰 개수 제한은 이는 긴 문맥을 처리해야하는 경우 문맥이 끊기는 심각한 문제가 발생한다.
ex)
- RAG 구축 시 시멘틱 청킹을 사용한다고 가정할 때,
- 청크 크기가 512 토큰을 벗어나면 청크에 유용한 정보가 있어도 무용지물
비교적 최근 모델은 512 길이를 넘어 8,192 또는 그 이상의 토큰도 한 번에 처리 가능하며,
해당 모델은 위치 정보를 매기는 대신 어텐션에 직접적인 거리 패널티를 주는 ALiBi(Attention with Linear Biases)를 사용한다.
따라서 오늘 포스팅에선 ALiBi가 어떤 매커니즘을 갖는지 알아보고자 한다.
위치 정보를 매기지 않고 단어 사이의 거리에 따라 점수를 부여하는 방법이다.기존에는 입력 단계에서 위치 정보를 더해 최종 입력을 구성했지만,
ALiBi는 입력 단계에서 위치 정보를 부여하지 않고 단어 간 관계를 계산하는 어텐션 스코어 산출 단계에서 직접 패널티를 부여
💡
- B는 Bias를 의미하며, 상대적 거리를 나타내기 때문에
Bias 행렬은 0이하의 정수 값만 갖는다
- ex) 문장: I like apple
- 기준 단어가
I,
like : 거리 1 (패널티 : -1), apple : 거리 2 (패널티 -2)
💡
m은 일종의
scaler로, 보통 어텐션 헤드(H) 개수에 따라 달라지며, 값은 아래와 같다.
- 첫 번째 헤드의 m :
- 두 번째 헤드의 m :
...- 8번째 헤드의 m :
이러한 패널티 차등을 통해 마치 여러 시점으로 긴 문맥을 파악하는 것이 특징
외삽(Extrapolation) 능력효율성