Slide 1

Slide 1 text

AutoML Visionのモデル作成/デプロイパイプ ラインを作成してみた 石澤直人 @youyo_

Slide 2

Slide 2 text

Who am I func main() { profile := map[string]string{ "Name": " 石澤直人 (@youyo_)", "Company": " ヘプタゴン", "Job": " エンジニア", "Language": "Go, Python...", "Likes": "AWS, GCP, Serverless...", } fmt.Println(profile) }

Slide 3

Slide 3 text

デモアプリ 孫悟空判定くん ノーマル,スーパーサイヤ人1,2,3,ゴッド,ブルーを判定してくれる GTほとんど見てないので4のことは忘れてた (権利的なアレで画像差し替えました)

Slide 4

Slide 4 text

今回お話ししたいのはAutoML Visionのこと やら精度のことではなく, 如何にしてモデルの 作成からデプロイまでを自動で行ったか

Slide 5

Slide 5 text

AutoML Vision Cloud AutoML Vision Alpha を使用すると、機械学習モデルをトレ ーニングして、自分の定義したラベルに従って画像を分類できま す。 アノテーション済み画像をそこまで用意できなくてもなんかそれっ ぽい結果を返してくれるらしい 制約もちょいちょいありそうだけどお手軽そう まだアルファ でもGoogleなんだからいい感じに使えるんでしょ?

Slide 6

Slide 6 text

まず何をしたかったか 誰かが画像をアップロードしたら勝手に学習されてモデル作成され てLineBotサーバーが推論するモデルが最新のものに更新される

Slide 7

Slide 7 text

ボツ案 ぼんやりとしたこうすればいけるやろ~とか思ってたやつ

Slide 8

Slide 8 text

ここがダメだった1 CloudStorageには画像とその一覧とラベルを含むCSVを置く必要が あり、それらが置かれるバケット名は [ プロジェクトID]-vcm でな ければならないという制約があった。 CloudFunctionsは画像が揃ってからcsvが置かれたタイミングでだ け起動されれば十分なのに, ファイル拡張子での起動制御ができず 画像が置かれている段階でファンクションが起動しまくる結果とな った。 プログラム側でcsv以外だったら無視する処理すればいいっちゃい いけど綺麗じゃないしお金かかるし無駄。 バケットを複数用意して対応することにした。

Slide 9

Slide 9 text

ここがダメだった2 AutoML Visionでモデル作成が終了したタイミングでのイベント発 行など存在しない さらに実際には 学習スタート! で終わりではなく, データセット作 成/モデル作成(トレーニング)などに分かれていた。 ステート/オペレーション管理しつつ作成されたモデルIDを Datastoreに保存するようにした。

Slide 10

Slide 10 text

結果こうなった

Slide 11

Slide 11 text

まとめ AutoML Vision自体は簡単に試せていい感じ 自動化を考えたときにもう一声欲しい感じ GCP好きなんでいい感じのアップデート待ってます