サーバーレス・コンピューティングとは、クラウド・プロバイダーがサーバーの割り当てとプロビジョニングを動的に管理するクラウド・コンピューティングの実行モデルである。開発者は、オペレーティング・システムやサーバー・ハードウェアのような基盤となるインフラを管理する必要なく、個々の機能としてコードを記述し、デプロイすることができる。サーバーは依然として使用されるが、その管理は完全に抽象化されるため、チームはアプリケーション・ロジックの構築に集中できる。これは、人工知能(AI)や機械学習(ML)プロジェクトを迅速に反復する上で特に有利であり、開発サイクルの短縮とリソースの効率的な利用を可能にする。
サーバーレスアーキテクチャを理解する
サーバーレスのセットアップでは、アプリケーションは多くの場合、特定のイベントによってトリガーされる独立した機能の集まりとして構成される。このモデルは一般的にFaaS(Function as a Service)として知られている。イベントには、HTTPリクエスト(API呼び出しなど)、データベースの変更、クラウドストレージへのファイルアップロード、キューシステムからのメッセージなどがある。イベントが発生すると、クラウド・プロバイダーは対応する機能を実行するために必要な計算リソースを自動的に割り当てる。実行が完了すると、これらのリソースはスケールダウンされ、保留中のリクエストがない場合はゼロになることが多い。このイベント駆動型の自動スケーリングアプローチは、サーバーが継続的に稼働し、アイドル状態のリソースや運用コストの上昇を招く可能性がある従来のアーキテクチャとは大きく異なる。これは、多くのAIユースケースの可変的な要求によく合致している。
AIとMLのメリット
サーバーレス・コンピューティングは、計算要求が頻繁に変化するAIやMLのワークロードに、説得力のある利点を提供する:
- 自動スケーラビリティ:予測不可能な負荷にシームレスに対応。例えば、予測を提供する推論エンジンは、突然リクエストが急増する可能性がある。サーバーレス・プラットフォームは、人手を介することなく、需要に応じてファンクション・インスタンスを自動的にスケールアップまたはスケールダウンし、一貫したパフォーマンスを保証する。これは、リアルタイムの推論を必要とするアプリケーションにとって極めて重要である。
- コスト効率:従量課金制。通常、機能によって実際に消費された計算時間に対してのみ、ミリ秒単位で課金されます。このため、アイドル状態のサーバー容量に関連するコストが発生せず、定期的なモデル・トレーニングや頻度の低いデータ処理ジョブのようなタスクを経済的に行うことができます。スケールメリットの追求
- 開発サイクルの高速化インフラ管理が不要になります。開発者は、データの前処理、特徴抽出、予測ロジックの実行など、特定のタスクのコードを書くことだけに集中できる。これにより、開発と展開が加速され、異なるモデルやハイパーパラメータ・チューニング戦略の迅速な実験が容易になりますUltralytics ガイド)。
- 簡素化されたオペレーション:運用のオーバーヘッドを削減します。オペレーティングシステムのパッチ適用、サーバー容量の管理、高可用性の確保などのタスクはクラウドプロバイダーが処理するため、MLのコアタスクにリソースを割くことができます。機械学習オペレーション(MLOps)の詳細については、こちらをご覧ください。
サーバーレス対関連概念
サーバーレス・コンピューティングを関連技術と区別することは重要だ:
- クラウド・コンピューティングとサーバーレスの比較 クラウド・コンピューティングとは、インターネットを介してコンピューティング・サービスを提供することである。サーバーレスとは、クラウド・コンピューティングの中の特定の実行モデルで、自動リソース管理とイベント駆動機能(FaaS)に重点を置き、サーバー管理を完全に抽象化したものである。IaaS(Infrastructure as a Service)のような他のクラウドモデルでは、ユーザーが仮想マシンを管理する必要がある。
- コンテナ化とサーバーレスの比較: Dockerのようなコンテナ化ツールは、アプリケーションとその依存関係をパッケージ化する。Kubernetesのようなオーケストレーション・プラットフォームは、これらのコンテナのデプロイ、スケーリング、管理を自動化する。KubernetesはベアメタルやVMを管理するのに比べて運用負荷を軽減する一方で、基盤となるクラスタ・インフラを管理することに変わりはない。サーバーレス・プラットフォームは、このレイヤーを完全に抽象化します。 UltralyticsDockerを使用する方法をご覧ください。
- エッジ・コンピューティングとサーバーレスの比較 エッジ・コンピューティングは、データソース(「エッジ」)に近いデバイスでローカルにデータを処理し、待ち時間と帯域幅の使用を削減する。サーバーレス・コンピューティングは通常、中央集中型のクラウド・データセンターで機能を実行する。エッジAIデバイス(NVIDIA Jetson上で動作するようなもの)が初期処理やフィルタリングを行い、より複雑な分析や集計のためにクラウド上のサーバーレス機能をトリガーするかもしれない。エッジ処理とクラウド処理を組み合わせたAI搭載セキュリティカメラについては、こちらをご覧ください。
代表的なサーバーレスプラットフォームには、AWS Lambda、Google Cloud Functions、Azure Functionsなどがある。これらのサービスは、サーバーレスAI/MLアプリケーションを効率的に構築・実行するために必要なインフラを提供し、多くの場合、ストレージ、データベース、メッセージング用の他のクラウドサービスと統合されている。Ultralytics HUBのようなプラットフォームは、サーバーレスセットアップを含む様々なアーキテクチャ内でのモデルのデプロイと管理をさらに効率化することができる(HUBのドキュメントを参照)。