TensorFlowは、Google Brainチームによって開発され、2015年11月に公開されたオープンソースの深層学習フレームワークである。これは、ニューラルネットワークをテンソル演算の計算グラフとして定義し、CPU、GPU、Google独自のTPUチップ上で効率的に訓練する方法を提供し、2010年代後半にPyTorchと並ぶ、2大深層学習フレームワークの1つとなった。
歴史
TensorFlowは、Googleが大規模ニューラルネットワーク訓練に使用していた、より古く柔軟性に欠ける内部システムであるDistBeliefの後継である。2015年のオープンソース公開、続く2017年の安定版1.0リリースにより、Googleの大規模深層学習ツールが初めて外部の研究者や企業に利用可能となり、深層学習を学術研究室を超えた主流の工学分野として普及させる一助となった。TensorFlowの当初の設計は、定義してから実行する静的計算グラフ方式を採用していた。ユーザーはまず演算の完全なグラフを構築し、その後それを実行するというアプローチで、これにより積極的な性能最適化と容易なデプロイが可能となったが、デバッグやモデルアーキテクチャの反復は、2016年にPyTorchが導入した動的グラフ方式よりも煩雑であった。Googleは2019年にTensorFlow 2.0でこれに対応し、即時実行の動的実行をデフォルトとし、より高水準でユーザーフレンドリーなAPIであるKerasを主要インターフェースとして統合した。
エコシステム
コアの訓練ライブラリに加えて、TensorFlowのエコシステムには、モバイルおよびエッジAIデプロイ用のTensorFlow Lite、ウェブブラウザでモデルを実行するためのTensorFlow.js、本番機械学習パイプライン用のTensorFlow Extended、そして訓練監視用に広く使用される可視化ツールであるTensorBoardが含まれていた。元々独立したプロジェクトであったKerasは、TensorFlowと緊密に統合され、推奨される高水準APIとなり、初心者が低水準のグラフコードを直接書かずにモデルを定義・訓練するための障壁を低くした。
研究シェアの低下と現在の状況
TensorFlowの初期の支配にもかかわらず、PyTorchのより研究者向けの動的実行モデルは、2010年代後半から2020年代初頭にかけて学術研究のPyTorchへの着実な移行を促し、2022年頃までに主要な機械学習会議での新規論文の大半がTensorFlowではなくPyTorchを使用するようになった。TensorFlowは、その成熟度とGoogle支援のツールにより、一部の本番環境やモバイルデプロイの文脈でより強い存在感を維持し、移行前に構築された業界システムやGoogle内部で広く使用され続けた。2020年代半ばの時点で、TensorFlowは、大規模ニューラルネットワーク訓練を主流の工学実践として確立し、多くの影響力のある初期の深層学習システムを訓練したフレームワークとして一般的に認識されている。一方で、PyTorchや、非常に大規模な訓練にはGoogle自身のJAXライブラリが、Google内外での新たな大規模言語モデルおよび基盤モデル開発におけるより顕著な選択肢となっている。