セル単位の実行状態分離を備えたノートブックプログラミング環境

書誌事項

タイトル別名
  • A Notebook Programming Environment with Per-Cell State Isolation

この論文をさがす

抄録

JupyterLabやGoogle Colaboratoryなどのノートブック環境は,機械学習やデータ分析において広く利用されている.その大きな理由として,データの前処理,予測モデルの選択,モデルの訓練およびテスト,結果の可視化など,一連のタスク遂行における試行錯誤を対話的に行いやすい点があげられる.しかし,既存のノートブック環境で試行錯誤が安全かつ効率的に行いやすいわけではない.たとえば途中結果の再利用のためにコードセルをアドホックに再実行すると,コードセルの字面と実行結果が対応しなくなる.これによって再現性が失われたり,利用者が結果を誤って解釈したりする危険が生じる.この問題を解消するため,我々はセル単位の実行状態分離を備えたノートブックプログラミング環境を提案する.提案するノートブックプログラミング環境の特徴は,コードセルが木構造を成し,各セルが親セルの実行状態を引き継ぎながらも独立した実行状態を持つという点にある.これにより,提案システムの利用者は試行錯誤の選択過程を木構造として明示的に記述しながら,それぞれの試行を安全かつ効率的に実行して結果を比較できるようになる.本発表では,実行状態の分離をモジュラーかつ効率的に実装する手法を示し,その実験的評価を与える.

Notebook environments, such as JupyterLab and Google Colaboratory, are widely used in data analysis and machine learning. It is mainly because these environments enable users to try out their ideas and get feedback on them quickly in an interactive way. Existing environments, however, are not sufficiently well-designed for trial and error in a safe and efficient way. For example, once re-executing some of the code cells for reusing intermediate results, the source code in the code cells no longer corresponds to the output. Such an error-prone design ruins the reproducibility and reliability of our trial-and-error outcomes. To remedy this problem, we develop a notebook programming environment that makes our trial and error safe and efficient. In our system, code cells form a tree, and each of them has its own execution environment isolated yet inheriting the execution environment of its parent. The entire notebook atop our system thus represents trial and error directly, where we can write and run each trial safely and efficiently and compare the outputs. In this presentation, we present a modular and efficient method for implementing the isolation and inheritance of the execution state of our system and experimentally evaluate our method.

収録刊行物

詳細情報 詳細情報について

問題の指摘

ページトップへ