SlideShare uma empresa Scribd logo
MLを使ったLineBotをデプロイするのに苦労した話
概要
1. デプロイする前提
2. デプロイするときに苦労した話
3. まとめ
1.デプロイする前提
Webアプリにするにあたって
GCPのAI Platform等に簡単にデプロイできることは知っていた
Webアプリにするにあたって
GCPのAI Platform等に簡単にデプロイできることは知っていた
→お⾦をかけたくないでござる
ML実⾏のAPI以外にも
投稿などのほかの箇所の処理はどうするの?
ほかにデプロイするのに考慮した点
Pythonのバージョンを指定できるの(Python3.7で動いてくれるか不安だった)
環境構築⼿早くできるの?(早く公開したかった)
ほかにデプロイするのに考慮した点
Pythonのバージョンを指定できるの(Python3.7で動いてくれるか不安だった)
環境構築⼿早くできるの?(早く公開したかった)
→これらを考慮するとPaaS使うのがよさそうという結論に
使⽤を検討したPaaS
Heroku(Python3.6をつかえそう)
Google App Engine(FlexだとPython3.6が使える 無料枠300ドル残ってた)
2. デプロイするときにつらかった話
まず先に…
お⾦を1円もかけずデプロイできそうなHerokuから試そう
デプロイ時の条件
デプロイするモデル: ResNet50
使⽤したWebフレームワーク Flask
Dockerで環境をローカルで作った時はちゃんと動作
デプロイも成功したけど…
原因を調査すると…
ResNet50のモデルがherokuのslugに格納するのの容量を超えていた(herokuにデプロイする際
にデプロイ後の容量がheroku上で圧縮して500MB以下にならなければならない)
kerasで出⼒したモデルのファイルが圧縮してもそこまで容量が⼩さくならなかったためと考えられ
る
よろしいならばGAEだ
FlexならPython3.6も使える
herokuほどストレージの条件厳しくなさそう…
ということでGAEにデプロイすると…
うまく動作した!
よしこれでうまくいく!
ということでGAEにデプロイすると…
うまく動作した!
よしこれでうまくいく!
…はずだった
デプロイして2か⽉ほどして…
googleからメールが届く
デプロイして2か⽉ほどして…
googleからメールが届く
→トライアルの300ドル分使い果たして1000円分超過しているので⽀払い発⽣するよとのこと
デプロイして2か⽉ほどして…
googleからメールが届く
→トライアルの300ドル分使い果たしてさすがに1か⽉9000円近く払うのはきつい1000円分超過
しているので⽀払い発⽣するよとのこと
さすがに1か⽉9000円近く払うのはきつい
どうしよう…
モデルをMobileNetV2に変えてみてもう⼀度herokuで試すか…
懸念点
MobileNetV2に変えても精度が落ちないか
モデルが軽くなったとしてもherokuでちゃんと動くか
結局のところ…
両⽅ともそれは杞憂であった
普通にWebアプリにしたけど…
ほかの⼈が⼿軽に使えるようにするにはLineBotのほうが良いのでは?
調べたところ既存のWebアプリ⽤のコードと共存もできそう
ということで…
LineBotのチュートリアルを参考にしつつ1時間ほどで処理を追加
ということで…
LineBotのチュートリアルを参考にしつつ1時間ほどで処理を追加
→ちゃんと動作するものが完成
3.まとめ
まとめ
お⾦を1円もかけずMLのデモンストレーションをしたいのであればheroku状にLineBot作るっての
は⼀つの⼿
作成したモデルのファイルサイズには制限あるかも
さいごに…
作成したLineBotのQRコードです

Mais conteúdo relacionado

Mais procurados

Go言語オーバービュー201507
Go言語オーバービュー201507Go言語オーバービュー201507
Go言語オーバービュー201507
エンジニア勉強会 エスキュービズム
 
Trat_sprint3
Trat_sprint3Trat_sprint3
Trat_sprint3
tratwakate
 
mypy - 待望のPython3.9型ヒント対応
mypy - 待望のPython3.9型ヒント対応mypy - 待望のPython3.9型ヒント対応
mypy - 待望のPython3.9型ヒント対応
KyutatsuNishiura
 
