[セッションレポート] Amazon Sagemaker low-code toolsを使って機械学習を加速する #reinvent #AIM314

2022.11.29

せーのでございます。

このブログでは2022/11/28(現地)より行われておりますAWS最大のカンファレンス「re:Invent 2022」よりセッション

Accelerate your ML journey with Amazon SageMaker low-code tools

の様子をレポートいたします。

概要

機械学習(ML)の旅が成功するためには、継続的な実験と迅速なプロトタイピングが必要です。精度の高いモデルを作成するために、データサイエンティストはまず、特徴量エンジニアリング、モデル選択、最適化技術を実験する必要があります。これらのプロセスは、従来、時間とコストがかかるものでした。このセッションでは、Amazon SageMaker Data Wrangler、Amazon SageMaker Autopilot、Amazon SageMaker JumpStart などのローコードツールが、どのように実験を高速化し、高精度なモデルをより迅速かつ効率的に本番環境に導入することを容易にするのかを学びます。

レポート

今日学ぶこと

  • low-code toolを使うべき理由
  • ワークフローのなかでどうやって使うのか
  • これらのインターフェースがどんなものなのか
  • 目的はML実践者の生産性を高めつつ、彼らが構築しているソリューションの柔軟性と可視性を維持すること
  • 今日やるソリューションはオープンボックスでのカスタマイズが可能

  • Sagemakerには3つのlow-code toolsがある

  • 全てSagemaker Studioで使われる

    • データを準備するData Wrangler
    • モデルを構築してトレーニングやチューニング、デプロイを行うautopilot
    • sagemaker JumpStart: ハブ
  • KeynoteでData Wranglerに関する発表があるのでぜひ聞いてみて

Data Wrangler

  • データサイエンティストたちは、データを良い状態に持っていったら、その準備に時間の60〜80%を費やすと言われている
  • Data Wranglerにデータをインポートしたら、ビジュアルなポイント&クリックUIを使ってデータを探索し、データを変換することができる
  • 変換したデータはトレーニングや推論のパイプラインに取り込むことができる
  • 分析もできる
    • 特徴の重要性を理解
    • データの偏りを検出
  • 機能: Transformations

  • 300を超えるポイント&クリック
  • PCA(主成分分析)による次元削減
  • ホットエンコーディング
  • コードスニペットのライブラリもある
  • Data Wranglerからautopilotの実験(experiment)を立ち上げて、データに基づいてモデルを構築する(後述する)

  • コードをnotebookやpythonファイルでエクスポートできる
    • Sagemakerパイプラインやほかの学習、推論ワークフローに使える

  • 左側にはデータをインポートするソース、右側にはデータをエクスポートするソース、そして中央にはdata Wranglerのコアコンピテンシーであるdata Wrangler UIがあり、完全にローコードのビジュアルアプローチでデータを実験することができる
  • Data Wranglerは2つの成果物を作る
    • レシピファイル
      • .flowで表される
      • データ準備ワークフローに追加したTransformationsに基づく全てのコードを持っている
    • レシピファイルを使ってジョブにアクセスするためのコード
      • notebook形式
      • data Wrangler UIからこれを使って処理ジョブを起動する
      • カスタマイズして自分のパイプラインに取り込む

  • このスライドはローコードツールが様々なMLワークフローの中でどこに位置し、どのように連携しているかを理解するためのもの
  • 上部が開発のワークフロー
    • 実験のワークフローで普通はデータサイエンティストがやるところ
    • データのサンプルで作業し、実際に実験と反復を行う
    • 生のデータセットから調査し、トレーニングチューニングを構築して、本番環境に導入するモデルを作成する
  • 真ん中が学習のワークフロー
    • 作ったモデルをMLエンジニアに渡す
    • MLエンジニアはそのモデルを再トレーニングして本番に送る
  • 下部は予測のワークフロー
    • Real Worldから予測してほしいデータがくる
    • 開発や学習のワークフローと同じ特徴料エンジニアリングをする必要がある
  • Data Wranglerはこの部分にハマる

  • Data WranglerのUIを使えば予測のワークフローにてジョブを叩くだけで学習や開発のワークフローと全く同じ事ができる

Autopilot

  • モデルの学習とチューニングとデプロイのためのローコードツール
  • データセットを持ってautopilotに来ると、ターゲットカラムを指定してautopilot実験を開始することができる
  • モデルリーダーボードを提供
  • 客観的指標によってモデルをランク付け
  • 最も優れた実験モデルをSagemaker endpointにデプロイする
  • データセットとターゲットカラムを指定すると、データ探索から事前処理、モデル構築、どのモデルを選択するかの提案まで、すべてを行うことができる

  • Data WranglerとAutopilotの連携について

  • 本来はデータサイエンティストがモデルとパラメータの組み合わせを考えるが、Autopilotはそれを自動でおこない、並列に実験する
  • このデータの事前処理部分にData Wranglerが作ったtransformが使える
  • 学習と検証のデータ比率を変えられる

  • トレーニングモードが3種類ある

  • Gluonを使ったアンサンブル: 15分くらいかかる
  • HPO(Hyper parameter optimization): 2時間くらい
  • 自動

Autopilotが行う役割

Data Wranglerと合わせてみると

JumpStart

  • Sagemakerを使う人のためのMLハブ
  • 事前に学習しておいたモデルが大量にある
  • ゼロから作らなくても良いので時間とリソースが大幅に短縮できる
  • Sagemakerとの互換性に優れている
  • 公開モデルからインポートする際にセキュリティチェックが行われてS3に保管されるため安全

  • Data WranglerやAutopilotとは違い、まずユースケースから使えそうなモデルを選択するアプローチ
  • その後使いたいモデルに合うデータを準備する

JumpStartの役割

  • JumpStartでは基盤モデルも使えるようになった
  • Alexaの基となっている20Bモデルなどの大量データを使った様々なアプリケーションの基盤とできる大規模なAIモデルがJumpStartから使える

まとめ

Sagemaker、特にSagemaker Studioを使って機械学習を行う大体の流れが理解できました。
特にAlexaの基盤モデルを使って学習ができるということは、夢の大阪弁Alexaや○○店舗専用Alexaなどもトレーニングできるかもしれませんね!