nanoGPT attention 학습: QKV와 causal mask를 나눠 읽는 다음 토큰 예측 입문 | DAKER 커뮤니티
Transformer를 처음 볼 때 가장 자주 막히는 지점은 attention을 하나의 큰 공식으로 받아들이는 순간입니다. 하지만 nanoGPT attention 학습은 그렇게 시작하지 않아도 됩니다. QKV가 각각 어떤 역할을 맡는지, causal mask가 왜 필요한지, attention output이 다음 토큰 예측에 어떻게 이어지는지를 나눠 보면 훨씬 또렷해집니다.
지금 이 글을 읽을 이유도 여기에 있습니다. WaveNet 다음 단계에서 Transformer를 이해하려는 학습자라면, 복잡한 수식보다 먼저 작은 확인 단위로 구조를 읽는 편이 좋습니다. 오늘은 코드없이 배우는 머신러닝 첫걸음: 상과 DAKER 학습 디렉터리를 바탕으로, 코드 없이도 따라갈 수 있는 실습 흐름을 정리합니다.

오늘 무엇을 보게 되나요
이번 학습의 핵심은 attention을 세 칸으로 나눠 읽는 것입니다. QKV 분리, causal mask, attention output이 각각 다음 토큰 예측에서 어떤 역할을 하는지 확인하면 됩니다. 2026년 7월 23일 KST 공개 학습 API 기준 예상 30분, 10개 스테이지, 학습자 24명, 조회 56회로 확인됩니다.
attention을 한 덩어리로 외우기보다 QKV, causal mask, attention output으로 나눠 읽는 편이 이해와 점검에 유리합니다.
왜 이 순서가 중요한가요
Transformer를 통째로 보면 어디서 이해가 끊겼는지 찾기 어렵습니다. 반대로 nanoGPT의 model.py처럼 attention, MLP, residual, layer norm을 작은 블록으로 나눠 보면 토큰 길이, head 수, block size가 어디에 영향을 주는지 확인하기 쉬워집니다.
특히 다음 토큰 예측에서는 각 블록이 맡는 역할을 분리해서 보는 것이 좋습니다. 그래야 학습이 잘되지 않을 때 무엇을 먼저 점검해야 하는지도 보입니다.
핵심 개념: QKV와 causal mask
nanoGPT는 GPT 모델 정의와 훈련 루프를 비교적 작은 파일로 보여 주는 Karpathy의 교육적 코드 표면입니다. 여기서 CausalSelfAttention은 현재 토큰이 미래 토큰을 보지 못하게 막고, 여러 head가 같은 sequence를 다른 관점으로 읽게 만드는 핵심 블록입니다.
nanoGPT attention 학습이란, 각 토큰이 query, key, value로 바뀐 뒤 causal mask 안에서 이전 토큰만 참고해 다음 토큰을 예측하는 Transformer 실습입니다.
Q, K, V는 각각 무엇을 찾는지, 어디에 해당하는지, 실제로 가져올 내용이 무엇인지를 나눠 생각하면 됩니다. 여기에 causal mask가 더해지면 현재 위치는 미래 토큰을 볼 수 없게 되고, 다음 토큰 예측이라는 학습 목표와 조건이 맞춰집니다.
| 구분 | 오늘의 질문 | 남길 증거 |
|---|---|---|
| 입력 | makemore의 context 확장 다음에 Transformer attention이 토큰 관계를 어떻게 제한하고 읽는지 알고 싶은 한국어 학습자 | 기준일과 샘플 기록 |
| 실험 | 가장 작은 확인 단위가 무엇인가요? | 10분 안에 확인한 로그 |
| 검증 | 성공과 실패를 어떻게 나눴나요? | 체크리스트 결과 |
작은 실습은 이렇게 시작하면 됩니다
이번 글의 실습은 복잡한 구현보다 관찰과 기록에 가깝습니다. 짧은 문장을 기준으로 각 위치가 무엇을 볼 수 있는지 표시하고, QKV의 역할을 같은 예문 안에서 나눠 적어 보면 됩니다.
- DAKER 학습 디렉터리에서 이전 makemore context 글과 nanochat 프리트레이닝 글을 나란히 엽니다.
- 짧은 문장 하나를 토큰 6개로 나누고 각 위치가 볼 수 있는 이전 토큰만 표시합니다.
- 각 토큰 옆에 query, key, value 세 칸을 만들고 역할을 한 문장씩 적습니다.
- causal mask가 없으면 어떤 미래 정보가 새는지 예시 하나를 씁니다.
- block size, head 수, embedding 차원을 바꿀 때 비용과 검증 지표를 같은 표에 남깁니다.
코믹 해설은 무엇을 보여 주나요

