DatabricksによるVポイントのAI基盤構築 システム構成と効果
CCCMKホールディングス株式会社 / 松井太郎
開発部長 / CTO / 従業員規模: 501名〜1,000名 / エンジニア組織: 51名〜100名
ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|
51名〜100名 | 2021年2月 | B to B B to C |
ツールの利用規模 | 51名〜100名 |
---|---|
ツールの利用開始時期 | 2021年2月 |
事業形態 | B to B B to C |
アーキテクチャ
アーキテクチャの意図・工夫
考慮した観点 | 実施した工夫と得られた効果 |
---|---|
ライフスタイル推計処理 処理効率化とコスト | • 前処理の3分割による並列処理と学習/推論データセットの分離により、処理時間とコストを大幅削減 • 中間データの最適配置で後続処理を効率化 |
基幹DWH連携 | • Databricksの Query federationでSnowflakeと接続し、ETLからAI開発まで一貫環境を実現 • MLfLowの結果を基幹DWHですぐ利用可能 |
拡張性とAI開発 | • MLflowによる実験管理と段階的な機能追加設計により、新技術への対応が容易に • LLM、画像解析、マルチモーダルAIなど、高度な機能開発が可能に |
導入の背景・解決したかった問題
導入背景
弊社は日本最大級の共通ポイントサービス「Vポイント」を運営しており、1.3億人のV会員の属性データや購買データなどのライフスタイルデータを活用したデータベースマーケティング事業を行っております。
それらのデータを元にした「ライフスタイル推計値(※)」を生成し、マーケティングやコンサルティングに活用していましたが、これらを生成する既存のAI基盤は、Azure上にAzure Synapse Analytics、Azure Batchなどを組み合わせ、内製で構築していましたが、データ量の増大や推計項目の増加と共に大きく3つの課題がありました。
(※)ライフスタイル推計値とは、属性情報や購買情報・サービス利用情報などをもとに、機械学習によって算出された推計値です。
課題分類 | 詳細内容 |
---|---|
ジョブフローの複雑さ | • データ取得、前処理、モデル作成が異なる環境で実行 • 処理の失敗に気づきにくい状態 • トラブルシューティングに時間がかかる |
データ処理の分断 | • Python、SQL、shellなど異なる言語が混在 • 環境ごとに実行方法が異なり、メンテナンスが困難 • 開発効率の低下 |
精度向上のボトルネック | • 大規模データでの試行錯誤が困難 • 新しい特徴量の開発に時間がかかる • 処理時間が長く、コストも高額 |
比較検討したサービス
Azure Synapse Analytics
比較した軸
・NotebookやWorkflow機能が充実していること
・インフラを意識することなく、分散処理をサービスに任せられること
・基本的な処理性能の向上
上記を中心にデータサイエンティストの業務生産性が向上すること
選定理由
・SaaS/PaaSとしての使いやすさ
・Sparkエンジンによる圧倒的なパフォーマンス
・専門家によるサポート体制
・MLflowなどの機械学習管理機能の充実
導入の成果
・処理時間が1/10に短縮(340時間→34時間)
・クラウドコストが1/5に削減
・開発言語をPythonに統一し保守性向上
・新しい分析手法の試行錯誤が容易に
この辺りの事例は以下の記事で公開されています。
Databricks社公開事例
導入時の苦労・悩み
実際にはインフラを完全にPaasに任せる訳ではなく、Sparkエンジンを活かすための分散処理技術に関する一定の習熟が必要でした。その理解が進んだ後は既存システムからの移行と処理フローの最適化が進むようになりました。
導入に向けた社内への説明
上長・チームへの説明
Azure上へのサービスであるAzure Databricksでの採用であったため、セキュリティ評価や導入承認プロセスは比較的スムーズに進みました。
また上司への提案は主に以下を説明しました。
- データサイエンティストの限られたリソースをデータサイエンスに注力させたい
- そのためにインフラエンジニアリングを高パフォーマンスなPaasに任せたい
- それによる効果をエンジニア部門のPoC予算枠で実証実験したい
上記の業務改善効果の期待値と予算内での実施を元に承認をもらい、PoCのフェーズを推進しました。
PoCではライフスタイル推計値 生成の一部処理を移行して検証を実施し、想定以上の効果が得られたため、そのまま実装まで進めました。
- 処理時間が1/10に短縮(340時間→34時間)
- クラウドコストが1/5に削減
- Python統一による開発効率の向上
本導入に当たっては、これらの定量的な効果に加え、データサイエンティストの生産性向上やMLOpsの整備など、定性的なメリットも示すことができ、ライフスタイル推計処理の基盤刷新とともにデータサイエンティストの開発基盤として位置付けると説明しました。
活用方法
データサイエンティストは、Databricks上でほとんどの開発作業を行っており、AI開発基盤として十分に機能していると考えています。またLakehouse Federationにより、Snowflakeへの接続が出来るようになったことでより効率的な開発が行えるようになりました。 またデータアナリストも徐々に各クライアント企業の取組においてもDatabricksを用いたレコメデーションやマーケティング施策のモデル構築も増加してきています。
カテゴリー | 詳細内容 |
---|---|
ライフスタイル推計値 生成基盤 | • 1.3億人の属性データや購買データ、アンケートなどを元に数百項目の推計値を生成 • AI/機械学習によるプロファイリング |
レコメンデーション精度向上 | • V会員向けの商材DMやクーポン等のターゲティング改善 • カスタマイズモデルの開発・検証 |
画像解析技術の検証 | • 最新の画像認識AI技術の検証 • マルチモーダルAIの研究開発 |
独自LLM開発 | • Azure OpenAI ServiceのAPI検証 • 自社データを活用した独自モデル開発 |
よく使う機能
機能カテゴリー | 詳細内容 |
---|---|
Notebook | • データ分析のメイン環境として活用 • ライフスタイル推計値の生成パイプライン開発 • 画像解析AIの検証コード開発 • チーム間でのコード共有・レビュー • マークダウンによるドキュメント作成 |
MLflow | • ライフスタイル推計値 生成モデルの実験管理 • DMのレコメンドモデル管理 • ハイパーパラメータの履歴管理 • モデルのバージョン管理 • 本番モデルのデプロイ管理 |
ジョブ管理 | • ライフスタイル推計値 生成モデルの定期実行(月次) • データ前処理・ETLの自動化 • 複数クラスタでの並列処理 • 依存関係のある処理の順序制御 • 実行時間とコストの監視 |
ツールの良い点
・直感的なUI/UXによる開発効率の向上
・最新AI技術の検証が容易
・柔軟なリソース管理によるコスト最適化
・簡易的なソースコード管理がデフォルトで可能、Git連携すれば本確的なバージョン管理が可能
・Unity Catalogでデータを一ヶ所に集約でき、複数ワークスペースから活用可能
・権限管理も出来るためデータガバナンス向上
・Volume機能でファイルアクセスやアクセス制御が簡単に、さらにADF連携でファイル連携も効率的に
(Databricks Notebook上でファイル保管場所であるBLOBへの接続を書かずにコーディング可能)
・Snowflakeの領域とDatabicksの領域が被ってきており、アーキテクチャ最適化をさらに考えるようになった
ツールの課題点
・初期導入時の学習コスト
・Unity Catalogが1テナント1リージョンの制限がある(グループ会社課題)
・テーブル定義などのDDLの自動生成などがない(DWHとして基本機能)
・日本リージョンの開発が遅い!
・ServerlessがPrivateLinkのSnowflakeへ接続出来ない(これ早く対応して欲しい!)
ツールを検討されている方へ
1. 確実に課題感がある箇所より導入検討を始めるのをお勧めします
- 弊社の場合、性能課題のあったライフスタイル推計値の一部処理から検証を開始し、処理時間が1/10になることを確認できました
- この実績をもとに、全体システムの移行判断ができました
2. Pythonへの統一は大きなメリット
- 従来のSQL、shell、Pythonが混在する環境から、Pythonに統一することで保守性が大幅に向上
- ノートブック形式の開発により、チーム間の知見共有も容易になります
3. MLflowの活用を推奨
- 機械学習モデルの管理に標準で使えるMLflowは非常に便利
- 特に複数のデータサイエンティストで協業する場合に効果的です
4. コスト面では自動停止設定が重要
- クラスターの自動停止設定で、想定以上のコストを抑制できました。
- 自動停止のアイドリング時間も極力小さい値にすることも重要です。
- 開発環境と本番環境で適切なクラスターサイズを選定することも有効です
今後の展望
・独自LLMの開発・実装
・画像解析技術の実用化
・マルチモーダルAIの活用拡大
CCCMKホールディングス株式会社 / 松井太郎
開発部長 / CTO / 従業員規模: 501名〜1,000名 / エンジニア組織: 51名〜100名
よく見られているレビュー
CCCMKホールディングス株式会社 / 松井太郎
開発部長 / CTO / 従業員規模: 501名〜1,000名 / エンジニア組織: 51名〜100名
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法