Amazon Web Services ブログ

Cinnamon AI は、Amazon SageMaker マネージドスポットトレーニングで ML モデルのトレーニングコストを 70% 節約

開発者はモデルの予測を継続的に改善できるよう、絶えず機械学習 (ML) モデルのトレーニングと再トレーニングを行っています。データセットのサイズに応じて、モデルトレーニングジョブは数分から数時間、または数日かかることもあります。ML 開発は、複雑で費用のかかる反復的なプロセスになることがあります。コンピューティング集約型であるため、ML 開発のコンピューティングコストを低く抑えることは重要で、コスト削減はスケーラビリティを達成する上でのカギを握っています。

Amazon SageMaker は、ML モデルを大規模に構築・トレーニング・チューニングおよびデプロイするための完全マネージド型のサービスです。Amazon SageMaker のマネージドスポットトレーニングでは、Amazon EC2 スポットインスタンスをトレーニングに使用することで、トレーニングコストを最大 90% 節約できます。

EC2 スポットインスタンスは、ML トレーニングワークロードの計算コストを最適化するための優れた方法です。 Amazon EC2 の空きキャパシティを利用することでオンデマンドインスタンスよりも最大 90% の割引が可能です。特定のアベイラビリティーゾーン (AZ) で特定のオンデマンドインスタンスタイプのリクエストが急増すると、AWS は 2 分間の通知でスポットインスタンスを回収することがあります。

この記事では、Cinnamon AI が Amazon SageMaker マネージドスポットトレーニングを使用して、予算を増やすことなく、ML トレーニングコストを 70% 削減し、毎日のトレーニングジョブ数を 40% 増加させた方法について説明します。

Amazon SageMaker マネージドスポットトレーニング

マネージドスポットトレーニングは、オンデマンドインスタンスの代わりに EC2 スポットインスタンスを使用してトレーニングジョブを実行します。マネージドスポットトレーニングでは、Amazon SageMaker はスポット容量を管理し、中断を処理します。スポットが中断した場合、マネージドスポットトレーニングはトレーニングジョブを一時停止し、スポット容量が使用可能になると再開します。その結果、マネージドスポットトレーニングは、開始時間・実行時間に柔軟性があるモデルトレーニングジョブに最適です。トレーニングジョブでチェックポイントを使用することもできます。チェックポイントを有効にすると、Amazon SageMaker はチェックポイントデータをローカルパスから Amazon S3 にコピーし、最初から行うのではなく、中断されたトレーニングジョブを最後のチェックポイントから再開します。マネージドスポットトレーニングにより、スポット容量をポーリングするための追加のツールを構築したり、中断を管理したりする必要がなくなります。人気の ML フレームワーク、Amazon SageMaker 組み込みアルゴリズム、カスタムで作ったモデルを使用して構築されたモデルをトレーニングする際に、マネージドスポットトレーニングを使用できます。

この機能を有効にするには、Amazon SageMaker コンソールで [Enable managed spot training] を選択します。次のスクリーンショットを参照してください。

Amazon SageMaker SDK をお使いの場合、Estimator コンストラクターで train_use_spot_instancestrue に設定します。Amazon SageMaker がスポットインスタンスが利用可能になるまで待機する時間を制御する停止条件を指定することもできます。

Cinnamon AI はモデルトレーニングコストを 70% 節約

人工知能 (AI) システムがもたらす大きなチャンスを活かし、多くの企業は AI を活用した製品を開発して、インテリジェントなサービスを構築しています。そのようなイノベーターの 1 社が Cinnamon AI です。Cinnamon AI は、AI サービスの提供を通じて「反復的なタスクを排除することで人間の可能性を拡大する」という使命を持つ日本に拠点を置くスタートアップです。

Cinnamon AI の主力製品である Flax Scanner は、自然言語処理 (NLP) アルゴリズムを使用して、請求書・領収書・保険金請求書・財務諸表などの非構造化ビジネスドキュメントからのデータ抽出を自動化する AI-OCR です。Flax Scanner はこれらのドキュメントをデータベース対応ファイルに変換します。目標は、人間がそのようなドキュメントを読んで必要なデータを抽出する必要をなくすことです。これにより、ビジネスの時間を数百万時間節約し、運用コストを削減できます。このサービスは、手書きの文書や日本語の文字でも機能します。

Cinnamon AI は、Rossa Voice と Aurora と呼ばれる、ML を使用した他の 2 つのサービスも開発しました。Rossa Voice は、高精度のリアルタイム音声認識サービスで、音声詐欺検出に関連するアプリケーションや、コールセンターでレコードを転記するアプリケーションを備えています。また、Aurora は、ドキュメント内の長い文章から必要な情報を自動的に抽出するサービスです。このサービスを使用して、仕様および契約文書から重要な情報を検索できます。

Cinnamon AI は ML 開発コストを削減することを目標としていたため、異なる開発環境を単一のプラットフォームに統合し、継続的にコストを最適化することにしました。AWS の幅広いサービス、費用対効果の高い料金設定オプション、きめ細かなセキュリティ管理、技術サポートのため、Cinnamon AI は ML サービスの開発に AWS を選択しました。最初のステップとして、Cinnamon AI はすべての ML ワークロードをオンプレミス環境や他のクラウドプロバイダーから AWS に移行しました。次に、チームは EC2 の使用方法を最適化し、Amazon SageMaker を使用して自社の ML モデルをトレーニングし始めました。最近では、マネージドスポットトレーニング機能を使用して、トレーニングにスポットインスタンスを使用し始めました。これは、コスト構造を大幅に最適化するのに役立ちました。

