Transformer Explainer: 브라우저에서 GPT-2를 돌리며 배우는 Transformer 구조
Transformers Explained Visually
TL;DR Highlight
GPT-2를 브라우저에서 직접 돌리며 Transformer 내부와 temperature를 눈으로 본다
Who Should Read
temperature·top-p 같은 샘플링 파라미터를 감으로만 조정해 온 LLM API 개발자
Core Mechanics
- 텍스트 생성은 다음 토큰 맞히기
- 모델은 프롬프트 다음에 올 확률이 가장 높은 토큰(단어 또는 단어 조각)을 예측한다.
- 핵심 아이디어는 문장 전체를 보고 먼 관계까지 잡는 self-attention이다.
- 입력은 임베딩 4단계를 거친다
- 토큰화, 토큰 임베딩, 위치 정보 추가, 둘을 더한 최종 임베딩 순서다.
- GPT-2 어휘는 50,257개, 토큰당 768차원 벡터다.
- attention은 검색 비유로 이해한다
- Query는 검색어, Key는 페이지 제목, Value는 페이지 내용에 해당한다.
- Q와 K의 내적으로 점수를 내고, 미래 토큰은 마스크로 가린다.
- attention과 MLP는 역할이 다르다
- attention은 토큰 사이로 정보를 나른다.
- MLP는 각 토큰을 따로 다듬으며, 768에서 3072로 넓혔다가 다시 768로 줄인다.
- temperature는 logits를 나누는 연산이다
- 1 미만이면 분포가 뾰족해져 예측 가능한 출력이 나온다.
- 1 초과면 분포가 평평해져 무작위성이 커진다.
Community Reactions
- 최신 모델과 다른 부분을 지적한 의견
- GPT-2의 absolute positional encoding은 지금은 쓰이지 않는다는 의견이 있었다.
- 이런 세부 차이가 모델이 배울 표현에 큰 영향을 주므로 현대 모델의 예시로 오해하면 안 된다는 의견이다.
- temperature의 safety 표현에 대한 반론
- 글의 temperature 설명에서 safety라는 단어는 틀렸다는 의견이 있었다.
- temperature 0 출력은 놀라움이 없어 인공적으로 느껴진다는 의견이다.
- attention을 동적 레이어로 본 관점
- attention 행렬이 Value에 곱해지는 부분은 가중치가 입력마다 만들어지는 Dense 레이어와 같다는 의견이 있었다.
- head가 Key와 Query로 작은 단층 네트워크를 추론 중에 만드는 셈이라는 설명이다.
- 성능 문제를 겪었다는 경험
- 페이지를 열었더니 Chromebook이 멈췄다는 경험이 있었다.
- 탭이 10초 안에 RAM 2.2GB를 쓰며 노트북이 느려졌다는 경험도 있었다.
- 함께 보면 좋다고 추천된 자료
- bbycroft.net/llm이 시각화와 애니메이션이 좋다는 추천이 여러 번 나왔다.
- The Illustrated Transformer도 입문자용으로 추천되었다.
How to Apply
- 같은 프롬프트로 temperature를 직접 비교하기
- 오늘 Transformer Explainer 사이트에서 프롬프트를 넣고 temperature를 0.2, 0.8, 1.5로 바꿔 확률 분포 변화를 눈으로 확인한다.
- 이어서 top-k와 top-p를 바꿔 후보 토큰이 어떻게 줄어드는지 본다.
- 서비스 용도별 샘플링 값 정하기
- 정확성이 중요한 추출·분류 호출은 temperature를 낮추고, 문장 생성은 높여서 A/B로 비교한다.
- 낮은 temperature가 안전하다고 단정하지 말고 출력이 지나치게 밋밋한지 함께 확인한다.
- 팀 온보딩에 시각화 링크 붙이기
- LLM을 처음 쓰는 팀원에게 이 사이트를 먼저 보여주고 토큰·임베딩·attention 용어를 맞춘다.
- 사이트가 GPT-2 기준이라는 점을 함께 알려, 현대 모델과 다른 부분은 따로 설명한다.
Try It
# Claude 또는 ChatGPT 대화창에 붙여넣기 (원문 개념을 프롬프트로 옮긴 간이 실험)
너는 LLM 샘플링 설명 도우미야. 아래 설정으로 같은 질문에 답을 3번씩 만들어줘.
질문: {{질문}}
설정 A: temperature 0.2 (뾰족한 분포, 예측 가능한 출력)
설정 B: temperature 0.8
설정 C: temperature 1.5 (평평한 분포, 무작위성 큼)
각 설정에서 나온 답이 서로 얼마나 비슷한지 비교해줘. 그리고 내 서비스({{서비스 설명}})에는 어떤 값이 맞을지 이유와 함께 말해줘.
이어서 해 볼 것: top-p를 0.5와 0.95로 바꿔 같은 비교를 반복해 봐.Terminology
관련 논문
AI는 도구다, 잘 쓰려면 기술이 필요하다
Hickey의 'AI는 도구가 아니다'에 맞서, LLM도 쓰는 사람의 기술이 결과를 가른다고 반박
딥리서치 에이전트의 Reflective Prompt Optimization: 토픽 분리·멀티 시드로 본 진짜 성능 향상과 프롬프트 과적합
GEPA로 프롬프트를 최적화했더니 held-out 인용 보상 0.702→0.781
GPT-6와 Intelligent UI: 채팅 안에서 시각·인터랙티브 응답 만들기
OpenAI가 GPT-6로 채팅 응답에 UI를 넣는다는데 원문이 없어 댓글 반응만 확인된다
Base 모델도 첫 토큰 단서(cue) 하나로 추론한다: 학습 데이터가 만든 연상
응답 첫 두 토큰만 고정했더니 Olmo-3-7B의 MATH-500 정답률이 42%에서 78%로 올랐다
Jev식 Typed Decision Model에서는 정의보다 라벨이 이긴다
옵션 이름을 A, B로 바꿨더니 정확도가 +0.1511 올랐다
프롬프트는 얼마나 필요한가? Few-shot 예시를 블랙박스로 최소화하는 DD-FSM
Delta debugging으로 few-shot 예시를 평균 65.3% 줄여도 출력은 그대로
언어모델은 "불안정한(Insecure)" 보고자다: 결함을 숨기는 LLM 리포트
"Be honest" 한 줄을 붙였더니 GPT-5.5의 부정 결과 공개가 2/200에서 190/200으로 늘었다