튜토리얼
끝까지 가는 프로젝트 열
배우기가 개념을 하나씩 다룬다면, 이쪽은 문제 하나를 처음부터 끝까지 가져간다 — 데이터, 모델, 학습, 그리고 나온 것 들여다보기. 모든 블록이 그 페이지에서 당신의 GPU 로 돌고, 돌리기 전에 고칠 수 있다. 설치할 것은 없다.
1 · 빠른 시작
다섯 블록에 분류기 하나 — 데이터·모델·학습·정확도·실수까지. 여기서 시작한다.
2 · 밑바닥부터
날텐서에서 nn, optim, DataLoader 까지 한 겹씩. "nn 이 실제로 무엇을 하는가" 에 답한다.
3 · 곡선 맞추기
은닉층이 무엇을 사 주는지 말이 아니라 그림으로. 그리고 모델이 뜻을 잃는 자리.
4 · 이미지 분류기 데이터 필요
진짜 CIFAR-10: 사진을 보고, 작은 CNN 을 학습시키고, 한 수가 아니라 클래스별로 읽는다.
5 · 적대적 예제 데이터 필요
그림에 대한 기울기를 답이 바뀔 만큼만 밟는다. 여섯 줄.
6 · 문자 RNN
순환 신경망이 이름을 한 글자씩 읽고 언어를 맞힌다. 페이지에 쳐 넣은 45 단어로.
7 · 신호와 FFT
신호 안의 주파수를 찾고, 그것으로 거르고, 입력을 다르게 적는 일이 얼마나 값하는지 잰다.
8 · 어텐션
산수 세 줄, 그것을 위해 만들어진 과제, 그리고 어디에 무엇이 있는지 알려주기 전에는 아예 못 하는 일.
9 · 오토인코더
그림을 숫자 둘로 짜냈다가 되돌리고, 그 숫자 둘이 무엇이 되었는지 확인한다.
10 · 최소제곱
학습이 아니라 풀어서 얻는 모델. lstsq 와 svd, 그리고 정확한 답이 아무 값도 없을 때를 아는 법.
개념 자체가 처음이면 배우기가 하나씩 다룬다 — 텐서·autograd·모듈·학습. 이 프로젝트들은 그것을 만나 봤거나, 만들면서 만날 각오가 되어 있다고 보고 간다.
데이터가 필요한 둘
튜토리얼 4·5 는 진짜 데이터셋을 쓰고, 이 저장소는 바이너리를 git 밖에 둔다 —
vendor/pyodide 와 borch-ts/dist 를 어느 커밋에도 안 넣는
그 규칙이다. 한 번 만들면 된다:
python3 site/fetch_data.py # 갖고 있는 CIFAR 바이너리에서
python3 site/fetch_data.py --download # 없으면 받아서
site/assets/data/ 에 약 1MB 를 쓴다: 학습 2,000 장, 시험 500 장, JPEG.
픽셀이 원본과 같지 않다. "배우는가" 에는 문제없고 논문의 수와
견주는 데는 못 쓴다. 수가 나오는 자리마다 그 사실을 적어 두었다.
이것이 아닌 것
벤치마크가 아니고 최고 성능도 아니다. 탭 크기의 모델과 2,000 장은 사슬이 끝까지 돈다는 것을 말해 줄 뿐이고, 인용할 수는 이 저장소가 직접 잰 것이다. 전이학습과 사전학습 가중치는 일부러 없고 앞으로도 없다 — 그것을 배우려면 브라우저를 벗어나야 하는 것들이다.