AI VIDEO BRIEFING

트랜스포머 디코더 동작 원리: 번역 예제로 배우는 단어 생성 과정과 교사 강요 학습법

트랜스포머 디코더가 번역에서 시작 토큰부터 단어를 하나씩 만들어 가는 과정과, 학습할 때는 정답 문장을 넣어 주는 교사 강요 방식의 차이를 정리했다. 마스크 self-attention이 왜 필요한지도 함께 짚는다.

트랜스포머 디코더는 어떻게 문장을 만들고 배우는가 — 번역 예제로 본 추론과 학습의 차이 영상 대표 이미지

핵심 메시지

  • 디코더는 인코더와 달리 self-attention 층을 두 개 갖고, 그중 하나는 마스크가 적용되며 다른 하나는 인코더 출력까지 함께 받는다.
  • 번역을 수행할 때 디코더는 시작 토큰에서 출발해 지금까지 만든 번역을 다시 입력으로 넣으며 단어를 한 번에 하나씩 만들어 낸다.
  • 다음 단어를 실제로 고르는 일은 신경망 밖의 절차로, 확률이 가장 높은 단어를 뽑거나 확률에 따라 표본을 추출한다.
  • 학습에서는 모델이 만든 번역이 아니라 정답 번역의 앞부분을 디코더에 넣는데, 이것이 교사 강요라 불리는 방식이다.
  • 설명대로라면 단어 하나를 예측할 때마다 전체 계산을 반복해야 하며, 이 낭비를 없애기 위해 다음 단계에서 마스크 self-attention이 도입된다.

쉽게 이해하기

self-attention과 인코더를 다룬 앞선 영상에 이어, 이 강의는 트랜스포머의 나머지 절반인 디코더로 넘어간다. 디코더 설명은 세 편으로 나뉘어 있고, 그 첫 편인 이 영상은 구조를 뜯어보기 전에 디코더가 추론과 학습에서 각각 어떻게 쓰이는지를 먼저 짚는다. 사용 방식을 이해해야 그다음에 나올 마스크 self-attention이 왜 필요한지가 자연스럽게 이해되기 때문이다.

전체 구조를 보면 왼쪽 인코더의 주요 구성 요소는 멀티헤드 self-attention 층과 순전파 층이고, 오른쪽 디코더도 기본 재료는 같다. 다만 디코더에는 self-attention 층이 두 개 있고 둘 다 인코더의 것과는 조금 다르다. 첫 번째는 마스크가 씌워진 멀티헤드 self-attention 층이고, 두 번째는 디코더 앞쪽 층에서 계산된 벡터와 인코더의 출력이라는 서로 다른 두 입력을 함께 받는다. 이렇게 만든 블록을 여러 개 쌓은 뒤 마지막에 선형층과 소프트맥스를 지나 확률을 계산한다.

먼저 학습이 끝난 모델을 번역에 쓰는 상황을 보자. 강의는 스페인어 문장을 영어로 옮기는 예를 든다. 인코더에는 원문을 넣고, 디코더에는 지금까지 번역해 놓은 부분을 넣은 뒤 다음 단어의 확률을 계산하는 과정을 반복한다. 첫 단어를 만들 때는 아직 번역한 것이 없으므로 시작 토큰을 넣는다. 이때 모델이 첫 단어로 'I'에 0.85, 'the'에 0.1, 나머지 단어 전체에 0.05의 확률을 준다면 'I'가 선택될 가능성이 높다. 이어서 'I'를 넣으면 다음 단어로 'have'에 0.75의 확률이 나오는 식으로, 한 번에 한 단어씩 문장이 자란다.

여기서 강의가 강조하는 점이 두 가지 있다. 하나는 확률을 계산하는 것까지가 신경망의 몫이고 실제로 어떤 단어를 고를지 결정하는 세 번째 단계는 신경망 바깥에서 이뤄진다는 것이다. 다른 하나는 추론 과정에서는 모델이 내놓은 번역을 그대로 다시 디코더에 넣는다는 점이다. 설령 잘못된 단어로 시작했더라도 정답을 알 수 없으니 그 잘못된 상태를 그대로 이어받아 다음 단어를 예측하게 된다.

