AI/ML開発プラットフォーム徹底比較～チーム総力戦の調査結果～

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3760527/36433578-60ba-fb01-93f4-2f474e696a6f.png)

# はじめに
アドベントカレンダーも残すところあとわずか🎄
今回はデータプラットフォームチームより、AI/ML開発をスタートするための取り掛かりとして行った開発プラットフォームサービスの比較調査についてお届けします！

タイトルのとおりチーム総動員で取り組んだ机上調査です:muscle:
問い合わせは行わずあくまでもネット上にある情報の集約ではありますが、以下のような方のお役に立てたら嬉しいです。

- AI/MLの開発を始めたいが、選択肢が多くて困っている人
- サービス名は聞いたことがあるけど、それぞれどんな特徴があるのかピンときていない人

:::note warn
最新かつ正確な情報が知りたい方は各公式情報をきちんと読むことをおすすめします
:::

# 前提
2024年9月時点の調査です:mag_right:
私たちは以下のようなデータプラットフォームを構築しており、今回はここにAI/MLの開発・実行機能を追加するべく調査を始めました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3760527/5ea1eda4-f75e-928f-9f72-6ff6c53220e0.png)

今回の調査のゴールは実機検証を行うサービスを選定することです。（複数可）
調査メンバーの中には、各サービスに業務レベルで触れたことのある人はほとんどおらず、
気になるサービスをひととおり挙げた後、分担して一気に机上調査を行うことにしました。

# 評価サマリ
調査対象のサービスは全部で8つです！
現環境への追加を意識した、各サービスに対する調査担当者の主観あふれる評価一覧です。
|     |                                 | 強み                                                                                                                                                                                                                                                                                                     | 弱み                                                                                                                                                                                                      | 評価コメント                                                                                                                                                                                                                                  | 
| --- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | 
| 1   | Google Cloud Vertex AI          | ・GCPとの親和性<br>※Google Drive含む<br>・Geminiとの連動<br>・GoogleAPIとの連携<br>・AutoML機能が充実している                                                                                                                                                                                            | ・コスト構造が複雑<br>・高機能な故の高学習コスト                                                                                                                                                          | ML関連では他機能を凌駕するレベルに位置している。一方でコスト面（学習コスト含む）や既存環境との親和性に欠けるため、UseCase単位で「どうしても」という声があれば候補となるか。                             | 
| 2   | Amazon SageMaker                | ・S3やSnowflakeなどの外部データソースとの連携が容易<br>・コスト調整が容易<br>・導入コストがかからない（既にAWSアカウントを持っているため）                                                                                                                                                                                        | ・尖った使い方ができない。Googleほど高度なMLは利用できないため、手作業でモデル作成を行う必要性が高い。                                                               | スモールスタートするには一番なサービス。<br>コストも管理しやすく、初手としては十分か。                                                                                                                                                        | 
| 3   | Azure Machine Learning          | ・studio（ノーコード）の使いやすさ（主観）<br>・MLOpsの実現のしやすさ                                                                                                                                                                                                                                      | ・現環境との親和性の低さ（他製品と比べて）                                                                                                                                                                | サービス単体としては使い易いように感じるが、Azureサービス内で完結させるケースが一般的だと思うので、既存環境を考えると活用難易度は高くなってしまいそう。                                                                                       | 
| 4   | Snowflake Cortex / Snowflake ML | ・Snowflake内のサービスのためすぐに利用可能<br>・SQL関数としてSnowsight上で利用可能                                                                                                                                                                                                                    | ・プレビュー機能のため動作が不安定な可能性があり、本番利用できない<br>・他の主要サービスと比べるとまだ情報が少ない<br>・GPUを利用する場合はコンテナを建てる必要がある                                     | Snowflake内で完結するため新規契約等の手間が無く、サクッと試せる。<br>プレビュー版のため、他のツールと比べて安定性が低い。<br>機能追加は今後されていきそう。                                                                                   | 
| 5   | Databricks                      | ・MLOpsの機能が充実している<br>・AI/ML以外の機能(カタログなど)が充実している一方で、使用しない限りお金がかからないのでスモールスタート→拡張という選択肢を取りやすい<br>・S3やSnowflakeとの連携しやすさ<br>・チームでの開発にむいてそう(ガバナンスが効かせやすそう、MLOpsの機能が充実しているので) | ・学習コストが高い（＆そもそも機能が豊富だが使いこなせるか）<br>・sparkの分散処理をベースとしているので、公式が言っているような性能を引き出すのには使う側の能力を求められる<br>・ノーコード開発はできない | AI/ML関連及びその周辺機能は充実している上に、他の機能は使用しない限りお金がかからないのでスモールスタート→拡張という選択肢を取りやすいことは良い。一方で、使いこなすのにもスキルが求められることとドキュメントが充実していないことがネック。 | 
| 6   | IBM Watson Studio               | ・Snowflakeと直接接続できる<br>・エンタープライズ向け<br>→信頼性や高障害性を持たせたい場合に強い<br>・高セキュリティ環境を求める業界（金融、医療など）向け<br>・IBMの世界的人的リソースも使える                                                                                                           | ・高コスト<br>・パフォーマンスが他機能と劣る<br>・Amazon、Google、MSと一歩遅れてGAされる                                                                                                                      | Snowflakeと直接接続できる点と耐障害性は高いが、他の観点で優位性はない気がする。                                                                                                                  | 
| 7   | Kaggle Notebooks                | ・（GPUの使用時間の制限があるが）無料<br>・Kaggle上のデータセットを利用できる<br>・UIも若干使いにくい印象                                                                                                                                                                                             | ・商用利用が想定されていないので、最低限必要な機能（サポートやセキュリティの機能など）が不十分                                                                                                            | 個人の学習やコンペへの参加を目的とするのならば、GPUが無料、Kaggle上のデータセットを利用できるので良いと思う。一方で、商用利用するサービスではないので、社内に導入するものではない印象。                                                       | 
| 8   | Dataiku                         | ・ノーコード／ローコード／フルコードのいずれにも対応<br>・ワークフロー機能で視覚的に実装できる<br>・Snowflake、S3との連携が容易                                                                                                                                                                           | ・コストがどれくらいかかるか未知（問い合わせが必要）<br>・無償版がWindows非対応                                                                                                                           | ワークフローでの実装が特徴で、簡単なものであればノーコードで実装できる。<br>Snowflake含む各サービスとの連携が容易。                                        | 

