박서희연구소

[Model] Transformer Model Pipeline(트랜스포머 모델 파이프라인) 본문

○ Programming [AI]/Theory

[Model] Transformer Model Pipeline(트랜스포머 모델 파이프라인)

SEOHUI PARK 2024. 11. 26. 13:52
반응형

Transformer 모델은 자연어의 순서를 이해하지 못한다

Transformer 모델은 순차적으로 데이터를 처리하지 않기 때문에 입력 텍스트의 순서를 직접적으로 인식하지 못한다.

이는 RNN(Recurrent Neural Network) 및 LSTM(Long Short_term Memory) 모델과 가장 큰 차이점으로, Transformer는 입력 토큰 간 관계를 병렬적으로 처리한다.

 

문제: 단순히 토큰을 병렬로 처리하면, "I love AI"와 "AI love I"가 모델에게 동일하게 보일 수 있음

해결: 위치 인코딩(Positonal Encoding)

  • Transformer는 입력 토큰의 위치 정보를 반영하기 위해, 위치 인코딩을 사용
  • Sine 및 Cosine 함수로 위치를 나타내는 고유한 벡터를 생성
  • 이 벡터가 임베딩 벡터에 더해져 순서 정보를 추가

Pipeline 단계별 이해

1. 데이터 준비(Preprocessing)

  • 텍스트 전처리: 불필요한 문자 제거, 소문자 변환 등
  • 토큰화: 텍스트를 토큰 단위로 분리하고 고유 ID로 변환
    예: "I love AI" -> [101, 1045, 2293, 2060, 102]
  • 패딩 및 정렬: 길이를 맞추기 위해 [PAD] 토큰 추가

2. 임베딩(Embedding)

  • 임베딩 레이어: 토큰 ID를 고차원 벡터로 변환
  • 위치 인코딩 추가: 각 토큰에 순서 정보를 반영

3. Transformer 모델 처리

  • Multi-Head Self-Attention:
    모든 토큰 간 관계를 계산하여 문맥 정보를 이해
    예: "AI"는 "love"와 연결되며 중요한 의미를 가짐
  • Feedforward Network:
    각 토큰의 의미를 비선형적으로 변환
  • 잔차 연결 및 정규화:
    학습 안정성 및 성능 향상

4. Postprocessing

  • 확률 분포 생성: 각 토큰의 확률 계산
  • 디코딩:
    Greedy Decoding, Beam Search, Sampling을 사용하여 최종 결과 생성

실제 적용 사례: 번역 모델

  1. 입력 테스트: "Translate English to French: How are you?"
  2. 토큰화 및 임베딩:
    토큰: [Translate, English, to, French, :, How, are, you, ?]
  3. Transformer 처리:
    디코더가 "Comment allez-vous?"를 생성
  4. 최종 출력:
    "Comment allez-vous?"

- 끝 -

반응형
Comments