👋

kaggle 実験管理術 v2.0 w/ claude code(レポジトリ公開)

に公開

Kaggle Advent Calendar 2025! 🎄

本記事は、「Kaggle Advent Calendar 2025」の14日目の記事です。

今回は、コーディングAI前提でkaggleの実験管理を v2.0 にアップデートした話です。
勝ち筋というより、初動〜実験導入の再現性を上げるための管理の差分に絞ってまとめます。🧰
*ただし、まだまだ最適化の余地はあると思ってますm(__)m

この記事でわかること

  • 私がコーディングAI前提で、実験管理が破綻したところ
  • v2.0で入れた「テンプレ+ルール固定」(/init・survey分離・フォルダ設計・SESSION_NOTES)
  • コーディングAI前提にしたメリット

テンプレレポジトリはこちら!🔗

リンク

はじめに

今年のはじめ、2025年3月に出版された「Kaggle 実験管理術」の書籍に、インタビュー枠でコメントを掲載いただきました 🙏

ただ、掲載当時の運用(v1.0)は コーディングAI前提じゃないので、最近の作業スタイルに寄せると課題が目立ってきました。

  • Claude Code などで変更スピードが速い
  • 並列で実験を回す
  • スマホから指示して実験を走らせる 📱

これが混ざると、わりと高確率でこうなります。

数日後「このスコア、何やったんだっけ?」 😇

そこで改善として、Kaggleコンペ用の実験管理テンプレ+運用ルールを整備しました。本記事ではその内容をまとめます。

v1.0の実験管理(当時の前提)

書籍に掲載いただいた当時(v1.0)の自分の実験管理は、かなりシンプルでした。

  • 学習ログや評価結果は 基本すべてテキストファイルとして保存(stdout / stderr、スコア、設定など)
  • 実験は workspace/expXXX/ のように 実験フォルダを増やして管理
  • 実験全体のメモや判断は OneNote にまとめる

当時はこの形で回っていたんですが、コーディングAI前提の作業スタイルに移行すると、このままだと破綻しやすくなりました。

v1.0で顕在化した課題(AI前提で崩れるポイント)

1) 変更が速すぎて「何をしたか」を忘れる ⚡

AI に指示すると、修正→実行→次の修正が短いサイクルで回ります。
結果として数時間後には「何を変えたか」「なぜ変えたか」「どの条件で回したか」が曖昧になりやすいです。

スマホから指示して実験を回す運用が入ると、作業の連続性が切れてさらに忘れやすくなります。

2) 記録が散って再現性が落ちる 🧩

重要情報が、チャット、ターミナル履歴、OneNote、実験フォルダのログに分散しがちです。

スコアは残っているのに「説明できない」「再現できない」という状態が増えました。

3) 実験の境界が溶ける 🫠

対話が続くほど、どこからどこまでが1つの実験なのかが曖昧になります。
結果比較・振り返りのコストが跳ね上がり、「実験しているのに進んでいない」状態になりやすいです。

4) セッションが途切れると復帰しづらい 🧠

複数ウィンドウ・複数実験を並列で回すと、PC再起動などでコンテキストが飛ぶと「どの状態から再開すべきか」をClaude Codeさんが思い出すコストが高いです。

v2.0として何を変えたか(テンプレ+ルール)

ここからが本題です。v2.0では「使い方」より先に 仕組みとルールを固定しました。
ざっくり言うと、“人間が覚えない前提”に寄せる方向です。✅

1) /init でルールを読み込ませる(前提の固定)📌

AI を使うほど、暗黙の前提がズレていきます。
そこで、作業開始時に /init で “指示書” を読み込ませる運用にしました。

意図はシンプルで、AI に毎回これを明示します。

  • 「どこで何をするか」
  • 「何を残すか」

これだけで、ファイルの増殖や配置のブレが減りました。

2) “初動の調査”を survey に寄せて、実験と分離する 🔍

テンプレの中心は、調査を survey/ に集約して、実験を workspace/ に閉じ込めることです。

  • survey/:EDA、論文、類似コンペ、discussion定点観測など「調査」
  • workspace/:コード変更と実験「実装・検証」

これにより、調査の成果物が実験ログに埋もれなくなって、コンペ序盤の迷子率が下がりました。

3) 実験フォルダを「Claude用」と「人間用」で分ける 🧑‍💻🤖

AIの速度と人間の思考速度が合わないのが根本なので、最初から役割を分けました。

  • Claude用:workspace/expA00_...(高速に回す。実験境界の固定が目的)
  • 人間用:exp001_...(判断・検討・方針のメモを残す)

AIが得意なのは「何が起きたか」の整理です。
人間が残したいのは「なぜそう判断したか」です。ここを混ぜないようにしました。

4) SESSION_NOTES.md を必須にする(状態の外部固定)📝

各実験フォルダに SESSION_NOTES.md を必須化しました。

狙いは「丁寧な日誌」ではなく、再開できる状態の固定です。
最低限、これがあれば復帰できます。

  • 今日の目的
  • 変更点
  • 実行コマンド
  • 結果(CV / LB)
  • 次やること

スマホから指示した実験ほど忘れやすいので、ここがあるだけで救われることが多いです。


差分として「何がどう良くなった?」🎯

1) “思い出す作業”が減った!

v1.0は「自分が覚えている」前提が強かったです。
v2.0は「覚えない」前提に変えました。
結果、再開時にログやチャットを掘る時間が減りました。

2) 実験境界が明確になって、比較しやすくなった!

フォルダ命名と SESSION_NOTES の必須化で、どこまでが同一実験かが明確になりました。
比較がしやすい=実験のやり直しが減りました。

3) 調査が積み上がるようになった!

survey/ に寄せたことで、EDAや論文・類似コンペ調査が「使い捨て」になりにくいです。
次のコンペでも再利用できる粒度で残るようになりました。

4) AIに寄せた部分と、人間の判断が分離できた!

AIは「作業」を加速できますが、「意思決定」まで委ねると雑になりやすいです。
役割分担を設計で強制したことで、AIの高速化のメリットを取りつつ、破綻を減らせました。


おわりに(正直な話)😌

実験管理が整っても、実験・検討の質そのものが十分かと言われると、正直まだ足りていない自覚があります。仕事と両立は大変です(言い訳)。

勝つための魔法ではないですが、負け筋を減らすための土台にはなると思ってます。
みんなの実験管理術もオシエテください!✨

Discussion