○ 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을 사용하여 최종 결과 생성
실제 적용 사례: 번역 모델
- 입력 테스트: "Translate English to French: How are you?"
- 토큰화 및 임베딩:
토큰: [Translate, English, to, French, :, How, are, you, ?] - Transformer 처리:
디코더가 "Comment allez-vous?"를 생성 - 최종 출력:
"Comment allez-vous?"
- 끝 -
반응형