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

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

» 2020年12月16日 05時00分 公開
[一色政彦デジタルアドバンテージ]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「AI・機械学習のツール&ライブラリ」のインデックス

連載目次

 昨年10月、同タイトルの記事を公開して好評だった。今回は、2021年に向けた、そのアップデート記事となる。

 ディープラーニング(深層学習)を実装する場合、専用のライブラリ/フレームワークを用いるのが一般的だ。ディープラーニングが流行してから直近5年ほどの間に、次々と新しいフレームワークが登場した。現在、主要なものを挙げると、

  • TensorFlow 2015年登場、Google製。一番有名で、特に産業界で人気
  • Keras 2015年登場、作者がGoogle社員。使いやすくて簡単。TensorFlow 2に同梱され標準API化
  • PyTorch 2016年登場、Facebook製。この中では新興だが、特に研究分野で人気急上昇中
  • Chainer 2015年登場、日本のPreferred Networks製。2019年12月に開発を終了し、PyTorchへの移行が推奨されている

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

 2020年12月現在、主にTensorFlow/KerasとPyTorchがシェアを競っている状況である。この状況は、1年前と比べて大きな変化はないものの、去年の特色をさらに推し進めるような結果が出ているので本稿で解説したい。

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

TensorFlowとPyTorchの特色

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

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

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

 検索トレンドの比較では、TensorFlowとPyTorchのトレンド推移を比較することとする。比較期間は、2018年1月1日〜2020年12月12日である。昨年は、日本/世界/アメリカ合衆国/中国に分けて説明したが、記事がよりシンプルになるよう「世界」に絞って解説する。日本独自の特色などがある場合は、文章で簡単に言及することとする。

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

世界

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

 青い線がTensorFlowで、赤い線がPyTorchである。2018年ごろは圧倒的にTensorFlowが高い検索シェアを占めていたが、2020年12月時点ではほぼ差がない拮抗(きっこう)状態となっている。

 2018年〜2019年はPyTorchが圧倒的な上昇を見せたが、2020年はその伸びが弱まったようである。2020年後半でやや下降し始めている。

 一方で、TensorFlowは少しずつ下降していっており、全く上昇していないようである。

 2019年末の予想では、2020年中に検索シェアは逆転してもおかしくないと考えられたが、両方とも下降もしくは横ばいが見られる現状では、もちろん逆転してもおかしくないが、このままの僅差が2021年も続くのかもしれない(と筆者は考えている)。

 なお、日本においては2020年に入ってから両者の差がほぼなくなり、PyTorchTensorFlowを上回る時期も出てきており、そのままの拮抗状態の横ばいが1年間、続いている。米国においては2020年9月ごろに両者の差がなくなり、両者ともやや下降気味となっている。

 この結果を受け、「いずれにしても、両者の特色に合わせた“すみ分け”が確立してきているのではないか」と筆者は考えている。その論拠として、研究分野の指標として「研究論文での活用数」、実用面での指標として「Kaggleでの実用数」のグラフを提示する。

研究論文での活用数

 通常、研究論文でのフレームワーク活用数を調べるのは大変だ。そこで昨年の記事でも利用したHorace He氏のWebアプリで生成したグラフをダウンロードしたものを引用しながら、研究分野でのトレンド比較を行っていく。比較期間は、主に2018年〜2020年である(厳密な月日についてはグラフからは不明なのでご了承いただきたい)。

 なお、このグラフで比較可能なのは、

  • コンピュータービジョン(CV)系のカンファレンス: CVPRICCVECCV
  • 自然言語処理(NLP)系のカンファレンス: NAACLACLEMNLP
  • 機械学習(ML)全般系のカンファレンス: ICMLICLRNeurIPS

という9個のトップ研究カンファレンスにおける論文リソースである(よって、全ての研究論文を調査したわけではなく、標本に偏りが存在する可能性はあるので注意してほしい)。

 今回は、全論文リソースから作ったグラフのみを見てみよう。

TensorFlow/PyTorch使用時のPyTorchの割合

 図2のグラフは、TensorFlowもしくはPyTorchのいずれかを使用している論文だけに絞って、PyTorchの方を利用した論文の割合を時系列で示したものである(それ以外のフレームワークの使用については調査対象外)。なお、左端にある目盛りの最上値は100%ではなく90%であることに注意してほしい。

図2 研究分野でのフレームワーク比較: TensorFlow/PyTorch使用時のPyTorchの割合(対象:全論文リソース) 図2 研究分野でのフレームワーク比較: TensorFlow/PyTorch使用時のPyTorchの割合(対象:全論文リソース)
引用元:Horace He氏のWebアプリ

 2019年から2020年の比較では、下記4つのカンファレンス論文のグラフ線が描かれている。

  • [CV系]CVPR 2019 → CVPR 2020: 66.52% → 78.72% (+12.2ポイント)
  • [NLP系]ACL 2019 → ACL 2020: 71.75% → 82.69% (+10.94ポイント)
  • [ML系]ICML 2019 → ICML 2020: 50.00% → 66.67% (+16.67ポイント)
  • [ML系]ICLR 2019 → ICLR 2020: 50.00% → 64.02% (+14.02ポイント)

 いずれもPyTorchの利用割合が10%17%ほど増加している。このように、2018年、2019年の急伸からはやや鈍化した印象だが、引き続き2020年中も論文でのPyTorchの採用(もしくはTensorFlowからの切り替え)が進んだ結果となった。順当にこの傾向が2021年も続くと仮定すれば、上記4つのカンファレンス論文の平均値は、2020年末は73%となるが、2021年末には80%以上にまで進む可能性があるだろう。

 以上の結果から、研究分野/論文でのPyTorchの強さがあらためて確認できた。その他にも興味深いグラフがあるので、興味がある方は引用元のHorace He氏のWebアプリを確認してみてほしい。

Kaggleでの実用数

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

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

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

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

 これを見ると、TensorFlowが、20ポイントほどPyTorchを上回っている。なお、「TensorFlowはディープラーニング目的でKerasと組み合わせて顕著に使用されている」とレポート記事で説明されている。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。