AI Engineer 공간 "사부작 사부작"

트랜스포머(Transformer): 기본 본문

Theory/Transfomer

트랜스포머(Transformer): 기본

ChoYongHo 2025. 5. 17. 10:23
728x90

트랜스포머(Transformer): RNN/LSTM의 한계를 넘어선 혁신의 아키텍처

자연어 처리(NLP) 분야는 마치 끊임없이 새로운 길이 열리는 광대한 숲과 같습니다. 수많은 연구자들이 더 정확하고, 더 빠르고, 더 똑똑한 모델을 만들기 위해 노력해왔죠. 그중에서도 2017년 구글 연구팀이 발표한 '트랜스포머(Transformer)'는 NLP 역사에 한 획을 그은 혁명적인 모델입니다. 기존의 RNN(Recurrent Neural Network)이나 LSTM(Long Short-Term Memory)이 가지고 있던 근본적인 한계들을 극복하며, 오늘날 GPT, BERT와 같은 거대 언어 모델(LLM)의 기반이 되었기 때문입니다.

그렇다면 트랜스포머는 과연 어떤 마법을 부렸길래 이토록 강력한 성능을 보여주는 걸까요? 이번 글에서는 트랜스포머의 핵심 아이디어와 주요 구성 요소들을 살펴보고, 이것들이 어떻게 기존 모델의 단점을 해결했는지 쉽고 자세하게 알아보겠습니다.

순차 처리의 딜레마: RNN/LSTM의 아쉬움

트랜스포머를 이해하기 전에, 기존의 대표적인 시퀀스 데이터 처리 모델인 RNN과 LSTM의 특징과 한계를 먼저 짚어볼 필요가 있습니다. RNN과 LSTM은 문장처럼 순서가 중요한 데이터를 처리하기 위해 고안되었습니다. 마치 우리가 글을 읽듯, 단어를 하나씩 순차적으로 입력받아 처리하는 방식이죠.

  • RNN/LSTM의 작동 방식 (간단 비유): 옆 사람에게 문장을 한 단어씩 속삭이며 전달하는 모습을 상상해 보세요. 첫 번째 사람이 "나는"이라고 말하면, 두 번째 사람은 그 말을 듣고 다음 사람에게 "어제"라는 단어와 함께 (기억하고 있다면) "나는"이라는 정보도 어렴풋이 전달합니다. 이런 식으로 문장 끝까지 정보가 전달되죠.

하지만 이런 순차적인 처리 방식에는 두 가지 주요한 문제가 있었습니다.

  1. 병렬 처리의 어려움: 한 단어씩 순서대로 처리해야 하므로, 문장이 길어질수록 계산 시간이 오래 걸립니다. 마치 긴 줄을 서서 차례를 기다리는 것과 같아서, GPU와 같은 병렬 연산 장치의 이점을 충분히 활용하기 어려웠습니다.
  2. 장거리 의존성 포착의 한계 (Vanishing Gradient Problem): 문장이 매우 길어지면, 문장 앞부분의 중요한 정보가 뒤로 갈수록 희미해지는 문제가 발생합니다. "나는 어제 파란 하늘 아래 강가에서 친구들과 즐거운 시간을 보내고 맛있는 저녁을 먹었는데, 그때 그것이 정말 인상 깊었어." 라는 문장에서 '그것'이 '파란 하늘'을 의미하는지, '강가'인지, '즐거운 시간'인지, 아니면 '저녁'인지 파악하려면 문장 전체의 맥락을 기억해야 합니다. 하지만 RNN/LSTM은 마치 기억력이 점차 흐려지는 사람처럼, 멀리 떨어진 정보는 잘 기억하지 못하는 경향이 있었습니다. LSTM은 이를 개선하려 했지만, 여전히 완벽하지는 않았습니다.

혁신의 서막: 트랜스포머의 등장과 셀프 어텐션

이러한 RNN/LSTM의 한계를 극복하기 위해 등장한 것이 바로 트랜스포머입니다. 트랜스포머의 가장 핵심적인 아이디어는 "순차적인 처리 방식을 버리고, 문장 내 모든 단어 간의 관계를 한 번에 파악하자"는 것입니다. 이를 가능하게 하는 핵심 메커니즘이 셀프 어텐션(Self-Attention)입니다.

셀프 어텐션 (Self-Attention): 문장 속 단어들의 관계도를 그리는 마법사

