실제 노트북의 줄을 선택하면 역할·입출력·그림이 함께 보입니다. 먼저 ‘실행 흐름’을 따라간 뒤 각 부품 안으로 들어가세요.
임베딩 표, Linear의 행렬·편향, LayerNorm의 scale·shift 등이 학습 가능한 파라미터입니다. forward에서 Q/K/V와 Attention 비율을 계산하는 것은 학습과 생성 모두에서 합니다. 파라미터 갱신은 별도의 loss.backward()와 optimizer.step()에서 하며, 현재 main에는 없습니다.
TransformerBlock은 (B,T,D)를 유지하며 내용을 바꿉니다. FeedForward는 내부에서 D를 4D로 바꿨다 D로 돌립니다. 출력 층은 D를 V로 바꿉니다. 생성 함수의 cat만 전체 ID 목록의 토큰 수를 1 늘립니다.
nn.Linear 같은 개별 변환 층도 레이어라고 부르지만, n_layers=12는 TransformerBlock 12개를 뜻합니다. head=12는 각 Attention 안의 병렬 계산 개수입니다. 학습 데이터 조각 수는 이 둘과 별개입니다.
아닙니다. 이해를 돕기 위해 B=1,T=3,D=4,V=6,H=2,L=2의 작은 예를 사용합니다. 실제 노트북 코드는 바꾸지 않았습니다. ‘원래 모델 차원 표시’를 켜면 D=768,V=50257,H=12,L=12인 크기 라벨로 바뀌지만, 표시된 행렬의 칸 수나 설명용 숫자는 그대로입니다. 원래 문장의 실제 토큰화·학습 결과를 뜻하지 않습니다.
현재 로컬 노트북에는 앞선 대화에서 채워진 답안이 있습니다. 이 페이지는 그 파일의 실제 코드를 그대로 읽어 만들었습니다. TODO·힌트와 원래 주석은 ‘주석·설명문도 보기’ 또는 ‘노트북 전체 원문’에서 확인할 수 있습니다. 이번 작업은 노트북을 수정하지 않습니다.