4~6컷 코믹 해설은 attention을 한 번에 이해하기보다, 학습자가 어디에서 멈추고 어떤 순서로 구조를 읽어야 하는지를 보여 주는 장치로 보면 좋습니다.
- 학습자가 Transformer를 큰 상자로 보고 어디부터 볼지 멈춥니다.
- QKV 카드가 토큰마다 질문, 주소, 내용을 나눠 줍니다.
- causal mask 카드가 미래 토큰을 가립니다.
- attention head 카드들이 이전 토큰 관계를 여러 관점으로 읽습니다.
- 학습자는 다음 토큰 예측 옆에 block size와 loss를 함께 기록합니다.
자주 막히는 지점
attention을 이해할 때는 구조 자체보다 오해가 더 큰 장애물이 되곤 합니다. 특히 아래와 같은 지점에서 많이 멈춥니다.
- attention을 모든 토큰이 아무 토큰이나 보는 구조로 오해합니다.
- causal mask를 구현 세부사항으로만 보고 다음 토큰 예측의 공정성 조건을 놓칩니다.
- head 수를 늘리면 무조건 좋아진다고 생각하고 비용 기록을 남기지 않습니다.
- 샘플 문장 품질만 보고 validation loss와 설정값을 함께 보지 않습니다.
실수 방지 체크리스트
- 각 위치가 볼 수 있는 토큰 범위를 causal mask로 표시했나요?
- Q, K, V 역할을 같은 예문에서 나눠 설명했나요?
- block size와 head 수 변경 전 기준 loss를 남겼나요?
- 샘플 품질과 validation loss를 서로 다른 증거로 기록했나요?
샘플 품질과 validation loss는 같은 증거가 아니므로 함께 기록해야 비교가 가능합니다.
다음 학습은 어디로 이어지나요
카파시식 AI 학습법, Software 2.0 학습, micrograd 역전파 학습, makemore 문자 모델 학습, nanochat 프리트레이닝 학습, DAKER 학습 디렉터리 순서로 보면 작은 모델, 목적함수, 프리트레이닝 로그, 저수준 학습 로그를 오늘 실습과 자연스럽게 연결할 수 있습니다.
참고 자료
코드없이 배우는 머신러닝 첫걸음: 상
DAKER 학습 디렉터리
자주 묻는 질문
nanoGPT attention 학습은 무엇부터 시작하면 되나요?
짧은 문장 하나를 토큰으로 나누고 각 위치가 볼 수 있는 이전 토큰만 표시하는 것부터 시작하면 됩니다.
causal mask는 왜 중요한가요?
다음 토큰 예측에서 미래 답을 미리 보지 못하게 막아 평가와 학습 조건을 맞추기 때문입니다.
QKV는 어떻게 이해하면 좋나요?
query는 무엇을 찾는지, key는 어떤 위치인지, value는 가져올 내용이라는 세 역할로 나눠 생각하면 됩니다.
오늘 결과물은 무엇이면 충분한가요?
토큰 6개 예문, causal mask 표시, QKV 역할 메모, 기준 loss와 설정값 표를 남기면 충분합니다.
전체를 한 번에 끝내기보다 체크리스트에서 하나를 골라 작은 증거부터 남기면 좋습니다.
여기서 가장 먼저 직접 해보고 싶은 부분은 QKV 정리인가요, 아니면 causal mask 표시인가요?