Googleは、大規模な機械学習モデル開発プロジェクトを支援するソフトウェアである「TensorFlow Serving」をオープンソースコミュニティに公開した。
GoogleのソフトウェアエンジニアNoah Fiedel氏は米国時間2月16日、リリースを発表するブログ記事で、このソフトウェアは機械学習モデルの高性能サービスシステムであり、特に本番環境への導入に適していると述べている。
「TensorFlow」は、「Google Photos」「Google Translate」といった有名なアプリケーションや、「Inbox」の「Smart Reply」機能、Googleアプリの音声認識などで使用されている機械学習ソフトウェアだ。
TensorFlowには、単にこういったアプリケーションに機能を追加する以上の可能性がある。Googleによれば、この技術は機械学習以外にも、複雑なデータセットを分析する必要のある研究者などに役立つという。
しかし、機械学習ソフトウェアには多くの課題がある。機械学習ソフトウェアの実装に関わる課題には、高いメンテナンスコストや、データの依存性、隠れたフィードバックループの存在などが含まれる。
GoogleがTensorFlowをオープンソース化する計画について発表したのは2015年11月だ。開発者はこれを利用することによって、ニューラルネットワークの力を利用してソフトウェアを改善することができるようになった。
しかし、TensorFlowのオープンソース化によって起こることはそれだけではない。このようなソフトウェアをオープンソース化することで、この萌芽期にある技術の改善に興味を持つ開発者は増えるだろうが、これは、この分野に新たなスタートアップ企業や新たな人材が登場することにもつながる。そして、自社の製品ラインを改善することを望んでいるGoogleのような企業は、それらのスタートアップ企業や人材に興味を持つ可能性が高いということだ。
TensorFlowはApache 2.0ライセンスでリリースされており、一般的なPCやスマートフォン向けに設計されているが、Fiedel氏によれば、TensorFlow Servingは「現実世界のデータに基づいて、時間の経過とともに変化する」複数のモデルを大規模に取り扱うのに向いているという。
TensorFlow Servingは、そのような環境における機械学習モデルのライフサイクル管理やアルゴリズムの実験、GPUリソースの効率利用などを支援するものだ。
このソフトウェアを使用すると、ユーザーは同じサーバアーキテクチャと同じAPIを使用したまま、新しいモデルを導入して実験を行うことができる。TensorFlow ServingはTensorFlowとの組み合わせに最適化されているが、他のタイプのモデルにも拡張可能だ。この技術を使えば、新しいデータが利用できるようになり次第、新しいモデルを生成することや、複数のパイプライン、モデル、プロジェクトを同時に実行することが可能になる。
TensorFlow ServingはC++で書かれており、TensorFlowと同じくApache 2.0ライセンスで公開されている。また、Linuxもサポートされている。
Googleは性能について、TensorFlow Serving導入によるオーバーヘッドは最小限と延べ、実施したベンチマークでは、16 vCPUのIntel Xeon E5(2.6GHz)マシンで、gRPCとTensorFlowの推論処理時間を除いて、毎秒10万ものクエリ(QPS)を記録したとしている。
興味のあるユーザーはGitHubからコードを入手できる。
自社製品の改良に機械学習を利用しているのは、Googleだけではない。Facebookも2015年に自社のAIハードウェアをオープンソース化する計画を発表しており、Microsoftも2016年1月に、同社の「Computational Network Toolkit」(CNTK)をGitHubでオープンソースとして公開している。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。