Rocket Money x Hugging Face プロダクションで変動するMLモデルのスケーリング

Rocket Money x Hugging Face Scaling ML models in production

「彼らはただのサービスプロバイダではなく、私たちの目標と結果に投資しているパートナーだと気づきました」- ニコラス・クザック、ロケットマネーのシニアMLエンジニア。

MLOpsチームなしでの本番環境でのMLモデルのスケーリングとメンテナンス

私たちは、Rocket Money(以前の名前はTruebillの個人ファイナンスアプリ)を作成し、ユーザーが自分の財務状況を改善できるようにしました。ユーザーは銀行口座をアプリにリンクさせ、トランザクションを分類し、カテゴリ分けし、繰り返しのパターンを特定して、個人の財務状況を総合的かつ包括的に表示します。トランザクション処理の重要な段階は、Rocket Moneyが会員のためにキャンセルし、費用を交渉できるいくつかの既知の販売業者やサービスを検出することです。この検出は、短く、しばしば切り詰められ、暗号化された形式のトランザクション文字列をクラスに変換して、製品体験を豊かにするために使用します。

新しいシステムへの旅

最初に、正規表現ベースの正規化器を使用してトランザクションからブランドと製品を抽出しました。これらは、文字列を対応するブランドにマッピングする複雑になる決定表と併用されました。このシステムは、キャンセルと交渉に対応する製品にのみ結び付けられたクラスが存在する場合には効果的でしたが、ユーザーベースが拡大し、サブスクリプションエコノミーが急速に発展し、製品の範囲が拡大するにつれて、新しいクラスの数と正規表現のチューニングや衝突の防止に追いつく必要がありました。これを解決するために、バッグオブワーズモデルとクラスごとのモデルアーキテクチャを使用したさまざまな従来の機械学習(ML)ソリューションを検討しました。このシステムはメンテナンスとパフォーマンスに苦労し、保留となりました。

私たちは、まっさらな状態から新しいチームと新しい命令を組み立てることに決めました。最初の課題はトレーニングデータを蓄積し、ゼロから社内システムを構築することでした。私たちはRetoolを使用してラベリングキュー、ゴールドスタンダードの検証データセット、ドリフト検出モニタリングツールを構築しました。さまざまなモデルトポロジーを試しましたが、最終的にはBERTファミリーのモデルを選び、テキスト分類の問題を解決しました。初期のモデルのテストと評価のほとんどは、GCPのデータウェアハウス内でオフラインで実施されました。ここでは、4000以上のクラスを持つモデルのパフォーマンスを測定するために使用したテレメトリとシステムを設計および構築しました。

Hugging Faceとのパートナーシップによるドメインの課題と制約の解決

私たちのドメイン内には、商品を提供する業者や処理/支払い会社、機関の違い、ユーザーの行動の変化など、独自の課題がいくつかあります。効率的なモデルのパフォーマンスアラート設計と現実的なベンチマーキングデータセットの構築は、継続的に課題となっています。もう1つの重要な課題は、システムの最適なクラス数を決定することです-各クラスは作成とメンテナンスに相当な労力を要するため、ユーザーとビジネスへの価値を考慮する必要があります。

オフラインのテストでうまく機能するモデルと少数のMLエンジニアのチームを持つ私たちは、新たな課題に直面しました:そのモデルを私たちの本番パイプラインにシームレスに統合すること。既存の正規表現システムは、月間100万以上のトランザクションを処理し、非常に負荷の高い状態で動作していましたので、パイプライン内で低い全体的なレイテンシを維持するために動的にスケーリングできる高可用性のシステムが重要でした。当時の小さなスタートアップとして、モデルサービングソリューションを構築する代わりに購入することにしました。当時、社内でのモデルオペレーションの専門知識はなく、MLエンジニアのエネルギーを製品内のモデルのパフォーマンス向上に集中させる必要がありました。これを念頭に置いて、私たちは解決策を探しました。

