PyTorchより軽く、microgradより強力!たった数千行で動くディープラーニングフレームワーク — tinygrad

tinygrad/tinygradPython32.0k

tinygradは、ディープラーニング(AIの学習技術)に必要な機能をすべて備えた、非常にコンパクトなフレームワークです。PyTorch(業界標準のAIフレームワーク)と同じような書き方でニューラルネットワークを構築・学習できますが、コード全体が小さく設計されているため、内部の仕組みを誰でも読んで理解できるのが最大の特徴です。CUDA(NVIDIA GPU)やMetal(Apple GPU)、AMDなど多数のアクセラレータ(計算を高速化するハードウェア)に対応しており、わずか25個ほどの基本命令を実装するだけで新しいハードウェアにも対応できます。AIの仕組みを深く学びたい人や、独自のハードウェアでAIを動かしたい開発者にとって理想的なツールです。tiny corp社が開発・メンテナンスしています。

🔥 なぜ話題?

AIフレームワークのブラックボックス化が進む中、『中身を理解できるAIフレームワーク』として教育・研究目的で注目が高まっています。また、tiny corp社が独自AIチップの開発を進めていることや、多数のアクセラレータ対応という柔軟性が、ハードウェアメーカーやAIエンジニアの関心を集めています。

💡 こう使える!

例えば、大学や独学でAIの仕組みを学んでいる人が、手書き数字を認識するニューラルネットワークをゼロから構築したいとき、tinygradなら数十行のコードで書けて、しかも裏側でどんな計算がGPU上で実行されているかをDEBUGフラグひとつで確認できます。PyTorchだと内部が複雑すぎて追えない部分も、tinygradなら全体を見通せます。

ユースケース: AIの内部動作を理解しながら、軽量かつ高速にディープラーニングモデルを開発・実験するために使う。

  • コード全体が小さく設計されており、コンパイラやIR(中間表現)まで含めて誰でも読んで改造できる
  • CUDA・Metal・AMD・OpenCL・WebGPUなど8種類以上のアクセラレータに対応
  • PyTorchとほぼ同じ書き方でニューラルネットワークを構築でき、MNISTが約5秒で98%の精度に到達
GitHubで見る →

You like pytorch? You like micrograd? You love tinygrad! ❤️

技術情報

言語

Python

ライセンス

MIT

最終更新

2026-03-24

スター数

31,969

フォーク数

3,986

Issue数

229

技術詳細

アーキテクチャ・仕組み

tinygradはエンドツーエンドのディープラーニングスタックで、以下の4つの層で構成されています:

  1. Tensorライブラリ + 自動微分(autograd): PyTorchライクなeager実行のTensor API
  2. IR(中間表現)とコンパイラ: カーネルの融合(fusion)と低レベルへの変換(lowering)を行う
  3. JIT + グラフ実行: 関数レベルのJIT(TinyJit)でカーネルをキャプチャ・リプレイ
  4. nn / optim / datasets: 実際の学習に必要なニューラルネットワーク層、オプティマイザ、データセット

遅延評価(Laziness)

tinygradは遅延評価を採用しており、複数の演算を自動的に1つのカーネルに融合します。DEBUG=3で実行するとカーネルの融合状況が確認でき、DEBUG=4で生成されたコードそのものを確認できます。

対応アクセラレータ(ハードウェア)

アクセラレータ備考
OpenCL汎用GPU
CPUCPUフォールバック
MetalApple Silicon GPU
CUDANVIDIA GPU
AMDAMD GPU
NVNVIDIA(別ドライバ)
QCOMQualcomm(モバイル向け)
WebGPUブラウザ上のGPU

新しいアクセラレータの追加には約25個の低レベル命令を実装するだけでよい設計です。

デフォルトのアクセラレータ確認:

python3 -c "from tinygrad import Device; print(Device.DEFAULT)"

競合ツールとの比較

vs PyTorch

  • 同様のeager Tensor API、autograd、optimを提供
  • 違い: コンパイラとIR全体が見える・改造しやすい