# 評価項目別
評価項目もいくつか用意し、項目ごとの調査も行いました。

## 項目
- 対応するアルゴリズムとフレームワーク
    - 幅広い現場課題に対応するため、特定の用途に限定されない、一般的・汎用的なモデルが実行できるか
- 親和性
    - 現在使用しているサービス（S3・Snowflake・trocco等）との連携が容易か
- 拡張性
    - 他のツールやサービスとの連携が可能であり、APIを通じた拡張性があるか
- コンピューティング
    - スケーラビリティ：データ量や計算リソースの増加に対応できるか（GPU対応）
    - 自動リソース調整：需要に応じてリソースを自動的に調整できるか
- ユーザビリティ
    - 直感的UI：ツールやプラットフォームのUIが直感的で使いやすいか
    - ドキュメント充実度：充実したドキュメントやコミュニティサポートがあるか
    - 日本語対応：UIおよびサポートが日本語対応しているか
- セキュリティ
    - データの暗号化やアクセス制御、監査ログ、MFAなどのセキュリティ機能が備わっているか
- コスト
    - スモールスタート：初期導入のコストが抑えられるか
    - コスト予測・管理：使用状況に基づくコストの予測が明確で管理がしやすいか
-  MLOps
    - モデルのライフサイクル管理（開発、デプロイ、運用、モニタリング）を効率的に行うための機能があるか
- 信頼性
    - SLA：プラットフォームの信頼性が高く、ダウンタイムが少ないか
    - 実績：そのプラットフォームが実績のあるものか（他社での導入事例や評価）

