ディー・エヌ・エーの機械学習基盤アーキテクチャ
アーキテクチャの工夫ポイント
DeNAでは多くの機械学習プロジェクトがありますが、プロジェクトの数に対し、システムの開発運用を担う機械学習エンジニアやSREを少なく抑えて運用しています。各案件に深く入り込んで設計、実装、運用を担当する機械学習エンジニアと、幅広くサービス開発、運用の生産性、品質を高めるための実装、運用を行うSREが計約10名ほど在籍しています。このメンバーで数十件の機械学習プロジェクトを運用しながら、新規のプロジェクトの設計や実装を行います。少人数で効率的に多くの機械学習システムを開発、運用するために、DeNAでは上記のようなアーキテクチャの機械学習システムを設計しました。
まず、機械学習システムの学習フェーズにおいては、Vertex AI Pipelinesを活用しています。これにより、機械学習の一連の工程を統合し、自動化しています。このワークフローは、テンプレート化された実装やTerraformモジュールを利用して簡単にデプロイできるため、機械学習エンジニアはその案件固有の実装に集中できます。モデルの推論が事前に行えるような場合では、このワークフローでモデル推論までを行います。例えばモバゲーのアセット検索のプロジェクトでは、検索対象のデータは更新の頻度が少なく、利用者のリクエストの度ではなく事前に推論ができるため、Vertex AI Pipelines上でモデル推論を行っています。
一方、モデルの推論が事前に行えない場合には、SREが開発している自社開発の機械学習モデル推論プラットフォーム 「Hekatoncheir」を用いてWeb API形式でモデルをサービングします。この基盤でも実装や運用の標準化を図り、少人数で多数のサービスを運用できるようにしています。例えばPocochaのAIを用いた審査効率化の取り組みのプロジェクトでは、プラットフォームの健全性の担保のため、違反行為はなるべく早く検知する必要があります。そのため、Web API形式でモデルをサービングし、お客様の行動から随時違反行為を検知できるようにしています。
現在の課題と今後の改善予定
一部の古い機械学習プロジェクトの学習フェーズでは、手動での学習、評価、ワークフローのデプロイなどが残っています。まずはインターフェースを変えずに、古いシステムを現在のアーキテクチャのように変えていき、属人性をなくしたり、チーム全体の認知負荷を低くしたりしていきたいです。
また、機械学習モデル推論プラットフォームにおいて、現在 Triton Inference Serverを用いた機械学習モデルの推論のみを行うサーバーと、前処理と後処理を行うサーバーに分割を進めています。これによりスループットが改善し、GKEのコストを抑えることができます。こちらも一部の案件ではすでに導入済みですが、今後置き換えを進めていきたいです。
◆執筆:ソリューション本部データ統括部データ基盤部MLエンジニアリンググループ 玉木竜二 @tamaki_730
【DeNA × AI 公式サイト】
https://dena.ai/