Requestsで始める5分前帰社
Requestsで始める5分前帰社Requestsで始める5分前帰社
Requestsで始める5分前帰社
Satoshi Yamada
 
Pythonで業務改善をしたときにあった問題(ライト版)
Pythonで業務改善をしたときにあった問題(ライト版)Pythonで業務改善をしたときにあった問題(ライト版)
Pythonで業務改善をしたときにあった問題(ライト版)
Satoshi Yamada
 
PyCon JP 2014 plone terada
PyCon JP 2014 plone teradaPyCon JP 2014 plone terada
PyCon JP 2014 plone terada
Manabu Terada
 
PyPy 紹介
PyPy 紹介PyPy 紹介
PyPy 紹介
shoma h
 
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
Hisao Soyama
 
bottle.pyをつかったチャットアプリ作成チュートリアル
bottle.pyをつかったチャットアプリ作成チュートリアルbottle.pyをつかったチャットアプリ作成チュートリアル
bottle.pyをつかったチャットアプリ作成チュートリアル
Satoshi Yamada
 
PyCharm入門
PyCharm入門PyCharm入門
PyCharm入門
Yuki Nagai
 
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49shoma h
 
Trat_sprint4
Trat_sprint4Trat_sprint4
Trat_sprint4
tratwakate
 
210630 python
210630 python210630 python
210630 python
Takuya Nishimoto
 
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
shoma h
 
Goji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャGoji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャ
Shiroyagi Corporation
 
pythonでemlファイルを扱う話
pythonでemlファイルを扱う話pythonでemlファイルを扱う話
pythonでemlファイルを扱う話
Satoshi Yamada
 
なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?
Aki Ariga
 
Py datameetup1
Py datameetup1Py datameetup1
Py datameetup1
shiroyagi
 
bottleで始めるWEBアプリの最初の一歩
bottleで始めるWEBアプリの最初の一歩bottleで始めるWEBアプリの最初の一歩
bottleで始めるWEBアプリの最初の一歩
Satoshi Yamada
 
Djangoフレームワークの紹介 OSC2015北海道
Djangoフレームワークの紹介 OSC2015北海道Djangoフレームワークの紹介 OSC2015北海道
Djangoフレームワークの紹介 OSC2015北海道
Shinya Okano
 

Mais procurados (20)

Go言語オーバービュー201507
Go言語オーバービュー201507Go言語オーバービュー201507
Go言語オーバービュー201507
 
Trat_sprint3
Trat_sprint3Trat_sprint3
Trat_sprint3
 
mypy - 待望のPython3.9型ヒント対応
mypy - 待望のPython3.9型ヒント対応mypy - 待望のPython3.9型ヒント対応
mypy - 待望のPython3.9型ヒント対応
 
Requestsで始める5分前帰社
Requestsで始める5分前帰社Requestsで始める5分前帰社
Requestsで始める5分前帰社
 
Pythonで業務改善をしたときにあった問題(ライト版)
Pythonで業務改善をしたときにあった問題(ライト版)Pythonで業務改善をしたときにあった問題(ライト版)
Pythonで業務改善をしたときにあった問題(ライト版)
 
PyCon JP 2014 plone terada
PyCon JP 2014 plone teradaPyCon JP 2014 plone terada
PyCon JP 2014 plone terada
 
PyPy 紹介
PyPy 紹介PyPy 紹介
PyPy 紹介
 
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
 
bottle.pyをつかったチャットアプリ作成チュートリアル
bottle.pyをつかったチャットアプリ作成チュートリアルbottle.pyをつかったチャットアプリ作成チュートリアル
bottle.pyをつかったチャットアプリ作成チュートリアル
 
PyCharm入門
PyCharm入門PyCharm入門
PyCharm入門
 
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
Pythonista による Pythonista のための Scala 紹介 in BPStudy #49
 
Trat_sprint4
Trat_sprint4Trat_sprint4
Trat_sprint4
 
210630 python
210630 python210630 python
210630 python
 
次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発次世代言語 Python による PyPy を使った次世代の処理系開発
次世代言語 Python による PyPy を使った次世代の処理系開発
 
Goji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャGoji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャ
 
pythonでemlファイルを扱う話
pythonでemlファイルを扱う話pythonでemlファイルを扱う話
pythonでemlファイルを扱う話
 
なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?
 
Py datameetup1
Py datameetup1Py datameetup1
Py datameetup1
 
bottleで始めるWEBアプリの最初の一歩
bottleで始めるWEBアプリの最初の一歩bottleで始めるWEBアプリの最初の一歩
bottleで始めるWEBアプリの最初の一歩
 
Djangoフレームワークの紹介 OSC2015北海道
Djangoフレームワークの紹介 OSC2015北海道Djangoフレームワークの紹介 OSC2015北海道
Djangoフレームワークの紹介 OSC2015北海道
 

Semelhante a デプロイに苦労した話

Trat_sprint1
Trat_sprint1Trat_sprint1
Trat_sprint1
tratwakate
 
Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践
Kazuto Kusama
 
High performance python computing for data science
High performance python computing for data scienceHigh performance python computing for data science
High performance python computing for data science
Takami Sato
 
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
Yuji Nojima
 
Example using LattePanda
Example  using LattePandaExample  using LattePanda
Example using LattePanda
Hirokazu Egashira
 
PredictionIOのPython対応計画
PredictionIOのPython対応計画PredictionIOのPython対応計画
PredictionIOのPython対応計画
Shinsuke Sugaya
 
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CIあなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
Wataru MIYAGUNI
 
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
拓将 平林
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようKenji NAKAGAKI
 
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)OSgeo Japan
 
Kompira Enterprise開発者が質問にお答えします .pdf
Kompira Enterprise開発者が質問にお答えします .pdfKompira Enterprise開発者が質問にお答えします .pdf
Kompira Enterprise開発者が質問にお答えします .pdf
RyoMurakami10
 
Linebotを作ろう
Linebotを作ろうLinebotを作ろう
Linebotを作ろう
Shinsuke Matsuda
 
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botPython × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
dcubeio
 
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaPostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
Shigeru Hanada
 
俺とGitHub
俺とGitHub俺とGitHub
俺とGitHub
Masayuki KaToH
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshopDaisuke Sugai
 
Pythonによる画像処理について
Pythonによる画像処理についてPythonによる画像処理について
Pythonによる画像処理について
Yasutomo Kawanishi
 
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminarVoicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
Manabu Shimobe
 
ネットワーク分散型フレームワークConView
ネットワーク分散型フレームワークConViewネットワーク分散型フレームワークConView
ネットワーク分散型フレームワークConView
Rakuten Group, Inc.
 
第4回 SoftLayer勉強会 資料
第4回 SoftLayer勉強会 資料第4回 SoftLayer勉強会 資料
第4回 SoftLayer勉強会 資料Naoki Shibata
 

Semelhante a デプロイに苦労した話 (20)

Trat_sprint1
Trat_sprint1Trat_sprint1
Trat_sprint1
 
Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践
 
High performance python computing for data science
High performance python computing for data scienceHigh performance python computing for data science
High performance python computing for data science
 
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
 
Example using LattePanda
Example  using LattePandaExample  using LattePanda
Example using LattePanda
 
PredictionIOのPython対応計画
PredictionIOのPython対応計画PredictionIOのPython対応計画
PredictionIOのPython対応計画
 
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CIあなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
 
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
 
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
 
Kompira Enterprise開発者が質問にお答えします .pdf
Kompira Enterprise開発者が質問にお答えします .pdfKompira Enterprise開発者が質問にお答えします .pdf
Kompira Enterprise開発者が質問にお答えします .pdf
 
Linebotを作ろう
Linebotを作ろうLinebotを作ろう
Linebotを作ろう
 
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack botPython × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
 
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaPostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
 
俺とGitHub
俺とGitHub俺とGitHub
俺とGitHub
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 
Pythonによる画像処理について
Pythonによる画像処理についてPythonによる画像処理について
Pythonによる画像処理について
 
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminarVoicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
 
ネットワーク分散型フレームワークConView
ネットワーク分散型フレームワークConViewネットワーク分散型フレームワークConView
ネットワーク分散型フレームワークConView
 
第4回 SoftLayer勉強会 資料
第4回 SoftLayer勉強会 資料第4回 SoftLayer勉強会 資料
第4回 SoftLayer勉強会 資料
 

デプロイに苦労した話