셀프 어텐션은 문장 안의 각 단어가 다른 모든 단어와 얼마나 연관되어 있는지를 계산합니다. 마치 사교 파티에 참석한 모든 사람이 서로 얼마나 친밀한지, 혹은 어떤 대화 주제에 대해 서로 얼마나 관심이 있는지를 한눈에 파악하는 것과 비슷합니다.

  • 개념: 각 단어는 세 가지 역할, 쿼리(Query, Q), 키(Key, K), 밸류(Value, V)를 부여받습니다.
    • 쿼리(Q): 현재 내가(특정 단어가) 주목하고 있는 정보. "나는 무엇에 대해 알아보고 싶지?"
    • 키(K): 다른 단어들이 가지고 있는 정보의 특징. "다른 단어들은 어떤 정보를 대표하고 있지?"
    • 밸류(V): 다른 단어들이 실제로 가지고 있는 정보. "그래서 그 정보는 구체적으로 뭐지?"
      각 단어의 쿼리는 다른 모든 단어의 키와 비교되어 '어텐션 스코어(Attention Score)'라는 연관성 점수를 계산합니다. 이 점수가 높을수록 두 단어는 서로 관련성이 높다는 의미입니다. 이렇게 계산된 어텐션 스코어는 각 단어의 밸류에 가중치로 작용하여, 현재 단어와 관련성이 높은 단어들의 정보는 더 많이, 관련성이 낮은 단어들의 정보는 더 적게 반영된 새로운 표현(representation)을 만들어냅니다.
  • 예시: "The animal didn't cross the street because it was too tired."라는 문장에서 'it'이 무엇을 가리키는지 파악해야 합니다. 셀프 어텐션은 'it'이라는 단어가 'animal'과 높은 연관성을, 'street'과는 낮은 연관성을 갖는다는 것을 계산하여 'it'이 'animal'을 지칭함을 이해하도록 돕습니다.
  • 장점:
    • 병렬 처리 가능: 모든 단어 쌍의 관계를 동시에 계산할 수 있어 RNN/LSTM보다 훨씬 빠른 학습이 가능합니다.
    • 장거리 의존성 효과적 포착: 문장 내 아무리 멀리 떨어진 단어라도 직접적인 관계를 계산하므로, 긴 문맥도 효과적으로 파악할 수 있습니다.

트랜스포머는 이 셀프 어텐션을 기반으로 여러 구성 요소를 조합하여 강력한 성능을 발휘합니다.

트랜스포머의 핵심 구성 요소 파헤치기

1. 멀티-헤드 어텐션 (Multi-Head Attention, MHA): 다양한 관점에서 문맥을 파악하는 전문가 팀

셀프 어텐션이 강력하긴 하지만, 한 번의 어텐션만으로는 문맥의 다양한 측면을 모두 파악하기 어려울 수 있습니다. 마치 한 명의 전문가가 모든 분야를 다 알 수 없는 것과 같습니다. 멀티-헤드 어텐션은 이러한 점을 보완하기 위해, 여러 개의 셀프 어텐션을 병렬적으로 수행합니다.

  • 개념: 입력 데이터를 여러 '헤드(Head)'로 나누어 각각 독립적으로 셀프 어텐션을 진행합니다. 각 헤드는 데이터의 서로 다른 특징이나 관계(예: 문법적 관계, 의미적 유사성 등)에 집중하여 정보를 추출합니다. 이후 각 헤드에서 나온 결과들을 다시 하나로 합쳐 최종 어텐션 결과를 만듭니다.
  • 비유: 하나의 복잡한 사건을 조사할 때, 여러 명의 탐정이 각자 다른 단서(증거, 증언, 정황 등)에 집중하여 조사한 후, 그 결과를 종합하여 사건 전체의 그림을 그리는 것과 유사합니다. 어떤 탐정은 용의자의 알리바이를, 다른 탐정은 현장의 지문을, 또 다른 탐정은 주변 인물들의 관계를 조사하는 식이죠. 이렇게 하면 하나의 탐정이 놓칠 수 있는 다양한 측면을 포괄적으로 분석할 수 있습니다.
  • 효과: 모델이 입력 데이터의 다양한 부분 공간(subspace)에서 정보를 학습하고, 더욱 풍부하고 복합적인 패턴을 파악할 수 있게 됩니다.

2. 포지션-와이즈 피드 포워드 네트워크 (Position-wise Feed-Forward Network, FFN): 어텐션 결과에 깊이를 더하는 연산층

어텐션 계층을 통과한 각 단어의 표현은 포지션-와이즈 피드 포워드 네트워크를 거치게 됩니다.

  • 개념: 이는 각 단어(위치)마다 독립적으로 적용되는 완전 연결 신경망(fully connected neural network)입니다. 주로 두 개의 선형 변환과 활성화 함수(보통 ReLU)로 구성됩니다.
  • 역할: 어텐션 메커니즘을 통해 얻은 문맥 정보를 바탕으로, 각 단어의 표현에 비선형 변환을 가하여 모델의 표현력을 높이고, 더 복잡한 특징을 학습할 수 있도록 계산 깊이를 더합니다. 마치 어텐션을 통해 모은 정보들을 가지고 각 단어가 더 정교한 의미를 갖도록 추가적인 사고 과정을 거치는 것과 같습니다.

3. Add & Norm (잔차 연결과 레이어 정규화): 안정적인 학습을 위한 필수 장치

