Skip to main content
QUICK REVIEW

[論文レビュー] TensorFlow-Serving: Flexible, High-Performance ML Serving

Christopher Olston, Noah Fiedel|arXiv (Cornell University)|Dec 17, 2017
Machine Learning and Data Classification参考文献 7被引用数 95
ひとこと要約

TensorFlow-Serving は、ライブラリ、標準バイナリ、ホスト型サービス(TFS 2)を備えた柔軟で高性能な ML サービングフレームワークを提供し、Google および Google Cloud での効率的なモデルライフサイクル管理、バッチ処理、マルチモデルホスティングを実現します。

ABSTRACT

We describe TensorFlow-Serving, a system to serve machine learning models inside Google which is also available in the cloud and via open-source. It is extremely flexible in terms of the types of ML platforms it supports, and ways to integrate with systems that convey new models and updated versions from training to serving. At the same time, the core code paths around model lookup and inference have been carefully optimized to avoid performance pitfalls observed in naive implementations. Google uses it in many production deployments, including a multi-tenant model hosting service called TFS^2.

研究の動機と目的

  • 本番環境向けの ML モデルサービング基盤の必要性を動機づける。
  • 複数の ML プラットフォームとモデルライフサイクルをサポートするアーキテクチャ設計を説明する。
  • 安全なモデルアップグレード、Canary およびロールバック、効率的なメモリ管理の仕組みを提示する。
  • ホスト型サービス(TFS 2)を説明し、モデルデプロイとルーティングを自動化する方法を説明する。

提案手法

  • C++ ライブラリ、標準サーバーバイナリ、ホスト型サービスという三層設計を説明する。
  • Sources、Source Routers、Source Adapters、および aspired versions API を使用した Manager によるモデルライフサイクル管理を実装する。
  • availability- または resource-preserving な遷移ポリシーと tail-latency 最適化を備えた AspiredVersionsManager を導入する。
  • 低レベルのテンソルインターフェイスや tf.Example ベースの上位 API を含む複数の推論 API を提供し、デバッグと品質チェックのためのログを行う。
  • 複数のキューをサポートし、モデル/バージョンの動的サービングを可能にするコア・バッチング ライブラリを用いたインターリクエスト・バッチ処理を開発する。
  • より使いやすく、自動的なベストプラクティスの適用を実現する canonical バイナリのデプロイとホスト型サービス(TFS 2)を提供する。

実験結果

リサーチクエスチョン

  • RQ1基礎となる ML フレームワークに依存しない汎用的な ML モデルサービングシステムをどのように設計するか。
  • RQ2モデルバージョンをどのように読み込み、切り替え、最小遅延で安全に Canary テストを行いロールバックするか。
  • RQ3GPU/TPU 推論で高スループットを達成しつつテールレイテンシを低く保つバッチングとスレッド戦略は何か。
  • RQ4ホスト型サービスとしてのサービング基盤を自動ルーティングとリソース管理付きで提供するにはどうするか。
  • RQ5新しいバージョンを提供する前にエンドツーエンドの ML パイプライン品質チェックをどのような仕組みで保証するか。

主な発見

  • ライブラリ、バイナリ、ホスト型サービスは、マルチモデル・マルチテナント構成を含む多様なデプロイニーズをカバーする。
  • AspiredVersionsManager によって Canary およびロールバックのワークフローが有効化され、新しいバージョンを本格展開前に安全に検証できる。
  • TensorFlow-Serving は RPC/TensorFlow レイヤーを測定から除外した場合、1コアあたり約 100,000 リクエスト/秒を処理できる。
  • Google レベルの採用には hundreds of projects と tens of millions の推論がユーザー全体で発生している。
  • TFS 2 はモデルの割り当てをサービングジョブへ自動化し、 Canary/rollback を実行し、遅延の急増を緩和するためにグローバル状態を Spanner に依存させ、ヘッジリクエストを用いている。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。