GuppyLM은 약 900만 파라미터짜리 언어 모델로, 물고기 Guppy 캐릭터처럼 대화한다. 프로젝트의 목적은 LLM이 블랙박스가 아님을 직접 보여주는 것이다. PhD도, 대형 GPU 클러스터도 필요 없이 Colab 하나로 데이터 생성 → 토크나이저 → 모델 아키텍처 → 학습 루프 → 추론까지 직접 구현해볼 수 있다.
아키텍처
| 항목 | 값 |
|---|---|
| 파라미터 | 8.7M |
| 레이어 수 | 6 |
| 히든 차원 | 384 |
| 어텐션 헤드 | 6 |
| 어휘 크기 | 4,096 (BPE) |
| 최대 시퀀스 | 128 토큰 |
| 정규화 | LayerNorm |
| 포지션 인코딩 | 학습된 임베딩 |
GQA, RoPE, SwiGLU 같은 최신 기법을 의도적으로 배제한 바닐라 트랜스포머다. 구조를 단순하게 유지해 각 구성 요소의 역할을 명확히 이해할 수 있도록 설계되었다.
학습 데이터
HuggingFace 공개 데이터셋 arman-bd/guppylm-60k-generic을 사용한다. 물고기의 세계관(물, 온도, 음식, 거품, 빛 등) 60개 주제로 구성된 6만 개 합성 대화 쌍.
시작 방법
브라우저에서 즉시 실행 (설치 불필요)
WebAssembly 기반 브라우저 데모에서 양자화된 ONNX 모델(~10 MB)을 다운로드해 로컬 추론:
Colab으로 직접 학습
1. Google Colab에서 T4 GPU 런타임 설정
2. train_guppylm.ipynb 열기
3. 모든 셀 실행 → 데이터셋 다운로드 → 토크나이저 학습 → 모델 학습 → 테스트로컬 설치
pip install torch tokenizers
python -m guppylm chat사용 대상
- LLM 내부 구조를 처음 배우려는 개발자·학생
- 커스텀 소형 모델 파이프라인을 처음부터 구현해보고 싶은 경우
- 교육 목적으로 간단한 캐릭터 챗봇을 직접 만들고 싶은 경우
관련 문서
- mini-coding-agent — 코딩 에이전트 핵심 구성 요소 직접 구현 교육용 프레임워크