BLOG

Azure Machine LearningによるMLコストの最適化

Table of contents

機械学習(Machine Learning:ML)イニシアチブのスケーリングにはコストがかかります。この記事では、MLにおける一般的な財務上の課題を概説し、Azure Machine Learning(AML)を使用して支出を最適化するための実用的な戦略を提供します。重要なポイントは、ポイント修正だけでは十分ではないということです:体系的なアプローチこそが、コストを効果的に管理する方法なのです。

MLOpsは高い

高いMLコスト:予算への負担を理解する

MLの開発と展開には、いくつかの固有の特徴があり、コストがかかる。

  • 最新のMLモデル、特にディープラーニングでは、膨大なデータセットを必要とする。このデータの保存、移動、処理はコストに大きく寄与する。
  • 多数の層を持つディープニューラルネットワークや、計算負荷の高い強化学習技術など、複雑なアルゴリズムそのものは、かなりの処理能力を必要とする。
  • GPUのような特殊で希少なハードウェアを訓練と推論の両方に使用すると、計算コストが割高になる。
  • MLの開発は反復的である。異なるハイパーパラメータ、異なるデータ分割、またはデータで何度も再トレーニングを行うことは、各実験の実行に追加の計算コストがかかることを意味する。例えば、ハイパーパラメータのチューニングを1回行うだけで、何百もの個別のトレーニングジョブが実行されます。
  • ML開発は複雑な 多段階プロセスであるデータの取り込み、クレンジング、変換、トレーニング、ハイパーチューニング、予測などなど。機械学習オペレーション(MLOps)プロセスでは、不必要な繰り返しや、コストを増加させるオペレーションが発生するリスクがある。

お客様から、"MLのトレーニングにはいくらかかるのですか?"と聞かれることがある。私は、これらの要因がコストを任意のレベルにまで引き上げる可能性があることを伝える:一回のLLMトレーニングで1億5千万ドル以上かかったこともありますし、トレーニング全体では数十億ドルかかったこともあります。LLMのトレーニングは1回で1億5千万ドル以上かかり、トレーニング全体では数十億ドルかかります。

コスト最適化のためのAML

ここでのポイントはMLOpsシステム全体に共通するものだが、AML自体がコスト削減に役立つ。マイクロソフトの包括的なクラウドベースのMLプラットフォームは、構築からトレーニング、デプロイ、継続的な管理まで、機械学習モデルのライフサイクル全体を効率化するように設計されている。AMLの各サービスは、RESTインターフェイスを通じて単独で使用することもできますが、相互に深く統合され、より広範なAzureエコシステムとも統合されます。AMLサービスは、効率性を追求した実績のある設計を実装しているため、サービス自体に費用を支払っている場合でも、DIYよりも安価にMLを実装できます。

ここでは、Large Language Models(LLM)やAzure Cognitive Services for VisionやTranslationのようなビルド済みのモデルについては割愛する。チューニングに使用できる粒度の細かい「ノブ」が少ないため、コストの最適化には異なるアプローチが必要になります。

インフラ・コスト要因

コストを効果的に管理するためには、予算がどこに配分されているかを理解することが極めて重要である。主なドライバーは、おおまかな順に以下の通りである:

  1. 計算:これは通常、最も大きな費用で、モデルのトレーニング中や予測結果を提供するために消費されるコンピュート(CPU、GPU)とメモリが含まれる。
  2. ストレージ:Azure Blob Storageは、Azure Container Registryのデータセット、モデル成果物、コンテナイメージに多用される。選択したストレージ層、冗長オプション、およびデータ量の多さが、コストに影響する。
  3. ネットワーク:中核となるトレーニングや予測プロセスでは極端なネットワークコストは発生しないはずだが、データのイグレス、VNetピアリング、ExpressRoute接続、NATゲートウェイの使用によって料金が蓄積される可能性がある。例えば、トレーニングのためにテラバイトの画像データをオンプレミスのストレージからAzure Blob Storageに転送したり、MLOpsワークフローのマイクロサービス間で頻繁にデータを交換したりすると、ネットワーク費用が発生する可能性がある。
  4. サービス:Azure AI Search、Document Intelligence、Bot ServiceなどのAzure SaaS APIの料金が含まれる:

MLコスト最適化の指針

FinOpsの考え方を取り入れることは、いくつかの基本原則を受け入れることを意味する。

何よりもまず、無駄を省くことだ。どのサービスを使うかといったアーキテクチャーの選択も重要だが、回避可能なコストは誤用から生じる:例えば、CPUで学習できるところをGPUで学習したり、高価なBlob Storage層に大量の未使用データを保存したりすることだ。