vs JAX

  • IRベースの自動微分(JAXPRやXLAに相当)
  • 関数レベルのJIT(TinyJit)
  • 違い: vmap/pmapのような関数変換はまだ未対応だが、コードの可読性が圧倒的に高い

vs TVM

  • 複数の変換パス、スケジューリング、BEAMサーチによるカーネル最適化
  • デバイスグラフによるバッチ実行
  • 違い: tinygradはコンパイラだけでなくフロントエンド(Tensor、nn、optim)も含む

パフォーマンス

  • MNISTデータセットで約5秒で98%の精度を達成(examples/beautiful_mnist.py)

設計方針・制約

  • コードの簡潔さ: コードゴルフ(無理な短縮)ではなく、複雑さの削減と可読性の向上が目標
  • APIの互換性: 新機能のAPIはPyTorchまたはNumPyに準拠することが推奨
  • まだ1.0未満: 安定版リリース前のため、バグが存在する可能性あり

テスト・CI

  • pre-commit installでlinter、mypy、テストのサブセットが自動実行
  • プロセスリプレイテスト: PRで生成されるカーネルをmasterブランチと比較し、意図しない変更を検出
python3 test/backend/test_ops.py  # ops テストのみ
python3 -m pytest test/           # 全テストスイート

コントリビューション

  • バグ修正(回帰テスト付き)が最も歓迎される
  • 現金バウンティ制度があり、特定の改善に報酬が支払われる
  • 大きなdiffやコード行数の多いPRは受け入れられにくい(小さなPRに分割推奨)

インストール・クイックスタート

ソースからインストール(推奨)

git clone https://github.com/tinygrad/tinygrad.git
cd tinygrad
python3 -m pip install -e .

masterブランチから直接インストール

python3 -m pip install git+https://github.com/tinygrad/tinygrad.git

テスト用の依存パッケージもインストールする場合

python3 -m pip install -e '.[testing]'

参考になる外部の関連記事

関連リポジトリ

写真1枚でリアルタイム顔入れ替え!ワンクリックでディープフェイク映像を生成 — Deep-Live-Cam

hacksider/Deep-Live-CamPython90.5k

Deep-Live-Camは、たった1枚の写真を用意するだけで、ウェブカメラの映像やビデオの中の顔をリアルタイムに別人の顔に入れ替えられるソフトウェアです。「顔を選ぶ→カメラを選ぶ→ライブボタンを押す

たった1万5千円で自分だけのChatGPTを作れる!GPT-2級AIを2時間で訓練 — nanochat

karpathy/nanochatPython46.5k

nanochatは、大規模言語モデル(人間のように文章を書くAI)を自分で一から作って、ChatGPTのような対話画面で会話できるようにするツールです。2019年に約600万円かかったGPT-2という

AIが世論を丸ごと分析!30以上のSNSから情報を集めて未来を予測する多エージェントシステム — BettaFish

666ghj/BettaFishPython37.8k

BettaFishは、ユーザーがチャットのように質問するだけで、国内外30以上のSNS(ソーシャルメディア)から情報を自動収集し、世論(ネット上の人々の意見や反応)を総合的に分析してくれるAIシステム

コードを一行も書かずにAIエージェント軍団を指揮!何でも開発できるマルチエージェント基盤 — ChatDev

OpenBMB/ChatDevPython32.5k

ChatDevは、プログラミングの知識がなくても複数のAIエージェント(自律的に動くAIの担当者)を組み合わせて、データの可視化・3Dモデル生成・ゲーム開発・深い調査レポート作成など、さまざまなタスク

知識グラフ×ベクトル検索で「質問に的確に答えるAI」を爆速構築! — LightRAG

HKUDS/LightRAGPython30.2k

LightRAGは、大量の文書をAIに読み込ませて「賢く質問に答えられる仕組み」を簡単に作れるツールです。従来のRAG(検索拡張生成:AIが質問に答える前に関連情報を検索して参照する技術)に加え、文書