Slide 1

Slide 1 text

TensorFlow のドキュメント翻訳を行う コミュニティ活動について

Slide 2

Slide 2 text

杉山 阿聖 Software Engineer @ Repro AI Labs 機械学習, 統計, R&D, 開発 TensorFlow Docs 翻訳 & レビュー 翻訳:Performance with tf.function レビュー: Tutorials などなど 機械学習図鑑 共著

Slide 3

Slide 3 text

https://japan.googleblog.com/2019/12/books-for-students.html 3

Slide 4

Slide 4 text

1. イメージが伝わるようにする Web エンジニアが雰囲気をわかる 厳密さよりもわかりやすさ 2. 数式を用いた詳細な記述は行わない 日本語と図で頑張る 機械学習図鑑 4

Slide 5

Slide 5 text

ご推薦いただき本当にありがとうございました

Slide 6

Slide 6 text

TensorFlow のドキュメント翻訳を行う コミュニティ活動について

Slide 7

Slide 7 text

ドキュメント翻訳は楽しい 1. TensorFlow について詳しくなれる 2. コミュニティで知識を交換しあえる 3. 世界を変えることができる 今日お伝えしたいこと 7

Slide 8

Slide 8 text

Contents 1. TensorFlow docs の翻訳について <- 2. 翻訳の楽しさについて 3. 翻訳活動の難しさについて

Slide 9

Slide 9 text

1. TensorFlow docs とは 2. TensorFlow docs の翻訳活動について 3. 日本コミュニティでのこれまでの活動について TensorFlow docs の翻訳について 9

Slide 10

Slide 10 text

TensorFlow docs 10

Slide 11

Slide 11 text

tensorflow.org で提供されるドキュメントのうち、Guide, Tutorials などの総称 tensorflow/docs というリポジトリで管理される 内容は TensorFlow Core, tfjs, tf.lite, tfx, Swift for TensorFlow と幅広い 独自のリポジトリ内で別にドキュメントを作成している場合も 例: tensorboard/docs TensorFlow API reference は別枠扱い (docsrting で書かれる) TensorFlow docs とは 11

Slide 12

Slide 12 text

Markdown と Jupyter Notebook で構成されている Notebook は Colab で起動できる dark mode がある 特徴 12

Slide 13

Slide 13 text

TensorFlow 2 quickstart for experts Demo 13

Slide 14

Slide 14 text

ドキュメントは英語で書かれたものを source-of-truth として取り扱う 各国語への翻訳は、各国のコミュニティ主導で行われている TensorFlow docs の翻訳活動 14

Slide 15

Slide 15 text

11 ヶ国語への翻訳が進行中 15

Slide 16

Slide 16 text

TensorFlow 2 quickstart for beginners Demo 16

Slide 17

Slide 17 text