第二に、アーキテクチャを標準化する。これは、Azure仮想マシンのフリートを管理するのではなく、AML WorkspacesのCompute TargetsのようなAMLサービスをトレーニングに使用することを含みます。Azureチームは、コストを削減する効率的なシステムを構築しています:たとえば、AMLトレーニングでは、(自動スケーリングを自分で管理しない限り)継続的に支払うVMではなく、トレーニングに必要なコンピュートだけに料金を支払います。これはまた、新しいコードやデータが自動的にAMLパイプラインの実行をトリガーするContinuous Training(CT)パターンなど、標準的なワークフローを採用することも意味する。こうすることで、データの取り込み、トレーニング、検証、デプロイが必要なときに正確に行われ、過剰な実行や、プロセスが非効率になるほどの待ち時間が発生しなくなる。

第三に、最適化しすぎて"効率の幻想 "に陥らないことである。例えば、ストレージを節約するために訓練データを積極的に圧縮すると、訓練エポックごとに解凍に費やすCPU時間が大幅に増加するため、逆説的に全体的なコストが増加する可能性がある。

エンジニアの時間は高価なものであることを忘れてはならない。マイクロな最適化に過剰な労力を費やすことは避けよう。特定の最適化よりも、クリーンで保守性の高いアーキテクチャを優先することで、エンジニアの時間を有効に使いましょう:今は将来のニーズを予測することはできませんが、将来コストを削減するときが来たら、作業時間の配分を実現可能なアーキテクチャにしたいものです。

最後に、最大のコスト要因から最適化を反復することを忘れないこと。一回のサイクルですべての最適化を実施することはできないので、可能性の低いところから修正し、次に大きなコストがかかっているところを再度チェックするのがベストである。

コスト分析ツールを最大限に活用する

最初に目についたコスト超過をターゲットにしてはいけない。その修正に費やす時間は、他のことに費やした方がいいかもしれない。

DoiTクラウドインテリジェンス(console.doit.com)は、クラウド支出を把握・管理するための強力なツールをAzureユーザーに提供します。請求レポートやダッシュボードの作成、予算やアラートの設定、コスト異常の警告、コスト削減のための積極的な提案などを受けることができます。これらのツールを一貫して使用することは、傾向を特定し、異常値を強調し、コスト削減の最大の機会を見つけるための鍵となります。

トレーニング費用の最適化

トレーニングフェーズは、MLライフサイクルの中で最もリソースを消費し、結果として最もコストがかかる部分であることが多い。膨大なデータと計算能力を消費し、多くの反復サイクルを必要とする。

マシンの適切なサイジング:トレーニング中にAzure Monitorでリソースの使用率(CPU、GPU、メモリ)を監視することで、情報に基づいた意思決定を行うことができます。ハイエンドGPU(ND H100 v5シリーズなど)が常に十分に使用されていない場合、よりコスト効率の高いオプション(おそらくNCasT4_v3シリーズVM)に切り替えることは理にかなっています。

GPUは必要なときだけ使う。GPUでアクセラレーションしないモデルの場合は、CPUに最適化されたVM(Fシリーズなど)を選択する方が経済的です。GPU を使用する場合は、適切なバッチサイズや効率的なデー タローディングパイプラインを使用するなど、GPU の能力を引き出 すためにコードが完全に最適化されていることを確認します。

Azureスポット仮想マシン(低優先度VM)は 、優れた節約をもたらします。フォールトトレラントなトレーニングジョブ(システムはフォールトトレラントであるべきです!)の場合、Spot VMは従量課金と比較して最大90%のコスト削減が可能です。例えば、多くの独立したトライアルを含むハイパーパラメータのチューニングタスクに適しており、1つのトライアルの先取りがプロセス全体を危険にさらすことはありません。

開発環境

開発フェーズでは、AMLワークスペース内のJupyter NotebooksやVisual Studio Codeが、管理されたクラウドベースのワークステーションを提供する。自動シャットダウン・ポリシーにより、アクティブに稼動している時間に対してのみ料金を支払う。24時間365日償却するパワフルなラップトップや、シャットダウンを忘れない限り常に稼動しているVMとは異なる。もっと節約するには、重い作業をオフロードする:開発環境に強力なリソースがあるということは、1日中固定されたリソースにお金を払っているということです。例えば、ノートブックでトレーニングを実行するのではなく、自動スケーリングされたコスト効率の高いCompute Clusters上で実行されるAMLトレーニングジョブとして、大規模で長期にわたるトレーニングジョブを投入します。

データ保管

