検索
連載

PyTorch vs. TensorFlow、ディープラーニングフレームワークはどっちを使うべきか問題【2022年】AI・機械学習のツール&ライブラリ

2大フレームワークであるTensorFlow/PyTorchに対して検索トレンドや研究論文数、Kaggle実用数などでの比較を行う。総括として「どちらを使うべきか」について筆者なりの考察を加える。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
「AI・機械学習のツール&ライブラリ」のインデックス

連載目次

 本稿は、【2019-2020年】版【2021年】版と続けているシリーズの、2022年に向けた、そのアップデート記事となる。

 ディープラーニング(深層学習)を実装する場合、専用のライブラリ/フレームワークを用いるのが一般的だ。現在、主要なものを挙げると、

  • TensorFlow 2015年11月登場、Google製。特に産業界で人気
  • Keras 2015年3月登場、作者がGoogle社員。使いやすくて簡単。TensorFlow 2に同梱され標準API化
  • PyTorch 2016年8月登場、Facebook(改めMeta)製。特に研究分野で人気
  • Apache MXNet 2015年6月登場、2017年7月からApache Software Foundation製。AWSがコントリビュートし、Azureもサポート
  • JAX 2018年11月登場、Google製。NumPy互換+自動微分+GPU/TPUサポート。研究分野で注目度上昇中

などがある(機械学習の分野にまで広げるとscikit-learnなどもあるが、今回は深層学習に絞る)。いずれもオープンソースである。

 2022年1月現在も、主にTensorFlow/KerasとPyTorchがシェアを競っている状況である。その状況の傾向は1年前とあまり変わらないものの、変化のスピードが緩やかになってきた結果が出ているので本稿で解説したい。

 本稿ではTensorFlowとPyTorchという2大フレームワークにおける幾つかの比較(検索トレンド、研究論文での活用数、Kaggleでの実用数)をコンパクトに紹介していく。

TensorFlowとPyTorchの特色

 まず前提として、この2大フレームワークの特色を押さえておきたい。とはいえ、それぞれの特色は、以下のようにここ数年間、あまり変わっていない。

  • TensorFlowの特色: Kerasで簡単に実装でき、運用サポートが手厚く、実用/ビジネス方面に強い
  • PyTorchの特色: カスタマイズやロジックの把握がしやすく、特に研究方面に強い

 これらの特色に合わせた“すみ分け”が確立しているので、研究分野の指標として「研究論文での活用数」、実用面での指標として「Kaggleでの実用数」のグラフを提示する。その前に、より一般的な傾向の指標として「検索トレンド」の比較グラフを見ておこう。

検索エンジンでのトレンド比較

 検索トレンドの比較では、TensorFlowとPyTorchのトレンド推移を比較する(JAXを含めてもよかったが、「ジャクソンビル国際空港(JAX)」などの別単語があるために正確にトレンドを追いづらいので省いた)。比較期間は、2019年1月1日〜2022年1月10日である。記事がよりシンプルになるよう「世界」に絞って解説する。日本独自の特色などがある場合は、文章で簡単に言及することとする。

 なお、検索トレンドを比較することに関しては、「真の人気を反映しているとは一概に言えないよね」という疑心が筆者自身の中にもあるのだが、「折れ線グラフの向きで、成長傾向か衰退傾向かは、ある程度判別できる」と考えているので、本稿でも紹介することにした。あくまで「検索エンジン」という特殊なプラットフォーム上でのトレンド比較なので、「どれが一番人気か」を判断する際には、その分を割り引いて捉えてほしい。

世界

図1 Googleトレンドでのフレームワーク比較: 世界(全ての国)
図1 Googleトレンドでのフレームワーク比較: 世界(全ての国)

 青い線がTensorFlowで、赤い線がPyTorchである。2018年ごろはTensorFlowが高い検索シェアを占めていたが、その差は徐々に縮まって2021年2月時点(TensorFlow:44.5、PyTorch:43.5)でほぼ差がなくなり、5月時点(TensorFlow:47.5、PyTorch:48.8)でPyTorchがTensorFlowを逆転して抜き、2021年12月時点(TensorFlow:38、PyTorch:43.4)ではPyTorchがややリードしているものの、そこまで差は広がらずに混戦状況が続いている。

 2018〜2019年はPyTorchが圧倒的な上昇を見せたが、2020年以降はその伸びが弱まり横ばいが続いている(50ポイント前後)。

 一方で、TensorFlowは2019〜2020年に大きく下落したが(約80→50ポイント前後)、2021年はその下げが鈍化してきたように見える(約50→40ポイント前後)。

 2022年1月現在の予想では、2022年末まで同じ傾向が続くのであれば、PyTorchがあまり上昇できず、TensorFlowは下落をさらに鈍化させるということになり、青い線と赤い線がたびたび絡み合う混戦が続きそうである。

 なお日本や米国においては、「世界」よりも少し早く2020年に入ってから両者の差がほぼなくなり、2020年中はTensorFlowPyTorchともに少し下げ、2021年以降はややPyTorchがわずかにリードするものの、青い線と赤い線が常に絡み合う混戦状況で横ばいとなっている。

