Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AWS SageMaker導入による 機械学習インフラの再構築プロジェクト

652 views

Published on

AWSの機械学習マネージドサービス「Sagemaker」を活用することで、自然言語処理サービスのインフラを再構築した話をします。システムを独立コンポーネントの集まりとして分割し、各コンポーネント間の依存関係や独自実装していた処理をSagemakerの機能に置き換えました。プロジェクトの成果として、コード量の削減、学習時間の短縮、精度向上などがもたらされました。

Published in: Software
  • Be the first to comment

  • Be the first to like this

AWS SageMaker導入による 機械学習インフラの再構築プロジェクト

  1. 1. AWS SageMaker導入による
 機械学習インフラの再構築
 Studio Ousia 
 島岡 聖世

  2. 2. はじめに
 ● 自然言語処理を応用したサービスを作っています
 
 ● チャットボットサービス QA ENGINE を提供

  3. 3. はじめに
 AWSの機械学習サービス SageMaker を導入することで、 QA ENGINE のインフラが改善された話をします。
  4. 4. QA ENGINEのサービス概要 チャットボットのためのテキスト分類APIを提供
 ① データのアノテーション 
 ② ワンクリックで学習&デプロイ 
 ③ チャットボットと連携 

  5. 5. コントロール
 サーバー
 クライアント API
 システム構成(SageMaker導入前;レガシー)
 機械学習
 モジュール
 フロントシステム
 :通信
 :コードの依存関係

  6. 6. コントロール
 サーバー
 クライアント API
 システム構成(SageMaker導入前;レガシー)
 機械学習
 モジュール
 フロントシステム
 タスク処理用のサーバー 
 
 ・学習ジョブの起動
 ・推論インスタンス起動 
 ・データベース処理
 ・etc...
 :通信
 :コードの依存関係

  7. 7. コントロール
 サーバー
 クライアント API
 システム構成(SageMaker導入前;レガシー)
 機械学習
 モジュール
 フロントシステム
 タスク処理用のサーバー 
 
 ・学習ジョブの起動
 ・推論インスタンス起動 
 ・データベース処理
 ・etc...
 :通信
 :コードの依存関係
 テキスト分類の
 クライアント用API

  8. 8. コントロール
 サーバー
 クライアント API
 システム構成(SageMaker導入前;レガシー)
 機械学習
 モジュール
 機械学習の
 学習や推論の実装
 フロントシステム
 タスク処理用のサーバー 
 
 ・学習ジョブの起動
 ・推論インスタンス起動 
 ・データベース処理
 ・etc...
 :通信
 :コードの依存関係
 テキスト分類の
 クライアント用API

  9. 9. レガシーシステムの課題
 
 ① 周辺的な処理によるコードの肥大化
 
 ② コンポーネント間の依存関係
 
 

  10. 10. ① 周辺的な処理によるコードの肥大化 ジョブやリソースのマネジメントにたくさんの行数を消費
 
 
 ● 学習
 
 ● 推論
 
 
 
 ● 学習ジョブ起動、状態確認
 
 ● 推論インスタンス起動、更新
 
 ● モニタリング、スケーリング
 
 ● etc...
 本質的な処理 周辺的な処理 レガシーシステムの課題 

  11. 11. ① 周辺的な処理によるコードの肥大化 ジョブやリソースのマネジメントにたくさんの行数を消費
 
 
 ● 学習
 
 ● 推論
 
 
 
 ● 学習ジョブ起動、状態確認
 
 ● 推論インスタンス起動、更新
 
 ● モニタリング、スケーリング
 
 ● etc...
 本質的な処理 周辺的な処理 レガシーシステムの課題 
 コードの
 肥大化

  12. 12. ② コンポーネント間の依存関係 3つのコンポーネントが、同じリポジトリで相互依存
 コントロール
 サーバー
 機械学習
 モジュール
 クライアント API
 共通モ ジュール
 単一リポジトリ
 :コードの依存関係
 レガシーシステムの課題 

  13. 13. ①コードの肥大化 & ②コンポーネント間の依存関係
 
 
 機械学習モデルの改良などが困難な状況に

  14. 14. SageMakerで解決できないか?

  15. 15. SageMakerとは
 フルマネージド機械学習サービス。学習、性能評価、デプロイ、モニタリングなど機械学 習ワークフロー全体を、APIやコンソールで操作

  16. 16. SageMakerの魅力
 
 ① 周辺的な処理を任せられる
 
 ② 機械学習モデルをDockerイメージとして作成
 
 

  17. 17. ① 周辺的な処理を任せられる
 機械学習に関連する周辺的な処理は、SageMakerがマネージしてくれる
 SageMakerの魅力
 
 
 ● 学習
 
 ● 推論
 
 
 
 ● 学習ジョブ起動、状態確認
 
 ● 推論インスタンス起動、更新
 
 ● モニタリング、スケーリング
 
 ● etc...
 本質的な処理 周辺的な処理
  18. 18. SageMaker
 ① 周辺的な処理を任せられる
 機械学習に関連する周辺的な処理は、SageMakerがマネージしてくれる
 SageMakerの魅力
 
 
 ● 学習
 
 ● 推論
 
 
 
 ● 学習ジョブ起動、状態確認
 
 ● 推論インスタンス起動、更新
 
 ● モニタリング、スケーリング
 
 ● etc...
 本質的な処理 周辺的な処理
  19. 19. ② 機械学習モデルをDockerイメージとして作成 ● 任意の言語、フレームワークを利用可能
 ● SageMakerからみれば、モデルは要件を満たすブラックボックス
 任意の機械学習モデル 
 SageMaker
 Dockerイメージ参照 
 SageMakerの魅力

  20. 20. SageMakerを導入すれば、機械学習インフラを大きく改善 できるのではないか?
 期待と共に、プロジェクトを実施。

  21. 21. Sagemaker導入プロジェクト
 2019年
 1月
 2月
 3月
 4月
 6月
