프로젝트 저장소: ~/Workspaces/transformer-lab · 환경: Colab/클라우드 GPU · 목표: LLM/NLP 랩

Transformer Lab from scratch → 재현 → 기여

전략: 라이브러리 호출이 아니라 내부를 이해하고 직접 만든 흔적을 쌓는다. 6단계로 나누어 매 단계마다 코드 + 실험 로그 + 분석 글이라는 산출물을 남기고, 이게 그대로 GitHub 포트폴리오이자 랩 지원 자료가 된다. 핵심은 "끝까지 가는 것"이 아니라 "각 단계를 제대로 소화하고 기록하는 것".
학습 원칙: 구현 코드는 직접 작성한다. 막히면 의사코드/힌트까지만 받고 정답 코드는 받지 않는다. 환경·보일러플레이트만 외부 도움을 쓴다. 손으로 짠 attention 한 번이 강의 10시간보다 남는다.
📚 이 문서는 전략(왜·무엇을)이다. 실제 day-by-day 수업과 진도는 → 커리큘럼 & 진도표에서 본다.

왜 이 순서인가 — 랩이 보는 것

AI 랩(특히 LLM/NLP) 지원에서 변별력을 만드는 건 "무엇을 써봤다"가 아니라 "무엇을 깊이 이해하고 직접 만들었다"이다. Hugging Face Trainer로 파인튜닝 돌린 경험은 흔하지만, attention을 직접 구현하고 scaling을 체계적으로 ablation한 사람은 드물다.

흔한 지원자 (변별력 ↓)

  • 라이브러리로 모델 불러와 파인튜닝
  • 캐글 노트북 따라하기
  • "GPT 써봤습니다"
  • 결과만 있고 분석 없음

강한 지원자 (변별력 ↑)

  • attention/학습루프 from scratch 구현
  • scaling law를 직접 재현·검증
  • 구조 변경의 효과를 ablation으로 측정
  • 실패·디버깅 과정까지 글로 기록

그래서 순서가 ① from scratch (이해) → ② 재현 (실력 증명) → ③ 기여 (독창성)이다. 각 단계는 다음 단계의 토대가 되도록 설계됐다.

P0·P1 이해 (from scratch) P2·P3 재현 (학습·스케일) P4 정렬 (파인튜닝) P5 기여 (novel 실험) 각 단계의 산출물이 다음 단계의 토대가 된다 기간은 강제하지 않는다. 소화 속도에 맞춰 — 대략 6~10개월

Phase 0 — 토대 다지기

준비 ~1–2주

바로 트랜스포머로 가기 전에, 모든 게 돌아가는 두 가지 토대를 확실히 한다: autograd(자동 미분)가 어떻게 동작하는지PyTorch 텐서 조작. 여기가 흔들리면 뒤에서 디버깅이 지옥이 된다.

할 일

왜 micrograd부터? 100줄짜리 자동미분 엔진을 직접 만들면 "loss.backward()가 마법이 아니라 chain rule의 자동화"라는 걸 체화한다. 뒤에서 gradient가 NaN이 될 때 당황하지 않는 결정적 차이를 만든다.
Deliverable: notebooks/00_micrograd.ipynb — 직접 구현한 autograd 엔진 + "역전파를 손으로 이해하기" 짧은 글 (docs/00_autograd.md).
참고 자료
  • Karpathy — "The spelled-out intro to neural networks and backpropagation" (micrograd)
  • PyTorch 공식 — "A Gentle Introduction to torch.autograd"

Phase 1 — 미니 GPT from scratch

핵심 ~3–4주

이 단계가 프로젝트 전체에서 가장 중요하다. nn.Transformernn.MultiheadAttention 같은 고수준 API를 쓰지 않고, self-attention부터 직접 구현해 char-level 언어모델을 학습시킨다. 데이터는 tinyshakespeare(1MB)라 Colab 무료 GPU로 수 분이면 돈다.

구현 항목 (직접)

학습이 되는지 즉시 확인하는 법: 초기 loss가 ln(vocab_size) ≈ 4.17에서 시작하면 초기화가 맞은 것(랜덤 예측 기준선). loss가 1.5 아래로 내려가면 셰익스피어풍 텍스트가 나오기 시작한다. tests/test_shapes.py로 형태부터 검증.

이해해야 할 개념 (글로 정리)

Deliverable: 작동하는 셰익스피어 생성기 + docs/01_minigpt.md — "attention을 from scratch로 짜보니" 분석 글 (loss 곡선, 샘플 텍스트, head별 attention 시각화 포함). 첫 GitHub 공개 시점.
랩 어필 포인트: attention head가 실제로 무엇에 주목하는지 시각화하면 강하다. (예: 특정 head가 직전 토큰을, 다른 head가 문장 시작을 보는 패턴) — "이해했다"의 증거가 된다.

Phase 2 — 제대로 된 GPT 학습

재현 ~4–6주

char-level 장난감에서 실제 LLM의 축소판으로 올라간다. BPE 토크나이저, 실제 텍스트 코퍼스, 더 긴 학습. nanoGPT 수준의 코드를 자기 것으로 만들고, 학습 동역학을 체계적으로 관찰한다.

할 일

