Amazon Web Services ブログ
行動経済学、銀行取引、および AWS の機械学習を利用して、ジェネレーション Z を経済的に強化する
これは、Pluto Money の共同創設操業者兼 CTO の Dante Monaldo 氏のゲストブログ記事です。
サンフランシスコを拠点とするスタートアップ企業である Pluto Money は、銀行、行動経済学、および機械学習 (ML) を組み合わせて、ジェネレーション Z を大学内外での経済的目標に導く、無料の資金管理アプリです。当社は、ジェネレーション Z の大学生の経済的ニーズに応え、卒業後も共に成長するように設計された初めてのモバイルバンクを構築しています。
健全な経済的習慣を早期に確立することの重要性が、私と共同創業者の Tim Yu および Susie Kim が私たち自身の経験に基づいて Pluto を設立したことにつながっています。私たちは、当社のビジネスにも同じように財政的厳密さを適用しています。クラウドサービスはコストを削減し、これまでの急成長企業には想像もできなかった柔軟性をもたらすため、クラウドを使用することは私たちにとって当然の選択でした。
AWS ソリューションは堅牢であり、シームレスに連携できるので、コアコンピューティングから ML まで、私たちは AWS を主要なクラウドプラットフォームとして選択しました。当社のチームは成長を続けており、多くのスタートアップ企業と同様に、私たち全員が様々な役割を担っています。そのため、AWS の製品を利用して時間を節約しながら、チームの規模を拡大していく中でエンタープライズクラスの技術スタックを構築することができます。
Pluto Money の心臓部は、Pluto Money モバイルアプリから発信されるすべてのリクエストを処理するクライアント API です。Node.js で書かれており、Classic Load Balancer の背後にある Amazon Elastic Compute Cloud (EC2) インスタンスで動作します。これは、AWS が Network Load Balancer および Application Load Balancer オプションをリリースする前に設計されました。ただし、Classic Load Balancer は、Application Load Balancer と同じ目的を果たしており、近い将来に移行する予定です。インスタンスは、CPU 使用率と同時リクエスト数の組み合わせに基づいて拡張されます。
ユーザーアカウント、節約目標、金融取引などのすべての永続的データは、暗号化された MongoDB レプリカセットに保存されます。レイテンシーを最小限に抑えるために、NodeJS Amazon EC2 インスタンスにローカルに保存されている Redis キャッシュから多くのリクエストが引き出されます (1ms のキャッシュリクエストが行われるのに、なぜ 10ms の MongoDB リクエストを行う必要があるでしょうか?)。古いデータから保護するために、キャッシュは期限切れになり、定期的に更新されます。
新しい取引があったときのユーザーの銀行との通信や新しい財務データに関するモデルの再トレーニングなど、計算集約型のリクエストの中には処理に時間がかかり、モバイルアプリからのリクエストほど時間に敏感ではないものもあります。こうしたリクエストを Amazon Simple Queue Service (SQS) にプッシュし、AWS Elastic Beanstalk ワーカーのグループがキューで少しづつ減るようにします。こうすることで、計算量の多いリクエストが増えてもクライアント API が遅くなることを防ぐことができます。
当然、ML モデルのトレーニング、テスト、デプロイには Amazon SageMaker を使用しています。そのようなモデルの 1 つは、自分のユーザープロファイルで設定された基準に基づいて、オプトインしたユーザーからの匿名化された支出データを使用して、自分の財政を類似のユーザーと比較します。たとえば、UCLA の 21 歳の大学生である Sarah は、匿名の他の 21 歳の UCLA の女子学生のさまざまなカテゴリやマーチャントでの支出と彼女の支出を比較して確認することができます。この比較は、自分の支出行動をよりよく理解しようとしている大学生にとって重要な文脈を与えてくれます。
モデルは、Amazon SageMaker の Jupyter ノートブックで、独自のアルゴリズムと利用可能な組み込みアルゴリズムの両方を使用してトレーニングおよびテストされています。私たちは、データサイエンティストが自身のマシンでローカルに行うのと同じ方法で、ML モデルを大規模にトレーニングしてテストできることをとても気に入っています。モデルをデプロイする時が来たら、同じデータサイエンティストがエンドポイントを作成し、リクエストとレスポンスのパラメータをチームのエンジニアに提供できます。こうした引き継ぎ方は、エンジニアがモデルの複雑さを理解しようとしているデータサイエンティストと何度もやり取りするよりもはるかに効率的です。改訂が必要になった場合は、(前述の EC2 インスタンスのグループからの) リクエストを新しいエンドポイントに向けます。これにより、さまざまなサンドボックス環境および開発環境でのテスト用に複数のエンドポイントを有効にすることができます。さらに、モデルが改訂されても、リクエストとレスポンスのパラメータが同じであれば、エンジニアは何かが変更されたことを知る必要はありません。このワークフローにより、Pluto Money は新しいデータセットをすばやく繰り返せるようになりました。これは、正確な ML モデルを構築するための重要な要件です。
2017 年末に Pluto Money がベータテストを公開して以来、1,500 校を超える大学のキャンパスで何万人もの学生がお金を節約し、より良い経済習慣を形成するのを支援してきました。そして、AWS の支援を受けて私たちの技術を拡大し続けられることを楽しみにしています。ジェネレーション Z は 2020 年までに米国の消費者支出の 40% を占めるでしょう。私たち Pluto Money は、他の何よりもジェネレーション Z の経済的健全性を尊重する、ジェネレーション Z のための未来の銀行を築いています。