クイックなML環境の構築を実現するSageMaker
弥生株式会社 / siida
メンバー / 機械学習エンジニア
| ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
|---|---|---|
| 10名以下 | 2023年10月 | B to B |
| ツールの利用規模 | 10名以下 |
|---|---|
| ツールの利用開始時期 | 2023年10月 |
| 事業形態 | B to B |
導入の背景・解決したかった問題
導入背景
こんにちは、弥生株式会社のsiidaです。今日は弥生のR&Dチーム(R&D室)で活用しているSageMakerについてご紹介します。
2023年10月、弥生にR&D室というチームが発足しました。主にAIや機械学習といった先端技術領域での研究開発に取り組む組織であり、次のような位置付けを持っていました。
- スコープはPoCや研究開発を対象とする
- プロジェクトやタスクの粒度は流動的である
- 少数精鋭体制で早期の成果が期待される
R&D室の立ち上げにあたって、これから業務で必要となるML環境の構築に取り掛かりました。そこで上記の状況を整理すると、次のように技術的な要件が浮かび上がってきました。
- 導入時の工数が低いこと
- 環境構築の工数が低いこと
- サービス使用開始時の学習コストが低いこと
- 計算機や関連リソースの運用コストを抑えられること
- ジョブに対し必要十分な性能の計算機が選択可能なこと
- PoC、研究開発という目的に対して機能が過剰でないこと
こうした要件を満たすサービスは何か?検討を重ねて選んだサービスがSageMakerです。それでは、どのような視点で検討を行ったのか、順に説明します。
比較検討したサービス
弥生ではクラウドファーストの方針の元、標準となるクラウドはAWSだったので、AWSのプラットフォームで使用可能なサービスの中から選定を行うことにしました。SageMaker以外の候補としては、次のサービスが挙げられます。
- EC2: 自由度の高い汎用的な計算環境
- ECS: コンテナによって安定した環境運用が可能なサービス
- EKS: Kubernetesで大規模な環境を構築可能な基盤
比較した軸
必須要件に関しては導入部で説明しましたが、改めて希望要件についてもまとめてみます。
- Must
- 導入コスト: 環境構築・オンボーディングの工数
- 運用コスト: リソースにかかる費用
- Want
- 開発環境の使いやすさ: ターミナルの使用感など
- ジョブ管理システムの使いやすさ: 負荷の高いジョブを並列に実行し、モニタリングできるか
選定理由
R&D室立ち上げの時点ではECSやEKSが持つスケーラビリティは不要であり、またEC2の場合は環境構築のコストが高く付きます。よって必要最低限の分析環境が構築済みであるSageMakerが第一候補となりました。EDAやモデルトレーニングに用いるPythonコードの実行環境が整っているだけではなく、Code Editorによって即座にリッチな開発環境が使用できるため、インスタンスを起動するだけで即座に業務に取り掛かれる手軽さは大変便利です。
もちろん手軽なだけではなく、不要なコストを掛けない点でもSageMakerは優れています。Processing Jobを使うことによって、リソースを必要最低限に抑えつつ、実験結果の再現性を担保可能です。ジョブ単位でリソースを選択できるため、コンテナ単位でリソースを選択するECSやEKSと比べても、高額な計算機を活用しやすい点で研究開発に向いています。特にモデル開発が加熱した時期においては、Processing Jobによって並列で複数のジョブを投げることによって、効率的にパラメータチューニングできました。
これらの点によりMust/Wantの要件をすべて満たすことから、SageMakerの採用を決定しました。
導入の成果
導入から約2年の間に、R&D室から多くのアウトプットが生まれました。特にSageMakerの果たした役割が大きかった機能は、今年の4月にリリースされたAI資金予測β版(現 AI資金分析 β版)です。弥生の抱えるビッグデータを元にEDAやモデル構築を実施するというタスクにおいて、SageMakerによって環境構築を行うことで素早くPoCを完遂させプロダクトへの組み込みを実現しました。その他にもR&D室では、言語処理学会や人工知能学会、査読付き国際会議での論文発表をはじめ、様々な研究成果を残しました。不確実性の高いPoCや研究開発というプロジェクトにおいては、手軽で柔軟な分析・開発環境であるSageMakerの存在が、R&D室の躍進を支えたと言えます。
導入時の苦労・悩み
Processing Jobについて、公式ドキュメントを参照するだけでは得られない情報も多々ありました。使用可能なインスタンスタイプやPythonの実行バージョンに関する説明に加え、実際の挙動など、手探りで調べなければならないことが多かった印象です。SageMakerの大きな利点として導入コストの低さを挙げている以上は、Processing Job周りの学習コストも下げられると良いように思いました。
導入に向けた社内への説明
上長・チームへの説明
前述のように要件を整理し、R&D室という立ち上げたばかりの研究開発組織にあったサービスとしてSageMakerが妥当であるというコンセンサスを得ました。また仮置きで費用感について計算し、事前に設定された予算を逸脱しないことを確認して、導入を決定しました。
活用方法
よく使う機能
- Processing Job
- ビッグデータの前処理からモデルトレーニングまで、汎用的に使えるジョブ管理機能
- Code Editor
- コーディングにもNotebookによる分析にも向いたVS Codeライクな開発環境
ツールの良い点
- MLに必要なライブラリがインストールされたインスタンスを使用できる
- リソースをジョブ単位で選択できる
- 並行して複数のリソースを使ってジョブを実行できる
ツールの課題点
- 一部の高性能インスタンスの割り当てが不安定
- ドキュメントが追いついていない印象
ツールを検討されている方へ
素早く柔軟にML環境を構築でき、さらにビッグデータを扱う上での運用コストを制御しやすい点が優れています。データ分析や研究開発を実施する組織の立ち上げにおいて、いち早く業務を軌道に乗せることができると思います。SageMakerは導入が簡単な一方で情報が少々不足気味ですが、弥生ではそれを補うようなSageMakerの使い方に関する開発者ブログを執筆しています。今回の記事や開発者ブログの記事が新たにSageMakerを導入される方の助けとなれば幸いです。 https://tech-blog.yayoi-kk.co.jp/entry/2024/09/30/110000
弥生株式会社 / siida
メンバー / 機械学習エンジニア
よく見られているレビュー
弥生株式会社 / siida
メンバー / 機械学習エンジニア


