Simple Science

最先端の科学をわかりやすく解説

# コンピューターサイエンス# 機械学習

マルチステージ推論でリアルタイムの意思決定を改善する

プロセスをシンプルにしてリアルタイムML予測を強化する新しいアプローチ。

― 1 分で読む


ML推論システムの最適化ML推論システムの最適化ーマンスを向上させる。マルチステージ推論戦略を通じてMLパフォ
目次

多くの機械学習(ML)アプリケーションは、中規模のデータを使ってリアルタイムで決定を下すんだけど、即時の結果を求めると全体のプロセスが遅くなることがよくあるんだ。通常、MLシステムはメインのプロダクトコードから分離されていて、特別な呼び出しを通じてアクセスされるんだけど、これが遅延を引き起こし、余分な処理能力を消費することがある。そこで、推論プロセスをシンプルにして、プロダクトコードに直接組み込むことで、ネットワークを介したコミュニケーションにかかる時間を減らすことにしたんだ。

我々の調査では、扱う入力の約半分がこの最適化の恩恵を受けられることが分かったし、残りの半分はまだ元のモデルを使えるみたい。プロセスを改善して、トレーニングと推論のステップに自動化されたML技術を使うことで、予測にかかる時間を約30%短縮できて、CPUリソースとネットワークトラフィックの大幅な節約につながった。これは、毎秒多数のリアルタイムの決定を扱うので特に重要なんだ。

洗練されたMLツールが増えてきたことで、開発者たちは大量のデータを扱える堅牢で効率的なMLシステムを作ろうと頑張ってる。多くの従来のシステムも、どのように動作するかを考慮することでML機能を追加できるんだ。これによって、不要な作業を避けられて、システムがスムーズにやり取りできるようになるんだよ。さらに、ユーザーの行動や好みを理解することで、ユーザーエクスペリエンスを向上させることができる。

でも、データは時間とともに変化するから、モデルを継続的に再トレーニングしてそのパフォーマンスに目を光らせる必要があって、これがソフトウェア開発プロセスを複雑にすることがある。管理しやすくしてパフォーマンスを向上させるために、MLコードはデータ収集、モデルのトレーニング、リアルタイム予測といった異なる部分に分けられ、特別な呼び出しを通じてメインのプロダクトコードに接続されることが多い。

我々の環境では、システムの部品を分けることでプロダクトコードとML側の間に呼び出しを行うと遅延が生じることがわかった。だから、より早く、煩わしさを減らして決定を下せるようにシステムを改善しようとしたんだ。最初の推論段階ではシンプルなモデルを使い、第二段階ではより複雑なモデルにフォールバックできるようにした。

我々の仕事の重要な焦点はリアルタイム推論だ。これは、推薦システムや商品のランキングなど、さまざまなアプリケーションで多くのリソースを消費することが多い。これらのアプリケーションでは、300ミリ秒未満で予測を行う必要があり、かかる時間を減らすことで全体のリソース使用量を削減できるんだ。

簡単なモデルと深層学習モデルを比較すると、簡単な選択肢の方がこれらの状況ではパフォーマンスが良いことがわかった。特に標準のCPUで実行される場合はそうだ。このことから、プロダクトコード内で簡単なモデルで特定の予測をすぐに評価できれば、時間を節約できて、必要な時だけより複雑なモデルを使うことができるってことになる。

我々のアプローチでは、マルチステージ推論と呼ぶものを開発した。これにより、さまざまなタブラー形式のデータセットで良い結果を得ることができる。最初の段階のモデルは、特別な呼び出しを通じてアクセスされる第二段階のモデルよりもシンプルに設計されている。具体的には、PHPを使ってプロダクトコードを書いたから、最初の段階のモデルを統合しやすかった。

最初の段階のモデルは、トレーニング中にシンプルである必要はない。そこの部分では高品質なMLパッケージを使っているんだ。大きな課題は、どの入力をどのモデルで処理するかを決定することだ。

我々の戦略では、特徴に基づいて入力を異なるグループに分けている。このようにして、これらのグループに対して簡単なモデルを適用することができ、その特定の入力に対してうまく機能することを確認できるんだ。例えば、2つの特徴を持つデータセットがあると想像してみて。最初の印象では、これらのデータポイントは簡単には分けられないかもしれないけど、小さなグループに分けることで、よりシンプルな境界を見つけて、簡単に分類できるようになる。

このアイデアが我々の最初の段階のモデルの基盤となっていて、これはビンを使ったロジスティック回帰(LRwBins)と呼んでいる。このモデルは、最初の推論段階と、より複雑な第二段階のモデルを組み合わせている。最初のステップは、特定した最も重要な特徴に基づいてデータを小さなグループに分け、その後、ロジスティック回帰モデルをトレーニングしてそれらのグループを扱うことだ。

次に、各グループの予測を行うためにどのモデルを使うかを決める必要がある。モデルのパフォーマンスを検証セットで評価して、どのように予測を配分するかを決めるんだ。そして、新しいデータが入ってきたときには、それを正しいグループにマッピングして、関連するモデルを使って推論することができる。

