2장 GPT의 기반 기술, Transformer란 무엇인가?
이제 인코더와 디코더가 공통으로 사용하는 구성요소는 전부 다루었으니, 마지막으로 디코더의 출력단계를 살펴봅시다. Transformer 구조에서 디코더의 출력 부분은 아래 그림처럼 동작합니다.
N번 반복되는 디코더 블록을 모두 통과한 뒤, 마지막 블록의 최종 특징 벡터를 받아서 Linear → Softmax를 적용합니다. 이렇게 해서 각 위치에서 어떤 토큰이 나올지에 대한 확률 분포를 계산합니다.
학습시 입력 부분은 조금 다르게 동작합니다. 모델이 방금 예측한 토큰을 다시 입력 시퀀스에 이어붙이면서, 다음 토큰을 순차적으로 처리하는 방식입니다. 즉, 디코더는 입력/예측/입력/예측을 반복해야 다음 단어를 계속 만들어낼 수 있습니다.
원 논문에는 다음과 같은 문장이 나옵니다.
"우리는 디코더 출력값을 다음 토큰의 예측 확률로 변환하기 위해, 일반적으로 사용되는 학습된 선형변환과 softmax를 사용한다."
여기서 중요한 부분은,
디코더의 최종 출력 h_dec, final(i)에 임베딩 행렬의 전치 행렬 W_emb^T를 곱한다는 것입니다.
어휘 집합 V의 크기를 |V|라고 하고,
임베딩 행렬이 W_emb ∈ ℝ^(d_model × |V|)이면,
디코더 마지막 토큰의 특징량 h_dec,final(i)에 W_emb^T를 곱해서 |V|차원의 벡터를 만든다.
즉,
logitsᵢ = W_emb^T h_dec,final(i)
지금 바로 작가의 멤버십 구독자가 되어
멤버십 특별 연재 콘텐츠를 모두 만나 보세요.
오직 멤버십 구독자만 볼 수 있는,
이 작가의 특별 연재 콘텐츠