「Amazon SageMaker のマネージドスポットトレーニング機能のおかげで、AWS のコストを大幅に削減できました。マネージドスポットトレーニングを使用した後、AWS EC2 のコストが最大70% 削減されました」と、Cinnamon AI のインフラストラクチャ・情報セキュリティオフィスのゼネラルマネージャーである斉藤哲也氏は述べています。「さらに、マネージドスポットトレーニングは複雑な方法を必要とせず、SageMaker SDK から簡単に使用できます」

次のグラフは、Cinnamon AI のモデルトレーニングの 6 か月間のコスト削減の過程を示しています。2019 年 6 月、ML ワークロードを AWS に移行した後、モデルトレーニングに EC2 オンデマンドインスタンスの使用を開始しました。これは、トレーニングコストの観点から見た参考資料として扱うことができます。その後数か月にわたって、主にインスタンスを適切なサイズに設定し、GPU インスタンス (P2、P3) を大規模なトレーニングジョブに使用することにより、EC2 オンデマンドの使用量を最適化しました。また、オンデマンドインスタンスによるモデルトレーニングに Amazon SageMaker を採用し、トレーニングコストを約 20% 削減しました。さらに、2019 年 11 月に、マネージドスポットトレーニングを行い、モデルトレーニングにスポットインスタンスを使用することで、70% の大幅なコスト削減を実現しました。また、コスト最適化の取り組みにより、コストを削減しながら、毎日のモデルトレーニングジョブ数を 40% 増やすことができました。

Cinnamon AI のモデル開発環境

Cinnamon AI は複数の ML ベースの製品とサービスを開発しているため、同社のデータタイプはアプリケーションによって異なり、データセットサイズが 100 MB〜40 GB の 2次元画像、音声やテキストが含まれます。Cinnamon AI は主にカスタム深層学習モデルを使用しており、よく使われるフレームワークは TensorFlow, PyTorch, Keras です。Cinnamon AI は、数時間から数日までの実行時間で、時間のかかるニューラルネットワークのトレーニングジョブに GPU インスタンスを使用しています。また、小規模な実験には CPU インスタンスを使用しています。

次のアーキテクチャは、Cinnamon AI の ML 環境とワークフローを詳細に示しています。

AI の研究者は、自社のワークステーションでコードを開発し、共有の常時接続 EC2 サーバーと同期しています (オンデマンドインスタンス)。このインスタンスは、Amazon SageMaker ローカルモードを呼び出して、小さなデータセットでスクリプトとモデルを実行・テスト・デバッグするために使用されます。実行されたコードはテスト後、Docker イメージにパッケージ化され、Amazon ECR に保存されます。これにより、研究者はチーム間で作業を共有し、それぞれの Amazon SageMaker トレーニングインスタンスで必要な Docker イメージを ECR から取得できます。また、EC2 サーバーでは研究者は Amazon SageMaker Python SDK を使用して Amazon SageMaker Estimator を初期化し、Amazon SageMaker でトレーニングジョブを起動できます。

Cinnamon AI のほとんどすべてのトレーニングジョブは、マネージドスポットトレーニングを介して Amazon SageMaker のスポットインスタンスで実行され、チェックポイント設定を有効にしてモデルの状態を保存します。Amazon SageMaker は、トレーニングの進行中にチェックポイントを Amazon S3 に保存し、それを使用して、スポットが中断した場合にトレーニングを再開できます。S3 に加えて、Cinnamon AI は Amazon FSx for Lustre を使用して、ML モデルをトレーニングするために Amazon SageMaker にデータをフィードします。S3 からデータを直接ロードする場合と比較して、Amazon FSx for Lustre を使用すると、SageMaker トレーニングインスタンスへのデータのロード時間が短縮されました。EC2 インスタンスと SageMaker トレーニングインスタンスの両方から、S3 と Amazon FSx for Lustre のデータにアクセスできます。Amazon SageMaker は、Cinnamon AI の研究者がトレーニングジョブをモニタリングするために使用するトレーニングメトリクスを Amazon CloudWatch に公開しています。

まとめ

マネージドスポットトレーニングは、ジョブのモデルトレーニングコストを最適化する優れた方法で、開始時間と実行時間を柔軟に調節できます。Cinnamon AI チームは、Amazon SageMaker によるコスト削減戦略をうまく活用し、毎日の実験の回数を増やし、トレーニングコストを 70% 削減しました。モデルトレーニングにスポットインスタンスを使用していない場合は、マネージドスポットトレーニングをお試しください。詳細については、「マネージドスポットトレーニング: Amazon SageMaker トレーニングジョブで最大 90% を節約」を参照してください。Amazon SageMaker は、こちらから使用開始できます。

 


著者について

Sundar Ranganathan は EC2 チームのプリンシパルビジネス開発マネージャーで、AI/ML の EC2 スポット、およびビッグデータ、コンテナ、DevOps ワークロードに焦点を当てています。彼は、NetApp、Micron Technology、Qualcomm、Mentor Graphics の製品管理および製品開発でリーダーシップも発揮してきました。

 

 

針原佳貴は、博士(情報理工学)であり機械学習のワークロードに焦点を当てた日本のスタートアップソリューションアーキテクトです。彼は Cinnamon AI がワークロードを Amazon SageMaker に移行するのを支援しました。

 

 

さらに AWS シニアソリューションアーキテクトの宇都宮聖子も本稿に貢献しました。