From 74e0c2157a0cd3959fce7f22347775c94125e5c4 Mon Sep 17 00:00:00 2001 From: Gahow Wang Date: Wed, 27 May 2026 10:53:30 +0800 Subject: [PATCH] Add solo production-trace CDF figure (f2b_session_skew_prod.png) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Single-curve variant of f2b — production trace only, no replay overlay and no uniform reference. Cleaner for boss-meeting/talk slides where the extra context is noise. The combined three-curve figure is unchanged. scripts/plot_session_skew_cdf.py: split into plot_combined + plot_production_solo helpers; one run emits both PNGs. Co-Authored-By: Claude Opus 4.7 --- figs/f2b_session_skew_prod.png | Bin 0 -> 79303 bytes scripts/plot_session_skew_cdf.py | 91 +++++++++++++++++-------------- 2 files changed, 51 insertions(+), 40 deletions(-) create mode 100644 figs/f2b_session_skew_prod.png diff --git a/figs/f2b_session_skew_prod.png b/figs/f2b_session_skew_prod.png new file mode 100644 index 0000000000000000000000000000000000000000..61e9e1d056368b92d63d013005bd0952e740f109 GIT binary patch literal 79303 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 bGfk%!!0T_fo4%8jsOfFktbJW`=kfmm9$`;$ literal 0 HcmV?d00001 diff --git a/scripts/plot_session_skew_cdf.py b/scripts/plot_session_skew_cdf.py index 4fe1477..e840c4d 100644 --- a/scripts/plot_session_skew_cdf.py +++ b/scripts/plot_session_skew_cdf.py @@ -47,32 +47,11 @@ def load_production_cdf( return xs, ys, d["n_sessions"], d["anchors_check"] -def main() -> None: - parser = argparse.ArgumentParser() - parser.add_argument( - "--replay-trace", - default="traces/w600_r0.0015_st30.jsonl", - ) - parser.add_argument( - "--prod-cache", - default="analysis/characterization/data/production_session_skew_cdf.json", - ) - parser.add_argument("--out", default="figs/f2b_session_skew.png") - args = parser.parse_args() +ANNOTATE_PTS = [1.0, 5.0, 10.0, 25.0, 50.0] - prod_x, prod_y, prod_n, prod_anchors = load_production_cdf(Path(args.prod_cache)) - replay_rank_pct, replay_cum_pct, replay_n = load_replay_cdf(Path(args.replay_trace)) - fig, ax = plt.subplots(figsize=(9, 5.5)) - - ax.plot( - prod_x, prod_y, - color="#c44e52", lw=2.4, - label=f"production trace (n={prod_n:,} sessions, 456-pt sampled)", - ) - - annotate_pts = [1.0, 5.0, 10.0, 25.0, 50.0] - for p in annotate_pts: +def _annotate_anchors(ax, prod_x, prod_y) -> None: + for p in ANNOTATE_PTS: y = float(np.interp(p, prod_x, prod_y)) ax.scatter([p], [y], color="#c44e52", s=55, zorder=5) ax.annotate( @@ -83,32 +62,64 @@ def main() -> None: color="#7a1d1d", ) - ax.plot( - replay_rank_pct, replay_cum_pct, - color="#2f6fab", lw=1.6, - alpha=0.85, - label=f"replay window (n={replay_n} sessions, raw CDF)", - ) - ax.plot( - [0, 100], [0, 100], - color="#888", ls="--", lw=1, - label="uniform reference (y = x)", - ) - - ax.set_xlim(0, 100) - ax.set_ylim(0, 102) +def plot_combined(prod_x, prod_y, prod_n, replay_rank_pct, replay_cum_pct, replay_n, + out_path: Path) -> None: + fig, ax = plt.subplots(figsize=(9, 5.5)) + ax.plot(prod_x, prod_y, color="#c44e52", lw=2.4, + label=f"production trace (n={prod_n:,} sessions, 456-pt sampled)") + _annotate_anchors(ax, prod_x, prod_y) + ax.plot(replay_rank_pct, replay_cum_pct, color="#2f6fab", lw=1.6, alpha=0.85, + label=f"replay window (n={replay_n} sessions, raw CDF)") + ax.plot([0, 100], [0, 100], color="#888", ls="--", lw=1, + label="uniform reference (y = x)") + ax.set_xlim(0, 100); ax.set_ylim(0, 102) ax.set_xlabel("Session rank percentile (top → bottom by input-token mass)") ax.set_ylabel("Cumulative % of input-token mass") ax.set_title("Session input-token mass CDF — Qwen3 production trace") ax.grid(True, alpha=0.3) ax.legend(loc="lower right", framealpha=0.92, fontsize=9) - - out_path = Path(args.out) out_path.parent.mkdir(parents=True, exist_ok=True) fig.savefig(out_path, dpi=150, bbox_inches="tight") + plt.close(fig) print(f"wrote {out_path}") +def plot_production_solo(prod_x, prod_y, prod_n, out_path: Path) -> None: + fig, ax = plt.subplots(figsize=(9, 5.5)) + ax.plot(prod_x, prod_y, color="#c44e52", lw=2.6) + _annotate_anchors(ax, prod_x, prod_y) + ax.set_xlim(0, 100); ax.set_ylim(0, 102) + ax.set_xlabel("Session rank percentile (top → bottom by input-token mass)") + ax.set_ylabel("Cumulative % of input-token mass") + ax.set_title( + f"Session input-token mass CDF — Qwen3 production trace (n = {prod_n:,} sessions)" + ) + ax.grid(True, alpha=0.3) + out_path.parent.mkdir(parents=True, exist_ok=True) + fig.savefig(out_path, dpi=150, bbox_inches="tight") + plt.close(fig) + print(f"wrote {out_path}") + + +def main() -> None: + parser = argparse.ArgumentParser() + parser.add_argument("--replay-trace", default="traces/w600_r0.0015_st30.jsonl") + parser.add_argument( + "--prod-cache", + default="analysis/characterization/data/production_session_skew_cdf.json", + ) + parser.add_argument("--out-combined", default="figs/f2b_session_skew.png") + parser.add_argument("--out-solo", default="figs/f2b_session_skew_prod.png") + args = parser.parse_args() + + prod_x, prod_y, prod_n, _ = load_production_cdf(Path(args.prod_cache)) + replay_rank_pct, replay_cum_pct, replay_n = load_replay_cdf(Path(args.replay_trace)) + + plot_combined(prod_x, prod_y, prod_n, replay_rank_pct, replay_cum_pct, replay_n, + Path(args.out_combined)) + plot_production_solo(prod_x, prod_y, prod_n, Path(args.out_solo)) + + if __name__ == "__main__": main()