AI VIDEO BRIEFING

어텐션 메커니즘 구현 정리: 셀프 어텐션·인과적 어텐션·멀티 헤드 어텐션을 스터디 발표로 따라가기

LLM을 밑바닥부터 만드는 책의 어텐션 장을 다룬 스터디 발표 기록입니다. 어텐션 스코어와 가중치, 컨텍스트 벡터를 구하는 흐름과 인과적 어텐션, 멀티 헤드 어텐션의 개념을 코드 확인 과정까지 포함해 한국어로 정리했습니다.

어텐션 스코어에서 컨텍스트 벡터까지, LLM을 밑바닥부터 따라간 스터디 기록 영상 대표 이미지

핵심 메시지

  • 어텐션은 문맥상 중요한 토큰에 집중하는 장치로, 어텐션 스코어에서 어텐션 가중치를 거쳐 컨텍스트 벡터를 얻는 흐름으로 계산된다.
  • 인과적 어텐션은 자기 자신과 과거 토큰만 참조하도록 미래 위치를 가려서 예측 순서를 보장하는 셀프 어텐션이다.
  • 어텐션 연결 일부를 무작위로 차단하는 마스킹은 과적합을 줄이려는 장치로, 드롭아웃의 어텐션 버전에 해당한다.
  • 멀티 헤드 어텐션은 서로 다른 가중치 행렬을 가진 헤드를 병렬로 두어 가까운 관계와 먼 관계를 나눠 학습하게 한다.
  • 학습 가능한 가중치가 들어오면 입력 벡터에서 쿼리·키·값을 뽑고 소프트맥스로 가중치를 만드는 단계가 추가된다.

쉽게 이해하기

이 영상은 LLM을 밑바닥부터 구현하는 책의 어텐션 장을 다룬 스터디 발표를 그대로 남긴 기록입니다. 발표자는 아직 코드까지 충분히 보지 못했다고 먼저 밝히고, 개념의 흐름을 짚는 데 초점을 맞춰 진행합니다. 이 책의 목표 자체가 GPT 같은 모델을 가장 단순한 형태로 직접 만들어 보는 것이고, 어텐션은 사전 학습과 미세 조정으로 이어지는 전체 과정 중 모델을 만드는 단계에 해당합니다. 완성된 해설이라기보다 학습 과정에서 이해한 만큼을 나누고 서로 보완하는 스터디의 성격을 그대로 보여 줍니다.

발표는 어텐션이 등장하기 전 순환 신경망이 겪던 문제에서 출발합니다. 독일어 문장을 영어로 옮기는 예에서 두 언어의 어순과 의미 단위가 달라 단어 대 단어 번역으로는 제대로 옮겨지지 않는다는 점을 지적합니다. 이 문제를 풀기 위해 출력 단어를 만들 때 입력 전체를 살펴보고 관련 있는 곳에 집중하는 어텐션 개념이 제안되었고, 초기의 관심사는 주로 번역이었습니다. 이후 셀프 어텐션이 등장하면서 입력 시퀀스의 각 위치가 다른 모든 위치와의 관련성을 고려해 표현을 계산하는 방식이 자리 잡았고, 이것이 오늘날 트랜스포머 기반 LLM의 핵심 요소가 되었습니다.

가장 단순한 형태의 셀프 어텐션에는 학습 가능한 가중치가 없습니다. 토큰마다 입력 벡터가 있고, 기준이 되는 토큰의 벡터를 질의로 삼아 다른 입력 벡터들과 내적을 계산해 어텐션 스코어를 얻습니다. 이 스코어를 정규화하면 합이 1이 되는 어텐션 가중치가 되고, 각 입력 벡터에 이 가중치를 곱해 더하면 그 토큰의 컨텍스트 벡터가 나옵니다. 스코어에서 가중치, 다시 컨텍스트 벡터로 이어지는 이 세 단계가 어텐션 계산의 뼈대이며, 같은 절차를 모든 토큰에 반복하면 문장 전체의 컨텍스트 벡터를 얻습니다.

