True ML Talks #16 - 機械学習パイプライン @ Digits

Built for Speed: ~10ms Latency, Even Under Load
Blazingly fast way to build, track and deploy your models!
- Handles 350+ RPS on just 1 vCPU — no tuning needed
- Production-ready with full enterprise support
DigitsにおけるMLユースケース
Digitsは、AIを活用して運用担当者向けの会計業務を自動化する財務管理ソフトウェア企業です。取引分類、異常値検出、不正検出などのタスクを自動化することで、Digitsは運用担当者が顧客基盤を倍増させ、顧客への対応時間を改善するのに貢献します。
- 顧客オンボーディング: DigitsはAIを活用し、新規顧客がアカウント設定や銀行口座の連携を迅速かつ簡単に行えるよう支援します。
- 取引分類: DigitsはAIを活用して取引を自動的に分類し、会計士の時間を節約し、正確な分類を保証します。
- 異常値検出: DigitsはAIを活用して取引における異常値を検出し、会計士が異常な取引を迅速に特定し、調査するのに役立ちます。
- レポート作成: Digitsは、AIを活用して生成された様々なレポートを会計士に提供し、時間の節約と必要なインサイトの迅速な取得を支援します。
Digitsが使用するMLモデル:
- 分類モデル: 食事、出張、在庫など、取引を異なるカテゴリに分類します。
- 予測モデル: 顧客離反や不正など、将来の結果を予測します。
- 生成モデル: 顧客に尋ねる質問や顧客に送信するメッセージなど、テキストを生成します。
- 類似性ベースモデル: 取引における類似パターンを見つけ、それを模倣します。
DigitsにおけるMLへの取り組み
Digitsは、会計の主観性という課題に対処するため、深層学習とNLPモデルへの移行が必要でした。また、DigitsはデータエンジニアリングとKubernetesにおいて強固な基盤を持っており、これは成功するMLプラットフォームを構築し、拡張するために不可欠となるものでした。
チームはまず、MLパイプラインのオーケストレーションにTFXを、モデルサービングにはTF Servingを導入しました。これにより、Digitsはスケーラブルで信頼性の高い方法でMLモデルを構築・デプロイできるようになりました。
次に、チームは類似性ベースのパイプラインの開発に注力しました。これらのパイプラインは、データが曖昧または不完全な場合でも、取引を正確に分類し、外れ値を特定することができます。これは、類似性ベースのパイプラインが取引における類似パターンを見つけ、それを模倣するためです。このアプローチは、会計士のデータ解釈によって一貫性のない結果をもたらす可能性があるグローバルな機械学習モデルを使用するよりも効果的です。
DigitsのMLパイプラインは現在、取引分類、外れ値検出、不正検出など、さまざまな機能の基盤として使用されています。その結果、Digitsは顧客に貴重なインサイトを提供し、タスクの自動化、精度の向上、コスト削減を支援することができます。
Kubernetes上でのMLトレーニングのオーケストレーション
DigitsのMLトレーニングへのアプローチは、よく組織化されており効率的です。オーケストレーションにKubernetesを使用することで、Digitsは必要に応じてトレーニング操作をスケールアップまたはスケールダウンできます。前処理にTensorFlow Transformを使用し、Google Cloudプロジェクトのトレーニングプラットフォームを使用することで、Digitsは複雑なモデルを迅速かつ効率的にトレーニングするために必要なツールとリソースを得ています。検証セットとモデルレジストリを使用することで、Digitsは高品質なモデルを本番環境にデプロイすることを保証しています。
Digitsは以下の手順でKubernetes上でMLトレーニングをオーケストレーションします。
- ETLプロセス: DigitsはETLプロセスを使用して、システム全体からアーティファクトを収集し、継続的にデータセットをブートストラップします。
- データ検証とスキーマ作成: Digitsはデータセットの統計を検証し、スキーマを作成します。
- 前処理: DigitsはTensorFlow Transformを使用してデータを前処理します。
- トレーニング: Digitsはトレーニングプラットフォームを使用して、Google Cloudプロジェクト内でモデルをトレーニングします。
- 評価: Digitsは検証セットを使用して、トレーニング済みモデルを評価します。
- モデルレジストリ: Digitsは、学習済みモデルをモデルレジストリに登録します。
- デプロイ: Digitsは、CI/CDシステムを使用して学習済みモデルを本番環境にデプロイします。
DigitsにおけるMLトレーニングでのGPUリソース割り当ての管理
MLトレーニングにおけるGPUリソース割り当てに関して、Digitsは手動と自動の両方の手順を含む包括的なアプローチを採用しています。この戦略には以下が含まれます。
手動プロセス: Digitsは、公平な割り当てを維持しつつ過剰な利用を防ぐため、チームやプロジェクトごとに明確なGPU使用量の上限を設定しています。さらに、MLエンジニア間のオープンなコミュニケーションを奨励し、リソースへの意識を高め、競合を軽減しています。
自動プロセス: Digitsは、GPU使用量の継続的な監視を通じて警戒を維持し、使用量が事前定義されたしきい値を超えた場合にはタイムリーなアラートを発行して、問題の早期特定と解決を促進しています。キューイングシステムは、先着順の原則に従って公平なGPU割り当てを保証します。
ベストプラクティス: Digitsは、MLエンジニアがGPU利用を積極的に計画し、リソースの可用性を確保し、競合を最小限に抑えることを奨励しています。クラウドリソースを活用することで柔軟性が得られ、高需要期でも十分なGPUアクセスを確保できます。GPU利用の透明性を促進することは、チームメンバー間の信頼と協力を育み、最終的にリソース管理を強化します。
Digitsにおけるトレーニング実行分析のためのTensorFlow Profilerの活用
Digitsでは、TensorFlow Profilerがトレーニング実行の分析において中心的な役割を果たし、MLモデルの最適化のための貴重な洞察を提供しています。
Digitsは、TensorFlow Profilerを通じてすべてのトレーニング実行を綿密にログに記録し、時間の経過に伴うパフォーマンス傾向の追跡を可能にしています。
トレーニング期間、メモリ消費量、精度などの重要なメトリクスは綿密に 追跡され、多様なモデルや構成間での意味のあるパフォーマンス比較を促進します。
TensorFlow Profilerは、Digitsにさまざまなトレーニング実行のパフォーマンスを体系的に比較する機能を提供し、特定の課題領域に対処するための最も適切なモデルと構成を慎重に選択するのに役立ちます。
利点:
- パフォーマンスの向上: TensorFlow Profilerは、パフォーマンスのボトルネックを特定して対処し、トレーニング速度と精度の大幅な向上をもたらします。
- コスト削減: トレーニングパフォーマンスが向上することで、DigitsにおけるMLモデルトレーニングの全体的なコストが削減されます。
- 透明性の向上: TensorFlow Profilerが提供する詳細なパフォーマンス分析情報は、DigitsのMLモデルトレーニングに対する理解を深め、潜在的な問題を早期に特定するのに役立ちます。
類似性ベースのMLパイプラインにおける検証セットの最適化
類似性ベースのMLパイプライン向けに検証セットを作成する際は、以下の重要な要素を考慮してください。
- 目的: モデルの目的、つまりデータポイント間の類似性を何と見なすかを定義します。この目的が明確になれば、既知の類似例と非類似例で検証セットを構成できます。
- コンテキスト: 検証セットは、モデルの実際のアプリケーションを反映している必要があります。例えば、モデルが顧客に商品を推奨する場合、顧客がよく一緒に購入する商品を含めるべきです。
- サイズ: バランスが重要です。検証セットは統計的に有意でありながら、管理しやすいものであるべきです。一般的な目安として、トレーニングセットのサイズの少なくとも10%にすることです。
- 多様性: モデルの堅牢性を高めるために、検証セットが多様なデータポイントを網羅していることを確認してください。
- オペレーターの影響: オペレーターの数が、検証セットを特定の業界に偏らせる可能性があります。これを軽減するために、さまざまな業種や業界の例を取り入れてください。
類似性ベースのMLパイプラインにおける課題と最適化
類似性ベースのMLパイプラインは、従来のMLパイプラインと比較して、多くの独自の課題と最適化を伴います。
課題:
- 損失関数の選択: 類似性ベースのMLモデルには、さまざまな損失関数を使用できます。適切な損失関数を選択することは、モデルの精度と信頼性を確保するために重要です。
- 訓練データの構造化: 訓練データの構造は、選択された損失関数によって異なります。効率的かつ効果的な方法で訓練データを構造化することが重要です。
- パフォーマンスの最適化: 類似性ベースのMLモデルは、訓練に計算コストがかかる場合があります。パフォーマンスのために訓練プロセスを最適化することが重要です。
最適化:
- GPUを使用する: GPUは、類似性ベースのMLモデルの訓練を大幅に高速化できます。
- モデルのプロファイリング: 訓練中にモデルをプロファイリングすることで、ボトルネックや訓練プロセスを改善できる領域を特定するのに役立ちます。
- データの事前処理: データを事前処理することで、モデルのパフォーマンスを向上させ、訓練時間を短縮できます。
- 入力トークンの削減: 言語モデルを使用している場合、入力トークンの数を減らすことで、モデルのパフォーマンスを向上させ、訓練時間を短縮できます。
Digitsは類似性ベースのMLパイプラインにTensorFlow ExtendedとVertex AI Pipelinesを使用
Digitsは、類似性ベースのMLパイプラインにTensorFlow Extended (TFX)とVertex AI Pipelinesを使用しています。TFXは、Googleが開発した、MLパイプラインの構築、デプロイ、管理のためのオープンソースのエンドツーエンドプラットフォームです。Vertex AI Pipelinesは、MLパイプラインを管理するためのフルマネージド型クラウドサービスです。
TFXは、類似性ベースのMLパイプラインを構築するのに役立ついくつかのコンポーネントを提供しており、その中には以下が含まれます:
- TFXデータ検証: 訓練データの品質と一貫性を検証します。
- TFX Transform: 欠損値の処理、データ型の変換、特徴量のスケーリングなど、訓練データの前処理を行います。
- TFX Model Analysis: 訓練済みモデルの性能を、保持された検証セットで評価します。
- TFX Serving: 訓練済みモデルを本番環境にデプロイします。
Vertex AI Pipelines を使用すると、TFX パイプラインを大規模に簡単に実行および管理できます。Vertex AI Pipelines は、類似性ベースの ML パイプラインに役立ついくつかの機能を提供します。
- 自動スケーリング: Vertex AI Pipelines は、需要に基づいて、パイプラインの実行に使用されるリソースを自動的にスケーリングできます。
- 監視とアラート: Vertex AI Pipelines は、パイプラインの問題を特定して解決するのに役立つ監視およびアラート機能を提供します。
- バージョン管理: Vertex AI Pipelines は、パイプラインへの変更を簡単に追跡および管理できるバージョン管理機能を提供します。
Digits は、モデルレジストリに Vertex Endpoints を、本番化に TF Serving を使用します。
Digits は、モデルレジストリに Vertex Endpoints を、本番化に TF Serving を使用します。
Vertex Endpoints は、機械学習モデルのデプロイと管理のためのフルマネージドのクラウドサービスです。モデルレジストリに適したいくつかの機能を提供します。
- 一元管理: Vertex Endpoints は、モデルを保存および管理するための一元的な場所を提供します。
- バージョン管理: Vertex Endpoints は、モデルへの変更を簡単に追跡および管理できるバージョン管理機能を提供します。
- アクセス制御: Vertex Endpointsは、誰がモデルにアクセスし、デプロイできるかを簡単に制御できるアクセス制御機能を提供します。
TF Servingは、高性能で本番環境に対応したTensorFlowサービングシステムです。本番環境への導入に適したいくつかの機能を提供しており、例えば以下のようなものがあります。
- 高性能: TF Servingは、高スループットかつ低レイテンシーでモデルを配信できます。
- スケーラビリティ: TF Servingは、大量のリクエストを処理できるようにスケールできます。
- 信頼性: TF Servingは、信頼性が高く、本番環境に対応できるように設計されています。
Digitsは、CI/CDを使用してモデルのVertex Endpointsへのデプロイを自動化します。モデルがモデルレジストリに登録されると、CI/CDシステムがトリガーされます。その後、CI/CDシステムはTF Servingモデルを構築し、Vertex Endpointにデプロイします。
利点:
Vertex EndpointsとCI/CDを本番環境への導入に利用することには、いくつかの利点があります。
- スケーラビリティ: Vertex Endpointsは、モデルの配信に使用されるリソースを自動的にスケーリングできるため、大量のリクエストを簡単に処理できます。
- 信頼性: Vertex Endpointsは、信頼性が高く、本番環境に対応できるように設計されています。
- 自動化: CI/CDはモデルのデプロイを自動化するため、ヒューマンエラーのリスクを軽減し、モデルを頻繁にデプロイしやすくします。
Digitsがモデルの再トレーニングが必要な時期を自動的に検出する方法
Digitsは、モデルの再トレーニングが必要な時期を自動的に検出するために、いくつかの手法を組み合わせて使用します。
- モデル予測の監視: Digitsは、本番環境にあるモデルの予測を監視します。予測が不正確になり始めた場合、これはモデルの再学習が必要である兆候かもしれません。
- モデルのパフォーマンス指標の追跡: Digitsは、精度、適合率、再現率など、いくつかのモデルパフォーマンス指標を追跡します。これらの指標が悪化し始めた場合、これはモデルの再学習が必要である兆候かもしれません。
- データスニペットの検証: Digitsは、本番環境からのデータスニペットを定期的に検証します。これにより、発生している可能性のあるデータドリフトを特定できます。データドリフトが検出された場合、これはモデルの再学習が必要である兆候かもしれません。
- モデル出力のレビュー: Digitsには、従業員がモデルの出力をレビューできる社内レビュープラットフォームがあります。これにより、モデルが正確な予測を行っていないケースを特定できます。そのようなケースが特定された場合、これはモデルの再学習が必要である兆候かもしれません。
Digitsがモデルの再学習が必要であると検出すると、CI/CDを使用して再学習とデプロイのプロセスを自動化します。CI/CDシステムは、最新のトレーニングデータを使用して新しいTF Servingモデルを構築し、Vertex Endpointにデプロイします。
例:
以下は、Digitsの自動モデル再学習プロセスがどのように機能するかの例です。
- 本番環境のモデルが不正確な予測を行います。
- Digitsの監視システムが不正確な予測を検出し、CI/CDシステムに通知を送信します。
- CI/CDシステムが新しいトレーニングジョブをトリガーします。
- トレーニングジョブは、最新のトレーニングデータを使用して新しいモデルを学習します。
- CI/CDシステムは、新しいモデルをVertex Endpointにデプロイします。
- 新しいモデルは、本番環境で予測を行うために使用されます。
MLエンジニアとデザイナー間の連携の重要性
機械学習(ML)エンジニアとデザイナーは、しばしば個別の部署で作業することが多く、これはMLモデルを本番環境に導入しようとする際に問題を引き起こす可能性があります。MLエンジニアは、正確ではあるもののユーザーフレンドリーではないモデルを開発する可能性があり、一方、デザイナーは視覚的に魅力的ではあるものの、モデル予測に関するフィードバックを収集しないインターフェースを作成する可能性があります。
これらの課題に対処するためには、MLエンジニアとデザイナーが密接に連携することが重要です。これは、以下の方法で実現できます。
- 製品要件の共同策定: MLエンジニアとデザイナーは、MLモデルの製品要件を共同で定義すべきです。これにより、モデルがユーザーのニーズを満たすように開発され、インターフェースの設計がモデルと互換性を持つことが保証されます。
- フィードバックの共有: MLエンジニアとデザイナーは、定期的に互いにフィードバックを共有すべきです。これにより、モデルやインターフェースに関する潜在的な問題を早期に特定するのに役立ちます。
- フィードバックループの作成: MLエンジニアとデザイナーは、モデルのパフォーマンスとインターフェースの使いやすさについてユーザーからフィードバックを収集するためのフィードバックループを作成すべきです。このフィードバックは、時間とともにモデルとインターフェースを改善するために利用できます。
MLプラットフォーム構築のためのアドバイス
- 効率性: 独自のデータや高いレベルのプライバシーとセキュリティを必要とするような、特定のアプリケーション向けに効率的なMLOpsパイプラインを構築することに注力してください。
- APIファースト: 一般的なタスクには、OpenAI、Anthropic、Bard、その他のプロバイダーが提供する事前学習済みモデルの利用を検討してください。
- コンサルテーション: これらのAPIの利用方法や、特定のドメイン固有の問題を解決する方法について、他のチームメンバーと相談することに注力してください。
Digitsにおける生成AI
生成AIは多くの産業に革命をもたらす可能性を秘めています。Digitsにおける生成AIのユースケースをいくつかご紹介します。
- 会計士とオペレーター間のコミュニケーション促進: 生成AIは質問と回答の推定を生成するために使用でき、これにより双方の時間と労力を節約できます。
- 大規模言語モデルの社内ホスティング: Digitsは大規模言語モデルをホスティングするための独自のインフラストラクチャを持っており、これにより安全かつプライバシーを重視した方法でホスティングを行うことができます。
- 生成AIモデルへのAPIベースのアクセス利用: 生成AIモデルへのAPIベースのアクセスと類似性ベースの機械学習を組み合わせることで、画期的な製品体験を提供できる可能性があります。
存在します プライバシーとセキュリティに関する懸念 生成AIには関連する懸念があり、これらの懸念に責任ある方法で対処することが重要です。コミュニティとして、誰もが安全で恩恵を受けられるような方法で生成AIを開発し、利用する方法を見つけることができます。
大規模言語モデルのニーズに対応するため、キャスティングとモデルレジストリのホスティング環境は今後数年間で大きく変化するでしょう。 - Hannes
True ML Talksシリーズの以前のブログはこちら:
TrueMLをぜひご覧ください YouTubeシリーズ とTrueMLを ブログシリーズ。
TrueFoundry は、Kubernetes上で動作するMLデプロイメントPaaSであり、開発者のワークフローを加速させるとともに、モデルのテストとデプロイにおいて完全な柔軟性を提供し、インフラチームには完全なセキュリティと制御を保証します。当社のプラットフォームを通じて、機械学習チームは デプロイと監視を 15分で、100%の信頼性、スケーラビリティ、そして数秒でのロールバック機能で実現します。これにより、コストを削減し、モデルをより迅速に本番環境にリリースできるようになり、真のビジネス価値の実現を可能にします。
TrueFoundry AI Gateway delivers ~3–4 ms latency, handles 350+ RPS on 1 vCPU, scales horizontally with ease, and is production-ready, while LiteLLM suffers from high latency, struggles beyond moderate RPS, lacks built-in scaling, and is best for light or prototype workloads.















.webp)
.webp)


.png)

.png)














