Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

Asei Sugiyama
December 14, 2019

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

GDG DevFest 2019 での登壇資料です https://tokyo.gdgjapan.org/devfest2019

Asei Sugiyama

December 14, 2019
Tweet

More Decks by Asei Sugiyama

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  10. TensorFlow docs
    10

    View Slide

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

    View Slide

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

    View Slide

  13. TensorFlow 2 quickstart for experts
    Demo
    13

    View Slide

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

    View Slide

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

    View Slide

  16. TensorFlow 2 quickstart for beginners
    Demo
    16

    View Slide

  17. 時期 内容
    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

    View Slide

  18. すべての始まり
    18

    View Slide

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

    View Slide

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

    View Slide

  21. リリース
    21

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  25. 現在も活発に活動中
    25

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  37. 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

    View Slide

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

    View Slide

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

    View Slide

  40. 40

    View Slide

  41. 41

    View Slide

  42. 42

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  51. 51

    View Slide

  52. 52

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  66. We are looking
    forward to seeing
    your contribution!

    View Slide