brunch

8. Transformer의 전체 구조

2장 GPT의 기반 기술, Transformer란 무엇인가?

by AI개발자
gaebalai.com (44).png

1장 AI는 데이터를 어떻게 이해할까: 특징량화의 원리(1~7)에서 텍스트 데이터를 중심으로, 입력 데이터를 생성형 AI모델에서 다루기 위해 특징량화 하는 방법을 파악했으므로 2장 GPT의 기반 기술, Transformer란 무엇인가?부터는 생성형 AI모델에 대한 중요한 원 논문들을 직접 읽어나가면서 이해를 깊게 해 나갑니다.

생성형 AI 모델을 이해하는데 있어, "단 하나만 골라서 곡 알아야 할 모델"을 꼽으라면 무엇을 들 수 있을까? 필자는 Transformer를 고를 것이고, 절대 다수의 사람들도 마찬가지 선택을 할 것라고 강하게 확신합니다. 이번에는 생성형 AI 모델의 뺴놓을 수 없는 토대가 되고 있는 Transformer를 제안한 아래 원 논문을 상세히 읽어봅시다.


Attention Is All You Need (2017/06/12)


이 강좌에서 원논문 해설은 전부를 설명하기에는 다소 무리가 있어 중요한 부분만 골라서 설명하는 경우가 대부분입니다. 하지만, Transformer 원 논문은 생성형 AI의 기념비적인 논문이기 때문에, 이 논문만큼은 구석구석까지 훑으면서 제대로 맛보는 것을 목표로 합니다.


내용에 들어가기 전에 하나 알아두어야 할 것은 "Transformer"라는 말의 범위입니다. 원래 Transformer라는 용어는 "기계 번역 모델"을 가리키는 말이었고, 지금 세상에서 쓰이는 Transformer라는 말은 그보다 훨씬 넓은 의미로 사용되고 있다는 점을 이해해 둘 필요가 있습니다. 이제부터 보게 되겠지만, Transformer에는 인코더 부분과 디코더 부분이 존재합니다. 이 둘은 떼어내서 별도의 파생모델을 만드는데에도 쓰이고, 그런 파생 모델들까지 싸잡아 Transformer라고 부르는 경우도 있습니다.


이 강좌에서는 용어를 다음과 같이 구분합니다.

"Transformer"라고 쓸 때는 기계번역에서의 인코더-디코더 구조 전체를 가르킵니다.

그 외의 경우에는 Transformer 디코더 등으로 따로 써서 구별이 가도록 합니다.



8. Transformer의 전체 구조

원 논문의 동기는 텍스트처럼 순서가 중요한 데이터를 다룰 때, 순차 처리(recurrent, step-by-step)를 요구하지 않으면서도 계산 효율이 높은 모델을 만들고 싶다는데서 출발합니다. 당시 텍스트 데이터를 다루는 모델로 큰 성공을 거두고 있던 것은,

인코더와 디코더를

어텐션 메커니즘(attention mechanism)으로 연결한

순환 신경망(Recurrent Neural Network, RNN)기반 모델이었습니다.

하지만 RNN은 학습 시에 이런 제약을 갖습니다.

t번째 토큰의 계산을 시작하기 위해서는

t-1번째 토큰의 계산이 끝나 있어야 합니다.

이런 식의 순차 처리 요구가 병렬 계산을 방해하는 주요 원인이었습니다.

원 논문에서는 이 문제를 어텐션 매커니즘만으로 구성된 Transformer 모델을 설계함으로써 해결합니다. 그리고 다음과 같이 병렬성의 장점을 강하게 주장합니다.

“The Transformer allows for significantly more parallelization and can reach a new state of the art in translation quality”
(Transformer는 훨씬 높은 수준의 병렬 처리를 가능하게 하고, 번역 성능에서도 새로운 SOTA를 달성한다)

Transformer에서 핵심적인 역할을 하는 주기주의(self-attention) 자체는 사실 이 논문에서 처음 제안된 개념은 아닙니다. 하지만, 원 논문에서 말하듯,

