출처: 신박 AI
개요
이 영상은 2017년 구글 브레인 팀이 발표한 트랜스포머 모델의 구조와 작동 방식을 스텝 바이 스텝으로 설명하는 콘텐츠입니다. 단순한 이론적 개념 나열이 아니라, 간단한 예제 데이터를 사용하여 임베딩부터 인코더, 디코더, 최종 출력까지 실제 계산 과정을 보여주는 방식으로 진행됩니다. 트랜스포머가 오늘날 대형 언어 모델의 핵심 구조라는 점을 고려하면, 딥러닝을 공부하는 누구에게나 반드시 알아야 할 내용입니다.
이 영상은 신박 AI 채널에서 제작한 콘텐츠로, 딥러닝의 주요 개념들을 단계별로 설명하는 시리즈 중 하나입니다.
핵심 내용
트랜스포머의 전체 구조
트랜스포머 모델은 크게 인코더와 디코더 두 부분으로 나뉩니다. 전체 구조를 보면 임베딩 레이어, 멀티헤드 어텐션 레이어, 합과 정규화 레이어, 피드 포워드 레이어 등 동일한 블록이 반복되는 구조입니다. 복잡하게 보여도 내부 컴포넌트들이 반복되는 패턴이므로, 각 블록을 하나씩 이해하면 전체를 파악할 수 있습니다.
실제 2017년 논문에서는 영어-독일어 번역 학습을 위해 약 37,000개의 단어쌍과 512차원의 단어 임베딩을 사용했습니다. 영상에서는 학습의 가이드를 위해 11개의 단어와 6차원 임베딩으로 단순화하여 설명하였습니다.
임베딩과 위치 인코딩
입력 문장이 들어오면 가장 먼저 단어 임베딩과 위치 인코딩이 수행됩니다. 단어 임베딩은 각 단어를 밀집 벡터로 변환하여 모델이 효율적으로 정보를 처리할 수 있게 합니다.
특히 위치 인코딩은 트랜스포머의 독특한 특성 중 하나입니다. 영상에서는 “그 개가 남자를 물었어요”와 “그 남자가 개를 물었어요”의 예시를 들어, 어순이 문장의 의미를 완전히 바꿀 수 있다는 점을 강조했습니다. 이를 위해 사인과 코사인 공식을 사용하여 각 단어의 위치를 고유하게 인코딩합니다. 위치 인코딩 값은 이후 단어 임베딩과 단순히 더해져서 사용됩니다.
셀프 어텐션과 멀티헤드 구조
트랜스포머의 핵심 혁신은 셀프 어텐션입니다. 기존의 어텐션 연구는 입력 시퀀스와 출력 시퀀스 사이의 관계에 주목했던 반면, 셀프 어텐션은 입력 문장 내에서 단어와 단어 사이의 상관관계를 파악하는 것입니다.
이를 위해 같은 입력 행렬을 세 개로 복사하여 각각 Q, K, V 행렬을 생성합니다. Q와 K 행렬을 곱한 후 루트 6으로 스케일링하고, 소프트맥스를 적용하면 각 단어들 간의 관계를 확률 형태로 얻을 수 있습니다. 이 값이 높을수록 두 단어 사이의 관계가 강한 것입니다.
영상에서는 이 셀프 어텐션이 단어를 하나하나 처리하지 않고 모든 단어를 한 번에 병렬적으로 처리할 수 있기 때문에 속도가 빠르고, 장거리 단어 간의 관계도 차별 없이 주의를 계산할 수 있다고 강조했습니다. 이것이 오늘날 대형 언어 모델이 가능해진 핵심 구조라고 합니다.
실전 논문에서는 단일 헤드가 아닌 8개의 헤드로 멀티헤드 어텐션을 수행합니다. 처음 Q, K, V 단계부터 헤드 수만큼 입력을 나누어 각각 셀프 어텐션을 계산한 후, 최종 단계에서 다시 행렬들을 연결하고 완전 연결층을 거쳐 최종 출력을 만들어냅니다.
합과 정규화, 피드 포워드 레이어
합과 정규화 레이어는 멀티헤드 어텐션 출력과 어텐션 이전의 입력을 더한 후 정규화하는 과정입니다. 이 과정의 “합” 부분은 스킵 커넥션으로, 학습 과정에서 기울기 소실 문제를 줄이고 기존 정보를 어느 정도 보존하면서 새로운 정보를 추가하는 효과가 있습니다.
피드 포워드 레이어는 두 개의 층으로 이루어진 단순한 신경망으로, 활성화 함수를 사용합니다. 이 레이어를 넣는 이유는 비선형성을 증가시켜서 네트워크가 데이터를 처리하고 분별할 수 있는 능력을 높이기 위함입니다.
디코더와 마스크 어텐션
디코더도 인코더와 마찬가지로 단어 임베딩과 위치 인코딩부터 시작합니다. 디코더의 가장 중요한 차이점은 마스크 어텐션입니다.
디코더의 목적은 출력 단어 시퀀스를 한 단어씩 생성하는 것이기 때문에, 아직 출력되지 않은 미래의 단어에 주의를 줄 수 없습니다. 이를 위해 미래 단어에 해당하는 어텐션 행렬의 값을 마이너스 무한대로 바꾸고, 소프트맥스를 적용하면 그 값이 0이 되어 영향을 주지 않게 됩니다.
디코더의 두 번째 다중 헤드 어텐션은 인코더의 출력값을 입력으로 받아 인코더와 디코더 사이의 관계를 학습합니다.
실전 가이드
영상의 내용을 실제로 학습하고 활용하려면 다음 과정을 따라해볼 수 있습니다:
먼저 단어 임베딩과 위치 인코딩의 개념부터 이해합니다. 이 단계에서는 벡터와 행렬의 기본 개념을 사전 지식으로 알아야 하며, 영상에서 사용한 11개 단어, 6차원 임베딩의 간단한 예제로 직접 계산해보면 개념을 명확하게 파악할 수 있습니다.
다음으로 셀프 어텐션의 Q, K, V 행렬 생성과 행렬 곱셈 과정을 학습합니다. 영상에서 보여준 스케일링과 소프트맥스 단계를 직접 따라해보면, 단어 간의 관계가 어떻게 수치로 표현되는지 이해할 수 있습니다. 이때 단일 헤드에서의 계산을 먼저 완전히 이해한 뒤, 멀티헤드로 확장하는 순서로 학습하면 효과적입니다.
마지막으로 디코더의 마스크 어텐션과 최종 출력 과정을 공부합니다. 왜 미래 단어를 가려야 하는지의 논리를 먼저 파악하고, 마이너스 무한대와 소프트맥스의 관계를 이해하면 디코더 전체의 작동 원리가 자연스럽게 연결됩니다. 학습이 제대로 진행되고 있는지 확인하려면 크로스 엔트로피 손실 함수와 역전파 과정까지 살펴보면 좋습니다.
비판적 검토
영상은 복잡한 트랜스포머 구조를 실제 숫자와 행렬을 사용하여 단계별로 보여주는 점이 특히 강점입니다. 간단한 예제 데이터를 활용하여 각 레이어의 역할과 연산 과정을 구체적으로 시각화하여 이해하기 쉽게 했습니다.
다만 영상은 트랜스포머의 기본 구조와 한 번의 학습 과정 자체에 초점을 둔 설명이므로, 스킵 커넥션의 이론적 배경이나 피드 포워드 레이어의 활성화 함수 선택과 같은 세부 설계 결정의 근거에 대해서는 깊이 있게 다루지 않습니다. 영상에서도 스킵 커넥션과 레스넷의 관계는 추후 영상에서 다루겠다고 직접 언급되었으므로, 해당 시리즈를 함께 학습하면 더 깊은 이해가 가능합니다.
핵심 요점
- 트랜스포머는 인코더와 디코더 구조로 이루어져 있으며, 동일한 블록이 반복되는 구조이기 때문에 각 블록을 하나씩 이해하면 전체를 파악할 수 있습니다. 실제 2017년 논문에서는 37,000개의 단어쌍과 512차원 임베딩을 사용했습니다.
- 셀프 어텐션은 입력 문장 내에서 단어와 단어 사이의 상관관계를 파악하는 기법으로, 모든 단어를 한 번에 병렬적으로 처리할 수 있어 속도가 빠르고 장거리 관계도 학습할 수 있습니다. 이것이 대형 언어 모델을 가능케한 핵심 구조입니다.
- 위치 인코딩은 사인과 코사인 공식을 사용하여 각 단어의 위치를 고유하게 표현하는 것으로, 단어 순서가 문장의 의미를 결정하는 언어의 특성을 모델이 파악할 수 있게 합니다.
- 디코더의 마스크 어텐션은 출력을 한 단어씩 생성하는 특성상 미래 단어에 주의를 주지 않도록 하는 기법입니다. 마이너스 무한대 값을 넣고 소프트맥스를 적용하여 해당 위치의 영향을 0으로 만드는 방식입니다. 이 개념은 셀프 어텐션과 마스크 어텐션의 차이를 정확히 이해하는 데 핵심입니다.
- 스킵 커넥션과 피드 포워드 레이어는 각각 기울기 소실 방지와 비선형성 증가라는 역할을 합니다. 이 두 레이어가 반복되는 구조 안에서 학습을 안정적으로 진행시키는 기본 장치입니다.
참고자료
- 원본 트랜스포머 논문 (2017, 구글 브레인 팀) — 영상에서 37,000개 단어쌍, 512차원 임베딩, 8개 헤드 등의 수치를 출처로 언급
- 레스넷과 스킵 커넥션 관련 내용 — 영상에서 추후 시리즈로 다루겠다고 언급됨