Slide 1

Slide 1 text

Retty流 「2200万ユーザさんを支える機械学習基盤」 の作り方 Masato Taruishi CTO@Retty TFUG#3

Slide 2

Slide 2 text

Who am I? ■ Masato Taruishi ■ 学生時代 ✓ Debian Project 公式開発者 ✓ Debian-JP Project 理事会役員 ■ Career ✓ Red Hat / VA Linux (Eng / Sales) − OS / コンパイラ / ミドルウェア ✓ Google (SWE/SRE) − アプリ・サーバサイド・インフラ・Corp ✓ Rakuten (Eng) − Private Cloud ✓ Retty (CTO) − なんでも屋

Slide 3

Slide 3 text

機械学習環境(アキバで買い物して自作!!) Retty流『2200万ユーザを支える機械学習基盤』の作り方 http://qiita.com/taru0216/items/dda1f9f11397f811e98a

Slide 4

Slide 4 text

ネタのつもりで公開したら思ったより好評。 発表の機会をいただくことが出来ました

Slide 5

Slide 5 text

Agenda ■ Rety の紹介 (会社、サービス、データ) ■ Retty 機械学習基盤の紹介 (Docker 周り) ✓ 機械学習でやっている事の詳細は別の機 会、または次の氏原の発表で触れたいと 思います

Slide 6

Slide 6 text

Rettyの紹介(会社、サービス、データ)

Slide 7

Slide 7 text

Retty のビジョン 食を通じて世界中の人々をHAPPYに

Slide 8

Slide 8 text

Retty について Retty株式会社 • 設立:2010年11月 • サービスリリース:2011年5月 • 社員:約80人 ※エンジニア約25名

Slide 9

Slide 9 text

Retty のサービス 「人から探せる」グルメサービスを運営 「リアルな友達」 「食に詳しく好みの合う人」 月間利用者数 2200 万人以上 (2016/5月)

Slide 10

Slide 10 text

「人から探す」をもっとわかりやすく 「この人のおすすめは自分に合っていそう」 というのが直感的にわかるユーザ体験 https://retty.me/top-users/

Slide 11

Slide 11 text

詳細はアプリで

Slide 12

Slide 12 text

Retty は飲食店に関する CGM (UGC) です 2011~2015 2016~ グルメ情報と グルメユーザさん集め 投稿内容の分析・編集・公開と グルメ TOPUSER さんの発掘

Slide 13

Slide 13 text

グルメ情報に関する信頼性等向上の取り組み ■ 信頼性 ✓ 実名・顔写真公開による投稿 − 顔の見えるサービスという世界観を創る ✓ 投稿内容をリアルな友達・知人に見てもらう − 責任ある投稿を促す ■ 権利関係 ✓ 二次著作の許諾 − ユーザさん投稿の分析・編集・公開などを行う許 諾を受けている

Slide 14

Slide 14 text

ユーザさん・飲食店さん双方が Happy になる世界 ■ みんながHappyになる Win-Win 関係 ✓ オススメのお店を投稿するコンセプト (リコメンド) − ≠評価 (レビュー) ✓ オススメ情報を適切なユーザさんに届けるマッチング 投稿ユーザさん 飲食店さん ファン ユーザさん どなたの発言かがわかる (*) 飲食店さんも含めた Web of Trust (信頼の輪) 信頼 信頼

Slide 15

Slide 15 text

Retty のデータの種類と規模 様々な種類のデータを組み合わせて、 人をHappyにするサービス構築を目指しています! 自然 言語 画像 お店 人 口コミ300万件 1000万枚 全国80万店舗のお店情報 => 2年で約50%が閉店するといわれている => 「ネットに情報はない」ためそれを作るノウハ ウが大事 ユーザーさんの行動、数千億 ソーシャルグラフ 【Keywords】 Deep Learning Word2Vec LDA/LSI/TFIDF SVM/LR/RandomForest LP/ILP/0-1ILP/NLP Recommendation Automation Data Visualization

Slide 16

Slide 16 text

Retty 機械学習マシンの紹介 (Docker 周りを中心に)

Slide 17

Slide 17 text

GPU付自作PCを全自動ネットインストールでセットアップ

Slide 18

Slide 18 text

使い方 (ssh してログインして使う)

Slide 19

Slide 19 text

どのマシンにログインしても同じデータがあります

Slide 20

Slide 20 text

nvidia-smi

Slide 21

Slide 21 text

ブラウザで開発もできます

Slide 22

Slide 22 text

アーキテクチャ全体像 Hardware - Akiba 1-x OS hdd Distributed storage Container Home Container Containers Network GPU CPU, devices Configuration Container Qemu KVM Kubernetes (docker) qemu on docker

Slide 23

Slide 23 text

根幹はRubuntu Server (Retty ubuntu) と Kubernetes (Docker) Hardware - Akiba 1-x OS hdd Home Container GPU CPU, devices Configuration Kubernetes (docker)

Slide 24

Slide 24 text

開発者は Docker コンテナを使う Hardware - Akiba 1-x OS hdd Home Container GPU CPU, devices Configuration Kubernetes (docker)

Slide 25

Slide 25 text

手元のマシンでも動きます docker run -it --rm --privileged retty2-runtime-dev

Slide 26

Slide 26 text

すべての Docker イメージはコア Docker から継承 retty2-runtime-core retty2-runtime-cuda retty2-runtime-anaconda retty2-runtime-builder retty2-runtime-dev retty2-tech-home 監視エージェント・ログ・証明書管理・ パッケージ監視(セキュリティ対策)など retty2 開発環境 on retty2 cuda anaconda / tensorflow / chainer / mxnet / cabocha / mxnet / fasttext ….. shell / editors / tmux / screen …. ssh / samba ...

Slide 27

Slide 27 text

docker build は configure && make -j で http proxy cache ローカル対応で docker build が超高速 public データのダウンロード速度最大 350MB/s

Slide 28

Slide 28 text

docker イメージが簡単に作れすぎるので シェルプロンプトにビルドバージョンを記載

Slide 29

Slide 29 text

build の自動化

Slide 30

Slide 30 text

Kubernetes の Daemon Set機能で全マシンにデプロイ

Slide 31

Slide 31 text

Kubernetes は juju & MAAS でネット自動インストール

Slide 32

Slide 32 text

ノートPCにも同じ環境を用意しました Rubuntu Server + Ubuntu Desktop + Ubuntu BugFixes

Slide 33

Slide 33 text

おまけ ■ Retty 機械学習基盤は sshd でログインできる ubuntu があれば使 えます。そのため大量のGPU環境の確保が容易です。 ✓ http://jp.techcrunch.com/2017/02/22/20170221google-launches-gpu -support-for-its-cloud-platform/

Slide 34

Slide 34 text

最後に Rettyはグルメなユーザさんがオススメする、信頼できる飲食店の情報を わかりやすく提供していきます 「人から探す」グルメサービスの開発に興味の ある方、ご応募お待ちしております

Slide 35

Slide 35 text

Retty はこんな会社です

Slide 36

Slide 36 text

ご清聴ありがとうございました.