時期 内容 2019/03 @masa-ita による ja/tutorials/keras の翻訳 PR 2019/04 レビューが行われ PR が取り込まれる オフライン活動 (TensorFlow のドキュメントを翻訳しつつ勉強する会#1) 2019/05 Keras, hub, tfjs, xla, autograph の翻訳に関する PR が merge 2019/06 tutorial や tf.lite, tfp も翻訳が進み PR が merge される 2019/08 レビュワーが増えだす (2019/12 現在 8 名) 2019/11 オフライン活動 (TensorFlow のドキュメントを翻訳しつつ勉強する会#2) 日本コミュニティでのこれまでの活動 17

Slide 18

Slide 18 text

すべての始まり 18

Slide 19

Slide 19 text

続々と集まるレビュワー (1/2) 19

Slide 20

Slide 20 text

続々と集まるレビュワー (2/2) 20

Slide 21

Slide 21 text

リリース 21

Slide 22

Slide 22 text

翻訳活動をすすめるためのコミュ ニティが立ち上がる オフライン & オンラインで活動を 開始 オフラインで翻訳するイベントを 2 回開催 オンラインでは随時 GitHub & Slack で活動継続中 コミュニティ活動 22

Slide 23

Slide 23 text

TensorFlow を翻訳しつつ勉強する会 #2 23

Slide 24

Slide 24 text

Google Developers ML Summit Tokyo vol 3 で紹介される Jeff Dean が来日した会 写真に写っている方は Mike Liang (Product Manager, TensorFlow) ML Summit Tokyo 24

Slide 25

Slide 25 text

現在も活発に活動中 25

Slide 26

Slide 26 text

Contents 1. TensorFlow docs の翻訳について 2. 翻訳の楽しさについて <- 3. 翻訳活動の難しさについて

Slide 27

Slide 27 text

1. TensorFlow について詳しくなれる <- 2. コミュニティで知識を交換しあえる 3. 世界を変えることができる 翻訳の楽しさについて 27

Slide 28

Slide 28 text

内容が豊富 深く理解できる 得た知識の活用例 tf.function による高速化 1. TensorFlow について詳しくなれる 28

Slide 29

Slide 29 text

Tutorial だけでも さまざまな内容の ドキュメントが用 意されている Keras Numpy, pandas CNN, RNN Word embedding Transfer learning GAN 内容が豊富 29

Slide 30

Slide 30 text

TensorBoard TFX TensorFlow Hub Datasets Model Optimization Probability TensorFlow Federated XLA Neural Structured Learning TensorFlow Agents TensorFlow Ranking Extensions (一部) 30

Slide 31

Slide 31 text

翻訳することは、理解したことを自分の言葉で他人に伝えることと同じ 英語のドキュメントを読み、動かして理解する 関連するドキュメントを読み、動かして理解する 結果を自分の言葉で記述する 翻訳は自分の理解度に対する良いテストになる 翻訳することで理解を確認できる 31

Slide 32

Slide 32 text

様々な分野の理解が必要になった例 : TFX 32

Slide 33

Slide 33 text

better performance with tf.function.ipynb 得た知識の活用例 tf.function による高速化 33

Slide 34

Slide 34 text

翻訳を行い、理解度をテストしながら読むことで、理解を深められる 分野が幅広いため、自分の引き出しを広げられる 1. TensorFlow について詳しくなれる 34

Slide 35

Slide 35 text

1. TensorFlow について詳しくなれる 2. コミュニティで知識を交換しあえる <- 3. 世界を変えることができる 翻訳の楽しさについて 35

Slide 36

Slide 36 text

理解を深められる 互いに褒め合うのは大事 2. コミュニティで知識を交換しあえる 36

Slide 37

Slide 37 text

TensorFlow Core のドキュメントの翻訳には大まかに言って次が必要 機械学習の知識 プログラミングの知識 : Python, OOP, Functional Programming TensorFlow の知識 TensorFlow Core 以外を翻訳しようとすると、追加の知識が必要 TensorFlow.js : JavaScript tf.lite, XLA : 低レイヤー TFX : Apache Beam, Apache Airflow, Kubeflow (k8s), etc. Swift for TensorFlow : Swift tfp : 確率的プログラミング ... and so on. 翻訳には莫大な知識が必要になる 37

Slide 38

Slide 38 text

自分の理解を確認し、 理解の幅を広げる機会 はなかなかない レビューを通して、コ ミュニティで自分の理 解を深められる 自分の知識が深くない 分野について、改めて 見直す機会になる 理解を深められる 38

Slide 39

Slide 39 text

文中の Python primitives はどう訳せるでしょうか? tf.function works best with TensorFlow ops, rather than NumPy ops or Python primitives.

Slide 40

Slide 40 text

40

Slide 41

Slide 41 text

41

Slide 42

Slide 42 text

42

Slide 43

Slide 43 text

より良い訳が思いついたあなた! 今がまさにコントリビュートの機会です!

Slide 44

Slide 44 text

互いに褒め合うのは大事 44

Slide 45

Slide 45 text

互いに褒め合うのは大事 45

Slide 46

Slide 46 text

互いに褒め合うのは大事 46

Slide 47

Slide 47 text

指摘も大事、互いに褒め合うのも大事 コミュニティ活動を通じて適切なフィードバックが得られる 2. コミュニティで知識を交換しあえる 47

Slide 48

Slide 48 text

1. TensorFlow について詳しくなれる 2. コミュニティで知識を交換しあえる 3. 世界を変えることができる <- 翻訳の楽しさについて 48

Slide 49

Slide 49 text

1. 日本語のドキュメントに助けられてきたから 2. 翻訳することで世界を変えることができる なぜ翻訳したいのか? 49

Slide 50

Slide 50 text

Q: man ってどう読むんですか A: man man Q: man ってどうやったら読めるようになるんですか A: 読もうとするうちに読めるようになる Q: man コマンドってどうやったら終えられるんですか A: man less を読め Q: 打てないんですが A: h を打て man を読め 50

Slide 51

Slide 51 text

51

Slide 52

Slide 52 text

52

Slide 53

Slide 53 text

大量の日本語ドキュメントが見つかる安心感 (黒い画面じゃない) 少なくとも同じことで悩んでいた人がいた!仲間がいた! なぜ検索するのか 53

Slide 54

Slide 54 text

今読めるのは先人の努力の結果 最初からできたわけではない 返すべき恩がある 巨人になれなくとも、巨人の肩ま での階段なら作れるかもしれない 日本語のドキュメントに 助けられてきた 54

Slide 55

Slide 55 text

誰がこんな難しいことをやるのか 単純に英語の文章を読めばよいのではないか いつの日にか公式的にやってくれるのではないか でも、少なくとも TensorFlow のドキュメントについてはそうではない 自分で理解して、他人にわかるように説明したドキュメントがある世界は、それが ない世界よりもずっと良い 先人たちもそのような思いだったのでは 他人にわかるように説明すること = 翻訳で恩返しをして、より良い世界にできる やってみたら意外と楽しいし! TensorFlow のドキュメント翻訳についての雑感 55

Slide 56

Slide 56 text

1. 今、ドキュメントを読めるのは先人の努力のおかげ 2. 翻訳を行うことで自分で理解して他人にわかるように説明したドキュメントのある 世界を実現できる 3. 世界を変えることができる 56

Slide 57

Slide 57 text

Contents 1. TensorFlow docs の翻訳について 2. 翻訳の楽しさについて 3. 翻訳活動の難しさについて <-

Slide 58

Slide 58 text

0. 翻訳活動の根本的な難しさ 1. 手順が不明確 2. 未着手が多い 3. 変更への追従ができていない 翻訳活動の難しさについて 58

Slide 59

Slide 59 text

コミュニティを作り定着させることが大事 日本コミュニティについては一山越えた感 翻訳活動の根本的な難しさ 59

Slide 60

Slide 60 text

少人数で活動してきて いたため、手順が不明 確な箇所がまだある 右は翻訳すべきでない ドキュメントを翻訳し た筆者に対する丁寧な 対応の図 Jupyter Notebook のレ ビューも現状では json を気合でレビュー勢が 多い 1. 手順が不明確 60

Slide 61

Slide 61 text

表記ゆれチェック ツール Markdown と Notebook に対応 Thanks: sfujiwara chie8842 Proofreading (RedPen) 61

Slide 62

Slide 62 text

着手できたのはファイル数で ja / en = 65 / 228 (29%) くらい tensorflow/docs に限定して diff を撮ってみたのが右図 関連ドキュメントを含めると比率 はまだ下がりそう まだまだやることはたくさんある 個人的には TFX と Swift for TensorFlow をやっていきたい 2. 未着手が多い 62

Slide 63

Slide 63 text

ドキュメントの変更が 結構激しく、追従がで きていない 急速に拡大する TensorFlow エコシステ ムへの追従も考慮でき ると良さそう 3. 変更への追従 63

Slide 64

Slide 64 text

翻訳以外にも英語ドキ ュメントの修正を行う ケースも ドキュメントとコード の不整合やリンク切れ を修正 ドキュメントそのもの を追加するケースも 英語ドキュメント の修正 64

Slide 65

Slide 65 text

0. コミュニティを立ち上げ翻訳活動を継続できた 1. 活動を継続する中で手順が不明瞭になっているので明文化していきたい 2. まだまだ翻訳に着手できていない分野も多いのでフロンティアが広がっている 3. 変更に追従するのは短時間でできるので最初はこれからやると良いかも 4. 英語ドキュメントの修正や追加もやっていきたい 翻訳活動の難しさについて 65

Slide 66

Slide 66 text

We are looking forward to seeing your contribution!