最初は、プロトタイピングに使用していた手作りの社内モデルホスティングソリューションをAWS SagemakerとHugging Faceの新しいモデルホスティング推論APIと比較して試してみました。データの保存にはGCPを使用し、モデルトレーニングにはGoogle Vertex Pipelinesを使用していたため、AWS Sagemakerへのモデルのエクスポートは不便でバグがありました。幸いなことに、Hugging Faceの設定は迅速かつ簡単であり、1週間以内に一部のトラフィックを処理することができました。Hugging Faceはそのまま動作し、この摩擦の低減により、私たちはこの道を進むことになりました。

約3か月にわたる評価期間の後、私たちはHugging Faceをモデルのホスティングに選びました。この期間中、トランザクションのボリュームを徐々に増やし、最悪のケースシナリオのボリュームに基づいた数々のシミュレートされた負荷テストを実施しました。このプロセスにより、システムを微調整し、パフォーマンスを監視し、トランザクションの拡張負荷を処理する推論APIの能力に自信を持つことができました。

技術的な能力を超えて、私たちはハギングフェイスのチームとの強い関係を築きました。彼らは単なるサービスプロバイダーではなく、私たちの目標と成果に投資しているパートナーであることを発見しました。コラボレーションの初期段階で、私たちは貴重な存在であるとわかる共有のSlackチャンネルを設置しました。彼らが問題に対して迅速に対応し、積極的な問題解決のアプローチを取る姿勢には特に感銘を受けました。彼らのエンジニアやCSMは、私たちの成功への取り組みと正しい方法での取り組みを常に示しました。これにより、最終的な選択をする時に私たちは追加の自信を得ることができました。

統合、評価、および最終選択

「ハギングフェイスとのモデル展開における共同作業の経験は、私たちのチームにとって非常に豊かなものであり、より大きなスケールを追求する自信を私たちに与えました」- ニコラス・クザック、ロケットマネーのシニアMLエンジニア。

契約が締結されると、私たちは正規表現ベースのシステムからトランスフォーマーモデルへのクリティカルパストラフィックの移行を開始しました。内部では、モデルとプロダクションデータの監視のためにいくつかの新しいテレメトリを構築する必要がありました。このシステムは製品体験の非常に早い段階に位置しているため、モデルの結果の不正確さがビジネス指標に大きな影響を与える可能性があります。新しいユーザーは古いシステムと新しいモデルの間で均等に分割される大規模な実験を実施しました。支払いユーザーの維持率やエンゲージメントなどの広範なビジネス指標と一緒にモデルのパフォーマンスを評価しました。MLモデルは明らかに維持率の面で優れており、システムをスケーリングするという決断を自信を持って行うことができました-まず新しいユーザーに、そして既存のユーザーに-2ヶ月間で100%までスケーリングしました。

モデルがトランザクション処理パイプラインに完全に配置されると、アップタイムとレイテンシーが主要な懸念事項となりました。私たちの下流プロセスの多くは分類結果に依存しており、何らかの問題が発生するとデータの遅延や不完全なエンリッチメントが発生し、ユーザーエクスペリエンスが低下します。

ロケットマネーとハギングフェイスの協力の初年度は、課題もありました。しかし、両チームともに非常に強靭で、問題解決に共通のコミットメントを示しました。そのような一例として、2番目の本番モデルでクラスの数を拡大した際に障害が発生しましたが、チームは困難に立ち向かい、同じ問題の再発を回避することに成功しました。また、新しいモデルへの移行時に、Hugging Face側のキャッシュの問題により以前の結果を受け取ったこともありました。この問題は迅速に解決され、再発していません。ハギングフェイスとのモデル展開における共同作業の経験は、私たちのチームにとって非常に豊かなものであり、より大きなスケールを追求する自信を私たちに与えました。

