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

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

関連リポジトリ

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

Shubhamsaboo/awesome-llm-appsPython99.0k

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

PDF・Word・Excel・画像…あらゆるファイルをMarkdownに一発変換!AI時代の必携ツール — markitdown

microsoft/markitdownPython89.9k

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

写真1枚でリアルタイム顔すり替え!ワンクリックで誰にでもなれるAIディープフェイク — Deep-Live-Cam

hacksider/Deep-Live-CamPython86.8k

Deep-Live-Camは、たった1枚の顔写真を用意するだけで、リアルタイムにウェブカメラの映像や動画の顔を別人の顔に置き換えられるAIツールです。ビデオ通話やライブ配信中に、まるで別人になったかの

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

browser-use/browser-usePython84.1k

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

PDFや画像を一瞬で構造化データに変換!100言語以上対応のAI文字認識エンジン — PaddleOCR

PaddlePaddle/PaddleOCRPython74.5k

PaddleOCRは、PDFや画像の中にある文字・表・数式・グラフなどを読み取り、MarkdownやJSON(コンピュータが扱いやすいデータ形式)に自動変換するツールです。100以上の言語に対応してお