최원혁 ([email protected]), 2024년 4월 29일 21:49 작성

“ChatGPT, 반지의 제왕 시리즈 줄거리 요약해 줘.”

혹시 ChatGPT나 다른 LLM 모델을 사용하다가, 글자 수의 제한에 걸린 적이 있으신 적 있나요? 아니면 길고 긴 논문을 주고 쉽게 설명해달라고 했지만, 앞부분 내용은 설명 못 한 적은요?

ChatGPT에 아주 긴 텍스트를 넣으면 에러 메시지를 출력한다.

ChatGPT에 아주 긴 텍스트를 넣으면 에러 메시지를 출력한다.

사실 그동안 Input length를 증가시키기 위해 많은 노력이 있었습니다. 단순히 여러 문장을 더 입력하는 것뿐만 아니라, 거대 AI 모델을 활용할 수 있는 분야 자체가 확장될 수 있는 문제이기 때문이죠! 그런데 이것에 관해서, Input length를 무한대에 가깝게 확장할 수 있다고 주장하는 논문이 최근 아카이브에 올라왔습니다. 같이 살펴보시죠!

Transformer, 그리고 Self-attention

아마 LLM에 관심이 있으신 분들은 Transformer 구조와 그 핵심 구성 요소인 Self-attention 메커니즘까지 들어보셨을 겁니다. 그래도 다시 한번 논문의 이해를 위해 간단히 내용을 짚고 넘어가 볼게요!

Self-attention 메커니즘은 말 그대로 컴퓨터가 토큰을 인식할 때 어떤 토큰에 집중해서 연관성을 알아낼지 도움을 주는 메커니즘입니다. 예시로 아래의 그림에 있는 문장을 보시면, 사람은 대명사 “it”이 가리키는 단어가 “animal”이라는 사실을 쉽게 알 수 있습니다. 해당 과정을 모델이 할 수 있게 구현한 것이 바로 Self-attention입니다. 각 토큰 사이의 유사성을 비교하고, 높은 연관성을 가진 토큰과는 높은 attention score가 계산됩니다. 이러한 토큰 간의 상호작용을 포착함으로써 문맥적 의미를 더 잘 이해하게 되는 것이죠.

https://codingopera.tistory.com/43

https://codingopera.tistory.com/43

Transformer 아키텍처 기반 모델은 기존 RNN 계열 모델과 비교해서 월등한 성능을 가지고 있어 현재 지배적인 위치에 있는 모델입니다. 현재 대다수의 유명한 LLM 모델(ChatGPT, LLaMA) 모두 Transformer 아키텍처 기반 모델입니다.

하지만 Transformer 아키텍처 기반 모델들은 필연적으로 가지는 단점이 있는데요, 바로 제한적인 토큰 개수입니다.

Self-Attention 메커니즘은 길이 n의 입력 시퀸스에 있는 모든 토큰 쌍 사이의 관계를 계산하는데요, 따라서 시간 복잡도 $O(n^2)$를 가지게 되어 입력 길이가 길어질수록 필요한 계산량과 메모리 사용량이 기하급수적으로 증가합니다. 이런 이유로 인해 대부분의 Transformer 모델은 특정 길이의 입력만을 처리하도록 설계되어 있습니다. 예시로 GPT-3은 최대 2048개의 토큰까지만 입력으로 받을 수 있습니다. (토큰은 입력 문장을)