Logo
Published on

LLM 기초: RNN과 순차 처리

Authors

왜 필요한가요

Attention Is All You Need 논문은 RNN을 쓰지 않는다는 점을 강하게 내세웁니다.
그 말이 왜 중요했는지 이해하려면 먼저 RNN이 문장을 어떻게 처리했는지 알아야 합니다.

이 노트를 읽으면 아래 문장을 만났을 때 덜 막힙니다.

Recurrent models process sequences token by token and are difficult to parallelize.

원본 개념과 수식

RNN은 현재 입력 x_t와 이전 상태 h_{t-1}를 함께 사용해 현재 상태 h_t를 만듭니다.

h_t = f(W_x x_t + W_h h_{t-1} + b)

여기서 의미는 다음과 같습니다.

  • x_t: t번째 토큰의 입력입니다.
  • h_{t-1}: 이전 토큰까지 읽고 남긴 기억입니다.
  • h_t: 현재 토큰까지 읽은 뒤의 새 기억입니다.
  • f: tanh 같은 비선형 함수입니다.

1차 해설: 수식이 말하는 것

RNN은 문장을 왼쪽에서 오른쪽으로 한 토큰씩 읽습니다.

나는 -> 오늘 -> 커피를 -> 마셨다

t번째 토큰을 처리하려면 t-1번째 상태가 먼저 필요합니다.
그래서 순서대로 처리해야 합니다.

이 구조는 자연스럽습니다.
사람도 문장을 앞에서 뒤로 읽기 때문입니다.
하지만 큰 모델을 빠르게 학습시키려면 문제가 됩니다.

쉬운 예시

릴레이 달리기를 떠올리면 됩니다.

  • 첫 번째 주자가 바통을 넘겨야 두 번째 주자가 출발합니다.
  • 두 번째 주자가 바통을 넘겨야 세 번째 주자가 출발합니다.
  • 모든 주자가 동시에 출발할 수 없습니다.

RNN도 비슷합니다.
앞 토큰의 계산이 끝나야 다음 토큰 계산이 가능합니다.

반면 Transformer self-attention은 문장 안의 토큰들을 한 번에 서로 비교할 수 있습니다.
이 차이가 병렬 학습 속도에서 큰 차이를 만듭니다.

논문에서 다시 만났을 때 읽는 법

Attention 논문에서 RNN의 한계를 말하면 보통 세 가지를 뜻합니다.

  1. 순차 처리 때문에 병렬화가 어렵습니다.
  2. 멀리 떨어진 단어 사이 정보가 여러 단계를 거쳐 전달됩니다.
  3. 긴 문장일수록 정보 전달 경로가 길어집니다.

예를 들어 문장 맨 앞 단어와 맨 뒤 단어가 관련 있으면, RNN은 그 관계가 여러 hidden state를 지나야 합니다.
Transformer는 attention으로 두 위치를 직접 비교할 수 있습니다.

자주 하는 오해

  • RNN이 항상 나쁜 구조라는 뜻은 아닙니다.
  • 짧은 시퀀스나 작은 문제에서는 여전히 이해하기 좋은 기본 모델입니다.
  • Transformer가 RNN을 대체한 핵심 이유는 성능만이 아니라 병렬 학습과 긴 의존성 처리입니다.

최소 체크포인트

  • RNN은 이전 상태를 기억으로 삼아 다음 토큰을 처리합니다.
  • 현재 계산이 이전 계산에 의존하므로 병렬화가 어렵습니다.
  • Transformer는 모든 토큰을 attention으로 직접 비교해 이 병목을 줄였습니다.