Deep Karmaning

技術系の話から日常のことまで色々と書きます

Dockerを使った予測モデルのapi化の試み ―サーバーはGo、予測モデルはPython、R、Julia(未完成)で簡易アプリ化―

概要

irisデータを使ってサポートベクターマシンによる予測モデルをPython、R、Julia(未完成)で作ってapi化を行ってみたのでその紹介です。

リポジトリは以下。 github.com

サーバー側はGoで実装してdocker化しているので、立ち上げればすぐ試せるようにしています。

また各種言語での実装の詳細はml_api_(python|r|julia)の中を見てもらえればと思います。そんなに大したことやっていないので説明はしません。

使い方

クローンをして、

git clone https://github.com/RottenFruits/ml_api_samples.git

ビルドをすると、

cd ml_api_samples
docker-compose build
docker-compose up -d

サーバーが立ち上がるので、以下のURLにアクセス。

http://0.0.0.0:8080/

そうすると以下のような画面が出ると思います。

f:id:rf00:20190811103251p:plain

リンクの言語名をクリックすると、各言語で実装されたapiを使うことができます。

ちなみにJuliaはGenie.jlというフレームワークを使っているのですが、CORS(Cross-Origin Resource Sharing)の処理がうまく行かなかったので、今は実装を諦めています。

github.com

例えばここでPythonを選ぶと、

f:id:rf00:20190811103642p:plain

という画面が出るので、それぞれの変数の値を適当に入れます。

最後に「送信」ボタンを押下すると、apiにデータが投げられて、この変数の値の場合の想定される種が帰ってきて表示されます。

f:id:rf00:20190811103730p:plain

終わりに

今回は予測モデルのapi化を試してみました。

自裁に運用する際には気をつけなければならない点が漏れているかもしれませんが、予測モデルを作ってそれをサービスとして提供するにはどうすればいいのか少し理解できました。

それでは間違い等ありましたら、ご指摘お願い致します。

参考

Python(Flask) でサクッと 機械学習 API を作る - Qiita

Rのコードをweb APIに {plumber} - Qiita