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]'

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

関連リポジトリ

PDF・Word・Excel・画像…なんでもMarkdownに一発変換!AI時代の万能ファイル変換ツール — markitdown

microsoft/markitdownPython109.1k

MarkItDownは、PDF、Word、Excel、PowerPoint、画像、音声、HTMLなど、さまざまな形式のファイルをMarkdown(シンプルな書式付きテキスト)に変換するPython製の

LLMアプリのレシピ集!ChatGPTから音声エージェントまで実例満載 — awesome-llm-apps

Shubhamsaboo/awesome-llm-appsPython99.0k

awesome-llm-appsは、ChatGPTやGeminiなどの大規模言語モデル(AIの文章生成技術)を使った実用的なアプリケーションの作り方を集めたレシピ集です。AIエージェント(自動でタスク

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

hacksider/Deep-Live-CamPython90.5k

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

使うほど賢くなるAIエージェント — 学習・記憶・自動化を全部入りで月5ドルから運用 — hermes-agent

NousResearch/hermes-agentPython87.5k

Hermes Agentは、Nous Research社が開発した「自己改善するAIエージェント」です。会話するたびに経験からスキルを自動生成し、ユーザーの好みや過去のやり取りを記憶して、使えば使うほ

AIに「このサイトで○○して」と頼むだけ!ブラウザ操作を全自動化するエージェント — browser-use

browser-use/browser-usePython84.1k

browser-useは、AI(人工知能)にウェブブラウザを操作させて、オンラインの作業を自動化できるPython製のツールです。「この求人に応募して」「買い物リストの商品をカートに入れて」といった自