[딥러닝 프로젝트] 12강. 트랜스포머 디코더 모델 | ①GPT-2 모델로 텍스트 생성하기
- 트랜스포머 디코더 기반 모델은 자기 지도 학습으로 훈련되며, 초기 텍스트(프롬프트)를 입력받아 다음에 이어질 단어를 예측합니다. 🤖
- 모델 훈련 시, 입력 텍스트의 다음 단어 예측과 실제 단어 간의 오차를 역전파하여 모델을 조정합니다. 🎯
- 디코더 기반 모델에서는 현재 위치에서 다음 토큰을 참조하는 것을 방지하기 위해 마스크드 멀티 헤드 어텐션을 사용합니다. 🎭
- 마스크드 멀티 헤드 어텐션은 어텐션 점수 계산 시 주대각선 위쪽의 점수를 마스킹하여 미래 정보의 누출을 막습니다. 🛡️
- GPT-2 모델은 오픈AI에서 개발되었으며, GPT-3부터는 가중치가 공개되지 않고 유료 서비스로 제공됩니다. 🔑
- GPT-2 모델은 여러 버전(Base, Medium, Large, Extra Large)이 있으며, 모델 크기에 따라 디코더 층과 어텐션 헤드 개수가 증가합니다. 📈
- GPT-2와 같은 생성 모델은 어휘 사전의 각 토큰에 대한 확률값을 출력하며, 다음 토큰 선택 시 확률 기반의 랜덤 샘플링을 사용합니다. 🎲
- 케라스 NLP 패키지를 사용하여 GPT-2 모델 가중치를 다운로드하고, 탑-K 샘플링 또는 탑-P 샘플링을 통해 텍스트를 생성할 수 있습니다. ✍️
- 탑-K 샘플링은 확률이 높은 상위 K개 토큰 중에서 랜덤하게 선택하고, 탑-P 샘플링은 누적 확률이 P에 도달할 때까지 토큰을 선택합니다. 💯
- 텍스트 생성 시, 동일한 모델이라도 사용 라이브러리나 샘플링 방식에 따라 결과가 달라질 수 있습니다. 🔀