1 분 소요

image

Transformer

image


Transformer의 구조

image


임베딩 레이어

image

  • 텍스트 데이터를 수치로 표현
    • 입력 : 일련의 문장
    • 토큰화
      • byte pair encoding (영어-독일어) : 37K 토큰
      • word-peice vocabulary (영어-불어) : 32K 토큰
    • 임베딩 행렬
      • 토큰수 x 임베딩 벡터 크기로 트랜스포머에서는 이미 학습된 임베딩 행렬 사용 (필요에 따라 별도 구축 가능)
      • 기본적인 역할 : 임베딩 벡터 간의 거리로 토큰의 유사도를 측정할 수 있음
    • 출력 : 입력 문장의 토큰수 x 임베딩 벡터 크기


위치 인코딩

image

  • 토큰 임베딩 벡터별로 위치를 부여
    • 입력 : 임베딩된 벡터
    • 위치 인코딩 알고리즘
      • 임베딩된 벡터에 위치를 부여하는 방식은 여러가지가 있으나 임베딩된 벡터 원소에 영향을 최소화해야 함
      • 같은 위치의 토큰은 같은 위치 값을 가져야 함 → 주기함수
      • 위치 인코딩의 크기 == 임베딩된 벡터의 크기 → 주기함수의 중복성 배제

      image

    • 출력 : 임베딩 벡터 + 위치 인코딩 벡터
      • 덧셈을 하는 이유?
        • 계산상의 이유 때문



어텐션 메커니즘

image

  • 은닉 상태를 한 번 더 가공하는 접근
  • 소수의 FC 층
  • Dot-product 어텐션
    • 쿼리 - 키 - 가치로 구성
    • 키 - 가치는 딕셔너리로 이해 가능
    • 쿼리 - 키의 유사도는 dot-product로
    • dot-product 값에 가치를 곱하여 어텐션 모수 산출
  • 바이나우 어텐션
    • 쿼리의 시점이 t-1


트랜스포머의 구조 - 인코더

image

무엇을 학습하는가?

image


(셀프) 어텐션 헤드

image


행렬곱

image


어텐션 값

image


쿼리, 키, 가치


쿼리, 키의 의미

image


가치의 의미

image


멀티 헤드 (셀프) 어텐션

image


FC층의 역할

image


트랜스포머의 의미

  • 언어모델에서의 문맥적 관계를 학습
    • 입력된 값에 대해서도 학습 → 셀프 어텐션
    • 어디까지나 확률적 의미에서의 문맥적 관계
    • 장기 의존성 문제를 계산으로 해결
  • 계산적인 측면에서의 트랜스포머
    • 어텐션 헤드 → 계산적으로 독립 → 매우 쉽게 병렬처리 가능
    • 어텐션의 계산 → 모두 행렬곱으로…
    • Multi-GPU 환경, Multi-GPU 클러스터 환경에서의 킬러 앱
    • 현대 계산자원의 특성을 십분 고려한 알고리즘의 개발 → 거대언어 모델의 기반

댓글남기기