TrenTorch/TrenTorch

Learn PyTorch by building your own. (inspired from Harvard's TinyTorch)

Tren⚡Torch – 학습을 위한 완전한 원천에서 시작하는 ML 프레임워크

무엇인가요 – TrenTorch는 NumPy만을 기반으로 구축된 오픈소스 교육용 딥러닝 라이브러리입니다. 하버드 CS249r의 고전적인 TinyTorch 커리큘럼을 재구현하고, 기본 텐서부터 완전한 트랜스포머 기반 LLM, 프로파일링, 양자화, 벤치마킹에 이르기까지 20개의 단계적 모듈을 추가했습니다. 코드베이스에는 외부 딥러닝 종속성(예: PyTorch, TensorFlow, JAX 등)이 전혀 포함되어 있지 않으며, 모든 연산, 자동 미분 엔진, 최적화기, 레이어는 수작업으로 작성되었습니다.

왜 존재하는가 – 저자들은 학습자가 현대 ML 스택의 모든 부분을 '소유'할 수 있도록 하고자 합니다. 자신이 프레임워크를 직접 구축함으로써 loss.backward()가 어떻게 작동하는지, 메모리가 어떻게 할당되는지, 프로덕션 수준 최적화가 어떻게 적용되는지 정확히 이해할 수 있습니다. 이 프로젝트는 단계적 커리큘럼으로 구성되어 있으며, 텐서에서 시작해 컨볼루션, 어텐션을 거쳐 최종적으로 LLM 연산에 이릅니다.


핵심 기능 (README에 설명됨)

영역 제공되는 기능
기초 (모듈 01–08) 텐서 클래스, 활성화 함수, 선형 레이어, 손실 함수, 데이터로더, 자동 미분, 최적화기 (SGD, Adam, AdamW, Lion, Muon), 학습 루프.
비전 (모듈 09) Conv2d, MaxPool2d, 표준 이미지 벤치마크에서 실행 가능한 완전한 CNN 파이프라인.
언어 (모듈 10–13) 토크나이저, 임베딩 레이어, 멀티헤드 어텐션, GPT 스타일 언어 모델용 완전한 트랜스포머 블록.
최적화 (모듈 14–20) 프로파일링 도구, 양자화, 프루닝 및 디스틸레이션, 하드웨어별 가속 헬퍼, KV 캐시 메모이제이션, 벤치마킹 스위트, 그리고 모든 것을 통합하는 캡스톤 프로젝트.
CLI (tren) 모듈 워크플로우를 스크래핑하고, 마일스톤을 실행하며, 모델을 내보내고, Jupyter 노트북을 시작하는 명령줄 인터페이스.
역사적 마일스톤 당신이 만든 프레임워크를 사용해 퍼셉트론, XOR, 백프로파게이션, CNN, 트랜스포머, MLPerf 스타일 벤치마크와 같은 역사적 성과를 재현할 수 있는 스크립트.

빠른 시작 설치

# 복제하고 가상 환경 설정
git clone https://github.com/TrenTorch/TrenTorch.git
cd TrenTorch
python3 -m venv .venv
source .venv/bin/activate   # Windows에서는 .venv\Scripts\Activate.ps1
pip install -r requirements.txt
pip install -e .            # 편집 가능 모드로 패키지 설치
tren setup   # `tren` 명령어를 PATH에 추가
tren          # CLI 실행

README에 따르면 tren setup 후에는 가상 환경을 다시 활성화하지 않고도 어디서든 tren을 실행할 수 있습니다.


대상 독자 및 활용 사례

  • 현대 딥러닝 프레임워크가 어떻게 구축되는지 깊이 있고 실습 중심으로 이해하고 싶은 학생 및 자율 학습자.
  • 저수준 텐서 연산에서 프로덕션 수준 LLM 파이프라인까지 단계적으로 진행되는 커리큘럼을 찾는 교육자.
  • 프로파일링, 양자화, 기타 성능 최적화 기법에 관심이 있지만, 전체를 읽을 수 있는 최소한의 코드베이스를 원하는 엔지니어.
  • 무거운 라이브러리 설치를 피하고 싶은 실험용으로 가벼운 NumPy 기반 스택을 원하는 해커.

프로젝트 상태

  • 모든 20개 모듈이 구현 완료되었으며, 단위 및 통합 테스트를 보유하고 있습니다.
  • CLI, 문서, 마일스톤 스크립트는 정상 작동합니다.
  • 지속적인 작업은 문서 정제, 에지 케이스 강화, 성능 튜닝에 집중하고 있습니다.
  • 향후 로드맵에는 커뮤니티 랭킹, 추가 마일스톤 연습, 더 광범위한 벤치마킹이 포함됩니다.

라이선스 및 커뮤니티

  • MIT 라이선스로 배포 (허용성 높고 상용 사용 가능).
  • 기여를 환영합니다. 행동 규범은 Contributor Covenant가 적용됩니다.
  • Team Engineers 섹션에는 현재 유지보수자 목록과 실시간 생성된 기여자 배지가 표시됩니다.

결론

TrenTorch는 학습과 실험을 위한 진정한, 현재도 유지 관리 중인 오픈소스 프로젝트입니다. NumPy만을 사용하는 완전한 스택의 딥러닝 프레임워크를 제공하며, 잘 문서화되고 테스트 커버리지가 높으며, 트랜스포머와 LLM과 같은 현대 모델을 구축하고 최적화하는 단계적 커리큘럼으로 구성되어 있습니다.

관련

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