5月
 提案
 実装
 本番
 デプロイ
入社

  22. 22. プロジェクトによってシステムはどの ように変わったのか?

  23. 23. レガシーシステム 3つのコンポーネントが、同じリポジトリで相互依存
 コントロール
 サーバー
 機械学習
 モジュール
 クライアント API
 共通モ ジュール
 単一リポジトリ
 :コードの依存関係

  24. 24. 新しいシステム
 ● 各コンポーネントを別々のリポジトリで管理
 ● コンポーネント間の依存関係は、SageMakerのインターフェースに置き換え
 :通信
 :Dockerイメージ参照 
 リポ ①
 コントロール
 サーバー
 クライアント API
 SageMaker
 機械学習
 モジュール
 リポ ②
 リポ ③
 リポ ①

  25. 25. プロジェクト前後の変化
 リポ ①
 コントロー ル
 サーバー
 クライアン トAPI
 SageMaker
 機械学習
 モジュール
 リポ ②
 リポ ③
 リポ ①
 コントロール
 サーバー
 機械学習
 モジュール
 クライアント API
 共通モ ジュー ル
 単一
 リポジトリ
 :通信
 :Dockerイメージ参照 
 :コードの依存関係

  26. 26. 数字でみる変化
  ① コードの量が減った
 
 40%
 行数の削減率
 ② 学習時間が短縮された
 
 70%
 学習時間の
 平均削減率
  ③ 性能が上がった
 
 4.4%
 正解率の
 平均上昇幅

  27. 27. ① コードの量が減った
 独自実装だった周辺的な処理がSageMakerに吸収され、行数が 40% 削減
 数字でみる変化

  28. 28. ② 学習時間が短縮された
 ● ハイパーパラメタ探索を行なっている
 
 ● SageMakerの機能により効率的な実装が可能に
 
 ● クライアント平均で学習時間 70% 短縮
 数字でみる変化

  29. 29. ③ 精度が上がった
 MLエンジニアはシステム全体を気にすることなく、自由なフレームワークを使用可能に。 ゼロから新しいモデルが開発され、正解率は、平均 4.4% 上昇
 リポ ①
 コントロー ル
 サーバー
 クライアン トAPI
 SageMaker
 機械学習
 モジュール
 リポ ②
 リポ ③
 リポ ①
 プロダクト
 エンジニア
 MLエンジニア
 数字でみる変化

  30. 30. 数字でみる変化
  ① コードの量が減った
 
 40%
 行数の削減率
 ② 学習時間が短縮された
 
 70%
 学習時間の
 平均削減率
  ③ 性能が上がった
 
 4.4%
 正解率の
 平均上昇幅

  31. 31. チームメンバーや顧客からも高評価が続出

  32. 32. チームメンバーや顧客からも高評価が続出
 「革命が起きたということになりますね」 ー 弊社エンジニア

  33. 33. チームメンバーや顧客からも高評価が続出
 「革命が起きたということになりますね」 ー 弊社エンジニア
 「QA ENGINEのシステムアップデート後、回答精度が格段に良くなり回答できる範 囲が拡張できました。ありがとうございます。」ー クライアント様

  34. 34. チームメンバーや顧客からも高評価が続出
 「革命が起きたということになりますね」 ー 弊社エンジニア
 「QA ENGINEのシステムアップデート後、回答精度が格段に良くなり回答できる範 囲が拡張できました。ありがとうございます。」ー クライアント様
 「こちらは正常に完了していますでしょうか。それであればとても嬉しいのです が...。」ー クライアント様 (学習時間が大幅に短縮されて不審に思われた) 

  35. 35. プロジェクトは大成功!

  36. 36. まとめ
 Thanks!
 ● 周辺的な処理をプラットフォームに任せれば、本質 的な仕事に専念出来るようになる
 
 ● コンポーネント同士の依存関係をなくせば、チーム の共同作業は効率的になる
 

  37. 37. SageMakerとは
 AWSの機械学習のマネージド型サービス。機械学習モデルを構築、トレーニング、デプ ロイするためのモジュールを提供
 構築
 
 ● 定番のMLモデルをあ らかじめ用意
 
 ● Dockerでカスタムモ デルを構築可能
 トレーニング
 
 ● 学習データはS3に
 
 ● コンピューティング資 源を自動管理
 
 ● 並列でハイパーパラ メータ探索
 デプロイ
 
 ● 学習済みモデルをコ マンド一つでデプロイ
 
 ● モニタリングとオート スケーリング

  38. 38. ② 機械学習モデルをDockerイメージとして作成 ● 任意の言語、フレームワークを利用可能
 ● SageMakerからみれば、モデルは要件を満たすブラックボックス
 任意の機械学習モデル 
 SageMaker
 要件
 
 ● ハイパラ、学習データ、学習後モデルの ディレクトリのマウント先 
 
 ● コンテナ起動時の実行コマンド 
 
 ● 標準出力への各種指標の出力フォー マット
 
 ● 推論時のREST APIの仕様 
 ECRから参照
 SageMakerの魅力

  39. 39. コントロール
 サーバー
 クライアント API
 レガシーシステム構成
 機械学習
 モジュール
 フロントシステム
 :通信
 :コードの依存関係

  40. 40. コントロール
 サーバー
 クライアント API
 新しいシステム構成
 フロントシステム
 機械学習
 モジュール
 SageMaker
 :通信
 :Dockerイメージ参照 


×