比較表

フレームワーク一覧表

15のMLフレームワークと推論エンジンを1ページにまとめ、本稿執筆時点のバージョン、ライセンス、ハードウェア対応、得意なこと、注意点を一覧にします。

PyTorchJAXHugging FaceNVIDIAAppleMicrosoftオープンソース最終確認 2026年11月13日· PyTorch 2.15, JAX 0.12, TensorFlow 2.21, scikit-learn 1.9, Transformers 5.23, PEFT 0.21, TRL 1.18, vLLM 0.33, llama.cpp 1.0, Ollama 0.40, ONNX Runtime 1.32, MLX 0.32, TensorRT 11.4, DeepSpeed 0.20, Megatron Core 0.20; verified 13 November 2026

このページは、学習フレームワークや推論エンジンを選ぶ人、あるいは今使っているものがまだ目的に合っているかを確認したい人のためのものです。バージョンは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バインディングも別途固定します。
  • バージョンはモデルカードか実験ログに記録します。半年後に再現できない結果は、持っていないのと同じです。

出典

誤りやバージョン変更に気づいたら 訂正の手順をご覧ください。