https://youtu.be/lXUZvyajciY?si=R3zICGNBGYG1QBCY
Andrej Karpathy — “We’re summoning ghosts, not building animals”
The Andrej Karpathy episode. During this interview, Andrej explains why reinforcement learning is terrible (but everything else is much worse), why AGI will ...
www.youtube.com
트랜스포머 아키텍처의 개발 과정을 시간 순서대로 상세하게 정리해 드립니다.
***
### 트랜스포머 아키텍처의 발전 역사 요약
거의 모든 최첨단 AI 시스템—ChatGpt, Claude, Gemini, Grock 등—은 **트랜스포머(transformer)**라는 동일한 기본 모델 아키텍처를 기반으로 구축되었습니다 [1]. 트랜스포머는 신경망으로, **셀프 어텐션(self attention)**을 사용하여 텍스트나 이미지 같은 입력 데이터를 받아, 그 데이터 간의 관계를 모델링한 다음, 의미 있는 텍스트 응답, 번역 또는 분류와 같은 출력을 생성합니다 [1].
많은 사람들이 이 오리지널 트랜스포머 아키텍처가 2017년 구글의 유명 논문 "**Attention is All You Need**"에서 소개되었다는 것을 알고 있지만 [1], 이러한 급작스러운 성공을 가능하게 한 돌파구들이 있었습니다 [1]. 오늘 다룰 세 가지 핵심 개발은 **장단기 기억(Long Short-Term Memory, LSTM)**, **어텐션(Attention)을 사용한 시퀀스 투 시퀀스(Seek to Seek)**, 그리고 최종적으로 **트랜스포머**입니다 [1].
#### 1. 장단기 기억 네트워크 (LSTMs)
**초기 도전 과제:** 초기 AI 연구를 추진한 핵심 과제는 신경망이 **시퀀스(sequences)를 이해**하도록 만드는 것이었습니다 [2]. 자연어는 본질적으로 순차적이며, 문맥을 유지해야 했습니다 [2]. 피드 포워드 신경망과 같은 초기 아키텍처는 각 입력을 개별적으로 처리했기 때문에 문맥 이해가 불가능하거나 고정된 길이의 입력만 필요로 했습니다 [2].
**RNN의 등장과 한계:** 연구자들은 이를 해결하기 위해 **순환 신경망(Recurrent Neural Networks, RNNs)**을 개발했습니다 [2]. RNN은 입력을 순서대로 하나씩 처리하고 이전 출력을 추가 입력으로 사용합니다 [2]. 그러나 입력 시퀀스가 길어질수록 역방향 통과(backwards pass) 과정에서 여러 행렬 곱셈을 거치게 되어, **경사 소실 문제(vanishing gradients)**가 발생했습니다 [2]. 이는 초기 입력에 대한 기울기(가중치 조정 신호)가 거의 0으로 사라져서 초기 입력이 네트워크 출력에 미치는 영향이 줄어드는 문제였습니다 [2, 3].
**LSTM의 해결책:** 1990년대에 Hawk Rider와 Schmidhuber는 **LSTM(Long Short-Term Memory Network)**을 제안했습니다 [3]. LSTMs는 RNN의 한 유형으로, **게이트**를 도입하여 어떤 정보를 유지하고, 업데이트하고, 잊을지 학습하게 함으로써 소실되는 기울기 문제를 해결하려고 시도했습니다 [3]. 이로 인해 일반 RNN이 어려워했던 **장거리 의존성(long-range dependencies)** 학습이 가능해졌습니다 [3].
**재조명:** 하지만 90년대에는 LSTMs를 대규모로 훈련시키는 비용이 너무 비쌌기 때문에 발전이 정체되었습니다 [3]. 2010년대 초반에 GPU 가속, 더 나은 최적화 기술, 그리고 새로운 대규모 데이터 세트가 등장하면서 LSTMs가 다시 주목받았고, 자연어 처리(NLP)를 지배하기 시작했습니다 [3]. LSTMs는 음성 인식부터 언어 모델링에 이르기까지 빠르게 채택되었습니다 [4]. 당시 NLP와 컴퓨터 비전은 다소 분리된 영역이었으며, LSTMs는 언어 작업에서, CNN(Convolutional Neural Networks)은 비전 분야에서 우세했습니다 [4].
**LSTMs의 한계 (고정 길이 병목):** LSTMs는 큰 발전이었지만, **고정 길이 병목 현상(fixed length bottleneck)**이라는 근본적인 한계가 있었습니다 [4]. 초기 LSTM 시스템은 번역 같은 시퀀스-투-시퀀스(Seq2Seq) 작업에서 입력 문장을 인코더 LSTM에 넣고, 그 결과를 **단일 고정 크기 벡터**로 압축했습니다 [4]. 디코더 LSTM은 이 벡터를 사용하여 목표 문장을 구성했습니다 [4]. 이 단일 벡터는 길거나 복잡한 문장의 의미를 정확하게 포착할 수 없었고, 순서 개념을 인코딩하는 데에도 어려움이 있었습니다 [5]. 모델은 짧은 입력에서는 괜찮았지만, 시퀀스가 길어질수록 성능이 급격히 저하되었습니다 [5]. 연구자들은 디코더가 입력의 정적 요약만 보는 것이 아니라 인코더가 본 모든 중간 정보에 접근하도록 허용해야 한다는 통찰을 얻었습니다 [5].
#### 2. 어텐션을 사용한 시퀀스 투 시퀀스 (Seq2Seq with Attention)
**등장:** 이러한 통찰력은 2014년에 **어텐션을 사용한 시퀀스 투 시퀀스(Seq2Seq)** 모델의 도입으로 이어졌습니다 [5]. 핵심 아이디어는 인코더(입력 시퀀스의 표현 구축)와 디코더(출력 시퀀스 생성)라는 두 LSTM 신경망을 전체적으로 공동 훈련하는 것이었습니다 [6].
**어텐션의 역할:** 비록 Seq2Seq가 고정 길이 벡터를 사용했지만, 연구자들은 디코더가 인코더의 은닉 상태(hidden states)에 "**주의를 기울이도록(attend)**" 허용함으로써, 모델이 입력의 일부와 출력의 일부를 **정렬(align)**하는 방법을 학습할 수 있다는 것을 깨달았습니다 [6].
**영향:** 이 모델들은 기계 번역과 같은 작업에서 기존의 규칙 기반 시스템과 기존 Seq2Seq 모델보다 훨씬 뛰어난 성능을 보였고, 당대의 최고의 통계 시스템보다도 우수했습니다 [6]. 이는 신경 모델이 성숙한 프로덕션급 시스템과 정면으로 경쟁할 수 있다는 신호였습니다 [6]. 이 시기(구글 번역이 신경 Seq2Seq 아키텍처를 채택한 시기)에 구글 번역이 드디어 잘 작동하기 시작했습니다 [7]. 이 정렬 기반 아키텍처는 NLP를 넘어 컴퓨터 비전에도 적용될 수 있다는 첫 징후를 보였습니다 [7].
**Seq2Seq의 지속적인 한계:** 어텐션으로 보강되었음에도 불구하고, RNN 기반 아키텍처는 여전히 **순차적 처리**의 제약을 받았습니다 [7]. 토큰을 하나씩 처리해야 했기 때문에 시간 단계에 걸쳐 계산을 병렬로 실행하기 어려웠고, 런타임이 시퀀스 길이에 비례하여 선형적으로 증가했습니다 [7]. 이로 인해 대규모 데이터 세트에서 모델을 훈련하는 것이 너무 느려(intractably slow) 광범위하게 유용한 AI를 달성하기 어려웠습니다 [7].
#### 3. 트랜스포머의 등장 (Attention Is All You Need)
**획기적인 발전:** RNN 속도를 높이려는 시도들이 있었지만(행렬 인수분해, 조건부 활성화 등) [8], 근본적인 선형 런타임 제약은 남아 있었습니다 [8]. 2017년에 구글의 연구팀이 "**Attention Is All You Need**"라는 논문을 발표하면서 큰 돌파구가 생겼습니다 [8]. 이 논문은 **트랜스포머**라고 불리는 새로운 아키텍처를 제안했습니다 [8].
**순환 제거와 병렬 처리:** 트랜스포머는 **순환(recurrence)을 완전히 없애고**, 오직 **어텐션 메커니즘**에만 의존하여 출력을 생성합니다 [8]. 트랜스포머는 Seq2Seq에서 제안된 인코더-디코더 아키텍처의 수정 버전을 사용합니다 [8].
* 입력을 단일 벡터로 압축하는 대신 [8], 트랜스포머는 각 입력 토큰에 대해 **개별 임베딩**을 유지하고 **셀프 어텐션**을 통해 이 임베딩을 업데이트했습니다 [8, 9].
* 셀프 어텐션은 시퀀스 내의 다른 모든 토큰의 임베딩에 대한 학습된 가중치 내적(dot-product)을 기반으로 토큰 표현을 업데이트합니다 [9].
* 이 아키텍처에서 각 토큰은 시퀀스의 모든 다른 토큰에 **동시에** '주의를 기울일(attend)' 수 있었기 때문에, 트랜스포머는 전체 시퀀스를 **병렬로 처리**할 수 있게 되어 RNN보다 **극적으로 빨라졌습니다** [9].
* 놀랍게도, 트랜스포머는 기계 번역 벤치마크에서도 훨씬 더 **정확했습니다** [9].
#### 4. 트랜스포머 아키텍처의 혁신과 확장
**변형 모델:** 2017년 이후 연구자들은 트랜스포머 아키텍처의 다양한 변형을 실험했습니다 [9]. 원래 구글 논문의 아키텍처는 인코더와 디코더 모두에 셀프 어텐션과 교차 어텐션을 가지고 있었습니다 (순환이 없는 Seq2Seq와 유사) [9].
* **BERT**라고 불리는 모델 시리즈는 **인코더만**을 사용하여 마스크 언어 모델링(masked language modeling)을 수행하는 데 중점을 두었습니다 [9].
* 병행하여, **디코더만**을 오토회귀 모델링(auto regressive modeling)에 사용하려는 노력은 OpenAI의 **GPT** 시리즈 모델을 탄생시켰습니다 [9, 10].
이 두 모델 시리즈는 원래 'Attention is All You Need' 트랜스포머 모델의 부분집합으로 설명될 수 있습니다 [10].
**GPT와 LLM으로의 확장:** 이 모델들이 대규모 매개변수로 확장될 수 있다는 것이 빠르게 명확해졌습니다 [10]. 궁극적으로, **GPT(Generative Pre-trained Transformer)** 모델 유형 중 하나가 ChatGpt나 Claude와 같은 제품에서 오늘날 우리가 정기적으로 사용하는 **LLM(Large Language Model)**을 만들기 위해 확장되었습니다 [10].
**일반 지능으로의 전환:** 얼마 전까지만 해도 모든 것을 지배하는 하나의 모델이 있을 것이라는 점은 분명하지 않았고, 사람들은 작업마다 다른 모델 아키텍처(기계 번역용, 개체명 인식용 등)를 훈련시키고 있었습니다 [10]. 이 모델들은 정확도가 높았지만 대부분 단일 작업 모델이었습니다 [10]. 또한, 당시에는 프롬프팅 개념이 없었기 때문에 사람들은 채팅 인터페이스 대신 도메인별 입력을 통해 모델과 상호작용했습니다 [10]. 연구소들이 훨씬 더 큰 데이터 세트에서 오토회귀 모델을 훈련시키는 실험을 시작했을 때에야 비로소 이 모델들이 **일반적으로 지능적인 시스템**처럼 보이고 느껴지기 시작했습니다 [11].
**마지막 말:** 바라건대, 이 역사가 이 모델들을 현재의 규모로 확장할 수 있는 단계로 만드는 데 필요했던 몇 가지를 맥락화하는 데 도움이 되었기를 바랍니다 [11]. 다음 영상에서는 실제로 현재의 성능 수준에 도달하는 데 필요했던 일부 아키텍처 및 엔지니어링 혁신에 대해 이야기할 것입니다 [11]. 시청해 주셔서 감사합니다 [11].