카테고리 없음

트랜스포머(transformer)라는 동일한 근본적인 모델 아키텍처

클로vㅏ 컴퓨터 2025. 10. 26. 00:22

https://youtu.be/JZLZQVmfGn8?si=EdYrtJQt6lgeGUMc


현재 거의 모든 최첨단 AI 시스템—ChatGPT, Claude, Gemini 또는 Grok과 같은—은 트랜스포머(transformer)라는 동일한 근본적인 모델 아키텍처를 기반으로 구축되어 있습니다 [1]. 트랜스포머는 텍스트나 이미지와 같은 입력 데이터를 받아 **자기 주의(self attention)**를 사용하여 데이터 간의 관계를 모델링하고, 최종적으로 의미 있는 텍스트 응답, 번역 또는 분류와 같은 출력을 생성하는 신경망입니다 [1]. 트랜스포머 아키텍처는 2017년 구글의 유명한 논문 "Attention is All You Need"에서 처음 소개되었지만 [1], 이 갑작스러운 성공을 가능하게 한 세 가지 핵심 발전 과정(장단기 메모리, 어텐션을 이용한 시퀀스-투-시퀀스, 그리고 트랜스포머)이 존재합니다 [1].

### 1. 장단기 메모리 네트워크 (LSTMs)

초기 AI 연구를 추진했던 핵심 과제 중 하나는 신경망이 순차적인 데이터, 즉 자연어를 이해하도록 만드는 것이었습니다 [2]. 자연어는 본질적으로 순차적이어서 단어의 의미는 그 앞뒤에 오는 것에 달려 있으며, 전체 문장을 이해하려면 여러 단어에 걸쳐 문맥을 유지해야 합니다 [2]. 초기의 피드 포워드 신경망(feed forward neural networks)과 같은 아키텍처는 각 입력을 개별적으로 처리했기 때문에 문맥을 이해할 수 없거나 고정된 길이의 입력만 처리해야 했습니다 [2]. 이에 대한 해결책으로 **순환 신경망(Recurrent Neural Networks, RNNs)**이 개발되었습니다 [2].

RNN은 입력을 순서대로 한 번에 하나씩 반복 처리하며, 이전 단계를 추가 입력으로 소비합니다 [2]. 입력 길이가 $n$일 경우, $n$개의 피드 포워드 통과 단계가 있으며, 그 결과 역전파(backwards pass) 시 초기 입력에 대한 기울기는 $n$번의 행렬 곱셈의 결과가 됩니다 [2]. 실제로 이는 **기울기 소실(vanishing gradients)** 문제로 이어졌습니다 [2]. 시퀀스가 길어질수록 초기 입력은 네트워크 출력에 미치는 영향이 점점 줄어들었고, 훈련 중 가중치를 조정하는 데 사용되는 신호인 기울기는 시간이 지남에 따라 역으로 전달되면서 거의 0에 가까워졌습니다 [3].

1990년대에 호크라이터(Hawk Rider)와 슈미트후버(Schmidhuber)는 이 문제에 대한 해결책으로 **장단기 메모리 네트워크(LSTMs)**를 제안했습니다 [3]. LSTMs는 정보를 유지할지, 업데이트할지, 혹은 잊어버릴지를 학습할 수 있는 **게이트(gates)**를 도입하여 기울기 소실 문제를 해결하려는 RNN의 한 유형이었습니다 [3]. 이로 인해 기본적인 RNN이 어려워했던 **장거리 의존성(long-range dependencies)** 학습이 가능해졌습니다 [3]. 하지만 90년대에는 LSTMs를 대규모로 훈련하는 것이 너무 비용이 많이 들어 발전이 정체되었습니다 [3]. 2010년대 초반에 이르러 GPU 가속, 더 나은 최적화 기술, 그리고 새로운 대규모 데이터 세트가 LSTMs를 다시 주목받게 했습니다 [3]. 이 비교적 오래된 아키텍처는 다시 실행 가능해졌고, 음성 인식부터 언어 모델링에 이르기까지 NLP 분야를 지배하기 시작했습니다 [3, 4].

