Newer
Older
TIASJudgeModel / docs / 03_PLAN / PLAN_02_開発ステップ.md

開発ステップ (Development Steps)

PLAN_01 要件定義書の目的を満たすための実装順序.各ステップは /implement <タスク> で進める(実装 → テスト → リファクタリング → ドキュメント更新).

全体像 (Overview)

Step内容前提
1基盤: 設定スキーマ・合成データ生成・manifest 読み込み・患者単位分割 ✅ 完了なし(手元で完結)
2リモート実行ツール(送信・実行・回収・GPU 確認,回収ホワイトリスト)✅ 完了(Newton・Archimedes の 2 サーバ対応)Step 1
3データセット集計(実データの素性把握)臨床データのコピー完了・倫理確認
4学習パイプライン最小版(ConvNeXt-Tiny を 1 本通す)Step 2・3
5評価・レポート生成(指標・混同行列・runs/ 出力)Step 4
6ベースライン比較(TIASjudge のルールベース)※ 後回しStep 5
7実験反復(不均衡対策・モデル比較・解像度検討)Step 6
8結論(5-fold 交差検証・評価レポート・配布形式の判断)Step 7

Step 1・2 はデータのコピー待ちの間に進められる.

Step 1: 基盤 (Foundation)

  • 成果物: schema.py(pydantic 設定),data/manifest.py(読み込み・検証),data/split.py(患者単位分割),scripts/make_synthetic_dataset.py
  • 完了条件: 合成 manifest で分割が患者単位に保たれ,同一 seed で再現することがテストで確認できる.不正な manifest が停止する
  • 理由: 手元だけで完結し,以降すべての土台になる.最重要の「患者単位分割」をここで固める

Step 2: リモート実行ツール (Remote Execution)

  • 成果物: remote/・cli/remote.py(コード送信 / ジョブ実行 / 結果回収 / GPU 空き確認)
  • 完了条件: コードを送って合成データの短い学習をサーバで実行し,結果を回収できる.回収ホワイトリストが効いており,画像・manifest が回収対象にならないことがテストで確認できる
  • 注意: 非対話 ssh では uv が PATH に無いため,ツール側で export PATH="$HOME/.local/bin:$PATH" を行う(ENV_02トラブルシューティング)

Step 3: データセット集計 (Dataset Survey)

  • 成果物: データセット集計コマンド,scripts/build_manifest.py,集計レポート(docs/06_TEST/ に記録)
  • 完了条件: 枚数・患者数・クラス分布・画像サイズ分布・破損件数が数値で判明し,SPEC_01・SPEC_02の未確定事項(マスク外領域の扱い・入力解像度・患者 ID の追跡可否・ラベルの保存形式)が確定する
  • 前提: 研究室 PC → サーバのデータコピーと,倫理審査・データ利用許諾の確認が済んでいること

Step 4: 学習パイプライン最小版 (Minimal Training)

  • 成果物: models/・training/・学習コマンド,設定 YAML 1 本
  • 完了条件: 手元で合成データ 1 エポックが通り,サーバで実データの学習が完走して runs/<実験ID>/ が生成される
  • 方針: 精度は問わない.「落ちずに回り,記録が残る」ことだけを見る

Step 5: 評価・レポート生成 (Evaluation)

  • 成果物: evaluation/・評価コマンド(macro F1・クラス別指標・混同行列・学習曲線)
  • 完了条件: val で選び test を最後に一度だけ見る運用が実装され,指標が既知の混同行列に対してテストで期待値と一致する

Step 6: ベースライン比較 (Baseline)

⚠ 一旦後回しとする(2026-09-27 のユーザー判断).入力条件の違い(TIASjudge は撮影画像から ROI を取るが,本データセットは舌領域を黒背景で切り出した画像)を揃える設計判断が必要なため,機械学習側のパイプラインを先に通す.Step 5 の後に Step 7 へ進み,本ステップは条件が整った時点で実施する.

  • 成果物: baseline/(TIASjudge のルールベース診断),比較レポート
  • 完了条件: 同一テストセットでルールベースと機械学習モデルの指標が並べて出る
  • ここで決める: ルールベースを移植するか別リポジトリを参照するか(SPEC_02 の未確定事項)

Step 7: 実験反復 (Experiments)

  • 成果物: 実験群(クラス不均衡対策・モデル比較・入力解像度・マスク外領域の埋め方)とその記録
  • 完了条件: 各要因の効果が独立した実験として切り分けて記録されている
  • 注意: 共用サーバのため使用する GPU を明示的に指定する

Step 8: 結論 (Conclusion)

  • 成果物: 5-fold 交差検証の結果,評価レポート,TIASjudge への引き渡し方針(配布形式)
  • 完了条件: PLAN_01 の成功基準 4 項目が満たされ,「組み込むか・手法を変えるか」の判断材料が揃う

進め方の原則 (Process Rules)

  • Step 3 の結果で SPEC_01・SPEC_02 を更新してから Step 4 以降に進む(仕様変更は先にドキュメントへ反映する)
  • 実験は 1 回の変更で 1 要因のみ変える(効果の切り分けができなくなるため)
  • 各ステップ完了時に進捗を記録する(.claude/rules/progress-log.md)