Moloco: Google Kubernetes Engine 上の TPU でモデルのトレーニングを 10 倍高速化
Shubhika Taneja
Product Marketing Manager, Google Kubernetes Engine
※この投稿は米国時間 2024 年 12 月 6 日に、Google Cloud blog に投稿されたものの抄訳です。
過密になっている昨今のデジタル環境において、マーケティング予算を最適化するという課題にあらゆる規模の企業が直面しています。見込み顧客の関心を引こうと大量のメッセージが送信されているなかで、他社よりも目立つ方法を見つける必要があります。さらに、収益性を阻害する顧客獲得コストの上昇と顧客維持率の低迷への対応にも取り組んでいます。
こうした状況をさらに複雑にしているのが、大量の消費者データです。多くの場合、企業は消費者データを効果的に活用して適切な対象者に広告を配信することができていません。これらの課題を解決するため、広告効果を高めて関連性と収益性を維持できる、データドリブンなアプローチを企業は求めています。
Moloco は、顧客を獲得して維持し、収益を得るための取り組みを促進する、AI を活用した広告ソリューションを提供しています。Moloco のデマンドサイド プラットフォーム(DSP)である Moloco Ads は顧客固有のファーストパーティ データを活用するため、企業がリアルタイムの消費者行動に基づき、高い価値を持つユーザーを対象者に設定して獲得するのに役立ちます。その結果、コンバージョン率と投資収益率が高まります。
こうした要求に応えるため、Moloco は複数のディープ ニューラル ネットワークに基づく予測を活用しながら、常に新しいモデルを設計し、評価しています。このプラットフォームは、1 日あたり 10 ペタバイトのデータを取り込んで広告主からの入札リクエストを処理し、ピーク時の秒間クエリ数(QPS)は 1,050 万件にのぼります。
Moloco は過去 3 年間で 8 倍以上の規模に成長し、年間 5,000 万ドルを超える額を投入する顧客を複数抱えています。急成長した Moloco は、大量のデータを処理し、ML がリアルタイムに予測ができる、費用対効果の高いインフラストラクチャを必要としていました。Moloco のモデルが複雑化するにつれ、トレーニングにかかる時間が長くなり、生産性とイノベーションが妨げられるようになっていたからです。それとは別に、低レイテンシを維持しつつ広告配信を拡大して世界中のユーザーを対象とするには、広告配信の効率を最適化する必要もあることに Moloco チームは気付きました。
GKE で複雑な ML モデルをトレーニング
いくつかのクラウド プロバイダと各ソリューションを評価した後、Moloco はスケーラビリティ、柔軟性、堅牢なパートナー エコシステムを備えた Google Cloud を選びました。Google Cloud が提供するインフラストラクチャは、顧客の広告配信パフォーマンスを最適化するうえで重要な、急増するデータと ML ワークロードの処理に関する Moloco の要件を満たしていました。
Moloco が他社のクラウド製品ではなく Google Cloud を選択する主な理由となったのが、Google Kubernetes Engine(GKE)でした。Moloco が認識しているとおり、GKE は単なるコンテナ オーケストレーション ツールではなく、AI と ML のすべての可能性を引き出すためのゲートウェイです。GKE は、スケーラビリティとパフォーマンスの最適化ツールを備えているため、さまざまな ML ワークロードに対応できるほか、幅広いフレームワークにも対応しています。そのため Moloco は、特定のニーズに合わせてプラットフォームをカスタマイズできるようになりました。
GKE は統合 AI / ML 開発プラットフォームの基盤であり、他の Google Cloud サービスとの統合が可能です。そのため、Moloco の複雑な AI や ML のタスクをサポートする、データ処理と分散型コンピューティングのための堅牢な環境を実現できます。GKE の ML データレイヤは、読み取りの負荷が高いワークロードに不可欠な高スループットのストレージ ソリューションを提供しています。また、クラスタ オートスケーラー、ノード自動プロビジョナ―、Pod オートスケーラーなどの機能により、効率的にリソースが割り当てられます。
「Moloco の広告ビジネスの飛躍的な拡大に合わせて、インフラストラクチャをスケーリングするのは非常に困難でした。GKE の自動スケーリング機能のおかげで、エンジニア チームは運用業務に時間を取られることなく開発業務に集中できました」- Moloco、ML 部門ディレクター Sechan Oh 氏
Moloco は Google Cloud に移行してまもなく、モデルのトレーニングに GKE を使用するようになりました。しかし同社は、従来の CPU はスケール性能ではコストと速度の点で競争力に欠けるとすぐに気づきました。Moloco が成果を上げるために不可欠だったのは、GKE のマルチホスト Tensor Processing Unit(TPU)を活用した自動スケーリング機能でした。TPU は、ML ワークロード専用である Google の処理ユニットです。こうした自動スケーリング機能によって、Moloco は TPU を大規模に利用できるようになり、トレーニングの速度と効率が大きく高まりました。
Moloco はさらに、GKE の AI と ML の機能を活用し、コンピューティング リソースの管理を最適化してアイドル状態を減らすことで、コスト削減とパフォーマンスの向上を達成しました。Moloco が ML インフラストラクチャをスケーリングし、エンジニア チームの負担を増やすことなく飛躍的なビジネス成長に対応するうえで、GKE は大きな役割を果たしました。こうして Moloco のエンジニアたちは、インフラストラクチャの管理ではなく、AI と ML のソフトウェア開発に専念できるようになりました。
「GKE チームとの密接な連携により、最近追加された機能であるマルチホスト TPU を活用した自動スケーリングを実現できました。GKE チームのサポートのおかげで TPU から驚くようなパフォーマンスを引き出せた結果、トレーニング ジョブあたりのコストを 2 分の 1 から 4 分の 1 に削減できました」- Moloco、シニア ML エンジニア Kunal Kukreja 氏
Moloco は TPU でモデルをトレーニングしているほか、GKE 上の GPU も使用して ML モデルを本番環境にデプロイしています。これにより、Moloco プラットフォームでリアルタイムの推論リクエストを効果的に処理し、GKE のスケーラビリティと運用の安定性のメリットを活用できるため、パフォーマンスが向上し、さらに複雑なモデルに対応できるようになりました。
Moloco は導入プロセスを通して Google Cloud チームと緊密に連携し、専門知識とガイダンスを活用しました。Google Cloud チームは、Moloco が業務の中断を最小限に抑えてスムーズに移行できるように、ソリューションの導入をサポートしました。具体的には、Google Cloud チームは GKE のリソースの活用と費用対効果を最適化する自動スケーリング機能と、Pod の優先順位付け機能を利用して、Moloco が ML ワークロードを GKE に移行するのを支援しました。また、Moloco は Cloud TPU をトレーニング パイプラインに統合して、複雑な ML モデルのトレーニング時間を大幅に短縮しました。そしてさらに、GPU を使用して配信インフラストラクチャを最適化することで、顧客による低レイテンシの広告配信を実現させました。
ML トレーニングと推論のための強力な基盤
Moloco は Google Cloud と連携することで、イノベーションへの可能性を大きく広げました。
「GKE や Cloud TPU などの Google Cloud ソリューションを活用することで、Moloco は ML トレーニング時間を最大 10 倍高速化できました」- Moloco、ML 部門ディレクター Sechan Oh 氏
これにより、モデルの反復やテストを短時間で実施できるようになり、Moloco のエンジニアたちはこれまでにない速度と効率性でイノベーションに取り組めるようになりました。さらに、Google Cloud のインフラストラクチャのスケーラビリティとパフォーマンスによって、Moloco はますます複雑化するモデルや拡大し続けるデータセットを管理し、最先端の ML ソリューションを構築、導入できるようになりました。GPU で強化された低レイテンシの広告配信を実現できるようになったおかげで、Moloco の顧客満足度と顧客維持率は明らかに高まりました。
この Moloco の成功から、Google Cloud ソリューションには、企業の最大限の能力を引き出す力があることがわかります。GKE、Cloud TPU、GPU を活用した Moloco は、自社インフラストラクチャをスケーリングし、ML トレーニングを加速して、優れた広告配信を顧客が実現できるようにしました。Moloco が成長してイノベーションを継続するなか、Google Cloud はその成功を支える重要パートナーであり続けるでしょう。
一方で GKE は、スケーラビリティ、柔軟性、費用対効果、パフォーマンスを提供することで、AI と ML を取り巻く環境を変えつつあります。Google Cloud は、最も要求の厳しい AI トレーニング ワークロードも処理できるよう、GKE への投資を続けてまいります。たとえば、GKE は現在 65,000 ノードのクラスタを取り扱っており、他に類を見ない規模でのトレーニングや推論が可能になっています。詳しくは、単一の GKE クラスタ上で 65,000 ノードを実行するこちらのデモをご覧ください。