デフォルトで再現可能:すべての図の背後にあるコード

デフォルトで再現可能:すべての図の背後にあるコード

2 年前に発表した論文の図を作り直すようラボに頼んで、何が起きるか見てください。スクリプトは卒業した学生のノート PC にあります。データファイルにはほぼ同一のバージョンが 3 つあります。どの前処理が最終版だったか誰も覚えていません。再現性は悪意からではなく、配管がないために失敗します。

来歴はアーカイブされるのではなく、付いてくる

Neutropic では、すべての成果物——図、表、レポート——が自分の来歴を携えています:

  • それを生成した正確なコード、クリック一回で再実行可能。
  • 計算の元になったデータのスナップショット、ドリフト検知のためのハッシュ付き。
  • 文献由来のすべての主張の背後にある出典、インライン引用。

別途維持する「メソッドフォルダ」はありません。成果物そのものが記録だからです。どの図でも開いて { } ボタンを押してください:生成コード、読み込んだデータセット、シードがそこにあります。

図の Reproducibility パネル:それを描いた matplotlib コードが、分析で使ったのと同じ pss_trial.xlsx を読んでいます。
図の Reproducibility パネル:それを描いた matplotlib コードが、分析で使ったのと同じ pss_trial.xlsx を読んでいます。

パイプラインは実行中から見える

再現性は成果物が存在する前に始まります。データセットの読み込み、サンドボックスでのコード実行、レポート作成といった各分析ステップは、発生するそばからチャットに表示され、コードはその場で展開できるので、エージェントが何をしたかを後から再構成する必要はありません。

統計ターン:データセット読み込み、サンドボックスでのコード実行(展開可能)、レポート作成——そしてレポート自体が従ったパイプラインを明記します。
統計ターン:データセット読み込み、サンドボックスでのコード実行(展開可能)、レポート作成——そしてレポート自体が従ったパイプラインを明記します。

連鎖を失わずに注釈と改訂

査読者や共同研究者は任意の成果物に注釈を付け、変更を求められます。改訂は注釈された地点からパイプラインを再実行し、親を覚えている新しいバージョンを生成します——「final_v3_REAL」のようなファイル名は消え、結果の履歴は検査可能なままです。原稿も同じ連鎖を受け継ぎます:ドラフト中のすべての統計量はそれを生んだ分析を指し、参考文献リストはセッションに保存された出典から再構築されます。

![セッションの出典から再構築され、本文の [n] 引用と正確に一致する原稿の参考文献リスト。](/use-cases/06-references.png)

検証が実際に起こる形に合わせて

査読者が結果に疑問を投げたとき、分析を再構成するのではなく、開きます。共同研究者が加わったとき、どのスクリプトが図 2 を作ったか尋ねるのではなく、クリックします。

再現性は実践すべき美徳ではなく、ツールの性質であるべきです。