makemore WaveNet 학습: 계층적 context로 문자 모델을 이해하는 실습 가이드 | DAKER 커뮤니티
문자 모델을 공부하다 보면 context 길이를 늘리는 일과 모델이 실제로 무엇을 배우는지 설명하는 일이 꼭 함께 따라옵니다. 특히 batch norm 다음 단계에서 더 긴 문맥을 다루려 할 때, 입력을 한 번에 평평하게 펼치는 방식만으로는 계산 흐름을 이해하기가 어려워집니다.
이 글은 makemore의 다음 단계로 WaveNet식 계층 구조를 어떻게 바라보면 좋은지 정리한 안내입니다. 코드 없이도 따라갈 수 있도록, 가까운 문자 묶음이 어떻게 더 넓은 문맥으로 합쳐지는지 작은 실습 루프로 연결해 봅니다.

오늘 무엇을 보게 되나요?
오늘의 주제는 batch norm 이후 더 긴 context를 다루는 방법입니다. 핵심은 모든 문자를 평평하게 붙이지 않고, WaveNet식 계층 구조로 정보가 합쳐지는 순서를 기록하는 데 있습니다. 2026년 7월 23일 KST 공개 학습 API 기준 예상 30분, 10개 스테이지, 학습자 24명, 조회 56회로 확인됩니다.
makemore WaveNet 학습이란, 이전 문자를 한 번에 모두 펼치지 않고 가까운 문자 묶음부터 단계적으로 합쳐 다음 문자를 예측하는 계층적 문자 모델 실습입니다.
왜 지금 이 순서가 중요한가요?
context 길이만 늘리면 모델이 실제로 무엇을 배웠는지 흐려질 수 있습니다. 반면 가까운 문자 조합, 중간 특징, 마지막 예측을 층별로 나누어 보면 더 깊은 모델에서도 입력 범위와 계산 흐름을 설명하기 쉬워집니다.
이 점이 중요한 이유는, 긴 입력을 다루는 능력과 학습 과정을 해석하는 능력이 항상 같은 것은 아니기 때문입니다. 계층 구조를 따라가면 어떤 묶음이 어느 층에서 합쳐지는지 분명해지고, MLP와의 차이도 더 또렷하게 보입니다.
핵심 개념: MLP에서 WaveNet식 구조로
Karpathy의 makemore part 5 흐름은 이름 데이터라는 같은 문제를 유지한 채, MLP에서 더 구조적인 네트워크로 넘어가게 합니다. 여기서 WaveNet식 생각은 긴 context를 작은 묶음으로 압축하고, 각 층이 더 넓은 문맥을 보게 만드는 방식입니다.
긴 context를 작은 묶음으로 나누어 단계적으로 합치면, 더 깊은 모델에서도 어떤 층이 어떤 범위를 보는지 설명하기 쉬워집니다.
MLP가 context를 한 번에 펼쳐 쓰는 느낌이라면, WaveNet식 구조는 가까운 문자 패턴을 먼저 만들고 그다음 더 큰 범위의 특징으로 확장해 가는 흐름에 가깝습니다.
| 구분 | 오늘의 질문 | 남길 증거 |
|---|---|---|
| 입력 | makemore batch norm 다음에 WaveNet식 계층 구조가 왜 context를 더 효율적으로 넓히는지 알고 싶은 한국어 학습자 | 기준일과 샘플 기록 |
| 실험 | 가장 작은 확인 단위가 무엇인가요? | 10분 안에 확인한 로그 |
| 검증 | 성공과 실패를 어떻게 나눴나요? | 체크리스트 결과 |
작게 따라 해보는 실습 루프
이 실습은 복잡한 구현보다 구조를 눈으로 이해하는 데 초점을 둡니다. 이름 하나를 예시로 잡고, 앞 문자가 어떻게 묶이고 합쳐지는지만 추적해도 충분합니다.
- DAKER 학습에서 코드없이 배우는 머신러닝 첫걸음 교재와 이전 makemore 글을 엽니다.
- 이름 하나를 고르고 앞 문자 8개를 두 글자 묶음, 네 글자 묶음, 전체 묶음으로 나눠 그립니다.
- 각 묶음이 다음 층에서 어떤 중간 특징으로 합쳐지는지 한 줄씩 설명합니다.
- MLP처럼 한 번에 flatten한 경우와 WaveNet식으로 단계적으로 합친 경우를 비교합니다.
- loss 로그를 볼 때 context 길이, 층 수, 묶음 크기를 같은 표에 남깁니다.
이렇게 하면 단순히 loss 숫자만 보는 대신, 어떤 구조 변화가 어떤 결과와 연결되는지 더 분명하게 기록할 수 있습니다.
4~6컷 코믹 해설은 이렇게 보면 됩니다

- 학습자가 긴 context를 한 줄로 붙이다가 표가 복잡해집니다.
- 두 글자 카드가 가까운 문자 패턴을 먼저 묶습니다.
- 네 글자 카드가 중간 특징을 다시 합칩니다.
- WaveNet 카드가 더 넓은 문맥으로 다음 문자를 예측합니다.
- 학습자는 loss 숫자 옆에 묶음 크기와 층 수를 함께 남깁니다.
자주 막히는 지점
- WaveNet을 오디오 생성 이름으로만 외우고 계층적 context 아이디어를 놓칩니다.
- context 길이, 층 수, hidden 크기를 동시에 바꿔 원인 비교가 흐려집니다.
- 문자 묶음이 어느 층에서 합쳐지는지 그리지 않고 loss만 봅니다.
- MLP 기준선과 같은 데이터, 같은 평가 방식으로 비교하지 않습니다.
실수 방지 체크리스트
- 앞 문자 묶음 크기를 층별로 표시했나요?
- MLP flatten 기준선과 WaveNet식 계층 구조를 같은 데이터로 비교했나요?
- context 길이와 층 수를 한 번에 바꾸지 않았나요?
- loss 변화와 생성 샘플을 분리해서 기록했나요?
다음 학습은 어디로 이어지나요?
카파시식 AI 학습법, Software 2.0 학습, micrograd 역전파 학습, makemore 문자 모델 학습, nanochat 프리트레이닝 학습, DAKER 학습 디렉터리 순서로 보면 작은 모델, 목적함수, 프리트레이닝 로그, 저수준 학습 로그를 오늘 실습과 자연스럽게 연결할 수 있습니다.
FAQ
makemore WaveNet 학습은 MLP와 무엇이 다른가요?
MLP는 context를 한 번에 펼쳐 쓰는 느낌이 강하고, WaveNet식 구조는 가까운 문자 묶음부터 단계적으로 합쳐 더 넓은 문맥을 만듭니다.
계층적 context는 왜 필요한가요?
긴 입력을 한 번에 처리하기보다 작은 패턴을 먼저 만들면 어떤 층이 어떤 범위를 보는지 설명하기 쉬워집니다.
오늘 실습에서 꼭 남길 표는 무엇인가요?
context 길이, 묶음 크기, 층 수, loss 변화를 같은 행에 남기면 다음 실험에서 원인을 덜 섞을 수 있습니다.
다음 학습은 어디로 이어지나요?
계층적 context를 이해한 뒤에는 Transformer의 attention이 모든 위치 관계를 어떻게 다루는지 비교해 보면 좋습니다.
참고 자료
코드없이 배우는 머신러닝 첫걸음: 상, DAKER 학습 디렉터리
여기까지 읽고 나면, 오늘 실습에서는 어떤 묶음 크기나 비교 기준을 먼저 기록해 보고 싶은지 떠오를 수도 있겠습니다.