Slide 1

Slide 1 text

Red Chainerを
 なぜ作って今後どうするのか hatappi
 @RubyData Tokyo Meetup

Slide 2

Slide 2 text

⾃⼰紹介 • Yusaku Hatanaka (@hatappi) • Speee, Inc • Red Data Tools のメンバー • Ruby, Go, TypeScript, etc. • ḦΓେ౾͕޷͖

Slide 3

Slide 3 text

今⽇のゴール • Red Chainerがなんなのか知ってもらう • へぇ〜って思ってもらう

Slide 4

Slide 4 text

こんなこと話します • Red Chainerとは? • Red Chainerの歴史 • 今後やりたいこと • まとめ

Slide 5

Slide 5 text

Red Chainerとは?

Slide 6

Slide 6 text

Red Chainerとは? • Rubyのための深層学習フレームワーク • Red Data Tools の1プロジェクト • red-data-tools/red-chainer • Python製の深層学習フレームワークのChainerを⼿動 Rubyへポーティング • 現在はChainerのv2系がベース

Slide 7

Slide 7 text

Red Chainerの特徴 • Define By Run • Rubyで書くことが出来る • インストールが簡単 `gem install red-chainer`

Slide 8

Slide 8 text

Red Chainerの特徴 • Define By Run • Rubyで書くことが出来る • インストールが簡単 `gem install red-chainer`

Slide 9

Slide 9 text

• Define And Run • 計算グラフを静的に扱う • Define By Run • 計算グラフを動的に扱う

Slide 10

Slide 10 text

Define And Run IUUQTXXXZPVUVCFDPNXBUDI W85/)UDTDRP

Slide 11

Slide 11 text

Define By Run IUUQTXXXZPVUVCFDPNXBUDI W85/)UDTDRP

Slide 12

Slide 12 text

Red Chainerの歴史

Slide 13

Slide 13 text

Red Chainerの歴史 2017/08 2017/10 2018/05 現在

Slide 14

Slide 14 text

Red Chainerの歴史 2017/08 2017/10 2018/05 現在 first commit

Slide 15

Slide 15 text

きっかけ 2017/08 2017/10 2018/05 現在 • OSS Gate Workshopを通じて須藤さん(@ktou)と出会う • Red Data Toolsに参加 • なぜ参加したかは覚えてない
 たしか⾯⽩そう!と思ったからだった気がする • Red Data ToolsでRed Chainerを作りはじめる • なぜ作ろうと思ったかは覚えていない
 たしか⾯⽩そう!と思ったからだった気がする

Slide 16

Slide 16 text

どうやって移⾏していったか 2017/08 2017/10 2018/05 現在

Slide 17

Slide 17 text

どうやって移⾏していったか 2017/08 2017/10 2018/05 現在 気合の作業! でもやったことないことだし 楽しかった

Slide 18

Slide 18 text

Red Chainerの歴史 2017/08 2017/10 2018/05 現在 first commit

Slide 19

Slide 19 text

Red Chainerの歴史 2017/08 2017/10 2018/05 現在 first release

Slide 20

Slide 20 text

出来るようになったこと 2017/08 2017/10 2018/05 現在 • Multi Layer Perceptron(MLP)に必要な最低限の APIをサポート • サンプルとしてMNISTを⽤意

Slide 21

Slide 21 text

Multi Layer Perceptron 2017/08 2017/10 2018/05 現在

Slide 22

Slide 22 text

Multi Layer Perceptron 2017/08 2017/10 2018/05 現在

Slide 23

Slide 23 text

MNIST 2017/08 2017/10 2018/05 現在

Slide 24

Slide 24 text

MNIST 2017/08 2017/10 2018/05 現在

Slide 25

Slide 25 text

Red Chainerの歴史 2017/08 2017/10 2018/05 現在 first release

Slide 26

Slide 26 text

Red Chainerの歴史 2017/08 2017/10 2018/05 現在 畳み込み演算のサポート!

Slide 27

Slide 27 text

出来るようになったこと 2017/08 2017/10 2018/05 現在 • ৞ΈࠐΈԋࢉΛαϙʔτ • ଞʹ͸BatchNormalization, Pooling, etc.. • CIFAR-10, 100ͷαϯϓϧͷ௥Ճ • σʔλͷऔಘʹ͸ red-data-tools/red-datasets

Slide 28

Slide 28 text

VGG 2017/08 2017/10 2018/05 現在

Slide 29

Slide 29 text

VGG 2017/08 2017/10 2018/05 現在

Slide 30

Slide 30 text

ResNet18 2017/08 2017/10 2018/05 現在

Slide 31

Slide 31 text

ResNet18 2017/08 2017/10 2018/05 現在

Slide 32

Slide 32 text

例えば 2017/08 2017/10 2018/05 現在 Red Chainer x

Slide 33

Slide 33 text

例えば 2017/08 2017/10 2018/05 現在 All Ruby!!

Slide 34

Slide 34 text

Red Chainerの歴史 2017/08 2017/10 2018/05 現在 畳み込み演算のサポート!

Slide 35

Slide 35 text

Red Chainerの歴史 2017/08 2017/10 2018/05 現在 Chainer 3系への対応

Slide 36

Slide 36 text

Chainer 3系の対応 2017/08 2017/10 2018/05 現在 • ⼆階以上の微分をサポート • 内部のAPIの構造も変わっている 今年中には終わるはず

Slide 37

Slide 37 text

短い期間で⾒るとあまり
 進んでないように⾒える

Slide 38

Slide 38 text

⻑い⽬で⾒ると ちゃんと進んでる

Slide 39

Slide 39 text

今後やりたいこと

Slide 40

Slide 40 text

今後やりたいこと • 本家Chainerは追随していく • 今までのようにコードをそのままポーティングすると いうよりは内部のAPIなどのインターフェスなどを参考 にしていくイメージ • ONNX対応をやっていきたい

Slide 41

Slide 41 text

ONNX
 https://onnx.ai/ • Open Neural Network Exchangeの略 • 深層学習のモデルをフレームワーク間で交換するための フォーマット • 例えばChainerで学習したモデルをMXNetで取り込んで 使うことが出来る • 1つのファイルにモデル定義とパラメータが保存されている

Slide 42

Slide 42 text

なぜONNX対応をするのか • なんか⾯⽩そう • 今すぐRed Chainerが実⽤化できるかでいうと厳しい • 仮に実⽤化できたとしても既存の資産がある • 直近はChainerで学習したモデルをRed Chainerで使える ようにしたい

Slide 43

Slide 43 text

まとめ • Red Chainerの歴史を紹介しました • ちょっとずつやるので、興味ある⼈がいたらTwitterでも この後でも気軽に話しかけてください!
 僕も分からないことだらけなので⼀緒にワイワイやりま しょう!! • 今後もおもしろドリブンで開発したい