다음 단계에서 학습 가능한 가중치가 들어옵니다. 가중치 행렬과 입력 벡터의 행렬 곱으로 쿼리, 키, 값 벡터를 만들고, 쿼리와 키로 아직 정규화되지 않은 어텐션 스코어를 구한 뒤 소프트맥스를 적용해 어텐션 가중치를 얻습니다. 그다음 값 벡터를 이 가중치로 결합해 최종 컨텍스트 벡터를 계산합니다. 발표에서는 실제 코드로 두 번째 토큰의 스코어를 하나씩 내적으로 구한 결과와, 행렬 곱으로 한 번에 구한 결과가 같음을 확인하고, 소프트맥스를 거친 가중치의 합이 1이 되는 것도 함께 살펴봅니다.

인과적 어텐션과 멀티 헤드 어텐션이 마지막 주제입니다. 인과적 어텐션은 어떤 토큰을 예측할 때 그 뒤에 오는 토큰을 모두 가려서 자기 자신과 과거만 참조하게 하고, 여기에 무작위 드롭아웃을 더해 일부 연결을 차단함으로써 과적합을 줄입니다. 이렇게 만들어진 하나의 인과적 어텐션은 시퀀스 관계를 특정 관점에서만 보는 단일 헤드에 해당합니다. 이를 여러 개 복제해 병렬로 두고 각각 다른 가중치 행렬을 갖게 한 것이 멀티 헤드 어텐션이며, 어떤 헤드는 가까운 토큰 관계에, 다른 헤드는 멀리 떨어진 토큰 관계에 집중하면서 다양한 문법적·의미적 패턴을 함께 학습합니다.

주요 인사이트

  • 어텐션 계산은 스코어, 가중치, 컨텍스트 벡터라는 세 단계로 요약되며, 학습 가능한 가중치의 유무만 다를 뿐 단순한 버전과 실제 버전의 뼈대는 같다.
  • 인과적 마스킹과 드롭아웃은 목적이 다르다. 마스킹은 미래를 보지 못하게 하는 구조적 제약이고 드롭아웃은 과적합을 줄이려는 정규화 장치다.
  • 멀티 헤드가 의미를 가지는 이유는 헤드마다 가중치 행렬이 달라 같은 문장에서 서로 다른 종류의 관계를 나눠 볼 수 있기 때문이다.
  • 행렬 곱으로 한 번에 계산한 결과가 토큰별 내적을 반복한 결과와 같다는 확인은, 수식과 구현이 어긋나지 않았는지 점검하는 실용적인 방법이다.
  • 모르는 부분을 감추지 않고 드러낸 채 발표하는 스터디 방식은 남은 질문을 분명히 남겨 다음 회차의 학습 목표를 자연스럽게 만든다.

자주 묻는 질문

인과적 어텐션은 일반 셀프 어텐션과 어떻게 다른가요?

일반 셀프 어텐션은 입력의 모든 위치를 함께 보지만, 인과적 어텐션은 어떤 토큰을 다룰 때 그 뒤에 오는 토큰을 가려 자기 자신과 과거 토큰만 참조하게 합니다. 이렇게 해서 다음 단어를 예측하는 순서를 구조적으로 보장합니다.

컨텍스트 벡터는 어떻게 만들어지나요?

먼저 기준 토큰의 쿼리와 다른 토큰들의 값으로 어텐션 스코어를 구하고, 이를 정규화하거나 소프트맥스에 통과시켜 합이 1이 되는 어텐션 가중치를 만듭니다. 그다음 각 토큰의 벡터에 이 가중치를 곱해 모두 더하면 해당 토큰의 컨텍스트 벡터가 됩니다.

어텐션에서 말하는 드롭아웃은 무엇인가요?

학습 과정에서 일부 어텐션 연결의 가중치를 무작위로 차단하는 방법으로, 특정 연결에 과하게 의존하는 것을 막아 과적합을 줄입니다. 발표에서는 이를 드롭아웃의 어텐션 버전이라고 설명합니다.

원문과 출처

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

YouTube 원본 영상 보기 ↗

관련 AI 소식