학습은 사정이 다르다. 원문과 정답 번역이 짝지어진 데이터가 많다고 가정하는 지도학습 문제이고, 평가는 단어 하나를 맞히는 예측 단위로 이뤄진다. 인코더에 원문을 넣고 디코더에는 정답 번역의 앞부분을 넣은 다음, 모델이 계산한 다음 단어 확률을 정답의 다음 단어와 비교해 교차 엔트로피 손실을 구한다. 이 손실을 최소화한다는 것은 곧 정답 단어에 매겨지는 확률을 키운다는 뜻이다. 이때 디코더 입력이 모델의 출력이 아니라 정답 문장으로 고정된다는 점이 추론과 결정적으로 다르고, 이를 교사 강요라고 부른다.

영상은 최소화해야 할 손실을 식으로 정리하며 마무리한다. 입력 문장과 번역 문장의 길이가 각각 다르고 데이터 쌍이 여러 개이므로, 전체 손실은 모든 문장 쌍에 대해 그리고 번역문의 모든 단어 위치에 대해 합산한 값이 된다. 각 단어의 확률은 입력 문장 전체와 그 앞까지의 번역 단어들에 조건부로 계산되며, 첫 위치는 시작 토큰이므로 합산은 두 번째 위치부터 시작한다. 이 설명대로라면 단어 하나를 예측할 때마다 디코더를 다시 돌려야 하는데, 강의는 다음 영상에서 마스크 self-attention이 이 계산들을 병렬화해 학습을 빠르게 만든다고 예고한다.

주요 인사이트

  • 같은 디코더라도 추론과 학습에서 입력이 달라진다. 이 비대칭을 모르면 학습은 잘되는데 실제 생성 품질이 따라오지 않는 현상을 이해하기 어렵다.
  • 교사 강요는 학습을 안정시키지만 대가가 있다. 학습 내내 정답만 보던 모델이 추론에서는 자기가 만든 오류를 다시 입력으로 받게 된다.
  • 탐욕적 선택이냐 표본 추출이냐는 모델 바깥의 선택지다. 같은 가중치로도 단어를 고르는 규칙만 바꾸면 결과 문장이 달라진다.
  • 마스크 self-attention은 성능을 위한 장치이기 이전에 속도를 위한 장치다. 단어마다 디코더를 반복 실행하는 비효율을 없애려는 동기에서 출발한다.
  • 디코더의 두 번째 attention 층이 인코더 출력을 함께 받는다는 사실이, 번역처럼 원문과 결과를 잇는 과제에서 트랜스포머가 작동하는 연결 고리다.

자주 묻는 질문

디코더의 self-attention 층이 인코더와 다른 점은 무엇인가요?

디코더에는 self-attention 층이 두 개 있습니다. 첫 번째는 마스크가 적용된 멀티헤드 self-attention 층이고, 두 번째는 디코더의 앞선 층에서 계산된 벡터와 인코더의 출력이라는 두 가지 입력을 함께 받습니다. 인코더는 이런 구분 없이 하나의 self-attention 층을 사용합니다.

교사 강요란 무엇인가요?

학습할 때 디코더에 넣는 문장을 모델이 만들어 낸 번역이 아니라 정답 번역으로 고정하는 방식입니다. 강의는 디코더의 입력을 올바른 번역으로 강제한다는 점에서 이런 이름이 붙었다고 설명하며, 모델이 스스로 만든 결과를 다시 입력으로 받는 추론 과정과 대비합니다.

번역할 단어는 신경망이 직접 고르나요?

아닙니다. 신경망은 다음 단어가 무엇일지에 대한 확률을 계산하는 데까지 관여하고, 그 확률을 보고 단어를 고르는 단계는 신경망 바깥에서 수행됩니다. 확률이 가장 높은 단어를 고르거나 확률에 따라 표본을 추출하는 방식이 쓰입니다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식