読者です 読者をやめる 読者になる 読者になる

once upon a time,

Iris Tradをビール片手に聞くのが好きなエンジニアが、機械学習やRubyにまつわる話を書きます

Cloudera World Tokyo 2016で機械学習プロダクトの作り方を話しました #cwt2016

データ分析 machine learning

さる11/8に、自社の主催するCloudera World Tokyo 2016で、機械学習プロダクトの作り方について話をしました。

f:id:chezou:20161108182005j:plain
図: Hadoopの生みの親 Doug(@cutting)と握力王新沼さん(@hiroki_niinuma)の対談イベントの様子

www.slideshare.net

データの民主化の話、データサイエンティストとデータエンジニアの役割分担とチーム構成、機械学習の業務フロー、Cloud Nativeなデータサイエンスといった盛りだくさんの話をしました*1

話の中で特に言いたかったことは2つ、P.16のリスクを取ってくれる責任者を捕まえようという話と、P.29の機械学習込みのプロダクトは改善をし続けないと死ぬという話です。 あとは、できるだけ機械学習をしないで、サンクコストが生まれる開始前に撤退ラインを決めておこうということも言いました。

個人的には、今回 Cloudera のエンジニアリングチームと共にプロダクトの品質を測定しているJuliet(@j_houg)の話や、@tokorotenさんの話も、自分からお願いをしたのですがお互い相補的な話でとても良かったと思います。

www.slideshare.net

特にtokorotenさんの話は、データ分析チームのアンチパターンが並んでいます。どれも耳が痛い話です。また、A/Bテストから機械学習にアップリフトモデリングを通じてどうつなげていくかという話もとても面白いです。

3人の話を総合すると、データサイエンティストとデータエンジニアという区分では、こういった人たちが求められているのかなと思っています。

  • ビジネスの意思決定をデータから支援する人
  • プロダクトの改善を予測モデル含めてデータドリブンで行う人
  • データ基盤を作るデータエンジニア

Cloud Native な話

Cloud Nativeのデータサイエンスの話は、時間の関係でちょっと話足りなかったのですが、同僚の@tsuyokbの話を見ていただけると良いと思います。

www.slideshare.net

機械学習やデータ分析の文脈で言うと、今までImpalaとかHive on SparkとかはHadoopクラスタを持っている人の持ち物というイメージしかなかったんですが、昨今S3を始めとしたオブジェクトストレージに置かれたデータを直接処理できるようになったのが大きな変化だと思っています。

特に、HiveやImpalaのテーブルさえ作っておけば、S3に直接SQLを投げられるようになったというのは大きな変化かなと思います。 Cloudera Directorを使うと、一時的なクラスタを上げ下げ増減が簡単にできて、永続化層をS3にするだけという感じになります。 そうすることで、必要なときに必要な量のクラスタを立ち上げて対話的に分析をし、ワークロード決まったらバッチ用に組み替える、なんてことも容易になってきます。

少しずつではありますが、RedshiftやBigQueryに対する第3の選択肢になってくることを期待しています。

*1:思い返してみると、この手のあるある...辛い...って話MLCTでよくやっていたのであった