実験に通し番号を付ける:あとから再現できる検証の型
AI 公開日 更新日 初級

実験に通し番号を付ける:あとから再現できる検証の型

速さの数字より先に、条件と結果を後から辿れる記録の付け方を解説します。

クムビーバー
クムビーバー 現場実装 / Platform Engineer

現場実装の クムビーバー です。前回、ワケハトが「比較できる座標軸が必要」と書きました。その座標軸を実装で支える最小単位が run_id です。

この回の答え

通し番号(run_id)は実験ノートの表紙ラベルです。日時・モデル・設定・短い識別子を束ね、設定・結果・失敗まで同じ束に残します。

この回だけの用語

用語ひとことで
run_id実験ノートの通し番号。業界標準名ではなく連載での呼び方
プロファイルその回に使った起動設定の名前付きスナップショット
known_issues既知の不具合メモ。失敗も資産として残す欄
dry-run実起動の前に生成定義を読む確認(次の回で詳述)
1軸変更比べるとき変える要素を1つだけにするルール

たとえで言うと、CI のビルド番号やチケットID に近いものです。名前の美しさより、後から辿れることが目的です。これは業界標準の仕様名ではなく、この連載(社内検証)での呼び方です。同等の一意な実行IDがあれば名前は問いません。

ローカルLLMの検証で失敗しやすいのは、印象の良いデモを一度見て「これでいこう」と決めてしまうことです。数週間後、設定を変えたのか、プロンプトを変えたのか、モデルを差し替えたのかが分からなくなり、比較不能になります。

図1: run_id に条件と結果を束ねる
図1: run_id に条件と結果を束ねる

ポイント
数字より先に、後から比較できる run_id の束ね方を固定します。

フォルダ整理だけでは足りない理由

日付フォルダに結果を置くだけでも整理にはなります。ただし次が起きると壊れます。

  • 同じ日に複数プロファイルを試す
  • 途中でパラメータを変えて上書き保存する
  • 「前回より速くなった」の前回が誰の記憶か分からない
  • 失敗 run を消してしまい、再発時に手がかりがない

一意な run_id があれば、比較レポートも自動化できます。社内基盤では概ね次の形です。

results/<日付>/<run_id>/

run_id には タイムスタンプ+モデル短名+プロファイル短名+短い hex が入り、衝突しにくくします。

1回の run に残すべきもの

成果物役割無いと困る場面
メタ情報git commit、モデル、ランタイム、プロファイル、コマンド、endpoint「どの版で測ったか」が消える
起動プロファイルのスナップショットそのとき実際に使った設定YAMLを後から編集して記憶とズレる
ハードウェア概要ホスト / GPU / Docker のプローブ開発機と実機を混同する
性能メトリクスリクエスト単位と要約p95 や error を説明できない
品質結果タスクごとの合否・詳細速度だけで誤採用する
人間可読サマリ次に変える1軸会議が数字の読み上げで終わる
ランタイムログコンテナやコマンドの出力起動失敗をモデル劣化と誤認する

「数字だけ」や「チャットのスクショだけ」では足りません。数字は条件とセットで初めて意味を持ちます。

良い比較のための運用ルール

1. 感覚で確定しない

同じメトリクス、同じ評価スイートで並べます。「体感で速い」は仮説生成には使えますが、採用理由にはしません。

2. 変更は1軸

ランタイム、KV、コンテキスト長、同時実行数を同時に変えないでください。勝ち負けが分かっても、学びが残りません。

3. 失敗も残す

エンドポイント未応答で評価が 0 点だった run も資産です。ハーネスの穴や起動漏れが見えます。失敗を消す文化は、同じ失敗を高くつきます。

4. 公開前に洗う

ホスト名、トークン、内部URLを除去してから共有します。再現性と機密は両立できます。

実務の流れ(詳細)

  1. プロファイルを選ぶ
  2. dry-run で起動定義を確認する
  3. 起動し、health を待つ
  4. latency / concurrency / throughput を測る
  5. 用途別スイートで品質を見る
  6. 同じ run_id 配下に集約する
  7. 過去 run と比較し、採用候補を更新する
  8. known_issues(既知の不具合メモ)か next action を一文で残す

この型があると、「前回より速くなったが JSON が崩れた」「同時実行を上げたらエラー率が悪化した」といったトレードオフが見えます。

チームに導入するときの最小セット

全部を一度に完璧にしなくて構いません。最初の1週間は次だけでも効果があります。

  • run_id(または同等の一意名)を必ず切る
  • 使ったプロファイル名を残す
  • 成功/失敗と error rate を残す
  • 「次に変える1軸」を残す

ここができてから、メトリクスの粒度やGPUスナップショットを増やしても遅くありません。

よくある崩れ方と防ぎ方

崩れ方症状防ぎ方
上書き保存昨日の条件が消えるrun ごとにディレクトリを分ける
口頭共有「あの速い方」が誰にも分からないrun_id をチケット/議事録に貼る
成功 run だけ保管失敗原因が再現しない失敗も残し、失敗種別を書く
設定後編集スナップショットと現行YAMLがズレる実行時に設定をコピーして保存
環境混在開発機の数字を実機扱いするhardware snapshot を必須にする

特に「設定後編集」は気づきにくいです。実行時点のプロファイルをスナップショットしないと、後から見ると別物になります。

サマリに書く一文テンプレ

人間可読サマリは長くなくて構いません。次の型で十分です。

  1. 何を試したか(モデル / プロファイル / 変えたい軸)
  2. 何が分かったか(速度・品質・安定性の要点)
  3. 次に何を変えるか(1軸だけ)
  4. 採用判断(候補継続 / 足切り / 要再試験)

この4行があるだけで、翌週の自分が助かります。会議でも「数字の読み上げ」から「次の実験計画」へ移れます。

チェックリスト(run 締め作業)

  • [ ] run_id が一意か
  • [ ] メタ情報に endpoint / profile / commit があるか
  • [ ] 性能要約と品質要約が両方あるか(片方欠けるなら理由を書く)
  • [ ] error rate と成功件数が説明できるか
  • [ ] 次の1軸が書かれているか
  • [ ] 公開・共有前に機微情報を除去したか

つまずいたこと

run_id を導入する前は、「先週より良くなった気がする」が社内の共通言語でした。ログは残っているのに、どの設定で、どのスイートで、どの環境ラベルかが結びついておらず、再現依頼が来るたびに半日溶けました。

一番つらかったのは、良い結果ほど再現手順が曖昧なことです。担当者の端末依存、手動の環境変数、名前のない実験フォルダ。run_id は華やかな機能ではなく、その泥沼から抜けるための地味な杭です。

この回の要点

  • run_id に設定・スイート・環境ラベルを結びつける
  • 良い結果ほど再現手順を厚く残す
  • 『先週より良い気がする』を共通言語にしない

run_id の型は公開できますが、特定 run の実測値はこの段階では載せません。再計測と匿名化が済んだ結果から順に足し、合格ラインは用途が固まってから決めます。

次は「起動の前に空撃ちする:壊さないローカルLLMの始め方」です。再現手順を残したあと、起動ミスで記録を汚さない仕組みへ進みます。

よくある質問

run_id は業界標準の名前ですか?

いいえ。この連載と社内検証での呼び方です。同等の一意な実行IDがあれば名前は問いません。

何を同じフォルダに残しますか?

起動設定・ベンチ結果・品質結果・失敗メモ(known_issues)まで。数字だけ残しても再現できません。

Related

関連記事

Contact

検証や観光DXの進め方について、お気軽にご相談ください。