スケールについて話すと、私たちはモデルへのトラフィックの大幅な増加を目撃し始めたため、推論のコストが予測された予算を上回ることが明らかになりました。推論コールの前にキャッシュレイヤーを使用して、トランザクションの基数を大幅に減らし、前回の推論から利益を得ることを試みました。技術的には93%のキャッシュ率を達成することが可能でしたが、実際のプロダクション環境では85%にしか到達していません。モデルが予測の100%を提供する中で、ロケットマネー側ではいくつかのマイルストーンを達成しました-私たちのモデルは1ヶ月あたり10億件以上のトランザクションを処理し、ロケットマネーはApp Storeで1位の金融アプリと全体で7位になるなど、低レイテンシを維持しながらトラフィックの急増に対応しました。

協力と将来の計画

「HuggingFaceの推論APIに対するアップタイムと信頼は、モデルが生み出す価値にエネルギーを集中させ、配管や日々の運用にはあまり関与しないことを可能にしました」- ニコラス・クザック、ロケットマネーのシニアMLエンジニア。

ローンチ後、内部のロケットマネーチームは、モデルのクラスとパフォーマンスのチューニングに加えて、より自動化されたモニタリングとトレーニングラベルシステムに焦点を当てています。私たちは毎日新しいラベルを追加し、モデルライフサイクルの管理など、ユニークな課題にも取り組んでいます。例えば、2021年末にロケットカンパニーズがトゥルービルを買収した後、会社のリブランディングや新しい企業や製品の登場などです。

私たちは常に、問題に適したモデルのトポロジーを検討しています。最近、LLM(Language Model)がニュースで取り上げられていますが、現時点では、速度とコストの両方で専門のトランスフォーマー分類器に勝る実装を見つけることが困難です。私たちは、それらをサービスの長尾(つまり、小規模な店舗)に使用することで早期の成果を見ています – Rocket Moneyの将来のバージョンでそれに注目してください! HuggingFace Inference APIの稼働時間と信頼性により、私たちはモデルによって生成される価値にエネルギーを集中させ、配管と日々の運用にはそれほど関与する必要がありません。Hugging Faceの助けを借りて、私たちはモデル内のスケールと複雑さ、および生成される価値の種類を拡大しています。彼らの顧客サービスとサポートは私たちの期待を超え、私たちの旅において本当に素晴らしいパートナーです。

Hugging FaceがMLの推論ワークロードを管理する方法を学びたい場合は、こちらからHugging Faceチームにお問い合わせください。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

人工知能

「スノーケルAIのCEO兼共同創設者、アレックス・ラットナー - インタビューシリーズ」

アレックス・ラトナーは、スタンフォードAIラボを母体とする会社、Snorkel AIのCEO兼共同創設者ですSnorkel AIは、手作業のAI...

人工知能

「リオール・ハキム、Hour Oneの共同創設者兼CTO - インタビューシリーズ」

「Hour Oneの共同創設者兼最高技術責任者であるリオール・ハキムは、専門的なビデオコミュニケーションのためのバーチャルヒ...

人工知能

ベイリー・カクスマー、ウォータールー大学の博士課程候補 - インタビューシリーズ

カツマー・ベイリーは、ウォータールー大学のコンピュータ科学学部の博士課程の候補者であり、アルバータ大学の新入教員です...

人工知能

「ゲイリー・ヒュースティス、パワーハウスフォレンジクスのオーナー兼ディレクター- インタビューシリーズ」

ゲイリー・ヒュースティス氏は、パワーハウスフォレンジックスのオーナー兼ディレクターであり、ライセンスを持つ私立探偵、...

人工知能

Diginiのスマートセンスの社長、ガイ・イエヒアブによるインタビューシリーズ

ガイ・イハイアヴ氏は、ビジネスの成功に最も重要な資産を保護するためにインターネット・オブ・シングス(IoT)の力を活用す...

人工知能

「Kognitosの創設者兼CEO、ビニー・ギル- インタビューシリーズ」

ビニー・ギルは、複数の役職と企業を横断する多様で幅広い業務経験を持っていますビニーは現在、Kognitosの創設者兼CEOであり...