“In all but a few cases, however, such attention mechanisms are used in conjunction with a recurrent network.”
(그러나 극히 일부 경우를 제외하면, 이런 어텐션 메커니즘은 항상 RNN과 함께 사용되어 왔다)
“In this work we propose the Transformer, a model architecture eschewing recurrence and instead relying entirely on an attention mechanism to draw global dependencies between input and output.”
(본 연구에서는, 재귀 구조를 버리고, 입력과 출력 간의 전역적인 의존 관계를 포착하기 위해 오로지 어텐션 메커니즘만에 의존하는 모델 구조인 Transformer를 제안한다)

라고 설명하듯, RNN을 완전히 뗴어내고, 오직 어텐션만으로 모델을 구성한 것이 새로운 포인트입니다.


또한, 병렬 계산이 가능한 모델로는 합성곱 신경망(Convolutional Neural Network, CNN)도 있습니다. 하지만, 이에 대해서는 원 논문에서 이렇게 말합니다.

“In these models, the number of operations required to relate signals from two arbitrary input or output positions grows in the distance between positions”
(이러한 모델에서는, 임의의 두 입력 또는 출력 위치 사이의 정보를 연결하는 데 필요한 연산 수가, 그 위치 간 거리가 멀어질수록 증가한다)

텍스트를 다룰 때 중요한 것은 장거리 의존성(long-range dependency)인데, CNN 기반 모델은 이 부분에서 한계가 있다는 지적입니다. 반면, 어텐션 메커니즘만으로 모델을 구성하면,

“this is reduced to a constant number of operations”
(이 연산 수를 상수 개의 연산으로 줄일 수 있다)

라고 주장합니다. 이처럼 "본질적인 건 어텐션입니다"라는 강한 입장이 논문 제목인 "Attention Is All You Need"에 그대로 드러나 있습니다.


그렇다면 구체적으로 어떤 모델 구조인지 살펴봅시다. 모델 전체 구조는 아래와 같습니다.

genai-057-2.jpg Transformer의 전체 아키텍처와 각 구성요소를 이 강좌의 어느부분에서 다루는지 표시한 그림 (원논문의 Figure1에 설명을 추가함)


기계번역 모델은

소스(번역원) 언어에서

타겟(번역대상) 언어로 문장을 번역하는 모델입니다.

이를 위해,

번역원 문장의 정보를 집약하는 인코더(encoder)구조가 왼쪽에 있고,

번역된 문장을 한 토큰씩 생성하는 디코더(decoder)구조가 오른쪽에 있습니다.

입력 임베딩(input embedding)과 출력 임베딩(output embedding)부분은 원 논문에서 자세히 설명되어 있지않습니다.

이는 "텍스트 데이터를 어떻게 벡터로 바꾸는가"라는 이미 당시 기준으로도 전제 지식에 가까운 내용이고, 이 강좌에서도 1장에서 충분히 설명했기 때문에 다시 설명하지 않습니다.

원 논문에서 처음 세상에 공개된 구성요소는 다음 2가지입니다.

위치 임베딩(Positional Embedding)

멀티헤드 어텐션(Multi-Head Attention)

이 둘은 논문에서도 꽤 자세히 설명합니다. 그외의 구성 요소들(잔차연결, 레이어 정규화, FFN 등)은 논문이 나오기 전에 이미 알려진 것들이지만,

Transformer 전체 구조 안에서

이 요소들이 어떻게 배치되고 사용되지는도 함께 설명되어 있습니다.

다음은 이 구성요소들을 하나씩 상세히 설명하려고 합니다. 설명 순서는 원 논문과는 약간 다릅니다. 이는 설명흐름을 자연스럽게 하기 위한 재배치일뿐이고 내용 자체는 원 논문에 있는 것들을 빠짐없이 모두 다룰 계획입니다.



©2024-2025 MDRULES.dev, Hand-crafted & made with Jaewoo Kim.

이메일문의: jaewoo@mdrules.dev


AI 에이전트 개발, 컨텍스트 엔지니어링 교육 컨설팅, 바이브코딩 강의 문의: https://bit.ly/4kjk5OB


keyword
이전 06화7. 토크나이저는 꼭 필요할까?