データサイエンス

Google Cloud Functionsで、時系列予測のProphetを動かす

たまたまCloud Functionsでは、依存関係の問題で時系列予測のProphetは動かせなそうという話を耳にすることがあり、あれそうなのかなぁと思ってちょっと調べてみました。

結論から言うと、ランタイム : Python 3.7ではデプロイでエラーになりましたが、ランタイム : Python 3.8では問題なくデプロイできました。

ランタイム : Python 3.7の場合はこんなようなエラーが出ました。

・
・
・
File "/tmp/pip-wheel-nggfjnxj/fbprophet/fbprophet/forecaster.py", line 14, in <module>
import numpy as np
ModuleNotFoundError: No module named 'numpy'
----------------------------------------
ERROR: Failed building wheel for fbprophet
ERROR: Failed to build one or more wheels
error: `pip_download_wheels` returned code: 1; Error ID: AE8F796E

ランタイム : Python 3.8では、デプロイできました。

requirements.txtに、pystanはいるみたいです、numpyは書かなくても大丈夫でした。
f:id:gri-blog:20210727221233p:plain

コードとデータはこちらの公式ページのサンプルを拝借しております。
https://facebook.github.io/prophet/docs/quick_start.html#python-api
f:id:gri-blog:20210727221247p:plain

左がGCFのテスト、右が公式ページです。動きました。
f:id:gri-blog:20210727221317p:plain

ちなみに、とにかく手軽にProphetを動かしたいだけならRのGUIツールであるExploratoryを使うのがおすすめです。Exploratoryは凡人が簡単にデータサイエンスのパワーを増強できる仙豆みたいなもので私はExploratoryを愛しています。また、とりあえずGCP+時系列予測であればいいのであれば、BigQuery MLのARIMAを使うという選択肢もあるかもしれませんね。