(翻訳/解説)TensorFlow Serving
翻訳 : (株)クラスキャット セールスインフォメーション
日時 : 02/17/2016
* 本ページは、TensorFlow Serving の GitHub ページの説明を翻訳し、適宜補足説明したものです:
https://github.com/tensorflow/serving
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
TensorFlow Serving
TensorFlow Serving は機械学習モデルに役立つオープンソース・ソフトウェア・ライブラリです。機械学習の推論の局面を扱い、訓練後のモデルを使用してそれらのライフタイムを管理し、高いパフォーマンスと参照カウントを持つルックアップ・テーブルを通してクライアントにバージョン(管理された)・アクセスを提供します。
複数のモデル、あるいは同じモデルの複数のバージョンさえも同時にサービス提供可能です。柔軟性は新しいバージョンを canarying し、クライアントを新しいモデルかバージョンに不可分ではなく移行し、そして A/B テスト・実験モデルを容易にします。
(訳注 : canarying は現行バージョンと平行して新バージョンをリリースすることです。)
主要なユースケースは高いパフォーマンスの製品サービス提供ですが、同じサービス提供インフラはまた、推論結果を事前計算したりモデル・パフォーマンスを解析するためのバルク処理(例えば map-reduce)ジョブでも使用可能です。両者のシナリオにおいて、GPU は本質的に推論スループットを上昇させることができます。TensorFlow Serving はスケジューラとともに提供され、これは個々の推論リクエストを構成可能な遅延制御とともに GPU 上のジョイント実行のためのバッチとしてグループ化します。
TensorFlow Serving は TensorFlow モデルへの革新的なサポートを(自然に)持ちますが、その核においてネイティブ API へ通過させることで任意のバージョン(管理された) 項目 (= servables) を管理します。訓練された TensorFlow モデルに加えて、servables(= バージョン管理可能な項目)には埋め込み、語彙そして特徴変形構成のような、あるいは TensorFlow ベースではない機械学習モデルでさえ、推論に必要な他の資産も含むことができます。
アーキテクチャは高度にモジュール化されています。幾つかの部品を(例えばバッチ・スケジューリングのような)個別に使っても良いですし、全ての部品を一緒に使うこともできます。
多くのプラグイン・ポイントがあります;システムを拡張するためのおそらくはもっとも有用な方法は :
(a) servable の新しいタイプを作成する;
(b) servable バージョンのカスタムソースを作成する ことでしょう。
以上