-
Spline-based Transformers 요약논문 후기와 구현 2024. 10. 7. 15:04
최근 코딩테스트 공부에 열중했어서, 이 블로그 개설의 진정한 목적인 논문 요약을 거의 못하고 있었는데, 와중에 굉장히 흥미로운 논문이 발표되었다. 열흘 전에 디즈니에서 나온 따끈따끈한 논문이다. 아는 형과 이 논문에 대해 이야기를 나누다가 듣기를, 산공 쪽 분야에서는 디즈니의 연구가 꽤나 유명하다고 한다.
아래의 글은 단순 요약이기라기보다는 내가 기존에 알고 있었던 내용과 생각이 많이 가미된 내용임을 밝힌다.
1. 이 논문은 "절대 위치 인코딩"이 없는 Transformer를 제안한다.
일단 이 위치 인코딩이라는 것은 본디 Attention 시에 두 단어 사이의 거리는 고사하고 단순한 위치정보마저 전부 손실되기 때문에, 같은 단어로 구성된 문장이라면 정상적인 순서로 이루어진 문장이 아니라, 랜덤 순서로 섞인 문장으로 학습해도 같은 결과를 내게 되어(I love you = you me love) Attention에 위치 정보를 넣기 위한 수단이다.
- 절대 위치 인코딩
- 상대 위치 인코딩
- 로터리 위치 인코딩
절대 위치 인코딩(APE)
절대 위치 인코딩(Absolute Positional Encoding)은 각 시퀀스 위치 pos에 대해서 위치 인코딩을 생성한다. Attention is all you need에서 구현한 방식은 아래와 같다:
이렇게 사인파로 정의된 위치 인코딩은 토큰 임베딩에 직접적으로 더해진다. 원래 인코딩 값에 위치 인코딩 값이 더해진다는 뜻.
현재 가장 대중적으로 유명한 언어모델인 GPT가 바로 이 방식을 사용한다.
상대 위치 인코딩(RPE)
절대 위치 인코딩과는 달리 입력 시퀀스 토큰 간 상대적인 위치 정보를 Attention에 바로 전달하는 방식인데, Attention Matrix에 bias를 더하는 식으로 구성되기 때문에, Attention 시 두 단어 사이의 Attention 값을 계산할 때, 두 단어 사이의 거리가 반영될 수 있다.
이것의 장점은 긴 시퀀스에 대해 더 잘 일반화될 수 있다는 것이다. 왜냐하면 절대 위치 인코딩(APE)는 특정 시퀀스의 길이에 맞춰져서 학습되었기에 이 길이를 벗어나는 시퀀스에서 성능이 떨어질 수 있는데, RPE는 그렇지 않기 때문이다.
로터리 위치 인코딩(RoPE)
사실 위치 인코딩 방식이야 상대, 절대 말고도 여러 방법이 있는데, 그중 하나를 소개하자면 바로 이 RoPE이다. APE와 RPE가 적절히 결합된 방식이라고 볼 수 있는데, 각 위치의 토큰 임베딩을 회전시키는 방식으로, 토큰 간의 상대적 각도를 보존한다.
LLaMA라는 이름을 알린 첫 논문에서 그들은 이 방식을 채택했다고 썼다.
2. 이 논문은 B-Spline을 이용한다.
이 논문은 디즈니답게, 애니메이션에서 자주 이용되는 B-Spline을 이용한다. B-Spline을 간단히 설명하자면, 점(Point) 사이를 곡선으로 보간하는 것이다. 아래의 그림과 같다:
이 논문은, 입력 시퀀스를 부드러운 궤적으로 표현하는 방식으로 활용한다. 구체적으로 아키텍처는 다음과 같다:
Transformer 모델의 인코더와 디코더 사이에 잠재 공간을 활용하여, 각 제어 토큰(control tokens)을 제어점(control points)으로 변환한 후 B-Spline 기법을 적용한다. 이렇게 만들어진 곡선은 입력 시퀀스의 연속적인 흐름을 표현하며, 각 토큰 간의 순서 정보와 문맥 정보를 더 자연스럽게 연결하는 데 사용된다. 이 B-Spline 기반 접근은 기존 절대적 위치 인코딩이나 상대적 위치 인코딩에서 발생하는 단점을 해결하는 데 큰 도움이 된다. 논문의 표현은 다소 애매하지만, 제어 토큰은 입력 시퀀스의 토큰의 개수보다 하나 더 append하는 것으로 보인다. 즉, 입력 시퀀스의 토큰이 n개라면 제어 토큰이 n+1이라는 것. 그렇게 되면 C 연속성(몇 번 미분해도 함수가 연속인가)은 떨어지지만, 토큰의 위치를 잠재 곡선에 더 잘 나타낼 수 있으리라 생각된다.
이 방법은 추가적인 사인파 위치 인코딩 없이도 시간적 정보를 암묵적으로 인코딩할 수 있어, 더 부드러운 학습 궤적을 만들어낸다. 또한, B-Spline은 제어점의 조작을 통해 곡선의 일부분만 수정할 수 있는 국소 제어가 가능하기 때문에, 트랜스포머의 잠재 공간에서 특정 부분의 학습을 조정할 때 매우 유용하다. 제어점을 조금만 변경해도 해당 구간만 변화하므로, 기존 방식보다 더 세밀한 학습 제어가 가능하다.
3. 아직은 한계가 명확하다.
Spline-based Transformer는 hyper-parameter에 대해 robust하지 않다.
학습률이 1e-3일 때, 모델은 붕괴하는 것을 볼 수 있다. 논문에서도 향후 과제로 robust하게 만들어야 함을 강조한다.
'논문 후기와 구현' 카테고리의 다른 글