milanm/AutoGrad-Engine

A complete GPT language model (training and inference) in ~600 lines of pure C#, zero dependencies

해결하는 문제

MicroGPT.cs는 Transformer 기반 GPT 모델의 내부 작동 방식을 이해하기 쉽게 만드는 교육용 도구입니다. 외부 라이브러리 없이 순수 C#으로 구현된 완전한 작동 예제를 통해 토큰화, 임베딩, 어텐션, MLP, 역전파, 생성 과정이 어떻게 결합되는지 정확히 확인할 수 있습니다. 블랙박스 프레임워크 대신, ChatGPT의 알고리즘을 명확하게 설명하는 주석이 달린 투명한 코드베이스를 제공합니다.

작동 원리

이 프로젝트는 Andrej Karpathy의 microgpt.py를 충실하게 포팅한 것입니다. 다음 4개의 핵심 파일로 구성됩니다.

  • Value.cs — 스칼라를 래핑하고 기울기(gradient)를 자동으로 추적하는 자동 미분 엔진.
  • Tokenizer.cs — 문자 단위 인코딩 및 디코딩 (BOS/EOS 토큰).
  • NeuralOps.cs — 상태 비저장 빌딩 블록: Linear, Softmax, RMSNorm.
  • Program.cs — GPT 모델, 학습 루프 및 생성 로직.

학습에는 32,033개의 사람 이름으로 구성된 작은 데이터셋을 사용합니다. 이 모델은 설정 가능한 하이퍼파라미터(임베딩 크기, 레이어 수, 어텐션 헤드 수 등)를 가진 표준 Transformer입니다. 학습 중에는 Adam 옵티마이저를 사용하여 교차 엔트로피 손실을 최소화합니다. 학습 후에는 자기회귀 방식으로 새로운 이름이 생성됩니다. BOS에서 시작하여 Softmax 확률에서 다음 문자를 샘플링하고, 이를 다시 모델에 입력하는 과정을 EOS나 최대 길이에 도달할 때까지 반복합니다.

README에는 토큰화부터 역전파까지 각 단계를 비유와 다이어그램으로 설명하는 상세한 개발자 가이드도 포함되어 있습니다.

대상 사용자

GPT를 진정으로 이해하고자 하는 개발자와 머신러닝 애호가를 대상으로 합니다. 코드는 상세한 주석을 포함하고 있으며, 초보자를 위한 사전 지식 가이드와 프로덕션급 모델(GPT-4 등)과의 비교를 통해 차이점을 설명합니다. for 루프를 작성할 수 있다면 누구나 따라올 수 있습니다. 의도적으로 프로덕션 코드가 아니도록 설계되었으며, 병렬 텐서 대신 한 번에 하나의 숫자를 처리하지만 모든 개념적 요소가 포함되어 있습니다.

주요 특징

  • 의존성 없는 순수 C#: PyTorch, TensorFlow 또는 NuGet 패키지 불필요.
  • 4개 파일, 약 600줄의 코드와 상세한 주석.
  • 기울기를 자동으로 추적하는 완전한 자동 미분 엔진 포함, 수치적 기울기 검사(PyTorch의 gradcheck와 유사)로 검증됨.
  • GPT-2보다 LLaMA에 가까운 현대적인 설계 선택 (LayerNorm 대신 RMSNorm, 바이어스 없음, 제곱 ReLU, 사전 정규화).
  • CLI 인수를 통해 모델 크기, 학습 단계, 학습률 등을 조정 가능.
  • GPT-4와의 명확한 비교표를 통해 규모 차이(파라미터, 컨텍스트, 학습 데이터)를 제시.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트