AI VIDEO BRIEFING

트랜스포머 위치 인코딩 원리 쉽게 정리 — 사인·코사인 함수를 쓰는 이유와 컨텍스트 길이의 관계

트랜스포머가 단어의 순서를 이해하게 해주는 장치인 위치 인코딩을 표와 수식으로 따라간다. 사인과 코사인을 번갈아 쓰는 이유, 벡터 자리마다 주기가 달라지는 까닭, 그리고 컨텍스트 길이가 여기서 정해지는 이유를 설명한다.

트랜스포머는 단어 순서를 어떻게 알까 — 위치 인코딩 뜯어보기 영상 대표 이미지

핵심 메시지

  • 트랜스포머의 셀프 어텐션만으로는 토큰의 순서를 알 수 없어, 위치 정보를 따로 넣어주는 장치가 필요하다. 그것이 위치 인코딩이다.
  • 각 토큰은 항상 같은 토큰 벡터를 갖지만, 문장에서 몇 번째에 있느냐에 따라 다른 위치 벡터가 더해져 최종 입력 벡터가 달라진다.
  • 같은 단어들을 순서만 바꿔 넣으면 은닉 상태가 완전히 달라지고, 그 결과 어텐션이 잡아내는 단어 사이의 관계도 완전히 달라진다.
  • 위치 임베딩 표의 행 수가 곧 컨텍스트 크기이며, 모델에 넣을 수 있는 토큰 수를 제한하는 것은 사실상 이 요소뿐이다.
  • 'Attention is all you need' 논문은 위치 벡터를 학습시키는 대신 사인·코사인 함수로 고정해 계산을 아꼈고, 학습시킨 경우와 성능이 비슷했다고 보고했다.

쉽게 이해하기

트랜스포머와 셀프 어텐션은 대규모 언어 모델을 가능하게 한 강력한 구조지만, 그 자체로는 입력 토큰들이 어떤 순서로 들어왔는지 알지 못한다. 순서를 알려주는 장치가 위치 인코딩이다. 영상은 위치를 인코딩하는 방법이 여러 가지 있다고 전제한 뒤, 최초의 트랜스포머 논문에서 제시된 방식을 그림으로 따라간다.

구조를 보면 두 개의 표가 나란히 있다. 토큰 임베딩 표는 어휘 사전에 든 단어 수만큼 행을 갖고, 각 벡터의 크기는 모델 차원이다. 위치 임베딩 표는 입력 또는 출력 시퀀스에 들어올 수 있는 자리 수만큼 행을 갖는다. 처리 과정은 단순하다. 첫 번째 단어는 자기 토큰 벡터에 위치 임베딩의 첫 번째 벡터를 더하고, 두 번째 단어는 두 번째 벡터를 더하는 식으로 끝까지 간다. 같은 단어라도 자리가 바뀌면 더해지는 벡터가 달라진다.

왜 이것이 중요한지는 순서만 바꾼 문장을 넣어보면 드러난다. 똑같은 단어 집합이라도 배열이 다르면 그 결과로 나오는 은닉 상태가 완전히 달라지고, 그것이 어텐션 층으로 들어가면 모델이 파악하는 단어 사이의 상호작용도 완전히 달라진다. 위치 인코딩 덕분에 모델은 단어의 의미뿐 아니라 순서, 그리고 그 순서가 예측하려는 단어에 미치는 영향까지 다룰 수 있게 된다.

논문이 제시한 계산식은 위치 값과 벡터 안에서의 자리를 받아, 벡터 안의 자리를 옮겨갈 때마다 사인과 코사인을 번갈아 쓴다. 식 안의 10,000이라는 큰 수 때문에 한 열을 따라 내려가면 값이 아주 완만하게 변한다. 주기가 서로 다른 사인·코사인을 섞으면 자리마다 뚜렷하게 구별되는 임베딩이 만들어지고, 이웃한 차원들이 서로 다른 방식으로 기여하게 된다. 주기 함수라는 성질은 상대적 거리가 중요한 과제에서 유용하고, 값이 매끄럽게 이어져 길이가 제각각인 시퀀스에도 잘 일반화된다.

정리하면 이 방식은 학습할 필요가 없는 위치 벡터 묶음을 공짜로 얻는 셈이다. 위치 임베딩을 학습 가능한 파라미터로 두는 모델도 있지만, 원 논문은 함수로 고정해도 학습시킨 것과 비슷한 결과가 나왔다고 보고했다. 계산을 아끼면서도 같은 단어가 다른 자리에 올 때 이를 구별할 수단을 얻은 것이다.

주요 인사이트

  • 컨텍스트 길이는 어텐션이 아니라 위치 임베딩 표의 행 수에서 나온다. 영상은 이 요소만이 입력 토큰 수를 무한히 늘리지 못하게 막는 유일한 부분이라고 설명한다.
  • 사인과 코사인을 번갈아 쓰는 이유는 이웃한 차원끼리 서로 다른 값을 갖게 해, 인접한 위치들이 구별되도록 만들기 위해서다.
  • 벡터 안에서 앞쪽 자리일수록 주기가 짧고 뒤쪽으로 갈수록 주기가 길어져, 짧은 거리와 먼 거리의 의존 관계를 함께 담을 수 있다.
  • 10,000이라는 상수는 값이 급격히 튀지 않고 부드럽게 이어지도록 스케일을 잡아주는 역할을 하며, 경험적으로 효과가 좋았다고 알려져 있다.
  • 위치 인코딩을 학습시킬지 고정할지는 성능이 아니라 계산 비용의 문제였다. 원 논문 기준으로는 고정하는 쪽이 더 이득이었다.

자주 묻는 질문

위치 인코딩이 없으면 어떻게 되나?

셀프 어텐션은 토큰들을 집합처럼 다루기 때문에, 같은 단어를 순서만 바꿔 넣어도 모델이 구분하지 못한다. 위치 벡터를 더해줘야 배열이 다른 두 문장이 서로 다른 은닉 상태로 이어지고, 어텐션이 잡아내는 관계도 달라진다.

컨텍스트 크기는 어디서 정해지나?

위치 임베딩 표의 행 수가 곧 넣을 수 있는 최대 토큰 수, 즉 컨텍스트 크기다. 영상은 모델에서 입력 길이를 제한하는 것이 사실상 이 부분뿐이라고 설명한다.

위치 임베딩을 학습시키면 더 좋지 않나?

학습 가능한 위치 임베딩을 쓰는 모델도 있다. 다만 'Attention is all you need' 논문에서는 사인·코사인 함수로 고정해도 학습시킨 경우와 비슷한 결과가 나왔고, 그만큼 계산을 아낄 수 있다고 보고했다.

원문과 출처

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

YouTube 원본 영상 보기 ↗

관련 AI 소식