DeepLearning

[Transformer] 어텐션 연산과 핵심 구성 요소

dong_seok 2025. 4. 14. 22:32
728x90

1. 어텐션 연산

우리는 글을 읽을 때 모든 단어에 동일한 중요도를 부여하지 않습니다. 어떤 단어들은 특별히 주목하고, 다른 단어들은 상대적으로 덜 집중하며 전체 맥락을 파악합니다. 트랜스포머 모델의 핵심인 어텐션 연산은 이러한 인간의 읽기 방식을 모방한 연산입니다.

 

1) 어텐션이란 무엇인가?

어텐션은 단어들 사이의 관계를 파악하여 문맥을 이해하는 방식으로, 다음과 같은 과정으로 작동합니다:

  • 단어와 단어 사이의 관계를 계산하여 관련성의 깊이를 판단
  • 관련이 깊은 단어는 더 많이, 관련이 적은 단어는 더 적게 맥락에 반영

이 연산은 모델이 문장 내에서 단어 간의 복잡한 관계를 이해하고, 문맥에 따라 단어의 의미를 적절히 해석할 수 있게 합니다.

 

2. QKV(쿼리, 키, 값) 모델 이해하기

트랜스포머 아키텍처를 개발한 연구진은 정보 검색 분야에서 영감을 받아 쿼리(Query), 키(Key), 값(Value)이라는 개념을 도입했습니다.

 

1) QKV 모델의 역할

구성 요소 역할 검색 시스템 예시

역할 설명 검색 예시
쿼리(Query) 우리가 찾고자 하는 정보 사용자의 검색어
키(Key) 쿼리와의 관련성을 판단하기 위한 특징 문서의 제목, 저자
값(Value) 실제로 활용하게 될 정보 문서의 본문 내용

 

이 구조에서 모델은 쿼리와 키의 관련도를 계산한 뒤, 가장 관련이 깊은 키에 연결된 값을 활용합니다. 이를 통해 맥락에 따라 단어의 의미를 다르게 해석할 수 있게 됩니다.

 

2) 규칙 기반 방법의 한계

어텐션을 구현하기 위한 초기 시도로, 몇 가지 규칙 기반 방법들이 있었습니다:

  • 모든 단어를 동등하게 반영하는 방식
    • 문제점: 정보의 우선순위를 표현할 수 없음
  • 거리 기반 가중치 적용
    • 가정: "가까운 단어일수록 관련이 깊다"
    • 문제점: 문맥과 무관하게 단순 거리만으로 의미 관계를 결정하는 한계

이러한 규칙 기반 방법들의 핵심 문제는 유연성 부족입니다. 예를 들어, "파리"를 "박물관"으로 바꿔도 동일한 계산 결과가 나온다면, 문맥에 따른 의미 변화를 포착할 수 없습니다.

 

3) 벡터 기반 어텐션의 등장

이러한 한계를 극복하기 위해, 트랜스포머는 토큰의 임베딩 벡터를 활용한 계산 방식을 도입했습니다. 벡터 간 연산을 통해 관련도를 계산하면 문자열이 일치하지 않더라도 의미적으로 유사한 정보를 활용할 수 있습니다. 하지만 이 방식에도 문제가 있었습니다.

  • 쿼리와 키의 임베딩이 동일할 경우, 관련도가 지나치게 높게 계산되어 주변 맥락 반영이 미흡해질 수 있음
  • 직접적인 관련성은 잘 포착하지만, 문법적 관계와 같은 간접적 관련성은 반영하기 어려움

4) 가중치 도입을 통한 문제 해결

트랜스포머는 토큰 임베딩을 변환하는 학습 가능한 가중치를 도입하여 이러한 문제를 해결했습니다:

  • 쿼리-키 임베딩 일치 문제 해결: 서로 다른 가중치 행렬을 통해 동일한 임베딩도 다르게 변환
  • 간접 관계 반영: 가중치 행렬이 단어의 위치, 역할, 문장 구조 등을 학습하여 간접적 관계도 포착

결과적으로, 트랜스포머는 QKV 가중치를 통해 문맥에 따라 단어 간 관계를 유연하게 계산하고 적절히 반영하는 방법을 학습합니다.

 

5) 스케일 점곱 방식

"Attention is All You Need" 논문에서 처음 소개된 스케일 점곱 어텐션의 연산 과정은 다음과 같습니다.

  • 쿼리와 키를 곱한 후, 임베딩 차원의 제곱근으로 나눔 (분산 증가 방지)
  • 계산된 스코어에 소프트맥스를 적용하여 합이 1이 되는 가중치로 변환
  • 이 가중치와 값을 곱해 최종 출력 계산

3. 멀티 헤드 어텐션

한 번의 어텐션 연산으로는 문장 내 복잡한 관계를 모두 포착하기 어렵습니다. 트랜스포머는 여러 개의 어텐션을 동시에 계산하는 '멀티 헤드 어텐션'을 도입해 이 문제를 해결했습니다.

 

1) 멀티 헤드 어텐션의 작동 원리

  • 쿼리, 키, 값을 헤드 수만큼 분할하여 각각의 어텐션 연산 수행
  • 각 헤드의 결과를 결합하여 입력과 동일한 형태로 변환
  • 선형층을 통과시켜 최종 결과 생성

이를 통해 모델은 하나의 문장에서 다양한 관계와 패턴을 동시에 파악할 수 있습니다.

 

4. 트랜스포머의 핵심 구성 요소

1) 층 정규화(Layer Normalization)

딥러닝 모델에서 데이터가 일정한 분포를 유지하도록 만드는 정규화는 학습 안정성과 속도에 중요한 영향을 미칩니다.

 

(1) 배치 정규화 vs 층 정규화

  • 배치 정규화
    • 배치 내 데이터 간 정규화 수행
    • 이미지 처리에 주로 사용
    • 문제점: 자연어 처리에서는 문장 길이가 다양하여 효과적이지 않음

  • 층 정규화
    • 특정 차원에서 정규화 수행
    • 각 토큰 임베딩의 평균과 표준편차를 구해 정규화
    • 자연어 처리에 적합

 

(2) 정규화 적용 방식

  • 사후 정규화: 원 트랜스포머 논문 방식 - 어텐션과 피드 포워드 층 이후에 정규화 적용
  • 사전 정규화: 최신 방식 - 먼저 정규화 적용 후 다른 층 통과 (학습 안정성 향상)

2) 피드 포워드 층(Feed-Forward Layer)

트랜스포머에서 피드 포워드 층은 데이터의 특징을 학습하는 완전 연결 층으로, 다음과 같은 역할을 합니다:

  • 멀티 헤드 어텐션이 단어 간 관계를 파악한다면, 피드 포워드 층은 텍스트 전체 맥락 이해 담당
  • 선형 층, 드롭아웃 층, 층 정규화, 활성 함수로 구성
  • 모델이 입력 텍스트의 고수준 특성과 의미를 포착할 수 있도록 함

 

참고자료

LLM을 활용한 실전 AI 애플리케이션 개발 - 허정준

728x90