社内もくもく会でGoogle Cloud Platformを使ってみた話

f:id:yoshitaku_jp:20180603191537j:plain

はじめに

社内でもくもく会の第二回を開催してみました。 今回は機械学習・AIに関するものを自分が触りたかったので、そこからもくもく案を考えました。 AWSやGoogleCloudPlatform(GCP)、MSなど各ベンダーでサービスを提供していますが、どこのソリューションを使うかは、自社内で触る機会が少ないGCPで実行してみました。

使ったものはこちら 花のデータセットを使用した画像の分類

作業内容

サンプルコードを実行してデータを Cloud Dataflow で前処理してから、この変換後のデータを使用して Cloud ML Engine でモデルをトレーニングします。このトレーニング後のモデルを Cloud ML Engine にデプロイし、予測リクエストを送信してモデルをテストします。 このサンプル データセットに収録されているのは、ごく少数の画像(最大 3,600 件)です。機械学習技術を使用して正確な分類モデルを一から適切にトレーニングするには、これよりも多くのデータが必要です。ここでは、転移学習と呼ばれるアプローチを代わりに使用します。転移学習では、あらかじめトレーニングされたモデルを使用して画像の特徴を抽出し、これを使用して新しい分類器をトレーニングします。このチュートリアルでは、Inception という事前トレーニング済みモデルを使用します。

結論から言ってしまうのですが、このチュートリアルは途中でエラーを起こしてしまうので終わらせることが出来ませんでした。

実際の作業で詰まったところ

Cloud Shellはユーザで共有することが出来ない

ブラウザ上で、GCPの操作や開発が行えるツールがCloudShellです。SDK落としたり、ローカルで開発環境を開く必要もないので便利でした。ただブラウザが狭くなるのは…仕方ないか。

f:id:yoshitaku_jp:20180604141337j:plain

今回は一つアカウントを作り、そのアカウントを共有して作業をおこなう予定でしたが、CloudShellのセッションを取り合ってしまってうまく作業が進みませんでした。

クラウドでのトレーニングと評価のデータの前処理がうまくいかない

今回のもくもく会は7名ほどで実行したのですが、全員がこの項目以降進めなくなってしまいました。 エラーも「temp_location」が無いぞというエラーだったり、実行途中にCloudShellが落ちてしまうものだったり、原因がバラバラでつかめませんでした。

原因がつかめていない時点で、推測を書くのもどうかと思うのですが、メモとして書いておきます。 今回使用したcloudml-samples/flowers/ ですが、各ファイルの最終コミットが4ヶ月以上前のものばかりです。ドキュメントの整備・整合性を含め、Github上で整備されていないのかなぁと思いました。

まとめ

今回は社内もくもく会Google Cloud Platformを使ってみました。

今回の学びとしては、

  • ドキュメントはちゃんと整備しよう
  • 会を開催する前に実際に動かして、動くものか確認しておこう
    • 【注】今回は、ハマったときにみんなで話し合って解決したい思いもあって、事前に動かしておくことはやめておきました。

機械学習・AI分野に対する知見が増えなかったのは残念ですが、ブラウザ上でCloud Shellというものが扱えることが知れたのも良かったですね。 そこまで使いこなせているわけではないですがAWSに慣れると、GCPのUIや用語がわからなくて辛いです…