この意思決定プロセスを効果的にするために、モデルのパフォーマンスメトリクスに目を向けている。最初の段階のモデルが第二段階のモデルと比較してどれだけ良いかを基準にして、これらのグループをソートすることによって、効果的に作業負荷を分配できて、より速くシンプルなモデルによって最大限の予測数を確保しつつ、必要に応じてより複雑なモデルに頼ることができる。

この全てにおいて、自動化されたMLの役割は重要だ。グループの形成とモデルのパフォーマンスを最適化する方法を決定するのに役立つ。これを利用してパラメータを微調整し、モデルを効率的に展開するための最も情報に基づいた決定を行えるようにしている。

この方法の実践的な実装は、かなりのメリットを示している。第二段階のモデルを入手可能なすべてのデータでトレーニングすることで、シンプルなモデルがうまく機能しないときに信頼できるバックアップオプションを持てる。すべてのトレーニングで高品質なMLパッケージを使いながら、最初の段階の推論をプロダクトコード内で簡単にアクセスできるようにしているんだ。

AutoMLを導入することで、パラメータの調整や特徴の選択のプロセスも効率化して、二段階のアプローチのパフォーマンスを効果적으로バランスさせることができる。目標は50%以上の入力カバレッジを達成し、パフォーマンスの損失を最小限に抑えること。これがかなりの時間とリソースの節約につながるんだ。

さまざまなデータセットを使って実験を行い、我々のシンプルなモデルとXGBoostのようなより複雑なオプションを比較した。結果は、LRwBinsモデルがより洗練されたモデルより常に優れているわけではないけれど、かなりのデータを効率的に処理するための有用な選択肢を提供して、パフォーマンスの低下を最小限に抑えることができた。

全体を通して、我々のマルチステージ推論アプローチは、レイテンシとリソース使用量の改善にかなり効果的であることがわかった。これにより、より早く決定を下すことができるだけでなく、システムの作業負荷を最小限に抑え、データをより効率的に扱えるようになった。

作業を進める中で、我々の方法が多くのアプリケーションにうまく機能する一方で、注意すべき課題もあることに気づいた。一部のデータセットでは、シンプルなモデルを使ってデータを分類しようとすると、予期しない急激なパフォーマンスの低下が見られ、特定のケースに対して適切なモデルを見つけることが重要だということを強調している。

我々のアプローチは、ハードウェアアクセラレーターとの互換性も示していて、将来的な開発の有望なオプションになるかもしれない。異なるハードウェア向けにモデルを最適化することで、さらなるパフォーマンス向上や予測プロセス全体の効率化が可能になる。

まとめると、我々のマルチステージ推論に関する研究は、MLアプリケーションにおけるパフォーマンスと効率のバランスを取ることの重要性を浮き彫りにしている。最初の段階のシンプルなモデルをプロダクトコードに直接組み込むことで、速度とリソース使用量の大幅な改善を実現し、効率的により多くの予測を処理できるようにしている。

入力カバレッジを慎重に考慮し、自動化されたML技術を効果的に活用することで、製品コードそのものを圧迫することなく私たちのニーズを満たす強固なシステムを確保できる。このような思慮深い設計が、商業環境やより広範なデータ駆動型の取り組みにおいて、MLシステムの能力をさらに拡大し続けるだろう。

オリジナルソース

タイトル: Efficient Multi-stage Inference on Tabular Data

概要: Many ML applications and products train on medium amounts of input data but get bottlenecked in real-time inference. When implementing ML systems, conventional wisdom favors segregating ML code into services queried by product code via Remote Procedure Call (RPC) APIs. This approach clarifies the overall software architecture and simplifies product code by abstracting away ML internals. However, the separation adds network latency and entails additional CPU overhead. Hence, we simplify inference algorithms and embed them into the product code to reduce network communication. For public datasets and a high-performance real-time platform that deals with tabular data, we show that over half of the inputs are often amenable to such optimization, while the remainder can be handled by the original model. By applying our optimization with AutoML to both training and inference, we reduce inference latency by 1.3x, CPU resources by 30%, and network communication between application front-end and ML back-end by about 50% for a commercial end-to-end ML platform that serves millions of real-time decisions per second.

著者: Daniel S Johnson, Igor L Markov

最終更新: 2023-07-21 00:00:00

言語: English

ソースURL: https://arxiv.org/abs/2303.11580

ソースPDF: https://arxiv.org/pdf/2303.11580

ライセンス: https://creativecommons.org/licenses/by-nc-sa/4.0/

変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。

オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。

類似の記事

コンピュータビジョンとパターン認識ハイブリッドビジョントランスフォーマーにおける効率的な量子化の新しい方法

Q-HyViTは、ハイブリッドビジョントランスフォーマーのモデル精度を向上させつつ、リソースの要求を減らすよ。

― 1 分で読む