트랜스포머는 여러 층을 깊게 쌓는 구조를 가집니다. 신경망이 깊어질수록 학습이 불안정해지거나 기울기가 제대로 전달되지 않는 문제(기울기 소실/폭발)가 발생하기 쉽습니다. Add & Norm은 이를 해결하기 위한 중요한 기법입니다.

  • 잔차 연결 (Residual Connection): 각 서브 계층(셀프 어텐션 또는 FFN)의 입력(x)을 해당 계층의 출력(Sublayer(x))에 그대로 더해주는 방식입니다 (x + Sublayer(x)). 이는 정보가 여러 층을 거치면서 소실되는 것을 막고, 기울기가 더 잘 흐르도록 도와 깊은 네트워크의 학습을 용이하게 합니다. 마치 중요한 정보를 전달할 때, 원본 메시지와 함께 추가적인 설명을 덧붙여 전달하는 것과 같습니다.
  • 레이어 정규화 (Layer Normalization): 각 층의 입력값 분포를 안정적으로 만들어 학습 과정을 원활하게 합니다. 각 샘플 내에서 특정 레이어의 입력들의 평균을 0, 분산을 1로 만들어주어, 학습 속도를 높이고 일반화 성능을 향상시키는 데 기여합니다.

4. 포지셔널 인코딩 (Positional Encoding): 순서 정보를 잃어버린 어텐션에게 길을 알려주는 나침반

셀프 어텐션은 문장 내 모든 단어의 관계를 한 번에 계산하기 때문에, 단어의 원래 순서 정보를 잃어버리는 단점이 있습니다. "나는 너를 좋아해"와 "너는 나를 좋아해"는 단어는 같지만 순서가 달라 의미가 완전히 다릅니다. 이러한 순서 정보를 모델에게 알려주기 위해 포지셔널 인코딩이 사용됩니다.

  • 개념: 각 단어의 임베딩 벡터에 해당 단어의 위치 정보를 담은 벡터를 더해줍니다. 이 위치 정보는 사인(sine) 함수와 코사인(cosine) 함수를 사용하여 고유한 값으로 표현되며, 모델이 단어의 상대적인 위치나 절대적인 위치를 파악할 수 있도록 돕습니다.
  • 비유: 책의 각 페이지에 페이지 번호를 매겨 순서를 알려주는 것과 같습니다. 페이지 번호가 없다면 책의 내용을 순서대로 이해하기 어렵겠죠. 포지셔널 인코딩은 각 단어에 이러한 '페이지 번호'와 같은 위치 정보를 부여하는 역할을 합니다.

트랜스포머, RNN/LSTM의 한계를 넘어서다!

이러한 구성 요소들의 정교한 조합, 특히 병렬 처리가 가능한 셀프 어텐션 메커니즘 덕분에 트랜스포머는 RNN/LSTM의 주요 한계들을 효과적으로 극복했습니다.

  • 병렬 처리: 셀프 어텐션은 시퀀스 내 모든 토큰 간의 관계를 동시에 계산하므로, GPU를 활용한 대규모 병렬 연산이 가능해져 학습 속도가 획기적으로 빨라졌습니다.
  • 장거리 의존성 포착: 셀프 어텐션은 아무리 멀리 떨어진 단어라도 직접적인 경로로 연결하여 상호작용을 계산하므로, 긴 문맥 정보를 효과적으로 파악할 수 있게 되었습니다.
  • 확장성: 병렬 처리 능력과 우수한 성능 덕분에, 트랜스포머는 이전 모델들보다 훨씬 더 큰 데이터셋과 모델 크기로 확장될 수 있었고, 이는 곧 BERT, GPT와 같은 초거대 언어 모델의 탄생으로 이어졌습니다.

마무리하며

트랜스포머는 순차적 정보 처리의 패러다임을 바꾸고, NLP 분야에 엄청난 발전을 가져왔습니다. 셀프 어텐션이라는 혁신적인 아이디어를 중심으로, 다양한 구성 요소들이 유기적으로 결합하여 이전에는 상상하기 어려웠던 수준의 언어 이해 능력을 보여주고 있습니다. 물론 트랜스포머도 완벽한 모델은 아닙니다. 여전히 계산량이 많고, 매우 긴 시퀀스 처리에는 한계가 있으며, 때로는 설명하기 어려운 방식으로 작동하기도 합니다. 하지만 트랜스포머가 제시한 방향성은 앞으로 인공지능 기술이 나아갈 길에 중요한 이정표가 되었음은 분명합니다. 트랜스포머를 이해하는 것은 AI 기술의 핵심을 이해하는 첫걸음이라고 할 수 있을 것입니다.


https://arxiv.org/abs/1706.03762

 

Attention Is All You Need

The dominant sequence transduction models are based on complex recurrent or convolutional neural networks in an encoder-decoder configuration. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new

arxiv.org

 

728x90