Colab 현실: 무료 T4는 세션이 끊기고 시간 제한이 있다. 체크포인트 재개를 반드시 구현하고, "한 번에 다 학습"이 아니라 "여러 세션에 나눠 학습"을 전제로 설계하라. Colab Pro($10/월)면 훨씬 수월하다.

분석할 것

Deliverable: 작동하는 소형 LLM(10~50M 파라미터) + docs/02_training.md — "작은 LLM 학습 일지": 하이퍼파라미터 선택 근거, loss 곡선 비교, 실패 사례와 해결. 생성 샘플 데모.

Phase 3 — 스케일링 & 효율

재현·심화 ~6–8주

여기서부터 랩 지원에 진짜 차별화가 생긴다. "모델을 크게 만들수록 무엇이 어떻게 좋아지는가"를 직접 측정하고, 구조 개선의 효과를 통제된 실험(ablation)으로 검증한다. 대부분의 학부생이 여기까지 안 온다.

스케일링 법칙 재현

구조·효율 개선 ablation

ablation의 핵심은 통제다. 한 번에 하나만 바꾸고, 나머지는 고정. seed를 여러 개로 돌려 노이즈와 진짜 효과를 구분. 이 "과학적 태도"가 글에서 드러나면 연구자로서의 자질을 보여준다.
Deliverable: docs/03_scaling.md — scaling law 플롯 + 구조 ablation 표(각 변경의 loss/속도/메모리 영향). 이건 작은 기술 리포트 수준으로, 블로그 글이나 워크숍 제출의 씨앗이 된다.
랩 어필 포인트: "RoPE가 ALiBi보다 이 세팅에서 X% 나았고, 긴 컨텍스트 외삽은 반대였다" 처럼 측정값으로 말하는 한 줄이 자소서/면접에서 압도적이다.

Phase 4 — 파인튜닝 & 정렬

정렬 ~6–8주

사전학습된 모델(여기서는 공개 모델 활용 OK)을 유용하게 길들이는 단계. LLM/NLP 랩의 현재 핵심 주제(instruction tuning, 정렬)를 직접 다룬다. Phase 1~3에서 from scratch를 충분히 했으니, 여기선 공개 모델을 베이스로 써도 떳떳하다.

할 일

왜 DPO를 먼저? RLHF(보상모델+PPO)는 강력하지만 구현·튜닝이 까다롭다. DPO는 같은 목표를 단일 loss로 달성해 학부 환경에서 재현성이 높다. 먼저 DPO로 정렬을 이해한 뒤 RLHF로 확장하는 게 효율적이다.
Deliverable: instruction을 따르는 작은 챗 모델 + docs/04_alignment.md — "작은 모델 정렬하기": LoRA vs full FT 비교, DPO 전후 응답 예시, 무엇이 개선되고 무엇이 안 됐는지. 데모(Gradio) 있으면 가산점.

Phase 5 — 연구 기여

독창성 지속

지금까지 쌓은 인프라(직접 만든 모델·학습·평가 코드)를 무기로 작지만 진짜 질문에 답한다. 거창한 SOTA가 아니라, "내가 던진 질문 + 통제된 실험 + 정직한 결론"이 핵심.

경로 (택1 또는 병행)

A. 논문 재현 + 검증

최근 논문 하나를 작은 스케일로 재현하고 "주장이 작은 모델에서도 성립하는가"를 검증. 재현 자체가 가치 있고, 안 되는 지점을 찾으면 더 가치 있다.

B. 작은 novel 실험

"X를 바꾸면 어떻게 될까?"류의 통제 실험. 예: 특정 토크나이저 선택이 추론능력에, 위치인코딩이 길이 일반화에 주는 영향 등.

할 일

현실적 목표: 톱티어 학회 논문이 아니어도 된다. 잘 쓴 블로그 글 하나, 재현 가능한 GitHub 리포 하나, 워크숍 포스터 하나면 학부 지원자로서 상위권이다. "끝까지 파고들어 기록했다"가 메시지다.

포트폴리오로 엮기

각 단계의 산출물이 흩어지지 않게, 처음부터 "보여줄 것"을 염두에 두고 정리한다.

자산내용왜 중요한가
GitHub 리포단계별 코드, 깔끔한 README, 재현 방법모든 주장의 증거. 커밋 히스토리가 곧 성장 기록
기술 블로그docs/*.md를 다듬은 글 5~6편"이해했다"를 글로 증명. 면접관이 읽는다
실험 로그wandb 공개 프로젝트 (loss 곡선, ablation)과학적 태도의 직접 증거
데모Gradio/HF Space로 생성·챗 데모"돌아간다"를 한 번에 보여줌
기술 리포트Phase 3/5 결과를 논문 형식으로연구 글쓰기 능력 — 랩이 중시
지원서에 쓸 한 줄의 예: "GPT를 attention부터 직접 구현해 학습시키고, 파라미터 1M~64M 구간의 scaling law를 재현했으며, RoPE/RMSNorm/SwiGLU의 효과를 통제된 ablation으로 측정해 기술 리포트로 공개했습니다." — 구체적이고 검증 가능하다.

흔한 함정 & 팁

학습 함정
기술 함정
속도 팁

프로젝트 저장소: ~/Workspaces/transformer-lab/ · 단계별 글은 docs/에 쌓을 것 · 다음 행동: Phase 0 — Colab 세팅 + micrograd 재구현부터.