サーバーレスコンピューティング
サーバーレスコンピューティングが、スケーラビリティ、コスト効率、迅速なデプロイメントでAI/MLに革命をもたらす様子をご覧ください。よりスマートに、より速く、今すぐ構築しましょう!
サーバーレスコンピューティングは、クラウドプロバイダーがサーバーの割り当てとプロビジョニングを動的に管理するクラウド実行モデルです。このアプローチにより、開発者は基盤となるサーバーインフラストラクチャについて考慮せずに、アプリケーションやサービスを構築および実行できます。サーバーのプロビジョニングと管理を行う代わりに、開発者は関数形式でコードをデプロイします。これらの関数はプロバイダーによってオンデマンドで実行され、1日に数件のリクエストから1秒あたり数千件のリクエストまで自動的にスケーリングされます。この従量課金制モデルは、機械学習(ML)アプリケーションでよく見られるシナリオである、変動または予測不可能なトラフィックを持つワークロードに非常に効率的です。
サーバーレスコンピューティングはどのように機能するか
サーバーレスコンピューティングの中核は、Function-as-a-Service (FaaS)モデルです。この設定では、アプリケーションロジックは、特定のイベントによってトリガーされる、小規模で単一目的の関数に分割されます。イベントは、WebアプリケーションからのHTTPリクエスト、キュー内の新しいメッセージ、またはクラウドストレージにアップロードされるファイルなどです。
トリガーイベントが発生すると、クラウドプラットフォームは対応する機能を即座に実行します。プラットフォームは、コンピュートインスタンスのプロビジョニング、オペレーティングシステムの管理、高可用性とスケーラビリティの確保など、リソース管理のあらゆる側面を処理します。関数の実行が完了すると、リソースは解放されます。これにより、アイドル状態のサーバー時間がなくなり、アプリケーションが消費する正確なコンピュートリソースに対してのみ料金が発生します。これは、最新のMLOpsの基本的な原則です。
AIと機械学習における応用
サーバーレスアーキテクチャは、AI/MLライフサイクルのさまざまな段階、特にモデル推論に最適です。
- 自動データパイプライン: サーバーレス関数は、データ前処理タスクを自動化できます。たとえば、新しい画像がAmazon S3のようなストレージサービスにアップロードされるたびに、関数をトリガーできます。関数は、画像を自動的にリサイズし、ピクセル値を正規化して、モデルトレーニングの準備ができた形式で保存できます。
- 費用対効果の高いモデル提供: 多くのAIアプリケーションは、 постоянный な高容量処理を必要としません。コンピュータビジョンモデルのサーバーレスエンドポイントを使用すると、 постоянно に実行され、多くの場合高価なサーバーを維持することなく、Ultralytics YOLOのようなモデルをデプロイできます。この関数は、リクエストを処理するためにオンデマンドで起動し、その後シャットダウンするため、運用コストを大幅に削減できます。このアプローチは、断続的な使用パターンを持つアプリケーションのモデルのデプロイを簡素化します。
実世界の例
- オンデマンド画像分析: モバイルアプリで植物の写真をアップロードして識別できます。写真がアップロードされるたびに、API Gateway経由でサーバーレス機能がトリガーされます。この機能は、画像分類モデルをロードし、写真を分析して植物の種類を識別し、結果をユーザーのアプリに返します。このプロセス全体は、専用サーバーなしで数秒で完了します。
- リアルタイムチャットボット処理: カスタマーサービスチャットボットでは、各ユーザーメッセージは、サーバーレス関数をトリガーするイベントです。この関数は、自然言語処理(NLP)モデルを呼び出して、ユーザーの意図を理解します。分析に基づいて、別の関数がトリガーされてデータベースにクエリを実行したり、別のAPIを呼び出したりする場合があります。イベント駆動型アーキテクチャに従います。
サーバーレスと関連概念の比較
サーバーレスコンピューティングと関連技術を区別することが重要です。
- クラウドコンピューティング対サーバーレス: クラウドコンピューティングは、インターネットを介したコンピューティングサービスの広範な提供です。サーバーレスは、自動リソース管理を重視し、サーバー管理を完全に抽象化する、クラウドコンピューティング内の特定の実行モデルです。Infrastructure as a Service(IaaS)などの他のクラウドモデルでは、ユーザーが仮想マシンをプロビジョニングおよび管理する必要があります。
- コンテナ化 vs. サーバーレス: Dockerのようなコンテナ化ツールは、アプリケーションとその依存関係をパッケージ化します。Kubernetesのようなオーケストレーションプラットフォームは、これらのコンテナのデプロイとスケーリングを自動化します。これにより運用負荷は軽減されますが、依然として基盤となるクラスタインフラストラクチャを管理する必要があります。サーバーレスプラットフォームは、このレイヤーを完全に抽象化し、関数コードのみを管理します。UltralyticsでDockerを使用する方法をご覧ください。
- エッジコンピューティング vs. サーバーレス: エッジコンピューティングは、データソースの近くのデバイスでローカルにデータを処理することを含みます。対照的に、サーバーレスコンピューティングは、集中型クラウドデータセンターで関数を実行します。これら2つは補完的です。エッジAIデバイス(NVIDIA Jetsonで実行されているものなど)は、初期フィルタリングを実行し、より集中的な分析のためにクラウドでサーバーレス関数をトリガーする場合があります。
主要なサーバーレスプラットフォームには、AWS Lambda、Google Cloud Functions、およびAzure Functionsが含まれます。これらのサービスは、サーバーレスAI/MLアプリケーションを効果的に構築および実行するためのインフラストラクチャを提供します。Ultralytics HUBのようなプラットフォームは、サーバーレスセットアップを含むさまざまなアーキテクチャ内でのモデルのデプロイメントと管理をさらに効率化できます。