GPT란? 트랜스포머 이해하기

dmn_nmd·2024년 7월 30일

AI: Transformer

목록 보기
1/4
post-thumbnail

🔗But what is a GPT? Visual intro to transformers | Chapter 5, Deep Learning

GPT Generative Pre-trained Transformer

  • 생성형 사전 훈련 트랜스포머
  • Generate: 텍스트 생성
  • Pre-trained: 방대한 양의 데이터로부터 학습함
  • Transformer: LLM에 사용되는 신경망 아키텍처*
    • 신경망 아키텍처: 입력 데이터를 처리하고 출력, 생성하는 시스템의 전반적인 구조

Transformer

  • 텍스트 입력에 대한 다음 내용을 예측합니다.
    • 다음에 이어질 수 있는 다양한 텍스트 청크에 대한 확률 분포의 형태를 통해 예측합니다.

Transformer 동작

  • 입력 텍스트가 여러 개의 토큰(작은 조각)으로 나누어집니다.
  • 각 토큰은 임베딩 벡터로 변환됩니다. 이는 해당 토큰의 의미를 인코딩하는 고차원 숫자 리스트입니다.
    • 벡터: 고차원 공간의 좌표
  • 위치 인코딩이 각 토큰의 임베딩 벡터에 더해져 순서 정보를 제공합니다.
  • 일련의 임베딩 벡터는 셀프 어텐션 메커니즘을 통과하면서 값을 업데이트합니다.
    • 이 과정에서 각 토큰은 다른 모든 토큰과의 관계를 고려합니다.
  • 어텐션 출력 벡터들은 피드 포워드 신경망(다층 퍼셉트론) 레이어를 통과합니다.
  • 어텐션 블록(셀프 어텐션)과 피드 포워드 블록의 조합을 여러 층 반복합니다.
    • 각 층에는 잔차 연결(residual connections)과 레이어 정규화(layer normalization)가 적용됩니다.
  • 최종 출력 벡터에서 다음에 올 수 있는 모든 토큰에 대한 확률 분포를 생성합니다.
  • 학습 과정에서는 이 확률 분포와 실제 다음 토큰 사이의 차이를 최소화하도록 모델의 가중치를 조정합니다.

Parameters

가중치 Weights

  • 파라미터는 주로 가중치를 의미합니다. (편향 대신 레이어 정규화를 사용함)
  • 모델이 데이터와 상호작용하는 핵심 방식은 가중치를 통한 연산입니다.
    • 즉, 입력 데이터는 모델의 각 층에서 가중치와 곱해지고 더해지는 과정을 거쳐 처리되며, 이러한 가중치 연산의 결과가 모델의 출력을 결정합니다.
  • 가중치들은 개별 행렬들로 구성되어 있음
  • 행렬들은 8가지 카테고리로 나뉩니다.
    • Embeding / Key / Query / Value / Output / Up-projection / Down-projection / Unembedding
  • 훈련 중에 학습한 내용을 바탕으로 가중치에 반영하고, 이를 바탕으로 추론 시 작동 방식을 결정합니다.

Embedding

  • 토큰을 고차원 벡터로 변경하는 과정입니다.
  • 모델에는 미리 정의된 토큰 집합이 있습니다.
  • 토큰 집합에 대해 사전 학습된 Embedding matrix가 있습니다.
  • Embedding matrix에는 각 토큰 대한 단일 열이 있습니다.
    • 각 열은 해당 토큰을 나타내는 벡터입니다.
    • 이 벡터는 첫 번째 단계에서 각 토큰이 어떤 벡터로 변하는지를 결정합니다.
      • 초기값이며, 트랜스포머 학습 과정을 통해 벡터 값들이 조정됩니다.
  • 벡터들은 수학적 연산이 가능하여 단어 간의 관계를 표현할 수 있습니다.
    • 예: "왕" - "남자" + "여자" ≈ "여왕"

Context

  • 단어는 문맥에 의해 명확하게 정의됩니다.
    • 예: fashion 'model', AI 'model'
  • 문맥을 통해 벡터들이 더 풍부하고 구체적인 의미를 담을 수 있도록 합니다.
  • Context size:
    • 모델이 한 번에 임베딩하고 처리할 수 있는 최대 토큰 수

Unembedding

  • Embedding을 통해 최종 벡터 값이 생성되고 unembedding 레이어를 통과하여 로짓으로 변환됩니다.
  • 변환된 로짓에 온도 적용 -> 소프트 맥스 => 최종 확률 분포가 계산됩니다.

Softmax

  • 임의의 숫자 목록을 가장 큰 값은 1에, 작은 값은 0에 가깝도록 유호한 분포로 변환하는 방법입니다.

Temperature

  • t가 크면 로짓 간의 차이를 줄여 확률 분포를 균일하게 만듭니다.
    • 분포가 균일할 수록 다양한 선택이 가능합니다.
  • t가 낮으면 로짓 간의 차이를 증폭시켜 확률 분포를 뾰족하게 만듭니다.
    • 높은 확률(가장 안전한)만 선택하게 됩니다.
profile
일잘러가 되어야지

0개의 댓글