Azure上のMLOでは、Azure Blob Storageがオブジェクトストレージの標準だ。シンプルなローカルディスクから始めてマネージドディスクに移行するプロジェクトや、ローカルネットワークから始めてAzure Filesに移行するプロジェクトを見たことがあるが、これらはコストがかかる。アクセス頻度に応じて適切なアクセス階層(Hot、Cool、Archive)を選択することが重要である。ライフサイクル管理ポリシーを導入することで、プロセスの移行を自動化できる。ライフサイクル管理ポリシーを導入することで、プロセスの移行を自動化できる。例えば、新しいデータのみでトレーニングを行う場合、1ヶ月後に古いデータを自動的にアーカイブまたは削除する。

予想

モデルをトレーニングした後、予測(推論)を提供するためにモデルをデプロイします。AMLエンドポイントは 、組み込みのメトリクスに基づいて自動スケーリングすることでコストを削減します。トレーニングの場合と同様に、最小の効果的なインスタンスを選択することでもコストを削減できます。モデル共同ホスティング(マルチモデルデプロイメント)により、複数の小規模モデルが同じエンドポイントデプロイメントを共有できるため、モデルが連続して呼び出されたり、同じアプリケーションから呼び出されたりすることが多い場合、モデルごとのオーバーヘッドが削減されます。ただし、エンドポイントが使用されなくなった場合、自動スケーリングではリソースをゼロにすることはできないため、自分でシャットダウンする必要があります。トラフィックが非常に少ない推論アプリの場合は、エンドポイントのスケーリングをゼロにするか、Azure Container Apps または Azure Functions にデプロイする。

非リアルタイムのユースケースの場合、バッチ・エンドポイントはオンライン予測よりもかなり安価で、より優れたスループットを提供しますが、レイテンシーも高くなります。バッチサイズと基礎となる計算クラスタの構成を最適化することで、最高のコスト削減が実現します。

モニタリングコストとパフォーマンスの監視

AMLサービスには監視機能が組み込まれている。モニタリングは、高品質なモデルを作成するためのリソースを最大限に活用することで、コストを削減します。

主にAzure Monitorを通じて、リソースの使用率(CPU、GPU、メモリ)だけでなく、トレーニングジョブの時間、予測レイテンシ、およびQPSを追跡する> インフラストラクチャ監視の2つのタイプがあります。

対照的に、モデルモニタリングはF1スコアのようなモデル固有のメトリクスを追跡します。デプロイ後、このモニタリングはデータのドリフト、特徴の偏り、予測バイアスを検出するのに役立ち、再トレーニングに効果的にコストをかけるタイミングを決めることができます。例えば、不正検出モデルがドリフトし、再トレーニングが必要になるのは、取引額が徐々に変化したり、不正の種類が進化したりしたときだけで、それ以外は必要ないかもしれません。

すべてを結びつけるAMLパイプライン

AMLパイプラインは、ステップを効率的に結びつけることでMLのコストを削減し、反復タスクを自動化することでエンジニアリングコストを抑制します。複雑なMLワークフローを定義・管理するための堅牢なオーケストレーションにより、不要な実行ステップやデータの積み上げを防止します。機能には、並列化(ファンアウト/ファンイン処理、ハイパーパラメータのチューニングに有効)、条件付き実行(特定の条件が満たされた場合にのみステップを実行、例えば精度が設定されたしきい値を超えた場合にのみモデルをデプロイ)、キャッシュまたはコンポーネントの再利用(パイプラインステップの入力とコードが変更されない場合、キャッシュされた出力が再利用され、計算量が節約される)などがあります。

今すぐ行動を起こそう

MLのコストを最適化することは、インテリジェントなテクノロジーの選択と堅牢なFinOpsプロセスを融合させる継続的な取り組みです。AMLの機能をフルに活用し、健全なアーキテクチャの原則を遵守し、支出に対する継続的な警戒を維持することで、MLイニシアチブは予算に負担をかけることなく最大のビジネス価値を提供できるようになります。まず、最も重要なコスト要因を特定し、次の四半期にこれらの戦略のうち1つか2つを実施することから始めましょう。あなたの最終的な収益があなたに感謝することでしょう。

DoiTのクラウドアーキテクトとして、コストの最適化、セキュリティ、堅牢性などでお客様を支援しています。DoiTのクラウドインテリジェンス(アーキテクトもソフトウェアも同様)が、どのようにお客様の経験を向上させ、結果を導くことができるのか、今すぐ当社の専門チームとのデモと通話をご予約ください!

Schedule a call with our team

You will receive a calendar invite to the email address provided below for a 15-minute call with one of our team members to discuss your needs.

You will be presented with date and time options on the next step

JP form

This field is for validation purposes and should be left unchanged.