🔗But what is a GPT? Visual intro to transformers | Chapter 5, Deep Learning
- 생성형 사전 훈련 트랜스포머
- Generate: 텍스트 생성
- Pre-trained: 방대한 양의 데이터로부터 학습함
- Transformer: LLM에 사용되는 신경망 아키텍처*
- 신경망 아키텍처: 입력 데이터를 처리하고 출력, 생성하는 시스템의 전반적인 구조
- 텍스트 입력에 대한 다음 내용을 예측합니다.
- 다음에 이어질 수 있는 다양한 텍스트 청크에 대한 확률 분포의 형태를 통해 예측합니다.

- 입력 텍스트가 여러 개의 토큰(작은 조각)으로 나누어집니다.
- 각 토큰은 임베딩 벡터로 변환됩니다. 이는 해당 토큰의 의미를 인코딩하는 고차원 숫자 리스트입니다.
- 위치 인코딩이 각 토큰의 임베딩 벡터에 더해져 순서 정보를 제공합니다.
- 일련의 임베딩 벡터는 셀프 어텐션 메커니즘을 통과하면서 값을 업데이트합니다.
- 이 과정에서 각 토큰은 다른 모든 토큰과의 관계를 고려합니다.
- 어텐션 출력 벡터들은 피드 포워드 신경망(다층 퍼셉트론) 레이어를 통과합니다.
- 어텐션 블록(셀프 어텐션)과 피드 포워드 블록의 조합을 여러 층 반복합니다.
- 각 층에는 잔차 연결(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가 낮으면 로짓 간의 차이를 증폭시켜 확률 분포를 뾰족하게 만듭니다.
- 높은 확률(가장 안전한)만 선택하게 됩니다.