## 結果
◎：項目内容以上の高機能 or サービスの強み、〇：項目を満たせる、△：機能不足、ー：不明
|                                      | Google Cloud Vertex AI | Amazon SageMaker | Azure Machine Learning | Snowflake Cortex / Snowflake ML | Databricks | IBM Watson Studio | Kaggle Notebooks | Dataiku | 
| ------------------------------------ | :----------------------: | :----------------: | :----------------------: | :-------------------------------: | :----------: | :-----------------: | :----------------: | :-------: | 
| 対応するアルゴリズムとフレームワーク | 〇                     | 〇               | 〇                     | △                              | 〇         | 〇                | △               | 〇      | 
| 親和性                               | △                     | ◎               | △                     | ◎                              | 〇         | ◎                | △               | ◎      | 
| 拡張性                               | ○                     | 〇               | 〇                     | 〇                              | ◎         | △                | △               | 〇      | 
| コンピューティング：スケーラビリティ | 〇                     | 〇               | 〇                     | 〇                              | 〇         | ○                | △               | 〇      | 
| コンピューティング：自動リソース調整 | 〇                     | 〇               | 〇                     | △                              | 〇         | ○                | △               | 〇      | 
| ユーザビリティ：直感的UI             | ◎                     | 〇               | ◎                     | 〇                              | 〇         | ○                | △               | ◎      | 
| ユーザビリティ：ドキュメント充実度   | 〇                     | 〇               | 〇                     | △                              | △        | ○                | △               | 〇      | 
| ユーザビリティ：日本語対応           | 〇                     | 〇               | 〇                     | 〇                              | △        | ○                | △               | 〇      | 
| セキュリティ基本機能                 | 〇                     | 〇               | 〇                     | 〇                              | 〇         | ◎                | △               | 〇      | 
| コスト：スモールスタート             | 〇                     | ◎               | 〇                     | 〇                              | 〇         | △                | 〇               | 〇      | 
| コスト：予測・管理                   | 〇                     | ◎               | 〇                     | 〇                              | ◎         | 〇                | ー               | ー      | 
| MLOps                                | ◎                     | ◎               | ◎                     | 〇                              | ◎         | 〇                | △               | ◎      | 
| 信頼性：SLA                          | 〇                     | 〇               | 〇                     | △                              | ー          | ◎                | ー               | 〇      | 
| 信頼性：実績                         | ◎                     | ◎               | ◎                     | △                              | 〇         | △                | ー               | ◎      | 

# 実機検証対象として私達が選んだもの
今回の選定では、導入までのスピード感を重視し、特に「現環境への取り入れやすさ」と「スモールスタートのしやすさ」を優先しました。そのため、評価項目の中でも以下の点を重要視しました。

- 親和性
- コンピューティング：スケーラビリティ
- コスト：スモールスタート＆予測・管理

そのうえで次の実機検証に向け選んだサービスはこちらの2つです！

:snowflake:　**Snowflake Cortex / Snowflake ML**
:star:　 **AWS SageMaker**

前提の構成をみている皆さんのご想像通りだったかもしれません。笑

それぞれ以下のような懸念点や疑問点が挙がっているので、実機検証で明らかにしていければと考えています。

- Snowflake Cortex / Snowflake ML
    - プレビュー版なので仕様変わるかも（未発展な部分をリクエストできる見込みはある）
    - 現時点で使えるライブラリは少なそう（コンテナを立てれば解決できるかも）
    - コンテナ共有ができるのか等運用面での使いやすさは不明
- AWS SageMaker
    - セキュアな利用のためにどのような実装が必要か、可能か
    - Snowflakeの不足を補えるような機能があるか、使いやすさであるか
    -  手作業でモデル作成しなければならないラインはどのあたりか（高度なMLの実装負荷）

また、先々の構想もあるので、それに合わせて以下のサービス情報も継続的にキャッチアップしていく予定です。

**機能特化**
より複雑な処理の実行や最新技術の利用ができそう
- Google Cloud Vertex AI
- Databricks

**間口広げる特化**
事業サイドのメンバーが使えそう
- Dataiku

# 所感
アップデートが激しい領域なので、一気に調べて比較したことは、私たちなりの仮説を持って導入に進むための取り組みとして正解だったなと感じています。（今やったら違う評価になっているかも）
現在、実機検証中のため、機会があればまた続きを投稿したいと思います✨

# おわりに
私たちの取り組みに共感してくださる仲間を募集中です！
現在、多様な職種を募集しています。興味のある方はぜひお気軽にカジュアル面談でお話ししましょう。お待ちしています！

募集内容等詳細は、是非採用サイトをご確認ください。

https://engineer.po-holdings.co.jp/