TurboGPT: 22KiB 트랜스포머를 13초 만에 학습시키는 CUDA 프로젝트
Show HN: TurboGPT: train 22KiB transformer in 13s
TL;DR Highlight
CUDA C++로 바이트 단위 tiny GPT를 1분 안에 학습하는 오픈소스
Who Should Read
LLM을 API로만 쓰다가 GPT 학습 루프를 직접 돌려보고 싶은 백엔드 개발자
Core Mechanics
- 바이트 단위 tiny GPT 학습기
- CUDA C++로 만든 MIT 라이선스 프로젝트다.
- 저장소 설명은 '1분 안에 tiny GPT 학습(CUDA 전용)'이다.
- 체크포인트에 학습 상태가 전부 들어간다
- 모델, 옵티마이저, 스케줄러, 트레이너 상태가 runs/ctx4/ctx4.pt에 저장된다.
- --load CHECKPOINT.pt로 이어서 학습할 수 있다.
- 로그는 TensorBoard 호환이다
- 배치마다 리포트 1개를 남기고 최대 8Mi개까지 기록한다.
- report.json은 로그 디렉터리에서 만들어진다.
- 결과는 hn1g 데이터로 2.5295 BPB
- 1.5G 학습 토큰 이후 수치다.
- BPB는 바이트당 비트 수이고 비교 대상 모델은 원문에 없다.
- 빌드는 Linux/NixOS와 Windows 지원
- Linux는 nix-build, Windows는 VS2022 C++ 도구와 CUDA 13.4가 필요하다.
- -CudaArch에는 NVIDIA GPU의 compute capability를 넣는다.
Community Reactions
- 동기를 모르겠다는 의견
- 비슷한 프로젝트를 이미 수없이 봤다는 댓글이 있었다.
- 학습용으로는 Karpathy가 만든 것보다 가치가 낮을 것이라는 의견이다.
- 모델 크기 표기 방식을 지적한 의견
- 파라미터 수가 아니라 디스크 용량으로 모델 크기를 부르는 경향이 흥미롭다는 댓글이 있었다.
- 데이터 파일이 없다는 지적
- 실행 예시의 hn1g.txt를 구할 수 없다는 댓글이 있었다.
How to Apply
- 내 GPU의 compute capability 확인하기
- 오늘 NVIDIA CUDA GPU 목록에서 내 GPU의 값을 찾는다.
- Windows라면 .\build.ps1 -CudaArch 값으로 빌드할 수 있는지 확인한다.
- 직접 만든 텍스트 파일로 --data 실행하기
- hn1g.txt는 구하기 어려우니 작은 텍스트 파일을 준비한다.
- --log-to runs/test로 돌리고 TensorBoard 로그를 확인한다.
- -load로 중단·재개 흐름 테스트하기
- 학습을 중간에 멈추고 생성된 .pt 체크포인트를 지정해 다시 시작한다.
- 옵티마이저와 스케줄러 상태까지 이어지는지 로그로 확인한다.
Try It
# 터미널(CUDA 환경)에서 실행: 원문 README의 실행 방법을 옮긴 예시
# 1) 빌드 (Windows, PowerShell, {{CUDA_ARCH}}는 내 GPU 값)
git clone https://github.com/lostmsu/TurboGPT
cd TurboGPT
.\build.ps1 -CudaArch {{CUDA_ARCH}}
# 2) 학습 (데이터는 내 텍스트 파일)
.\build\turbogpt.exe --data {{내_텍스트.txt}} --log-to runs/test
# 3) 이어서 학습
.\build\turbogpt.exe --data {{내_텍스트.txt}} --log-to runs/test --load runs/test/test.pt
# 4) 검증
python tests\verify.pyTerminology
관련 논문
AI 글쓰기 버릇을 학습으로 뺀 Qwen3-4B (qwen3-4b-deslop)
Qwen3-4B를 LoRA로 증류했더니 AI 문체 점수가 121에서 12.5로 떨어졌다
Dust: 역전파 없이 Transformer를 사전학습하는 방법
활성값에 토큰별 노이즈를 줬더니 역전파 없이 Transformer 사전학습이 됐다
Gemini가 만든 라벨 $9로 자기 대체 모델 GLiNER 학습시키기
Gemini 라벨 $9로 GLiNER를 튜닝해 로컬에서 F1 0.83 달성
절대 포기하지 않기(Never Give Up): LLM RL에서 어려운 문제를 풀게 만드는 방법
쉬운 문제에 쓰는 연산을 줄이고 어려운 문제를 재시도했더니 어려운 문제 성능이 올랐다
3.8B LLM을 $998로 학습해 CORE 0.384 달성하기
B200 8장으로 43시간, $998를 들여 3.8B 모델이 CORE 0.384를 기록했다
Paul Graham: "17살이면 LLM을 밑바닥부터 만들어 보겠다"
PG는 17살이면 창업 말고 LLM 밑바닥 구현부터 배우겠다고 했다
DeepSeek을 GPT-OSS에 증류해도 검열은 따라오지 않았다
DeepSeek V4 Flash로 금융 추론을 증류했더니 성능은 올랐고 검열은 안 따라왔다