SEEN が Google Kubernetes Engine を使用して出力を 89 倍に拡大し GPU の費用を 66% 削減した方法
Google Cloud Japan Team
※この投稿は米国時間 2023 年 5 月 20 日に、Google Cloud blog に投稿されたものの抄訳です。
SEEN は、パーソナライズ動画のビジネスを行っています。
ユニークかつ高精細な動画を大量にレンダリングしてストリーミングする必要があるさまざまなクライアントにサービスを提供しており、名前、性別、購入履歴などのデータポイントを活用してユーザーや構成員に直接語りかける動画を実現しています。
キャンペーンによっては、数日間または数時間で数十万本から数百万本もの動画をレンダリングしてストリーミングする必要があります。そのために、Google Cloud と Google Kubernetes Engine(GKE)を基盤とした、適応性の高いスケーラブルで効率的なクラウドベースのアーキテクチャを活用しています。
このブログでは次の点について説明しています。
以前のベアメタル アーキテクチャから、Google Cloud と GKE を基盤とした新しいクラウドベースのアーキテクチャに切り替える必要が生じた理由
クラウド サービスのパートナーとして Google Cloud を選んだ理由
新しいアーキテクチャの設計と実装に Google Cloud がどのように役立ったのか。また、その内容
Google Cloud と GKE を活用することで得られた、定量的、定性的なメリット
では、詳しく見ていきましょう。
課題: パーソナライズ動画を迅速かつ大規模にレンダリングする
どのようなスタートアップにも野心的な目標が必要です。
SEEN は、数百万本のパーソナライズ動画をわずか数秒間でレンダリングし、数百万人にストリーミングしようとしています。
野心的な目標ですが、聞こえの良いよくある「ムーンショット」ではありません。この目標を達成することが、当社の成長や将来にとって重要なのです。
その理由は次のようなものでした。
SEEN を立ち上げた当初は、パーソナライズ動画のレンダリングとストリーミングをあまり多く必要としない、小規模なクライアントが対象でした。
こうしたクライアントにサービスを提供するために、コロケーション型のマシンをベースとした基本的なアーキテクチャを構築しました。このシステムは、数週間にわたって送信される映画品質のパーソナライズ動画を数千本レンダリングしてストリーミングすることができました。しかし、手作業が多く運用に時間がかかるため、迅速性に欠け、大規模な対応もできませんでした。
会社が成長し、大きなプロジェクトを抱える大企業が対象になるにつれ、この従来のアーキテクチャが大きな問題になっていきました。そうした新しいクライアントにサービスを提供するには、大量のパーソナライズ動画をはるかに速く生成しストリーミングする必要があったのです。たとえば、数日間で 180 万本の動画を必要とするクライアントもあれば、1 日で 1 億本の動画を必要とするクライアント(フィットネス アプリ)もありました。
こうしたスピードと規模のプロジェクトは、従来のアーキテクチャでは実現不可能でした。しかし SEEN を一段と成長させるには、企業クライアントを獲得してそのようなプロジェクトに対応する方法を見つける必要がありました。それには従来のシステムを、現代的で効率の良いスケーラブルなクラウドベースのアーキテクチャで一から作り直さなければなりませんでした。
そこで、次のようにして対応しました。
新しいパートナー探し: Google Cloud を選んだ経緯と理由
基本的なアーキテクチャを作り直す必要があるとわかり、すぐにクラウド サービス プロバイダを探し始めました。適したプロダクトとサポートを提供している適切なパートナーを見つければ、多くの問題を解決でき、新しい動画レンダリング システムの設計、構築、デプロイのプロセスを加速できるということはわかっていました。
プロバイダの検討にあたり、理想的なクラウド サービス パートナーに求めるものをリストアップしました。内容は次のとおりです。
基本: サステナビリティ、セキュリティ、GDPR などの懸念事項を軽減できるヨーロッパの現地拠点(当時のクライアントはほとんどがヨーロッパに所在していました)
次世代ハードウェア: NVIDIA GPU、Kubernetes プロダクト、GPU タイム シェアリングなどの新しい技術ソリューション、ロードマップ上でより多くの NVIDIA プロダクトを提供しているもの
手厚いサポート: システムの一般的な問題もニッチな問題も解決できる直接的な協力とガイダンス
最後の項目が、サービス プロバイダを選定する際の鍵になりました。当時、当社は開発者 4 人という少数精鋭のチームでした。クラウドやレンダリング エンジンに関する専門知識は豊富でしたが、当時はビジョンを実現するために必要な帯域幅がありませんでした。
このような要件に基づき、Google Cloud などのクラウド サービス プロバイダに連絡しました。
他のプロバイダとも会いましたが、Google Cloud は始めから違う感じがしました。直接会って、既存の従来のアーキテクチャについて実りのある話し合いができたのです。こちらは新しいアーキテクチャの設計を提示し、Google は Google のソリューションである Google Kubernetes Engine(GKE)がいかに適しているかについて情報を提供しました。
振り返ってみると、Google Cloud のフィードバックと対応は他のベンダーよりはるかに優れていました。ユースケースをしっかり理解したうえで、ビジョンを実現するために 1 対 1 で提携することを真に望んでいるように思えました。さらに、当社のニーズに合ったプロダクト スイートがあり、NVIDIA 製の新しい GPU など、スケーラビリティ ニーズに合った機能への早期アクセスも提供してくれました。
答えははっきりしていました。当社は Google Cloud を選び、作業に取りかかりました。
新しいソリューション: パーソナライズ動画の現在のレンダリング方法
Google Cloud の丁寧なサポートと個別の対応は、契約を締結した後も続きました。Google のチームは、新しいアーキテクチャの設計、デプロイ、拡張という全プロセスを通じて、常に実践的な支援を提供してくれました。
新しいシステムを構築する際、Google Cloud のコンサルタントから次のような支援を受けました。
アーキテクチャ設計と進行中の実装プロセスについての継続的なレビューとコメント
GPU タイム シェアリングなど、新しいアーキテクチャの主要コンポーネントになるプロダクトの紹介
NVIDIA のドライバを Kubernetes で動作するように構成したり、Google Kubernetes Engine(GKE)を活用するようにレンダリング エンジンの一部を書き換えたりといった小さな問題を解決する際の助言
Kubernetes と GPU の新機能の早期プレビュー版や、最新の NVIDIA チップとマシンの提供の継続
当社のエンジニアは、Google Cloud のコンサルタントと連携しながらアーキテクチャを一から設計し直しました。最終的に Google Cloud を基盤とし、これまでにない規模とスピードでユニークなパーソナライズ動画を生成できるクラウドベースのアーキテクチャを作り上げました。
新しいアーキテクチャは独自のものであり、競合他社には秘密にしておく必要がありますが、主要な技術コンポーネントを少しだけご紹介します。
一度に 1 つのレンダリング タスクを実施し Pub/Sub からジョブを pull するワーカー Pod を作成しました。
GKE の自動スケーリングを使用して、ノード数を 1 から仮想的に上限なく迅速にスケーリングし、個々のワークロードのレベルでパフォーマンスを調整します。これにより、導入するコンピューティング能力(および費用)のきめ細かいレスポンシブなコントロールが可能になります。
Pod 間で GPU タイム シェアリングを使用して、コンピューティング リソースを可能な限り効率的かつ効果的に活用することで、平均 GPU 使用率が 1.6 倍になり、費用が 66% 削減されました。
こうしたサービスを活用することで、当社のシステムは以前よりはるかに速くなり、効率性、スケーラビリティ、信頼性、適応性が向上しました。そして、提供するプロダクト、保証する規模と速度、サービス対象のクライアントが変わりました。すでに技術面でもビジネス面でも大きな成果を上げています。
Google Cloud との連携で実現したこと
Google Cloud のコンサルタントと連携し、Google Cloud と GKE 上にアーキテクチャを再構築することで、次のような成果が得られました。
1 時間あたりの動画レンダリング数が 8,800% 増加: 以前のシステムでは、動画を 1 時間あたり 6,000 本しかレンダリングできませんでした。新しいシステムの最近のテストでは、動画を 1 時間あたり 54 万本、難なくレンダリングできました(この時間枠ならもっと多くの動画をレンダリングできることがわかっています)。
エンタープライズ クラスの容量を確保: 新システムでは、数百万本のパーソナライズ動画を迅速かつ大規模にレンダリングしてストリーミングすることができるようになりました。BMW、WWF、Redbull、赤十字、生活協同組合、ICA、Action Against Hunger のような世界有数の企業にサービスを提供できています。また、スウェーデン最大の食品小売業者向けに 2 百万本以上のパーソナライズ動画を送信するなど、大規模なプロジェクトにも取り組めるようになりました。
ビジネスのボトルネックが解消: 以前は、一度に 1 つか 2 つのキャンペーンの動画しか生成できませんでした。今では、一度にいくつものキャンペーンを難なく扱えるようになりました。つまり、プロジェクトを断る必要がなくなり、収益が向上しました。
新しいプロダクトの構築と提供: 新しい優れたプロダクトでポートフォリオを拡大できます。たとえば、視聴者がデータを入力して「再生」を押した数秒後にストリーミングされるリアルタイムのパーソナライズ動画を作成できるようになったため、新しい動的なプロダクトを拡大できます。
システムの可視性の向上: 非常に大規模なキャンペーンのレンダリング状況について、ログ、アラート、全体的な可視性が向上しました(以前のアーキテクチャでは困難でした)。
まとめ: Google Cloud と連携することで、非常に野心的な技術的目標とビジネスの目標を達成するための基礎を築きました。すでに、膨大な映画品質のパーソナライズ動画のレンダリングとストリーミングを劇的に改善しています。また、最も要求の厳しい最大のクライアントへのサービス提供も改善しています。
この成果を皆さんの組織にも
現在、当社は Google のクラウド サービス上に基本的なアーキテクチャをさらに構築し、そのコア パフォーマンスを向上させることで、パーソナライズ動画の生成を驚異的なレベルまで拡大できるようになりました。大きな野心的目標は、もはや手の届かないものではなくなっています。実際、映画品質のパーソナライズ動画を 0.2 秒以内にレンダリングできる日も近いと確信しています。
そのために、引き続き Google Cloud チームと密に連携しています。新しいスケーリング戦略の策定、アーキテクチャに適用する重要なベスト プラクティスの提供、リアルタイム レンダリングのような新しいプロダクトの開発の援助といった面で、当社を支援してくれています。
私たちは主要なプロダクトの機能を一緒に変革してきました。Google Cloud のチームと連携して、Google Cloud を基盤とし、GKE を使用することで、皆さんも同じことができます。成果を大いに実感しています。そして、これは皆さんの組織でも効果的なはずです。
Alina Bylkova、Lekë Dobruna、Gabor Lossos、Vigan Sokoli、John Rowley、Michael Ivanov に感謝します。
- SEEN エンジニアリング リード Sahil Bajaj 氏