Skip to main content
QUICK REVIEW

[論文レビュー] Plumber: Diagnosing and Removing Performance Bottlenecks in Machine Learning Data Pipelines

Michael Kuchnik, Ana Klimovic|arXiv (Cornell University)|Nov 7, 2021
Parallel Computing and Optimization Techniques参考文献 32被引用数 9
ひとこと要約

Plumber は、リソース使用状況をトレースし、線形計画法を用いた自動最適化を実行することで、機械学習データパイプラインのパフォーマンスボトルネックを診断・解消するツールです。誤設定されたパイプラインに対して最大 47 倍の高速化を達成し、並列処理、プリフェッチ、キャッシュの最適化を知的に制御することで、既存の最先端のチューナーよりも 50% より高いエンドツーエンドのパフォーマンスを実現します。

ABSTRACT

Input pipelines, which ingest and transform input data, are an essential part of training Machine Learning (ML) models. However, it is challenging to implement efficient input pipelines, as it requires reasoning about parallelism, asynchrony, and variability in fine-grained profiling information. Our analysis of over two million ML jobs in Google datacenters reveals that a significant fraction of model training jobs could benefit from faster input data pipelines. At the same time, our analysis indicates that most jobs do not saturate host hardware, pointing in the direction of software-based bottlenecks. Motivated by these findings, we propose Plumber, a tool for finding bottlenecks in ML input pipelines. Plumber uses an extensible and interpretable operational analysis analytical model to automatically tune parallelism, prefetching, and caching under host resource constraints. Across five representative ML pipelines, Plumber obtains speedups of up to 47x for misconfigured pipelines. By automating caching, Plumber obtains end-to-end speedups of over 50% compared to state-of-the-art tuners.

研究の動機と目的

  • 機械学習学習用データパイプラインにおけるパフォーマンスボトルネックを特定・解消し、ハードウェアリソースの無駄を削減し、学習の遅延を低減すること。
  • 低レベルのシステム動作に関する専門知識が不要な状態で、並列処理、プリフェッチ、キャッシュといった重要なパフォーマンスノブの自動チューニングを実現すること。
  • 実行時リソース会計を用いた原理的で解釈可能かつ拡張可能な方法により、パイプラインの非効率性を診断すること。
  • 線形計画法を用いたキャッシュ統合と予測的パフォーマンスモデリングを組み合わせることで、既存の自動チューナーよりも優れた性能を達成すること。
  • MLの実務家が負担を軽減できるように、1行のコード統合でデータパイプラインの自動最適化を可能にすること。

提案手法

  • Plumber はトレーサーを用いて、パイプライン内の各オペレータのリソース使用状況(CPU、メモリ、ディスク)およびデータ処理レートをインストルメント化・測定する。
  • 本研究では、リソース会計済みレートという新規指標を導入し、各オペレータごとのリソース消費量とスループットを定量的に評価することで、正確なボトルネックの特定を可能にする。
  • パフォーマンス予測を線形計画法(LP)問題として定式化し、トレースされたレートを用いて実際のリソース使用量の 4 倍以内にシステム動作を束縛する。
  • グラフリライタコンponent は、LP の予測に基づき、並列処理、プリフェッチ、キャッシュの最適化をユーザーの干渉なしに自動的に適用する。
  • 本システムは透過的なフロントエンドとして設計されており、tf.data をベースにした任意のパイプラインに 1 行のコードで統合可能である。
  • 今後の最適化のための拡張性を備えており、分散処理やアクセラレータインフィードレベルのプロファイリングにも対応可能である。

実験結果

リサーチクエスチョン

  • RQ1実世界の ML 学習ジョブのうち、ハードウェアの飽和ではなくソフトウェアの誤設定による入力パイプラインのボトルネックが生じる割合はどの程度か?
  • RQ2最小限の手動作業で高い解釈可能性を備えた方法で、ML データパイプラインのパフォーマンスボトルネックをどのように診断できるか?
  • RQ3並列処理、プリフェッチ、キャッシュといったチューニングノブのパフォーマンスへの影響を、誤差が限界内に抑えられる統一された解析的モデルで予測できるか?
  • RQ4キャッシュ、プリフェッチ、並列処理の自動最適化によって、既存の最先端のチューナーよりもエンドツーエンドの学習速度がどの程度向上できるか?
  • RQ5最小限のユーザー設定で、データ集約的な ML 学習において、ほぼピークのハードウェア利用率を達成できるようなシステムを構築できるか?

主な発見

  • 200万件を超える ML ジョブの分析から、1ステップあたり最低1msの入力パイプライン停止が生じるジョブが62%にのぼり、広範なパフォーマンス劣化が確認された。
  • ボトルネックの大部分(60%以上)は、ハードウェアの飽和ではなく、最適でない設定によるソフトウェア要因に起因しており、自動チューニングの必要性が浮き彫りになった。
  • Plumber は、並列処理、プリフェッチ、キャッシュの自動チューニングにより、誤設定されたパイプラインで最大 47 倍の高速化を達成した。
  • 最適化ループにキャッシュを統合したことで、最先端のチューナーよりも 50% 以上のエンドツーエンドのパフォーマンス向上を達成した。
  • LP を用いたパフォーマンスモデルは、実際のリソース使用量の 4 倍以内に予測誤差を束縛し、信頼性が高く解釈可能なパフォーマンス推定を提供した。
  • Plumber は、既存の tf.data パイプラインに 1 行のコードで統合可能であり、アーキテクチャの変更なしに広範な利用が可能である。

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

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

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

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