2026/06 6

mini GPT 과제 2편 - GPTDataset과 InputEmbedding 구현 리뷰

mini GPT 과제 랩 구현 시리즈 2편GPTDataset과 InputEmbedding 구현 리뷰BPE가 token ID 목록을 만들었다면, `GPTDataset`은 이 목록을 학습 가능한 input/target 쌍으로 잘라낸다. `InputEmbedding`은 그 ID를 Transformer가 계산할 수 있는 벡터로 바꾼다.이번 단계는 코드 양은 많지 않지만, 뒤의 attention과 model shape를 결정한다. 여기서 shape를 잘못 잡으면 나중에 attention에서 에러가 늦게 터진다.테스트 통과 근거tests/test_dataset.py- GPTDataset 길이 계산- __getitem__ input/target shape- DataLoader batch shape- InputEmbe..

mini GPT 과제 1편 - src/bpe.py byte-level BPE 구현 리뷰

mini GPT 과제 랩 구현 시리즈 1편이번 구현의 첫 관문은 토크나이저였다. 과제에서는 외부 tokenizer를 금지했기 때문에, 한국어 리뷰 문자열을 직접 UTF-8 byte-level BPE 방식으로 token ID 목록으로 바꿔야 했다.이 글에서는 실제 구현된 `src/bpe.py`를 기준으로 초기 사전 구성, BPE 학습, 저장/로드, encode/decode 복원을 코드 블록 단위로 본다.테스트 통과 근거노트북 실행 결과 기준 `tests/test_bpe.py`는 6개 테스트가 통과했다.tests/test_bpe.py- special token ID 고정- 초기 vocabulary 구성- save/load 복원- encode/decode 원문 복원- get_pad_id/get_bos_id/g..

카테고리 없음 2026.06.01

mini GPT 과제 0편 - 구현 결과와 전체 구조 지도

mini GPT 과제 랩 구현 시리즈 0편이번 과제는 PyTorch만 사용해 작은 GPT 계열 언어 모델을 직접 구현하는 과제였다. 완성 목표는 ChatGPT 같은 대형 모델이 아니라, LLM의 핵심 부품을 직접 만들어 보며 내부 흐름을 이해하는 것이다.이 글은 정답 코드를 한 번에 던지는 글이 아니다. 실제 구현 브랜치와 노트북 실행 결과를 기준으로, 어떤 파일이 어떤 책임을 맡았고 어떤 테스트가 그 책임을 확인했는지 먼저 지도처럼 정리한다.최종 확인 결과제출 노트북에는 Python 3.11 가상환경과 CUDA 환경에서 실행한 테스트 결과가 저장되어 있었다. 현재 글은 이 실행 결과와 실제 소스 코드를 근거로 작성한다.구분결과의미전체 테스트28 passed필수 구현 함수가 단위 테스트 기준으로 연결됨실..

카테고리 없음 2026.06.01

mini GPT 공부 7편 - GPT를 감성 분류기로 바꾸는 미세조정

밑바닥부터 만드는 mini GPT 공부 시리즈 7편사전학습된 GPT는 기본적으로 다음 토큰을 맞히는 모델이다. 하지만 과제의 마지막 단계에서는 NSMC 리뷰가 긍정인지 부정인지 맞히는 분류 모델로 바꾼다.여기서 핵심은 GPT 전체를 버리는 것이 아니다. 텍스트를 읽어 hidden state를 만드는 backbone은 그대로 쓰고, 마지막 목적에 맞는 classification head를 새로 붙인다.LM head와 classification head구분출력목적LM headvocab_size개 점수다음 토큰 예측classification head2개 점수부정/긍정 분류이번 단계의 입력과 정답{"text": "배우들의 연기가 좋고 끝까지 몰입됐다.", "label": 1}{"text": "전개가 지루하고 결..

카테고리 없음 2026.06.01

mini GPT 공부 6편 - 사전학습, loss, 생성, checkpoint

밑바닥부터 만드는 mini GPT 공부 시리즈 6편GPTModel이 logits를 만들 수 있게 되면, 이제 학습 루프가 필요하다. 사전학습의 목적은 다음 토큰 예측 loss를 줄이는 것이다.이때 loss 계산, optimizer update, 검증 loss, 텍스트 생성, checkpoint는 따로 떨어진 기능처럼 보이지만 하나의 학습 루프 안에서 연결된다.사전학습 루프batch-> model(input, targets)-> cross entropy loss-> loss.backward()-> optimizer.step()-> 주기적으로 validation loss 확인-> 주기적으로 checkpoint 저장학습과 생성은 같은 모델을 다르게 쓰는 일이다구분입력출력 사용법사전학습input IDs + ta..

카테고리 없음 2026.06.01

mini GPT 공부 5편 - GPT Block을 이루는 LayerNorm, GELU, Residual

밑바닥부터 만드는 mini GPT 공부 시리즈 5편attention만으로 GPT 모델이 완성되지는 않는다. attention 결과를 안정적으로 쌓고, 각 위치별로 비선형 변환을 수행하고, 깊은 층에서도 신호가 흐르도록 만드는 장치들이 필요하다.이 글에서는 GPT block을 이루는 핵심 부품인 LayerNorm, GELU, FeedForward, residual connection을 한 흐름으로 정리한다.GPT block의 기본 흐름x-> LayerNorm-> Causal Multi-Head Attention-> residual add-> LayerNorm-> FeedForward-> residual add이 흐름에서 가장 중요한 규칙은 shape가 계속 `(B, T, C)`로 유지된다는 점이다. 그래야..

카테고리 없음 2026.06.01