콘텐츠로 이동

02-구조

Jay Alammar의 정리를 따라가면 인코더 블록 1개는 두 개의 하위 층으로 이루어진다.

원문: “Each encoder contains two sub-layers: a self-attention layer and a feed-forward neural network. Decoders include these same components plus an encoder-decoder attention layer.”
의역: “각 인코더는 자기-어텐션 층 + 피드포워드 신경망, 두 개의 하위 층으로 이뤄진다. 디코더는 이 둘에 더해 인코더-디코더 어텐션 층 한 개를 더 갖는다.”
The Illustrated Transformer

원 논문은 이 블록을 인코더·디코더 각각 6개씩 쌓았다. 오늘날의 거대 모델은 수십~수백 층을 쌓는다. 층이 깊어질수록 모델은 표면적 어휘에서 추상적 의미·논리 관계로 표현을 옮겨간다는 것이 일반적인 해석이다.

자기-어텐션은 각 토큰을 세 개의 벡터(Query·Key·Value)로 투영한 뒤, Query와 Key의 내적으로 가중치를 만들고, 그 가중치를 Value에 곱해 합산한다. Lilian Weng의 분류를 빌리면 트랜스포머가 쓰는 변형은 스케일드 닷-프로덕트 어텐션(Scaled Dot-Product Attention) 이다.

수식을 외울 필요는 없지만, 직관 한 줄은 가져가는 게 좋다 — “내(Query)가 누구(Key)에게 얼마나 관심을 줄지 점수를 매기고, 그 점수로 그들의 정보(Value)를 가중 합산한다.”

인코더 전용 / 디코더 전용 / 인코더-디코더

섹션 제목: “인코더 전용 / 디코더 전용 / 인코더-디코더”

Sebastian Raschka의 분류와 Hugging Face NLP Course의 정리를 합치면 다음과 같다.

유형학습 방식대표 모델잘하는 일
인코더 전용 (Encoder-only)마스크드 언어 모델링 — 임의 토큰을 가리고 맞히기BERT, RoBERTa분류·NER·검색용 임베딩
디코더 전용 (Decoder-only)인과 언어 모델링 — 다음 토큰만 보고 맞히기GPT, Claude, Llama텍스트 생성·대화
인코더-디코더 (Seq2Seq)입력→출력 양쪽 동시 학습T5, BART번역·요약

원문: “Encoder-Only Models … excel at understanding and classification tasks but don’t generate text autoregressively.”
의역: “인코더 전용 모델은 이해·분류에 강하지만, 자기회귀적으로 글을 생성하지는 않는다.” — Raschka, Understanding Encoder And Decoder LLMs

Claude를 비롯한 오늘날의 대화형 LLM은 디코더 전용이다. 01장에서 다룬 “다음 토큰 확률 함수”라는 정의가 이 구조와 정확히 일치한다.

마스크드 자기-어텐션 — 미래를 못 보게 가리기

섹션 제목: “마스크드 자기-어텐션 — 미래를 못 보게 가리기”

디코더 전용 모델에서 자기-어텐션은 한 가지 제약을 받는다. 현재 위치의 토큰은 자기보다 뒤에 있는 토큰을 봐서는 안 된다. 그래야 학습 시점과 추론 시점이 일치한다.

원문: “To speed things up during training (when the model has access to target sentences), the decoder is fed the whole target, but it is not allowed to use future words. For instance, when trying to predict the fourth word, the attention layer will only have access to the words in positions 1 to 3.”
의역: “학습 속도를 높이려고 디코더에는 정답 문장 전체를 한꺼번에 넣지만, 미래 단어를 보는 것은 막는다. 4번째 단어를 예측할 때 어텐션은 1~3번 위치만 볼 수 있다.”
— Hugging Face, How do Transformers work?

이 마스크가 곧 디코더 전용 모델이 “한 토큰씩 흘러나오는 듯한” 응답을 만드는 이유의 절반이다(나머지 절반은 디코딩 루프).

같은 Hugging Face 글은 트랜스포머의 두 번째 특성도 짚는다.

원문: “Apart from a few outliers (like DistilBERT), the general strategy to achieve better performance is by increasing the models’ sizes as well as the amount of data they are pretrained on.”
의역: “DistilBERT 같은 예외를 빼면, 트랜스포머의 일반적인 성능 향상 전략은 모델 크기와 학습 데이터 양을 함께 늘리는 것이다.”

이것이 “GPT-2 → GPT-3 → GPT-4”로 이어진 스케일 업의 출발선이며, 동시에 환경·비용 측면의 부담을 키운 원인이기도 하다. 같은 글이 “공유된 사전학습 가중치 위에서 파인튜닝을 하라”고 권하는 이유다.

  • 인코더 1블록 = 자기-어텐션 + FFN. 디코더는 + 인코더-디코더 어텐션.
  • 자기-어텐션의 직관: Query·Key 내적으로 가중치, Value 가중합.
  • 디코더 전용 모델은 마스크드 자기-어텐션으로 미래를 가린다.
  • 트랜스포머의 성능 향상 공식 = 더 큰 모델 + 더 많은 데이터.