AI VIDEO BRIEFING
트랜스포머 신경망 구조 완전 해부: 인코더와 디코더, 셀프 어텐션과 위치 인코딩까지 단계별 정리
영어를 인도 칸나다어로 번역하는 예시를 따라가며 트랜스포머의 인코더와 디코더, 512차원 임베딩과 위치 인코딩, 멀티헤드 셀프 어텐션, 잔차 연결과 층 정규화까지 전체 구조가 어떻게 맞물려 작동하는지 단계별로 풀어 설명한다.

핵심 메시지
쉽게 이해하기
이 영상은 'Attention Is All You Need' 논문이 제시한 트랜스포머 구조를, 영어 문장을 인도 남부에서 쓰이는 칸나다어로 번역하는 구체적 예시로 처음부터 끝까지 해부한다. 트랜스포머는 크게 인코더와 디코더로 나뉜다. 학습 단계에서 인코더는 영어 단어들을 한꺼번에 받아 벡터로 만들고, 어텐션을 통해 점점 문맥을 담은 벡터로 바꾼다.
컴퓨터는 단어를 이해하지 못하므로 각 단어를 먼저 512차원 임베딩 벡터로 변환한다. 여기에 사인·코사인 함수로 생성한 위치 인코딩을 더하는데, 인코더는 단어를 동시에 처리하기 때문에 순서 정보를 따로 넣어줘야 하기 때문이다. 이렇게 만든 텐서는 피드포워드 층을 거쳐 단어마다 쿼리·키·값 세 벡터로 나뉜다.
멀티헤드 셀프 어텐션에서는 각 단어의 벡터를 8개 헤드로 쪼개 병렬로 처리한다. 쿼리와 키를 곱해 단어 사이의 관련도를 담은 어텐션 행렬을 만들고, 키 차원의 제곱근으로 나눠 값이 지나치게 커지지 않게 스케일링한다. 이후 패딩 마스크를 적용하고 소프트맥스를 취해 각 단어가 다른 단어에 얼마나 주의를 기울일지 확률처럼 표현한 뒤 값 벡터와 곱한다.
각 어텐션 블록 뒤에는 잔차 연결과 층 정규화가 따른다. 잔차 연결은 신경망이 깊어질 때 손실 신호가 앞쪽까지 전달되지 못해 기울기가 사라지는 문제를 완화한다. 층 정규화는 배치가 아니라 특징 차원(512차원) 기준으로 값을 정규화해 학습을 안정시킨다.
디코더는 칸나다어 문장을 받아 마스크드 셀프 어텐션을 수행하는데, 여기에는 미래 단어를 미리 보지 못하게 하는 룩어헤드 마스크가 추가된다. 이어 크로스 어텐션에서 디코더의 쿼리와 인코더가 만든 키·값을 결합해 영어 문맥을 칸나다어 벡터에 주입한다. 마지막에는 어휘 크기만큼 확장한 뒤 소프트맥스로 다음 단어를 예측하고, 교차 엔트로피 손실을 역전파해 인코더와 디코더 전체 가중치를 갱신한다.
주요 인사이트
- 쿼리·키·값 벡터는 이름만 다를 뿐 인코더에서는 사실상 같은 피드포워드 변환의 결과여서, 그 차이를 지나치게 깊이 파고들 필요는 없다. 정작 이들을 구분 짓는 것은 이후에 수행하는 연산이다.
- 패딩 토큰을 가릴 때 음의 무한대 대신 -10^9 같은 매우 작은 음수를 쓰는 이유는, 소프트맥스에서 모든 값이 음의 무한대가 되면 0/0 형태의 수치 불안정이 생길 수 있기 때문이다.
- 배치 크기 30, 최대 단어 수 50처럼 하이퍼파라미터를 고정하는 것은 텐서 모양을 일정하게 유지하고, 여러 문장을 한 번에 처리해 학습 속도를 높이기 위한 실용적 선택이다.
- 추론 단계에서 다음 단어를 항상 가장 높은 확률로만 뽑지 않고 샘플링을 섞는데, ChatGPT도 이 방식을 써서 매번 똑같은 문장이 나오지 않고 더 사람다운 표현이 만들어진다.
자주 묻는 질문
인코더와 디코더는 각각 무슨 일을 하나요?
인코더는 입력 문장의 단어들을 동시에 받아 문맥을 담은 벡터로 만들고, 디코더는 시작 토큰과 인코더의 벡터를 받아 번역문을 한 단어씩 생성합니다. 각 층은 여러 번 반복해 쌓을 수 있습니다.
위치 인코딩은 왜 필요한가요?
인코더가 단어를 순서대로가 아니라 동시에 처리하기 때문에, 단어의 순서 정보를 따로 넣어줘야 합니다. 논문에서는 사인·코사인 함수로 -1에서 1 사이 값을 만들어 임베딩에 더하며, 이는 학습 대상이 아니어도 잘 작동합니다.
룩어헤드 마스크는 어떤 역할을 하나요?
디코더가 학습 중에 아직 생성되지 않아야 할 미래 단어를 미리 참고하는 '편법'을 쓰지 못하게 막습니다. 즉 세 번째 단어를 예측할 때 네 번째 단어를 보지 못하도록 가립니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