### 2. 어텐션을 사용한 시퀀스-투-시퀀스 (Seq2Seq with Attention)

LSTMs는 큰 발전이었지만 여전히 한계를 가지고 있었는데, 가장 근본적인 것은 **고정 길이 병목 현상(fixed length bottleneck)**이었습니다 [4]. 초기 LSTM 시스템은 번역과 같은 시퀀스-투-시퀀스 작업에서 입력 문장을 인코더 LSTM에 넣고 단일의 **고정 크기 벡터(single fixed size vector)**로 압축했습니다 [4]. 그런 다음 디코더 LSTM이 이 벡터를 받아 목표 문장을 단어별로 구성하려고 했습니다 [4]. 이 방법은 당시 벤치마크에서는 인상적인 결과를 냈지만 [4], 실제로는 그 단일 벡터가 길거나 복잡한 문장의 의미를 정확하게 포착할 수 없었습니다 [5]. 또한, 고정 크기 벡터에 순서 개념을 인코딩하는 효과적인 방법이 없었습니다 [5]. 모델의 성능을 보면 짧은 입력에는 괜찮았지만 시퀀스가 길어질수록 빠르게 무너졌습니다 [5]. 디코더가 입력의 정적인 요약 정보 하나만 보도록 허용하는 것은 근본적인 건축적 한계였습니다. 왜 디코더에게 인코더가 본 모든 중간 정보에 접근하도록 허용하지 않는가 하는 통찰이 다음 도약을 낳았습니다 [5].

2014년, 논문 하나가 **어텐션(Attention)**을 사용하는 시퀀스-투-시퀀스(Seq2Seq) 모델을 도입하며 시퀀스 번역의 새로운 표준이 되었습니다 [5]. 핵심 아이디어는 두 개의 신경망(입력 시퀀스를 읽는 인코더와 출력을 생성하는 디코더)을 함께 훈련하는 것이었습니다. 두 모델 모두 LSTMs였으며 종단 간(end-to-end)으로 함께 훈련되었습니다 [6]. 비록 Seq2Seq가 고정 길이 벡터를 사용했지만, 연구자들은 디코더가 인코더의 은닉 상태(hidden states)를 되돌아보도록 허용함으로써, 모델이 입력의 일부를 출력의 일부와 정렬하는 방법을 학습하도록 할 수 있다는 것을 깨달았습니다 [6]. 이 모델들은 기계 번역과 같은 작업에서 기존의 규칙 기반 시스템과 기존 Seq2Seq 모델을 크게 능가했으며, 심지어 당시 최고의 통계 시스템을 이기며 최첨단에 가까운 성능을 보여주었습니다 [6]. 구글 번역이 이 시기에 신경망 Seq2Seq 아키텍처를 채택했고, 구글 번역이 드디어 잘 작동하기 시작한 시대로 기억될 수 있습니다 [7]. 이러한 정렬(alignment) 및 번역 학습 통찰은 NLP를 넘어 요수아 벤지오(Yosua Benjio)에 의해 컴퓨터 비전에도 적용되면서, 이러한 시퀀스 모델이 언어 외 분야에서도 유용할 수 있다는 첫 번째 신호가 되었습니다 [7].

### 3. 트랜스포머 (Attention Is All You Need)

어텐션으로 보강되었음에도 불구하고, RNNs는 토큰을 한 번에 하나씩 처리하는 순차적 아키텍처의 제약에서 벗어나지 못했습니다 [7]. 이로 인해 시간 단계에 걸쳐 계산을 **병렬로** 실행하기 어려웠고, 런타임이 시퀀스 길이에 비례하여 **선형적으로** 증가했습니다 [7]. 이는 광범위하게 유용한 AI를 달성하는 데 필요한 대규모 데이터 세트에서 모델을 훈련하는 것을 비현실적으로 느리게 만들었습니다 [7]. RNN의 속도를 높이려는 시도(예: LSTM 행렬을 더 작은 행렬곱으로 분해하거나 쿼리에 관련된 부분만 활성화하는 기술)가 있었지만, 근본적인 선형 런타임 제약은 남아 있었습니다 [8].