研究論文での活用数

 通常、研究論文でのフレームワーク活用数を調べるのは大変だ。本シリーズの過去記事ではHorace He氏のWebアプリで生成したグラフを使ってきたが、(2022年1月現在で)残念ながら2021年の学会分のデータは更新されていないようなので、使用できなかった。代わりに、「Papers With Code : Trends」が提供する「フレームワーク別の論文実装数のグラフ」を引用して、研究分野でのトレンドを比較する。比較期間は、2017年12月1日〜2021年12月31日である。

TensorFlowとPyTorchのシェア率

 図2のグラフは、厳密にはTensorFlowとPyTorchだけでなく、JAXとMXNetも含めているので注意してほしい。2大フレームワーク以外では、「NumPyライクに自由に実装できるJAXの人気が、特に研究コミュニティーで高まっている」という情報があるので(参考:「PyTorch vs TensorFlow in 2022」)、図2のグラフに含めてみたが、JAXが約1%、MXNetが約0%と非常に小さいシェア率で、やはりまだまだ比較できるほどにはなっていないようである。

 ここでは、4つのフレームワークにおけるシェア率のうち、TensorFlowとPyTorchのシェア率比較に絞って説明する。JAXとMXNetは、100%を占める領域への影響は軽微だと思うので、無視することにした。

図2 フレームワーク別の論文実装数のグラフ(横軸:リポジトリ作成日、縦軸:実装のシェア率)
図2 フレームワーク別の論文実装数のグラフ(横軸:リポジトリ作成日、縦軸:実装のシェア率)
引用元:「Papers With Code : Trends」

 オレンジ色の領域がTensorFlowで、赤い領域がPyTorchである。2017年12月時点(TensorFlow:58%、PyTorch:42%)ではTensorFlowの方が高い論文実装シェアを占めていたが、その差は徐々に縮まって2019年3月時点(TensorFlow:46%、PyTorch:52%)でPyTorchがTensorFlowを逆転して抜き、2021年3月(TensorFlow:19%、PyTorch:80%)以降ではPyTorchが80%以上と大きくリードしたまま落ち着いてきている。

年月 TensorFlow(T) Tの増減 PyTorch(P) Pの増減 P-Tの差 差の増減
2017年12月 58% - 42% - -16 -
2018年12月 53% −5 46% +4 -7 +9
2019年12月 36% −17 63% +17 27 +34
2020年12月 23% −13 76% +13 53 +26
2021年12月 15% −8 84% +8 69 +16
表2 TensorFlowとPyTorchの増減表

 「研究方面はPyTorchがほぼ制圧した」と言えると思うが、PyTorchのシェア率が高まるにつれて、シェア率の増加ペースは当然ながら鈍化してきている(表1の[差の増減]列を参照)。年末には6ポイント増えて90%程度になるぐらいのペースに見える。実際に2022年末までに、PyTorch90%以上にまでシェア率を高められるかどうかが注目ポイントとなるだろう。

Kaggleでの実用数

 研究分野に続いて、実用/実践面での活用数を比較してみよう。

機械学習でのフレームワークの利用率

 Kaggleなどのデータサイエンス/機械学習のコンペティションは、「研究しやすいかではなく、いかに効率的に実用できるか」という視点でフレームワークが選択されている、と本稿では想定している。Kaggleでは2017年から毎年、Kaggle参加者にアンケートを取っており、2021年版のアンケート結果レポート『State of Data Science and Machine Learning 2021』が公開されているので、その中から「フレームワークの利用率」のグラフを図3に引用する。

図3 実用面でのフレームワーク比較: 機械学習でのフレームワークの利用率(対象:Kaggle参加者)
図3 実用面でのフレームワーク比較: 機械学習でのフレームワークの利用率(対象:Kaggle参加者)
引用元:『State of Data Science and Machine Learning 2021』

Copyright© Digital Advantage Corp. All Rights Reserved.

ページトップに戻る