AIサービスの裏側、事業会社におけるAIアーキテクチャ設計

に公開

はじめに

ウェルスナビでAI推進チームのマネージャーをしている澤上です。AI推進チームが迅速かつ安定的にAIサービスを提供するために標準的な設計としているアーキテクチャについてご紹介します。

AIは学習処理に焦点が行きがちですが、金融サービスを提供するウェルスナビにおいては、新しいAIを迅速に開発することと、それを安定的にお客様に届け続けること(運用)の両方が重要です。そのため、AI学習から利用(推論)までの範囲をカバーするアーキテクチャの設計が大事になってきます。

日々進歩するAI分野ではありますが、標準的なアーキテクチャでカバーできるケースも多くあると考えています。AI推進チームでは標準的なアーキテクチャを定めることでチームでの開発・運用を効率的に行うことを目指しています。

アーキテクチャ概観

アーキテクチャの全体像は以下の通りです。この設計は、大きく「推論工程」と「学習工程」の2つの工程で構成されています。下図の上段が「推論工程」、下段が「学習工程」です。

AIアーキテクチャ
AIアーキテクチャの全体像

推論工程

3つの処理で推論工程を行うAIアーキテクチャを設計しています。

  • サービスのバックエンド:AI利用判断
  • AI前処理・後処理:データ整形、決定ロジック、ABテスト、キャッシュ、補正ルールなどの前処理・後処理担当(AIサービスごとのコンテナ)
  • AI推論処理:AIモデルによる推論担当(AIモデルごとのコンテナ)

これらの処理は、すべて標準的なREST APIで通信します。

学習工程

1つの処理で学習工程を行うAIアーキテクチャを設計しています。

  • AI学習処理:AIモデルを作成する学習担当

学習データを読み込みAIモデルを書き出します。

設計の狙い

開発のしやすさ、運用のしやすさでそれぞれ狙いがあります。

開発のしやすさ

複数人での開発やトラブル減少のための学習工程と推論工程の分離

AIモデルを作成する「学習工程」(主にバッチ処理)と、AIモデルを利用する「推論工程」は完全に独立した工程として設計しています。両工程はAIモデルを保存するオブジェクトストレージ(Amazon S3など)を介した疎な関係です。このことにより、推論工程とは独立して学習工程を開発することができるため、複数人での開発しやすさ向上や学習工程に起因する推論工程の予期せぬトラブル減少が期待できます。

AIサービスの拡張性と柔軟性のためのAI前処理・後処理とAI推論処理の分離

推論工程において、AI前処理・後処理とAI推論処理を設けています。AI前処理・後処理を分離することで、AI推論処理は「AIモデルのロードと適用」という単一の責務に集中できます。これにより、開発者の担当範囲が明確になるだけでなく、処理の独立性も高まります。例えば、モデルの入力形式が変わらない限り、前処理層のビジネスロジック(例:特定の顧客セグメントにのみAIを適用するロジック)を変更しても、AI推論処理に影響を与えることはありません。

AI前処理・後処理を設けることで、AIサービスに求められる、前処理・決定ロジック・ABテスト・キャッシュ・補正ルールなどのAIモデルの推論処理以外のビジネスロジックに近い部分を実装する層としてAIサービスの拡張性およびロジック変更の柔軟性を確保しています。

運用のしやすさ

容易なバージョンアップ・ロールバック

AIモデルはオブジェクトストレージ(Amazon S3など)で管理することで、モデルのバージョンアップやロールバックを容易に行えるようにしています。例えば、新しいモデルをデプロイする際、AI推論処理が参照するモデルのパスを新しいバージョンに切り替えるような小規模なデプロイで済みます。これにより、万が一新しいモデルに問題が発覚した場合でも、即座に以前の安定バージョンに切り戻すことが可能です。

明確な責任分担によるトラブル時間短縮

「AI前処理・後処理」が、AIモデル(A)とAIモデル(B)を切り替えるといったABテストのロジックも担うことで、ABテストの処理とAIモデルの推論処理が独立し、トラブルの原因特定や復旧が容易になると考えています。万が一トラブルが発生したとしてもトラブルの時間を短縮し、安定的なサービス運用を行います。

適切なコスト管理

一般的に「AI前処理・後処理」の負荷と「AI推論処理」の負荷は性質が異なるため、同じサーバーで一括して運用すると非効率やコスト増の原因となります。こうした課題を解消するため、本アーキテクチャでは処理を分割することで処理の性質に合わせた運用を可能にしています。例えば、AI前処理・後処理はCPU負荷が高く、AI推論処理はGPUやメモリを多く消費する、といった性質の違いが生じるケースでは、それぞれ必要に応じて負荷の高い処理のみをスケールアップできる柔軟な運用を実現します。

まとめ

今回はAIサービスの裏側として、金融サービスに求められる「安定性」とAI開発の「迅速性」を両立させるための、標準的なアーキテクチャについてご紹介しました。実際の開発現場では標準的なアーキテクチャをベースにしつつも、現場の課題から新しい工夫や実験的な技術導入も積極的に行っています。新しいAI技術やチームの成長を考慮しながら、一歩一歩着実にAIの導入・改善に取り組み、大きな成果を目指しています。

AI推進チームでは、AIによる顧客体験の向上と業務効率化を推進し、働く世代が豊かさを感じられる新しい金融サービスの実現に挑戦し続けています。こうしたチャレンジに共感し、一緒に次世代の金融インフラを創っていく仲間も募集中です。ご興味がある方は、ぜひ当社の採用noteや採用ページをご覧ください。

https://note.com/wealthnavi_hr/n/n00256c454e7e?magazine_key=m6a847018a1e2

https://recruit.wealthnavi.com/

WealthNavi Engineering Blog

Discussion