2017년, 구글 연구팀이 **"Attention is All You Need"**라는 논문을 발표하며 **트랜스포머**라고 불리는 새로운 기계 번역 아키텍처를 제안함으로써 큰 돌파구가 마련되었습니다 [8]. 트랜스포머는 재귀(recurrence)를 완전히 제거하고, 대신 오직 **어텐션 메커니즘**에만 의존하여 출력을 생성합니다 [8]. 트랜스포머는 Seq2Seq에서 제안된 인코더-디코더 아키텍처의 수정된 버전을 사용했습니다 [8]. 입력을 단일 벡터 임베딩으로 압축하는 대신, 트랜스포머는 각 입력 토큰에 대해 개별적인 임베딩을 유지하고 **자기 주의(self attention)**를 통해 이 임베딩을 업데이트했습니다 [8]. 자기 주의는 시퀀스 내의 다른 모든 토큰의 임베딩에 대한 학습된 가중치 내적(weighted dot-product)을 기반으로 토큰 표현을 업데이트하는 메커니즘입니다 [9].

이 아키텍처의 혁신은 각 토큰이 시퀀스의 다른 모든 토큰에 **동시에** 주의를 기울일 수 있게 함으로써, 트랜스포머가 전체 시퀀스를 **병렬로 처리**할 수 있게 되었다는 점입니다 [9]. 이는 RNN보다 **극적으로 빨랐으며** [9], 놀랍게도 기계 번역 벤치마크에서 **훨씬 더 정확했습니다** [9].

### 4. 트랜스포머 이후의 혁신

원래 구글 논문에 설명된 트랜스포머 아키텍처는 인코더와 디코더 각각이 자기 주의를 가지며, 둘 사이에 교차 주의(cross attention)가 있는 형태였는데, 이는 재귀가 없을 뿐 원래의 Seq2Seq 아키텍처와 유사했습니다 [9]. 이후 몇 년 동안 연구자들은 트랜스포머 아키텍처의 다양한 변형을 실험했습니다 [9].

예를 들어, **BERT**라고 불리는 일련의 모델들은 인코더만을 사용하여 마스크 언어 모델링(masked language modeling)을 수행하는 데 중점을 두었습니다 [9]. 병렬적으로, 디코더만을 사용하여 자기 회귀 모델링(auto regressive modeling)을 수행하는 노력이 있었고, 이는 OpenAI의 **GPT** 시리즈 모델로 발전했습니다 [9, 10]. 이 두 모델 시리즈는 원래 "Attention is All You Need" 트랜스포머 모델의 부분 집합으로 설명될 수 있습니다 [10].

이 모델들이 대규모 매개변수로 확장될 수 있다는 것이 빠르게 명확해졌습니다 [10]. 궁극적으로 **GPT(Generative Pre-trained Transformer)** 모델 유형이 확장되어 오늘날 ChatGPT나 Claude와 같은 제품에서 정기적으로 사용하는 **LLM(대규모 언어 모델)**을 탄생시켰습니다 [10]. 불과 얼마 전까지만 해도 모든 것을 지배하는 단 하나의 모델이 있을 것이라는 사실은 명확하지 않았으며, 사람들은 기계 번역, 개체명 인식 등 각 작업마다 공유된 백본은 있지만 최종 모델 레이어에 약간의 차이가 있는 모델 변형을 훈련하고 있었습니다 [10]. 이 모델들은 정확도가 높았다는 점에서 지능적이었지만, 대부분 단일 작업 모델이었습니다 [10]. 또한, 채팅 인터페이스가 없었기 때문에 모델에 **프롬프트(prompting)**를 입력하는 개념도 없었고, 대신 도메인별 입력을 통해 모델과 상호작용했습니다 [10]. 연구소들이 자기 회귀 모델을 훨씬 더 큰 데이터 세트에서 훈련하기 시작했을 때 비로소 이 모델들은 더 일반적으로 지능적인 시스템처럼 보이고 느껴지기 시작했습니다 [11].