AI VIDEO BRIEFING

트랜스포머 신경망 쉽게 이해하기: 셀프 어텐션과 인코더·디코더, 위치 인코딩 핵심 정리

2017년 'Attention Is All You Need'로 등장한 트랜스포머의 핵심을 인코더·디코더 구조와 셀프 어텐션의 쿼리·키·값, 위치 인코딩, 마스킹과 교차 어텐션까지 그림 없이도 이해되도록 정리했습니다.

트랜스포머 신경망 이해하기: 어텐션이 바꾼 시퀀스 처리 방식 영상 대표 이미지

핵심 메시지

  • 트랜스포머는 시퀀스를 처리하기 위해 설계된 모델로, 2017년 'Attention Is All You Need' 논문에서 소개됐다.
  • RNN과 달리 어떤 두 위치 사이든 경로 길이가 일정해 장거리 의존성을 잘 잡고, 병렬 계산도 가능하다.
  • 셀프 어텐션은 쿼리·키·값 세 벡터로 각 단어가 다른 모든 단어를 얼마나 참고할지 계산한다.
  • 인코더는 잔차 연결과 층 정규화를 갖춘 멀티헤드 어텐션·피드포워드 층을 여러 번 쌓아 만든다.
  • 디코더는 미래 단어를 못 보게 하는 마스킹 어텐션과, 입력을 참조하는 인코더-디코더(교차) 어텐션을 추가로 쓴다.

쉽게 이해하기

트랜스포머는 처음 도식을 보면 복잡해 보이지만, 상당수는 피드포워드 신경망처럼 이미 익숙한 요소들이다. 진짜 새로운 부품은 '위치 인코딩'과 '멀티헤드 어텐션'이라는 점을 짚으며 영상은 시작한다. BERT나 GPT-3 같은 언어 모델은 물론, OpenAI의 DALL·E처럼 텍스트로 이미지를 생성하는 모델에도 이 구조가 쓰인다.

왜 트랜스포머를 만들었는가라는 동기부터 설명한다. 문서를 요약할 때 어떤 단어의 의미가 몇 문장 앞의 내용에 좌우되는 장거리 의존성이 흔한데, 순차적으로 처리하는 RNN은 두 위치 사이 거리가 멀수록 신호가 지나야 하는 경로가 길어진다. 반면 트랜스포머는 거리에 상관없이 경로 길이가 항상 일정하고, 예제 내부에서도 병렬 계산이 가능해 학습 속도에서 유리하다.

핵심인 어텐션은 쿼리·키·값 세 벡터로 작동한다. 하나의 쿼리를 여러 키와 비교해 얼마나 잘 맞는지(호환성)를 재고, 그 정도에 비례해 짝지어진 값 벡터가 출력에 반영된다. 셀프 어텐션에서는 이 세 벡터가 모두 같은 시퀀스에서 나오며, 여러 개의 '헤드'가 병렬로 서로 다른 관점의 관계를 포착한다. 단어는 먼저 정수 토큰으로 변환된 뒤 임베딩 층에서 학습된 연속 벡터로 매핑된다.

인코더의 각 층은 두 개의 하위층으로 구성된다. 멀티헤드 어텐션 뒤에 입력을 그대로 더하는 잔차 연결과, 각 벡터를 평균 0·분산 1로 맞추는 층 정규화를 적용하고, 이어 위치별 피드포워드 신경망에 다시 잔차 연결과 층 정규화를 붙인다. 이런 층을 여러 번 쌓으면 각 단어가 문장 전체 문맥을 반영한 고정 길이 표현으로 다시 태어난다.

디코더는 인코더와 부품이 비슷하지만 두 가지가 다르다. 출력 문장을 한 단어씩 자기회귀적으로 생성하므로, 아직 나오지 않은 미래 단어를 참조하지 못하도록 상삼각 행렬에 음의 무한대를 넣는 마스킹 어텐션을 쓴다. 또 쿼리는 디코더에서, 키와 값은 인코더의 최종 출력에서 가져오는 인코더-디코더(교차) 어텐션으로 출력이 입력 문장에 실제로 조건화되도록 만든다.

주요 인사이트

  • 트랜스포머의 강점은 '거리에 무관한 일정한 경로 길이'와 '병렬 계산'이라는 두 축에서 나온다.
  • 어텐션은 쿼리와 키의 호환성으로 가중치를 정하고, 그 가중치로 값 벡터를 섞는 구조로 요약된다.
  • 잔차 연결과 층 정규화는 깊은 신경망의 학습을 안정화하는 공통 장치로 트랜스포머에도 그대로 쓰인다.
  • 디코더의 마스킹은 학습 시 병렬성을 유지하면서도 미래 정보를 못 보게 해 생성의 인과성을 지킨다.

자주 묻는 질문

트랜스포머는 RNN에 비해 무엇이 좋은가요?

RNN은 두 위치가 멀수록 신호가 지나는 경로가 길어지지만, 트랜스포머는 거리와 무관하게 경로 길이가 일정해 장거리 의존성을 잘 잡습니다. 또 예제 내부에서 병렬 계산이 가능해 학습이 빠릅니다.

셀프 어텐션에서 쿼리·키·값은 무슨 역할인가요?

쿼리를 여러 키와 비교해 호환성을 계산하고, 그 정도에 비례해 짝지어진 값 벡터를 출력에 반영합니다. 세 벡터는 모두 학습으로 얻어지며, 셀프 어텐션에서는 같은 시퀀스에서 나옵니다.

디코더의 마스킹은 왜 필요한가요?

출력 문장을 한 단어씩 순서대로 생성할 때, 특정 위치의 예측이 그 이후 단어에 의존하면 안 됩니다. 상삼각 부분에 음의 무한대를 넣는 마스크로 미래 위치의 가중치를 0으로 만들어 인과성을 지킵니다.

원문과 출처

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

YouTube 원본 영상 보기 ↗

관련 AI 소식