フレームワーク一覧表
15のMLフレームワークと推論エンジンを1ページにまとめ、本稿執筆時点のバージョン、ライセンス、ハードウェア対応、得意なこと、注意点を一覧にします。
このページは、学習フレームワークや推論エンジンを選ぶ人、あるいは今使っているものがまだ目的に合っているかを確認したい人のためのものです。バージョンは2026年11月13日にPyPIとGitHubのリリースページから読み取ったもので、数週間のうちにずれていきます。ライセンスはコードに対するものであり、そのコードで読み込むモデルの重みのライセンスではありません。ハードウェアの列は、本稿執筆時点でプロジェクト自身のビルドが対応しているものを示し、フォークやベンダーのプラグインが追加するものは含みません。
一覧表
| フレームワーク | 現行バージョン | ライセンス | ハードウェア対応 | 得意なこと | 注意点 |
|---|---|---|---|---|---|
| PyTorch | 2.15.0 | BSD-3-Clause | CUDA, ROCm, Apple MPS, CPU, TPU via torch_xla, Intel XPU |
研究コード、独自モデル、ほとんどのオープンモデルの既定の選択肢 | 動的なPythonでtorch.compileのグラフが分断される、一部の演算でMPSに未対応がある、wheelが大きい(CUDAビルドは2 GB超) |
| JAX (with Flax and Optax) | JAX 0.12.0.1, Flax 0.12.12, Optax 0.2.9 | Apache-2.0 | CPU, CUDA, TPU, ROCm plugin, experimental Metal plugin | TPUでの学習、関数型のコード、vmapとpmapスタイルの並列化、大規模な研究 |
関数的純粋性の規則(インプレース変更不可)、新しい形状のたびに再コンパイル、事前学習済みチェックポイントのエコシステムが小さい |
| TensorFlow and Keras | TensorFlow 2.21.0, Keras 3.15.1 | Apache-2.0 | CPU, CUDA, TPU, Apple Metal via a plugin, ROCm builds from AMD | TF ServingとTFLite(LiteRT)による本番サービング、Keras 3はPyTorchとJAXの上でも動く | 新しいモデルが最初にここに来ることは少ない、2.10以降Windows GPUビルドは廃止、Keras 3はKeras 2ではない |
| scikit-learn | 1.9.1 | BSD-3-Clause | CPU, some estimators dispatch to PyTorch or CuPy via the array API | 表形式データ、古典的モデル、パイプライン、評価指標、モデル選択 | 深層学習はなし、ほとんどの推定器でGPU非対応、大きなデータはチャンク分割か別のツールが必要 |
| Hugging Face Transformers | 5.23.0 | Apache-2.0 | Follows PyTorch (PyTorch only since v5) | 任意のオープンモデルを名前で読み込む、トークナイザ、生成、Trainer | リリースが速くピン留めしたコードが壊れる、trust_remote_codeは任意のPythonを実行する、generateの既定値のメモリ使用量 |
| PEFT | 0.21.3 | Apache-2.0 | Follows PyTorch | Transformersモデルの上でのLoRA、QLoRA、プロンプトチューニングなどのアダプタ | アダプタのマージで数値がわずかに変わる、対象モジュール名がアーキテクチャごとに異なる |
| TRL | 1.18.0 | Apache-2.0 | Follows PyTorch | Transformersモデルを使ったSFT、DPO、GRPO、報酬モデルの学習 | リリース間でTrainerの引数名が変わる、既定値はマルチGPU向けに調整されている、設定クラスを読むこと |
| vLLM | 0.33.0 | Apache-2.0 | CUDA, ROCm, CPU (x86 and ARM), TPU, Intel XPU, AWS Neuron | ページド KVキャッシュと連続バッチングによる高スループットのサービング、OpenAI互換サーバー | GPUがなければ価値が薄い、初回起動が長い(グラフキャプチャ)、量子化カーネルはGPU世代ごとに異なる |
| llama.cpp | 1.0.0 (13 November 2026, build b12364) | MIT | CPU, CUDA, Metal, Vulkan, ROCm (HIP), SYCL | ノートPCや小規模サーバーでのGGUFモデルの実行、CPUとGPUの混在オフロード | 1.0で非推奨のC APIが削除され古いバインディングが壊れる、長いコンテキストではCPUのプロンプト処理が遅い |
| Ollama | 0.40.16 | MIT | CPU, CUDA, ROCm, Metal | コマンド1つで動くローカルモデルとポート11434のREST API | 設定しない限り既定のコンテキストウィンドウが短い、モデルライブラリのタグからは量子化レベルが分からない |
| ONNX Runtime | 1.32.0 | MIT | CPU, CUDA, TensorRT, DirectML, Core ML, ROCm, OpenVINO, QNN, WebGPU | エクスポートしたモデルをベンダー、モバイル、ブラウザをまたいで移植可能に推論する | 難しいのはエクスポート(未対応の演算と動的形状)、LLM対応はPyTorchネイティブより遅れる |
| MLX | 0.32.4 | MIT | Apple Silicon (Metal) and CPU, experimental CUDA backend | ユニファイドメモリを活かしたApple Siliconでの学習と推論、LLM向けのmlx-lm |
実質的にApple専用、エコシステムが小さい、ROCmやTPUは非対応 |
| TensorRT and TensorRT-LLM | TensorRT 11.4.0, TensorRT-LLM 1.2.1 | TensorRT core is proprietary (NVIDIA licence), open-source components and TensorRT-LLM are Apache-2.0 | NVIDIA GPUs only | NVIDIAハードウェアでの最低レイテンシ、HopperとBlackwellでのFP8とFP4カーネル | エンジンはGPU機種とバージョンごとにビルドされる、ビルド時間が長い、移植性がない |
| DeepSpeed | 0.20.0 | Apache-2.0 | CUDA, ROCm, Intel XPU, partial CPU | 多数のGPUにまたがる大規模モデルのZeROシャーディング学習、CPUとNVMeへのオフロード | JSONファイルによる設定、ステージ3ではパラメータへの触れ方が変わる、インストール時にカスタム演算をビルドする |
| Megatron-LM (Megatron Core) | core_v0.20.0 | BSD-3-Clause style NVIDIA licence | CUDA (AMD maintains a ROCm fork) | 数百GPU規模でのTransformerのテンソル並列、パイプライン並列、エキスパート並列による事前学習 | NVIDIA前提の作り(NCCL、Transformer Engine、NVIDIAコンテナを想定)、セットアップが大変 |
どれを選ぶか
Pythonでモデルをゼロから学習する、またはファインチューニングする場合: PyTorchです。ただしTPUを使う場合や関数型スタイルが望ましい場合はJAXです。Keras 3はどちらの上でも動く、妥当な高水準レイヤーです。TensorFlow単体は、いまでは既存のTF ServingやTFLiteのデプロイを抱えるチームのための保守的な選択肢がほとんどです。
表形式データ: scikit-learnです。木構造モデルが勝つ場合(表データでは通常そうです。/learn/beginner/05-trees-and-gradient-boosting/ を参照)はLightGBMやXGBoostの勾配ブースティングを使います。ニューラルネットワークに手を伸ばすのは、特徴量がテキスト、画像、音声の場合だけにします。
オープンな言語モデルを扱う場合: 読み込みとトークン化にTransformers、安価なファインチューニングにPEFT、選好学習にTRLです。手法については /topics/fine-tuning-and-alignment/ を参照してください。
LLMのサービング: 1枚以上のNVIDIA GPUで多数の同時ユーザーを捌くならvLLMです。ノートPCや1台のマシンで少人数が使うなら、llama.cppを直接、またはOllama経由で使います。Apple Siliconでは、同じモデルでもMLXのほうがllama.cppより速いことが多いですが、GGUFのエコシステムは失います。移植性よりNVIDIAハードウェア上のレイテンシが重要なら、TensorRT-LLMです。
大規模な事前学習: 並列化にはMegatron Core、コード変更を少なくシャーディングしたいならDeepSpeed ZeROです。どちらも専門的なツールで、ほとんどのチームには必要ありません。
相互運用性
| 形式または経路 | 中身 | 生成元 | 利用先 | 補足 |
|---|---|---|---|---|
| safetensors | テンソルのみ、JSONヘッダ付き、メモリマップ可能 | Transformers、PEFT、ほとんどのトレーナー | Transformers、vLLM、MLX、各種コンバータ | pickleを使わないため信頼できないソースからも安全に読み込める。Hubの既定形式。 |
PyTorch state_dict (.pt, .bin) |
pickle経由のテンソル | torch.save |
torch.load |
weights_only=Trueで読み込む。PyTorch 2.6以降は既定。 |
| ONNX | グラフと重み | torch.onnx.export(dynamoベースのエクスポータが既定)、tf2onnx、skl2onnx |
ONNX Runtime、TensorRT、OpenVINO、Core ML tools | 演算の対応はPyTorchの新機能より遅れる。opsetバージョンを確認すること。 |
torch.export |
PyTorch IRでトレースされたグラフ | torch.export.export |
AOTInductor、ExecuTorch、ONNXエクスポータ | 新しい経路。動的形状は宣言が必要。 |
| GGUF | メタデータとトークナイザ付きの量子化済み重み | llama.cppのconvert_hf_to_gguf.py、続いてllama-quantize |
llama.cpp、Ollama、多くのデスクトップアプリ、Transformersは逆量子化して読み込める | 量子化レベルごとに1ファイル。形式はバージョン管理されている。 |
| TensorRT engine | 1つのGPU機種向けにコンパイルされたプラン | trtexec、TensorRT-LLMのビルド |
TensorRTランタイムのみ | GPUファミリーとTensorRTバージョンごとに再ビルド。 |
| MLX safetensors | テンソルとMLX設定 | mlx_lm.convert |
MLX | safetensorsコンテナを共有するが、量子化レイヤーのレイアウトは異なる。 |
オープンLLMでよくある経路は次のとおりです。PyTorchで学習またはファインチューニングし、safetensorsで保存し、ターゲットごとに一度だけ変換します(llama.cpp向けにGGUF、Apple Silicon向けにMLX変換、vLLM向けにAWQまたはGPTQチェックポイント)。それぞれの変換のコストは /reference/quantisation-formats/ を参照してください。
バージョン固定の指針
- 主要な3つはロックファイルでマイナーバージョンまで固定します:
torch==2.15.*、transformers==5.23.*、scikit-learn==1.9.*。パッチリリースは安全ですが、マイナーリリースは常に安全とは限りません。 - CUDAはインストール元のPyTorch wheelインデックスで固定し、ドライバのバージョンを記録します。CUDA 12.x向けにビルドされたtorch wheelは、古いドライバのマシンではimport時ではなく最初のカーネル起動時に失敗します。
- TransformersとPEFTとTRLは連動して動きます。1つのコミットでまとめてアップグレードし、スモークテストを実行します。
- vLLMは独自のtorchバージョンを固定します。リゾルバと格闘するより、専用の環境にインストールします。
- llama.cppにはビルド間で安定したABIがありません。ビルドタグ(
b12364)または1.x系リリースを固定し、Pythonバインディングも別途固定します。 - バージョンはモデルカードか実験ログに記録します。半年後に再現できない結果は、持っていないのと同じです。
出典
- PyTorchリリースとPyTorchドキュメント
- JAXリリース、Flaxドキュメント、Optaxドキュメント
- TensorFlowリリースとKeras 3ドキュメント
- scikit-learnリリース履歴
- Transformersリリース、PEFTリリース、TRLリリース
- vLLMリリースとvLLMドキュメント
- llama.cppリリースとGGUF仕様
- Ollamaリリース
- ONNX Runtimeリリースと実行プロバイダ
- MLXリリースとMLXドキュメント
- TensorRTドキュメントとTensorRT-LLMリリース
- DeepSpeedリリース
- Megatron-LMリリース
- safetensorsドキュメントとtorch.exportドキュメント