Findyの推薦システムのアーキテクチャ図
アーキテクチャの工夫ポイント
ファインディが開発している「転職サービスFindy」のユーザー様に提供している推薦システムのモデル学習と推論において、上記のような学習・推論自動化パイプラインを構築しています。モデルの自動学習にはGoogle CloudのVertex AI Pipelines、モデルの推論にはAWSのElastic Container Service(ECS)のバッチ実行を採用しました。
技術採用の背景や意図として、モデル学習のパイプラインを構築するにあたり、弊社ではサービス運用によって取得したデータをBigQueryに蓄積していることから、同一クラウドサービス上で簡易に実装することのできるVertex AI Pipelinesを採用することにしました。また、GitHub Actions Workflowと連携させた事で、常に学習パイプラインのコードを最新の状態に保ちつつ、週に1度のモデル更新も自動で起動するよう工夫しました。 そのおかげで、基本的にモデルの更新には人手が全くかからない状態を実現できました。
モデル推論は、ファインディのサービス基盤がAWS上に構築されている事から、AWS上で簡易にバッチとしてタスクを実行する事ができるECSを採用しました。週次での学習パイプラインが実行された際に、最新の学習済みモデルを保持した推論用コンテナを同時に作成しており、そのコンテナの受け渡しだけで済むので、運用コストをグッと抑えることができています。コンテナの受け渡しも、GitHub Actions Workflowで実現しています。
現在の課題と今後の改善予定
社内に存在するその他の機械学習プロジェクトにおいても、上記アーキテクチャによるモデルの学習・推論を実現する事で、運用コストが抑えられる取り組みがいくつかありますが、現状は推論システム専用の構築にしてしまっているので、横展開が追いついていない点が現在の課題です。
今後は、本アーキテクチャを横展開し、社内で運用される機械学習プロジェクトに徐々に適応していきたいと考えています。
◆執筆:ファインディ株式会社 CTO室データソリューションチーム 笹野翔太 @Edyyyyon
【サービス公式サイト】
https://findy-code.io/
アーキテクチャを構成するツール
会社情報
ファインディ株式会社の利用ツールレビュー
テスト
価値提供スピード向上のため安心・低コストなリリースへ - Findy FreelanceでのPlaywright導入事例 -
ファインディ株式会社 / nesskazu
メンバー / フロントエンドエンジニア / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名
データ基盤
Dataformを用いた分析クエリの一元管理
ファインディ株式会社 / ktagashira
メンバー / データエンジニア / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名
監視・オブザーバビリティ
フロントエンドからバックエンドまで一貫してSentryを活用
ファインディ株式会社 / yuta-hayashi
メンバー / フルスタックエンジニア / 従業員規模: 101名〜300名 / エンジニア組織: 11名〜50名