Lab Notebook and Jupyter, Braindump (2)
Jupyter は色々なものが混じっているのであるべき姿について考えるのが難しい。
- Computational Essay や Interactive/Reproducible Paper, ストーリー
- 人に読ませるもの。論文に限らず社内向けのレポートとかもこれ。
- Mathematics はこれがやりたいらしい。Bret Victor もたぶんこれ。
- そこそこ Neat である必要。
- 試行錯誤の過程とかはいらない。
- 参考: The Scientific Paper Is Obsolete. Here's What's Next. - The Atlantic
- 人に読ませるもの。論文に限らず社内向けのレポートとかもこれ。
- Lab Notebook
- 作業記録をつけるためのもの。Rigorous である必要。
- 他の世界だと LN は特許や裁判の証拠にもなる。
- たぶん Reproducibility が特に重要。
- アカデミアにとって研究の成果の証拠だから。一方でそれは Producible Paper でもいいといえばいい。(発見のタイミングとかそんなに重要じゃない。)
- しかし Jupyter が Lab Notebook に向いているのかは怪しい。
- Sloppy になりやすいし。ふつうに Evernote/OnoNotes とかでよくね?
- 一方でデータの可視化やキャプチャとかには便利。
- 証拠と自分のための記録は一緒でいいのか?失敗の記録は別でよくね?そして再現性いらなくね?
- 作業記録をつけるためのもの。Rigorous である必要。
- REPL
- ブラウザなので履歴にアクセスしやすい。
- インラインで画像を表示できる。
- 探索的な作業ができる。
- そして研究というのは本質的に探索的。
考察
- 「実験そのもの」と「実験の記録」混ぜる必要は必ずしもないのでは?
- 実験の記録は別に管理する必要がある。
- Jupyter である必要はないが、数値やチャートの生成を考えると活用する余地はあるかも。トータルで(たとえば) OneNote の良さに勝てるのか?それを勝つ方向に進歩しているか(そうは見えないが)?
- 同様に「実験の記録」と「ストーリー」も別。
- ストーリーを Jupyter にするのがすごく流行らないのは、結局は実験記録を整形する手間がかかるからかも。
- こいつらがぜんぶ一撃で済む、ということを暗に期待すると辛くなる。
- Reproducibility もどこまで期待するかで手間がかわる。
- 最終的な成果を reproduce するのには手間をかけて良い。
- 全ての行程が reproduce にする、というのは現状の技術では大変なのでは。
- Jupyter は notebook の実行可能性を担保しない。
- バージョン管理がスムーズでも盤石でもない。 (colab は git がない, ipynb-json-blob 問題, データどこに置くかなど)
- ここは探索の身軽さを優先し少し手を抜いて良いのでは。つまり、がんばれば再現できる程度に記録をとる、ただしツールによる保証(CI, presubmit check)はない。
- たとえばいまいちだった試行の reproducibility にコストを割くのは無駄ではないか。
- 何らかのチェックポイントを reproduce にしておく、くらい?
- これらは現状のテクノロジーの制限なので将来よくなることはありうる。
- 現状の Jupyter は Storytelling ツールとしての進化に重点があるように見える。
- LN や REPL としての改善はあんましがんばってなくね?特に LN としてのがんばりは感じない。
- REPL としては既にまあまあ良いし、可視化まわりの強化は REPL でも恩恵がある。
- LN には無理に使わず、別できちんと記録をとる方が良い。
- Notebook という名前にまやかされない。騙されてたの自分だけかもしらんが。でも reproducibility とかいうのはこの流れだよね。
- Wordpress でやるとかのほうがマシ。
- Reproducibility のツールとして Jupyter はかならずしも良くない。
- Literate Programming や Visualization があるのはよい。
- CI 的な検証を自動化することを支援してない点ではいまいち。
- データサイエンスのしての主張な platform として Jupyter が使われており、データサイエンスの重要な practice として reproducibility があるから Jupyter を reproducible にしたくなるが、現実としてそんなに向いてない。