TrenTorch/TrenTorch
Learn PyTorch by building your own. (inspired from Harvard's TinyTorch)
Tren⚡Torch – 学習用の完全オリジナルMLフレームワーク
何であるか – TrenTorchは、NumPyのみに依存するオープンソースの教育用ディープラーニングライブラリです。古典的な TinyTorch カリキュラム(ハーバードCS249r)を再実装し、基本的なテンソルから本格的なTransformerベースのLLM、プロファイリング、量子化、ベンチマークまで、20の段階的なモジュールを追加しています。コードベースには外部のディープラーニング依存関係(PyTorch、TensorFlow、JAXなど)は一切含まれていません。すべての演算、自動微分エンジン、オプティマイザ、レイヤーは手書きされています。
なぜ存在するか – 著者たちは学習者が現代のMLスタックのすべての部分を「所有」することを望んでいます。自分自身でフレームワークを構築することで、loss.backward()がどのように動作するか、メモリがどのように割り当てられるか、プロダクションレベルの最適化がどのように適用されるかを明確に理解できます。このプロジェクトは段階的なカリキュラムとして位置づけられており、テンソルから始まり、畳み込み、アテンション、最終的にLLM演算へと進んでいきます。
コア機能(READMEに記載)
| 分野 | 提供される機能 |
|---|---|
| 基盤(モジュール01–08) | テンソルクラス、活性化関数、線形レイヤー、損失関数、データローダー、自動微分、オプティマイザ(SGD、Adam、AdamW、Lion、Muon)、トレーニングループ。 |
| ビジョン(モジュール09) | Conv2d、MaxPool2d、標準的な画像ベンチマークで実行可能な完全なCNNパイプライン。 |
| 言語(モジュール10–13) | トークナイザー、埋め込みレイヤー、マルチヘッドアテンション、GPTスタイル言語モデル用の完全なTransformerブロック。 |
| 最適化(モジュール14–20) | プロファイリングツール、量子化、プルーニングと蒸留、ハードウェア固有の加速ヘルパー、KVキャッシュメモ化、ベンチマークスイート、そしてすべてを統合する最終プロジェクト。 |
CLI(tren) |
モジュールワークフローをスケルトン化し、マイルストーンを実行し、モデルをエクスポートし、Jupyterノートブックを起動するコマンドラインインターフェース。 |
| 歴史的マイルストーン | あなたが作成したフレームワークを使って、パーセプトロン、XOR、バックプロパゲーション、CNN、Transformer、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のみに依存するフルスタックのディープラーニングフレームワークを提供しており、よくドキュメント化され、テストカバレッジも高く、TransformerやLLMといった現代モデルの構築と最適化に至る段階的なカリキュラムとして整理されています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト