この記事では、こんな悩みを解決します。
- AIのWebアプリ作成方法がわからない・・・
- 初心者向けの簡単な方法がいいんだけど・・・
その方法とは、PytorchとHerokuによる方法です。
この方法であれば、初心者の方でも、AIのWebアプリをデプロイし、公開まですることができると思います。
そこで、今回は、画像を入力データとして、その画像になにが写っているかを分類するAIのWebアプリの作成方法とその学習方法について解説します。
完成例
このようなフォルダをしているする画面をWeb上に公開する。
このWebサイトに以下の飛行機の画像を添付し、判定ボタンを押す。
すると、48.9%の確率で飛行機です。
と判定されるAIのWebアプリです。
Pytorchとは?
Pytorchとは、オープンソースの機械学習アプリです。
これを使えば、比較的簡単にディープラーニングを実装することができるツールです。
印象としては、Kerasより少し難しいかなくらいです。
筆者は、Kerasを使ってある程度ディープラーニングを実装した経験があったので、Pytorchもスムーズに理解できました。
印象としては、Pytorchの方が細かい。
いろいろと細かい手続きを実装する必要があるといった印象を持ちました。
その分、Pytorchの方が設計自由度は高そうだなとも感じました。
Herokuとは?
Herokuはインフラストラクチャ管理が不要なクラウドベースの PaaS(サービスとしてのプラットフォーム)です。
要するに、自身が作成したWebサービスを簡単にかつ無料で公開できるサービスです。
もちろん、有料にすることで、制限が解除され、使える幅が広がるものですが、ちょっと試すくらいであれば、無料でも全然できます。
使った印象としては、すごく簡単。
これが無料で使えるのか、と衝撃を受けました。
AIのWebアプリ作成手順概要
全体の流れをまとめるとこんな感じです。
画像判定モデルの生成
画像判定とは、ディープラーニングによって作成されたモデルが、画像を入力データとして、その画像になにが写っているかを分類するモデルです。
ディープラーニングとは、AIの一種です。
高精度に分類するAI技術の一つが、ディープラーニングとなります。
ディープラーニングの実装は、Pythonというプログラミング言語で比較的容易に実装することができます。
そのPythonのライブラリである、Pytorchというツールを使うことで、ディープラーニングを容易に実装できるというわけです。
Pytorchの学習に最適な本
もし、Pytrochの学習で難しかったり、もっと勉強してみたいなという方は、こちらの本がおすすめです。
こちらの本は、Pytorchで実際にアプリケーションを作りながらディープラーニングの理論などの理解を深める構成となっています。
非常にわかりやすく実践的な内容でしたので、非常によい参考書だと思います。
Webページのフロントサイド作成
フロントサイドに関しては、主に以下のプログラミング言語を持ちます。
- HTML
- CSS
- Javascript
今回は、ざっくりとAIの機能実装のみなので、HTMLとCSSでざくざくっと記述するのみです。
PythonのWebアプリのフレームワークとして有名なのは、以下二つです。
- Django
- Flask
どちらでも、Webアプリの開発をすることができるのですが、目的によって使い分けるという感じです。
こちらの月見へのツイート(リプライ)が参考になりましたので、紹介します。
Herokuへのデプロイ
Herokuで自身が設計したコードを公開できるWebページの状態にすることをデプロイと言います。
Heroku側で、このコードを叩けばいいよというのを解説してくれていますので、それに従うだけで、簡単に公開することができます。
実装方法
実装方法について知りたい方は、よい講座があるので、こちらを受講されるのが良いかと思います。
その講座とは、我妻 幸長(Yukinaga Azuma)さんの講座です。
私は、この講座で学習しました。
こんな方におすすめだと思います。
- Pytorchを始めて学ぶ方
- AIモデル作成からWebアプリの公開までの流れを勉強されたい方
とてもわかりやすく、またディープラーニングの理論の部分もわかりやすく説明されており、非常によい講座でした。
また、グーグルのColaboratoryベースの講座なので、どなたでも環境構築に苦しむことなく、講座を受けられるのも良いですね。
しかも、セールであれば、2000円程度で購入できるので、本当におすすめです。
しかし、一点だけ。
PytorchやPythonのバージョンがHerokuと合わないとデプロイできないという問題がありました。
問題の解決方法
この問題は、以下のようにして回避したので参考にしてみてください。
- Heroku-20が許容するPythonのバージョンに変更すること
- グーグルColaboratoryで作成したモデルのpytorchのバージョンとHerokuにデプロイするときにインストールするPytorchのバージョンを揃えること
requirements.txt
- 修正前
python-3.7.7
- 修正後
python-3.7.10
runtime.txt
- 修正前
Flask==1.1.2
Jinja2==2.11.3
Werkzeug==1.0.1
gunicorn==20.0.4
numpy==1.19.2
Pillow==8.1.2
http://download.pytorch.org/whl/cpu/torch-1.3.1%2Bcpu-cp37-cp37m-linux_x86_64.whl
torchvision==0.4.2
- 修正後
Flask==1.1.2
Jinja2==2.11.2
Werkzeug==1.0.1
gunicorn==20.0.4
numpy==1.18.1
Pillow==7.1.2
--find-links https://download.pytorch.org/whl/torch_stable.html
torch==1.8.1+cpu
torchvision==0.4.2
コード
コードは、公開されています。
本当に参考になります。
Pythonについて学習したい
Pythonをもっと基礎から勉強したい方などは、こちらの記事を参考にしてみてください。
筆者は、プログラミング開発未経験から、AIの開発に携わった経緯をもっています。
その際、どのように勉強をしたのか?などをまとめています。
コメント