본문 바로가기
AI/딥러닝

Transformer의 학습과정 (Training)

by 보안매크로 2025. 2. 26.
728x90

🔍 Transformer의 학습과정 (Training)

1. Encoder의 역할

  • 입력: 주어진 텍스트 전체
    • 번역 태스크에서는 번역 전 텍스트를, 분류 태스크에서는 분류할 텍스트, 질의응답(QA) 태스크에서는 **질문(Query)**을 입력으로 받습니다.
  • 작동 방식:
    • 텍스트를 **토큰 임베딩(Token Embedding)**과 **위치 임베딩(Position Embedding)**을 통해 고정된 크기의 벡터로 변환합니다.
    • 이 벡터는 **Transformer의 인코더(Encoder)**를 거쳐 맥락(Context) 정보를 포함한 인코딩 벡터로 변환됩니다.

예시:

  • 입력 문장: "고양이가 매트 위에 앉아있어"
  • 인코더 입력: "고양이가 매트 위에 앉아있어" → 벡터 변환

2. Decoder의 역할

학습 시 Decoder의 입력:

  • 이전까지 예측된 토큰 셋을 입력으로 받습니다.
  • Teacher Forcing 기법을 사용하여 모델이 예측한 값이 아닌 정답(Ground-truth) 토큰을 입력으로 사용합니다.

🧠 Teacher Forcing이란?

  • Teacher Forcing은 학습 시 모델이 예측한 결과와 상관없이 정답(Ground-truth)을 강제적으로 사용하는 방법입니다.
  • 이는 학습 안정성을 높여주지만, 추론(Inference) 시에는 사용하지 않습니다.

예시:

  1. t=1 단계:
    • 입력: <start_token>
    • 출력: "The" (예측 확률 분포와 원핫 벡터 Ground-truth를 사용해 Cross EntropyLoss 계산)
    • 파라미터 업데이트
  2. t=2 단계:
    • 입력: <start_token> + The
    • 출력: "cat" (정답 토큰 사용)
    • Loss 계산 및 파라미터 업데이트
  3. t=3 단계:
    • 입력: <start_token> + The + cat
    • 출력: "is"
    • 반복하여 <eos> 토큰이 출력될 때까지 학습

🔎 Transformer의 추론 과정 (Inference)

🧠 Inference의 특징:

  • 학습 시와 달리 Teacher Forcing을 사용하지 않습니다.
  • 예측된 토큰을 그대로 다음 입력으로 사용합니다.

예시:

  1. t=1 단계:
    • 입력: <start_token>
    • 출력: "A" (예: argmax를 통해 가장 높은 확률의 토큰을 선택)
  2. t=2 단계:
    • 입력: <start_token> + A
    • 출력: "dog" (예측값 사용)
  3. t=3 단계:
    • 입력: <start_token> + A + dog
    • 반복하여 <eos> 토큰이 출력될 때까지 예측

🔍 훈련과 추론의 차이점:

728x90