- 更新日: 2019年11月29日
- 公開日: 2019年09月20日
機械学習できるクラウドサービスまとめ8選
Python や機械学習、人工知能の勉強をしていると、
- 「今自分のやっていることって、本当に役に立つのかな?」
- 「最近クラウド環境でも機械学習できるみたいだけど、そっちの方がいいのかな?」
と疑問を持つ方も少なくないと思います。また経営者の方は、
- 「自社のサービスにはやっぱりクラウドで AI 導入する方がいいかな?」
- 「社員にAI教育しようと持っていたけど、クラウドでAI処理してくれるみたいだし、AI教育はいらないかな」
と AI をクラウドに丸投げして処理できる、と思われている方もいらっしゃるでしょう。
今回はそんな 『クラウドと AI』 に関する「疑問」「不安」を少しでも解決、緩和できるように「機械学習できるクラウドサービス」調べてみました。
機械学習できるクラウドサービスまとめ(8選)
機械学習できるクラウドサービスの種類
機械学習できるクラウドサービスというと Google Cloud Platform や AWS 、 Microsoft Azure などが有名。しかし調べてみると、その他にも Floydhub や Spell 、 SAP や SalesForce といったサービスも。個別にサービスを紹介していく前に、まずは大まかな違いをご紹介させて頂きます。
AIアプリの開発フロー
画像クリックで拡大
まずクラウドを使う・使わないという前に、機械学習をしてどんな AI アプリを作りたいか、というビジョンが重要になってきます。
それに伴って学習に必要なデータを収集し、学習しやすいようにデータ加工を実施。そして機械学習を施し、学習済みのデータ(モデル)を生成。それからモデルを使って予測結果データを返せるように、 API もしくはプログラミング処理でモデルを使えるように準備。最後にユーザーからデータを入力してもらうためのインタフェース部分を作成し、 API もしくはプログラミング処理で入力値を学習済みデータ(モデル)にポスト。この結果、「この動物ってなんだろう?」とか「何時頃の到着になるだろう?」といったユーザーの持つ疑問に学習済みデータが ”予測値” を 返答。
AIアプリの作成フローを大まかにまとめると以上の流れで、今回のクラウドサービスのケースを考えると、クラウドがどの部分を処理できるか?ということを知っておくことは重要でしょう。各サービス毎に情報をまとめてみました。
機械学習できるクラウドサービスを大まかに比較
サービス | データ加工 | 機械学習 | API作成 | デプロイ |
---|---|---|---|---|
Google Cloud Platform (AI & Machine Learning Products) |
❌ | ○ (auto) |
○ | ○ |
AWS (Amazon SageMaker) |
❌ | ○ | ○ | ○ |
Microsoft Azure (Machine Learning Studio) |
○ | ○ | ○ | ○ |
Floydhub | ❌ | ○ | ○ | ❌ |
Spell | ❌ | ○ | ○ | ❌ |
SAP | ❌ | ❌ | ❌ | ❌ |
SalesForce | ❌ | ❌ | ❌ | ○ |
表にまとめると Microsoft Azure ならデータ加工から機械学習、API、アプリの公開まで一つのクラウド上で作業できそうですが、実際の作業部分では API を接続するためのプログラミングやユーザーがデータを入出力するための画面作成は必要に。
またこの表で一番のポイントとしてお伝えしたいことは、「Googleの AutoML は、プログラミング不要で機械学習できる」 ということです。例えば画像認識できるように機械学習させたいとしましょう。手元にある画像ファイルを Google の AutoML にアップロードし、画像に対してラベル(名前)付けをすれば、直ぐに機械学習を実行して、数時間後に学習済みデータ(モデル)を取得できます。そして直ぐに他の画像をアップすれば、認識テスト可能。合わせて API もサンプルプログラム(Python)も自動で作ってくれますので、驚きの一言。ただし、機械学習のコストや運営コストは...
Microsoft の Machine Learning Studio でも Experiment という機能がありますが、機械学習こそ予め用意された Microsoft.ML.Trainers などでトレーニング実行できますが、学習内容の設定や各パラメーター設定は直感的にはとても扱えません。
他にも料金的な問題やマシンのスペック、インターフェース、学習ジャンル、リージョン(プログラムを動かす場所)なども違ってきますので、以下に個別紹介させて頂きます。
Google Cloud Platformの機械学習サービス(体験済み)
【Gogole Cloud Platform の機械学習サービス】
AI & Machine Learning Products
【機械学習を利用するページ】
AutoML
クラウドで機械学習といえば Google かなと思いましたので、実際にこちらのサービス使ってみました。感想を一言でいえば、「高い」です(あくまで大島の所感です)。
まずは Google Cloud Platform(以下 GCP) でできる機械学習の範囲を確認してみましょう。
- 画像認識
- 翻訳
- テキストマイニング
- 会話
- テキストの読み上げ
- 音声をテキストに
- データマイニング(おすすめ商品提案など)
大体普段 Google アプリや Google サービスで使っているような事が、処理できるようになります。例えば画像認識で考えると、「安全な虫か、危険な虫か、判定したい」というニーズがあった場合、安全な虫と危険な虫の画像データを用意して、Google にアップロード、そして機械学習ボタンを押せば 「虫」 を判定できるようになります。他のテキストやデータマイニングについても ”機械学習” についてはプログラミング知識がなくても直感的に処理可能。
GCP の AutoML Vision で機械学習中の様子
ただし機械学習のアルゴリズムはブラックボックスで、どんなプログラムで機械学習させているかは分かりません。そのため細かい設定などは不可。例えば今回試しに 20枚の画像を機械学習させてみましたが、学習にかかった時間は約 40分。自分のパソコンで 20枚の画像を機械学習させた場合は、数分。どんな処理をしているかわからないのでなんとも言えませんが、一つ言えることは「学習時間に応じて料金が発生する仕組み」ということ。機械学習にかかる料金はドキュメント*に書かれていますが、学習にかかる時間は個々に違いますので、結果的に料金もやや不明瞭に...。機械学習のマシーンには TPU 相当*のものが割り当てられていると書かれていますが、ちょっと時間がかかる印象を受けました。
また画像解析には最低 100枚の画像が 2種類はいるとのこと。機械学習のプログラムを自分で書かなくてもいいという反面、こうした制約が出てきますね。
【GCPで画像を機械学習させた結果とその後の料金内訳】
画像クリックで拡大
最初は無料利用枠($300)あるし大丈夫だろう、と思って今回 GCP 試しましたが、 機械学習実行から 3日目で実課金が発生。内訳を確認すると、機械学習以外に API の運営料金が発生しています。そしてその API が高い。他にも今回はデータサイズが小さいのでストレージ料金は無料ですが、学習データが大きい場合はストレージ費用もかかってくる、ということを認識しておく必要がありますね。
画像クリックで拡大、 当プロジェクト削除済み
デプロイについては、機械学習実行後にモデルを公開すると API を取得できます。また合わせて API を使うための Pythonプログラムも紹介。 Flask など Python 製アプリケーションとの統合は比較的容易と思いました。
GCP の AutoML Vision を使う様子の動画
タランチュラやセアカゴケグモなどの”クモ”画像が出てきます
Amazon SageMaker
AWS で有名な Amazon においては、機械学習のサービスプラン、たくさんあります。
リージョン:東京 OK? | 概要 | |
---|---|---|
Amazon SageMaker | ○ | 機械学習の実行からデプロイまで |
Amazon Comprehend | ❌ | テキストマイニング |
AWS DeepLens | ○ | Alexaの”目”の代わりに |
Amazon Lex | ❌ | 会話 |
Machine Learning | ❌ | SageMakerに統合予定 |
Amazon Polly | ○ | 文章をリアルな音声に変換 |
Rekognition | ○ | 画像分析と動画分析 |
Amazon Transcribe | ❌ | 自動音声認識 |
Amazon Translate | ○ | 翻訳 |
Amazon Personalize | ○ | あなたにオススの商品は... |
Amazon Forecast | ○ | 時系列予測サービス |
Amazon Textract | ❌ | データマイニング |
AWS DepRacer | ❌ | 完全自走型レーシングカー |
基本は SageMaker になると思いますが、こちらは GCP と違って機械学習のプログラムを自分で作成する必要があります。 機械学習ではお馴染みの Jupyter Notebook をクラウド上で操作し、プログラム。そして学習を実行し、モデルを作成。デプロイには AWS-CLI + Docker を使ったりと、素人では手の出せない領域です。
ちなみに機械学習を行うマシンは、インスタンス(ml.t2.mediumなど)を自分で指定して実行。このインスタンスのスペック次第で CPU や GPU を選択できますが、当然料金も変わってきます。ちなみに Amazon SageMaker の無料利用枠には t2.medium(CPUスペック) が割当。
すでに AWS でサービスを利用している方は、 Amazonの機械学習サービスを利用するメリットありそうですが、 AWS 使っていない場合はその限りではないと思いました。
デプロイについては、機械学習後のデータ(モデル)を API 化するのではなく、モデルを Docker 内で処理できるようにして、 AWS-CLI と Docker でデプロイしていました。こちらについては情報が少ないので、それなりのプログラミングスキル(Python)が必要と考えられます。
参考: Amazon SageMakerでデプロイする様子/ YouTube
Microsoft Azure
GCP や AWS が機械学習の種類別にトップ・メニューを設けているのに対して、 Microsoft Azure(Machine Learning Studio)は種類別メニュー無く、自分でデータセットし、学習アルゴリズムを決めて機械学習を実行する必要があります。
機械学習のプログラムを作成する作業環境は 「Experiment」 と 「Jupyter Notebook」 の 2種類から。いずれの場合でも機械学習実行後には、モデルを取得し、 Webサービスなどにデプロイすることができます。
Experimentについては、一見するとプログラミング知識不要で機械学習できるということですが、機械学習のことをよく知っておかないと、どういう風にパーツを組み立てて、どんな学習アルゴリズムを使って、どんなパラメーターを与えればいいか、というの部分が難しいです(上図参照)。 機械学習の基礎知識はあるけど、 Python や R などのプログラミング知識はない、という方にピッタリなサービスでしょう。
Jupyter Notebook については、いつも通りの感覚で利用でき、クラウド上で Python と R を使用可能。 !pip install 〇〇
で pip もインポートできるので、ちょっとした開発環境として使うのもありかもしれませんね。ただし、 TensorFlow については プレインストールされている Werkzeug というライブラリのせいで、スムーズにインストールできません。 Azure システムとの兼ね合いもありますので、ちょっと使いにくいかもしれませんね。
あと Microsoft といえば C# と思いますが、 C# で機械学習しようと思うと ML.NET というフレームワークが便利。こちらについてはクラウド上ではなく、ローカルの Visual Studio で使う必要があるでしょう。
機械学習を実行するマシンについては、仮想マシンの設定次第でパフォーマンスが変わってきます(価格表)。 CPU 、 GPU 、 FPGA と各グレード用意されていますが、仮想マシンの利用料(時間あたり)+機械学習実行時の追加料金(時間あたり)が発生。一概に高い、安いというのは判断できませんが、無料利用枠は CPU 機能のみ。
あと GCP や AWS などは機械学習のカテゴリに、テキストマイニングや会話もありますが、 Azure については自分で学習プログラムを作成する必要があります。
最終的なデプロイについては、 Visual Studio & ML.NET を使ってモデルをセットし、サービスを公開という流れに(デプロイ参考資料)。この時は Microsoft Azure と Machine Learning Studio を統合して利用する方法が一般的でしょう。
以上のことから Microsoft の Machine Learning Studio を使って機械学習や AI アプリを作成、公開する場合は、すでに Azure を利用していたり、開発環境が Visual Studio という場合に良さそう。
Floydhub
Floydhub は今までの GCP や AWS、 Azure と違って完全開発者用のクラウドサービス。「手元のパソコンでは機械学習に時間がかかりすぎる」「チームでプロジェクトを管理したい」そうしたニーズに答えてくれるサービス内容となっています。
具体的には、クラウド上で公開されている GPU マシーンに自分の学習プログラムをセットして、素早く演算処理。手元に GPU がなくても簡単にハイスペックな GPUパワーを利用することができます。ユーザー登録後、クレジットカード情報を入力すると 2時間の GPU 無料利用枠がついてきますので、そのパワー試してみるとおもしろいかもしれませんね。
プログラムの編集は、基本 Jupyter Notebook で、機械学習実行後に生成されるモデルを使って API を作成できます。 最終的なデプロイには GCP や AWS の利用が薦められていますので、 「GCP や AWS の機械学習高いな」「利用規約がちょっと引っかかるな」という時に、こうした機械学習専門のクラウドサービスを使ってみるのがいいかもしれませんね。
クラウド上で GPU が使えるサービスは、 「Google Colaboratory」 や 「Kaggle」 などありますが、どれも時間制限や利用マシーン台数に限りがありますので、本格的に GPU 使いたい時は Floydhub がいいでしょう。
【FloydhubのGPU料金】
Spell
Spellも Floydhub 同様、完全プログラマー向けのクラウドサービス。 「Spell が用意している GPU 環境を利用できる」という点がメリットで、 1台 60万円する GPUマシーン Nvidia Tesla v100 も 8台連結稼働が可能、すごいです。 月 129ドル払えば マルチGPU が利用できるということですが、利用時間あたりの料金は不明。
尚、 Spell の利用はローカル環境に Spellライブラリをインストールしての使用。ブラウザ上でプログラムを編集したりファイルを管理・共有することはできませんので、あくまで GPUパワーを借りるだけのサービスとなっています。
機械学習するデータが内密的なもので、プログラムも漏れたくない時に便利なサービスといえるでしょう。 最終的なデプロイについては、 Spell では API 作成されませんので自分でモデルを利用できるようにプログラムする必要がありますね。
SAP
SAP 機械学習サービスのイメージ動画
SAP は有名なクラウドプラットフォームですが、機械学習については AWS に連携して実行。基本的に AWS での機械学習実行ワークとなりますので、既に SAP サービスを利用している場合に限ってニーズがあると考えます。 SAP 利用していない場合は、機械学習の為にあえてこちらを選ぶ必要は低いでしょう。
SalesForce
SalesForceでの機械学習は、基本的に学習済みのモデルを使っての利用。 SalesForce上で機械学習を実行し、新たにモデルを作成するという GCP や AWS とはスタイルが異なります。
一般的な予測データが必要な場合などの場面では有効でしょうが、この予測サービスを利用するために + 75ドル/月 必要。既に SalesForce でサービスを公開されている場合は有効なサービスと考えられますが、回帰や分類など機械学習の基礎を知っている人からすると、「高い」と感じるでしょう。
また学習済みのモデルがどういった内容で学習したかは不明、本当に自分にあった予測モデルかどうかは分かりませんね。
DataRobot
https://www.datarobot.com/jp/platform/
DataRobotは、無料利用枠がないので実際にログインして、詳細内容を確認できていませんが、使い方は至って簡単そう。機械学習に必要なデータを用意して、パラメーターを決めたら後は複数のアルゴリズムで学習実行。良さそうな学習結果を使って、 API作成。プログラミング知識、機械学習の知識なしでも学習済みデータ(モデル)を取得できます。
ただ、一度に複数のアルゴリズム処理(機械学習)を実行できていいのですが、各学習内容の詳細は不明です。また利用料金も表示されていませんので、ちょっと問い合わせしてみる勇気が必要ですね。
CodeCamp提供のPythonデータサイエンスコース
当メディアを運営しているCodeCampではPythonデータサイエンスコースを現役エンジニアのマンツーマンレッスンという形で提供しています。このコースの特徴は
- 数学的な知識がない状態から実務で使えるプログラミングスキルを獲得できる
- 「データ収集」「データ加工」「モデル構築」を習得できる
- 企業のマーケター向けの研修にも取り入れられているカリキュラム
無料レッスン受講後の申し込みで10,000円クーポンをプレゼントしています!ぜひお試しください。
\AIエンジニアに必要なスキルが身に付く/
まとめ
クラウド環境で機械学習できるサービスをご紹介させて頂きましたが、どれもメリット・デメリットがある感じでした。 Google についてはプログラミング知識不要で簡単に機械学習できる一方で、学習内容が不明だったり、 API の運営コストがかかったりするというデメリットも。
Microsoft Azure についても、ドラッグ&ドロップで機械学習できる Experiment というサービスがあるものの、各パーツの組み合わせ方には機械学習の基礎知識が不可欠。
以上のことより、
” クラウドで機械学習できるんだったら、もう機械学習や AI 勉強しなくてもいいじゃない ”
ということについては、 NO でしょう。 Google の AutoML を使えば確かに誰でも機械学習できますが、中身は不明です。しっかり機械学習や AI、 プログラミングに対応した人が機械学習や AI を使いこなせるでしょうし、 AI社会に順応できると考えれます。
またこうした機械学習のクラウドサービスを利用する場面としては、
- チームで開発を共有したい
- GPU を使いたい
- 既存の AWS や Azure サービスに AI 機能を加えたい
といった時に役立つと考えられます。
クラウドサービスに不安を感じていた方、これからも思い切ってプログラミングや機械学習の勉強、がんばってください。
「クラウドとか機械学習とかいろいろいっているけど、そもそも難しいことは”できる人”に任せたらいいんじゃない?」「 AI や IT って、カッコ良さそうだけど自分にはチョットムリだよな...」 と AI や IT にネガティブなマインドをお持ちの方。一度 AI や IT の世界、覗いてみませんか? プログラムのコード、最初は難しい印象を受けるかもしれませんが、講師の方と一緒に読み進めていくと、 IT や AI の世界、見えてくると思います。
現在オンラインのプログラミングスクール CodeCamp では、簡単なプログラムを無料でオンライン上でお試しいただけます。プログラミングスクールを受講する・しない関係なしに、とりあえず AI や IT の世界、ちょっと覗いてみませんか? 詳しくは 公式ページ より確認・申し込みしてみて下さいね。
- この記事を書いた人
- オシママサラ