AI VIDEO BRIEFING

트랜스포머 인코더 구조 해설 - 셀프 어텐션의 다단계 추론과 이차 복잡도라는 한계

트랜스포머 인코더의 성질을 정리한 강의다. 셀프 어텐션과 피드포워드 신경망의 역할 분담, 층을 여러 개 쌓아 얻는 다단계 추론, 그리고 긴 문장에서 드러나는 이차 복잡도 한계와 학습의 어려움을 함께 다룬다.

트랜스포머 인코더는 왜 층을 여러 개 쌓아야 할까 영상 대표 이미지

핵심 메시지

  • 인코더의 각 층은 멀티헤드 셀프 어텐션과 피드포워드 신경망 두 부분으로 이루어지며 역할이 명확히 나뉜다.
  • 셀프 어텐션은 문장 속 다른 단어의 정보를 끌어오고, 피드포워드는 맥락을 무시한 채 토큰 하나씩만 변환한다.
  • 위치 인코딩을 포함하면 인코더는 임의의 시퀀스 대 시퀀스 변환을 표현할 수 있는 보편적 함수가 된다.
  • 층을 쌓는 이유는 정보를 여러 단계에 걸쳐 전달해 사람이 문장을 여러 번 되짚어 이해하듯 추론하게 하려는 것이다.
  • 셀프 어텐션의 계산량은 문장 길이의 제곱에 비례하고, 학습에는 세심한 학습률 워밍업이 필요하다는 약점이 있다.

쉽게 이해하기

강의는 트랜스포머 인코더의 한 층이 무엇으로 이루어져 있는지부터 짚는다. 층마다 멀티헤드 셀프 어텐션과 피드포워드 신경망이 들어 있는데, 셀프 어텐션은 특정 단어의 임베딩이 같은 문장 속 다른 단어들의 임베딩에 영향을 받도록 만드는 부분이다. 반면 피드포워드 신경망은 맥락을 전혀 보지 않고 단어 하나의 임베딩만 입력으로 받아 같은 단어의 새 임베딩을 계산한다. 그래서 이 부분을 토큰 단위 매핑이라 부르기도 한다.

흥미로운 점은 이 두 부분을 결합해 인코더를 여러 개 쌓으면 보편적 함수를 얻게 된다는 사실이다. 강의자는 트랜스포머가 가중치를 상당히 공유하고 있다는 점을 생각하면 이는 자명한 성질이 아니라고 말한다. 입력에 위치 인코딩까지 포함할 경우 인코더는 한 시퀀스에서 다른 시퀀스로 가는 어떤 대응 관계든 표현할 수 있으며, 이는 상당히 놀라운 성질이라는 것이다.

층을 여러 개 쌓는 이유는 첫 층과 깊은 층에서 어텐션이 작동하는 대상이 다르다는 데 있다. 첫 층은 입력 임베딩에 대해 어텐션을 수행하지만, 깊은 층은 이미 갱신되어 더 유용한 정보를 담게 된 임베딩에 대해 어텐션을 수행한다. 어텐션 층을 연달아 놓으면 정보가 여러 단계, 즉 여러 번의 도약을 거쳐 전달되는데, 이는 사람이 글을 여러 단계로 되짚어 이해하는 방식과 닮았다.

강의자는 대명사가 두 번 이어지는 예문으로 이 과정을 설명한다. 누군가 기타를 사서 부엌에 두고 나갔고, 다음 문장에서 다른 사람이 부엌에 들어와 '그것'을 집어 들었다는 문장이 이어지는 상황이다. 사람은 두 번째 문장의 '그것'이 기타를 가리킨다는 사실을 먼저 파악하고, 세 번째 문장의 '그것' 역시 같은 기타라고 이어서 추론한다. 인코더 층을 쌓는 것은 신경망이 이와 비슷한 방식으로 임베딩을 단계마다 조금씩 개선하기를 기대하는 설계라는 설명이다.

마지막으로 어텐션 가중치 시각화와 인코더의 약점이 언급된다. 동물이 길을 건너지 않은 문장에서 '그것'의 새 임베딩을 계산할 때 어떤 단어에 큰 가중치가 실리는지 눈으로 확인할 수 있지만, 이는 특정 층의 특정 헤드에 해당하는 값일 뿐 다른 헤드나 층은 훨씬 덜 직관적일 수 있다. 약점으로는 셀프 어텐션이 키와 쿼리 벡터의 모든 쌍에 대해 내적을 계산하기 때문에 계산량이 문장 길이의 제곱에 비례한다는 점, 학습률 워밍업 단계를 세심하게 설계해야 해 학습이 어렵고 느려진다는 점이 꼽힌다. 학습이 끝난 뒤 어텐션 헤드를 상당수 제거해도 정확도가 크게 떨어지지 않는다는 실험 결과도 소개되는데, 강의자는 이것이 애초에 구조가 필요 이상으로 복잡하다는 신호일 수 있다고 덧붙인다.

주요 인사이트

  • 셀프 어텐션과 피드포워드의 분업 구조를 이해하면, 맥락 반영과 개별 토큰 변환이라는 서로 다른 작업이 왜 분리되어 있는지가 보인다.
  • 깊이가 주는 이점은 단순한 표현력 증가가 아니라 정보가 여러 단계를 거쳐 옮겨 다닐 수 있게 되는 것이다.
  • 어텐션 가중치 시각화는 직관을 얻는 도구이지 모델의 판단 근거에 대한 완전한 설명은 아니다. 헤드와 층에 따라 해석 가능성이 크게 다르다.
  • 긴 문맥 처리의 병목은 구현 최적화 이전에 셀프 어텐션의 이차 복잡도라는 구조적 성질에서 나온다.
  • 학습 후 헤드를 다수 제거해도 성능이 유지된다는 사실은 복잡도를 줄일 여지인 동시에 원래 설계가 과도했다는 방증이기도 하다.

자주 묻는 질문

셀프 어텐션과 피드포워드 신경망의 차이는?

셀프 어텐션은 한 단어의 임베딩이 문장 속 다른 단어들의 임베딩에 영향을 받도록 맥락을 반영하는 부분이다. 피드포워드 신경망은 맥락을 보지 않고 단어 하나의 임베딩만 받아 같은 단어의 새 임베딩을 계산하는 토큰 단위 변환을 맡는다.

인코더가 보편적 함수라는 말은 무슨 뜻인가?

인코더 층을 충분히 쌓고 입력에 위치 인코딩을 포함하면, 한 시퀀스에서 다른 시퀀스로 가는 어떤 대응 관계든 표현할 수 있다는 뜻이다. 트랜스포머가 가중치를 상당히 공유하는 구조임을 감안하면 자명하지 않은 성질이라고 강의는 설명한다.

긴 문장에서 트랜스포머가 무거워지는 이유는?

셀프 어텐션이 키 벡터와 쿼리 벡터의 모든 쌍에 대해 내적을 계산하기 때문이다. 단어가 n개면 키도 n개, 쿼리도 n개라 쌍의 수가 n의 제곱이 되고, 그만큼 계산량이 문장 길이의 제곱에 비례해 늘어난다.

원문과 출처

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

YouTube 원본 영상 보기 ↗

관련 AI 소식