% C_extras.tex -- Appendix C (LOW priority): leak audit, cost decomposition (Fig. 5), regression, compaction,
% protocol errors and edit rework, dense vs sparse, teacher failures.
% Numbers: NARRATIVE_REPORT.md H2 (decontamination), H3, S2, X1-X3, D4; bench/scripts/paper/support2/regression_summary.md
% and compaction_summary.md (Tables C1, C2), bench/scripts/paper/out/fp_pooled.json and fp_summary.json (Tables C3, C4),
% data/report_excerpt.json (Table C5); all tables generated by tables/make_tabC.py.
\section{Additional analyses}
\label{app:extras}
\begin{figure*}[t]
\centering
\IfFileExists{../figures/fig5.pdf}{\includegraphics[width=\textwidth]{../figures/fig5.pdf}}{\fbox{\parbox[c][4cm][c]{0.95\textwidth}{\centering Placeholder for plan Fig.~5 (\code{figures/fig5.pdf}).}}}
\caption{Where the input tokens go (\SWEPro, 731 tasks). (a) Median cumulative input per task bridged through its two factors, step count and context per step: the corpus cuts steps by 32\,\% and context per step by 29\,\% on the dense line (3.27 to 1.52\,M) and moves the MoE line the same way (3.27 to 2.05\,M); the generation step moves the opposite way (3.27 to 4.41\,M). (b) Tool-output characters by source over all trials: whole-file reads carry 74\,\% of the dense-line drop, while limited reads and truncation pipes (strip: diamonds = pipes, circles = limited reads; dashed = teacher) rise to the teacher's level after one epoch.}
\label{fig:waterfall}
\end{figure*}
\paragraph{Funnel, drop rules and rule impact.}
Table~\ref{tab:funnel} tabulates the \vTwelve funnel of \S\ref{sec:corpus} with the \vThirteenCorpus column and the message-level loss masks; Table~\ref{tab:p0rules} lists the ten \vTwelve P0 drop rules with their thresholds, hits and sole hits, and Table~\ref{tab:rules} gives the numbers behind Figure~\ref{fig:rules}: for each active \vTwelve rule family, the rows it touches and removes alone, the median step count and thinking share of the removed rows, their \JS distance to the kept set on tool mix and Bash head-words next to the size-matched random-removal floor, and their protocol-error recovery.
\paragraph{Leak audit and decontamination.}
% Sources: NARRATIVE_REPORT.md H2 (decontamination bullet; bench/scripts/ops/golden_leak_audit.py) and analysis/stats/stats_fixes.md section e.
A golden-patch leak audit with three negative-control channels (network, local git history, package manager) leaves every conclusion unchanged on the clean subsets.
At the instance level the corpus shares no task with either pool: 0 title matches, a maximum task-description Jaccard of 0.21 and 0 commit-SHA hits; the \SWEVerified repositories have 0 overlap with the corpus.
At the repository level one \SWEPro repository, \code{teleport}, appears in the corpus with 1,622 teacher trajectories (1,309 pull requests) and supplies 76 of the 731 Pro tasks; the teleport-excluded tests (Tables~\ref{tab:A5}, \ref{tab:A6}) change no decision.
\paragraph{Cost decomposition.}
% Source: NARRATIVE_REPORT.md H3 (A3B report page figures 9-11; 27B page DROPSRC; figures/fig5_data.json).
Figure~\ref{fig:waterfall} bridges the median cumulative input of \S\ref{sec:costs} through its two factors and splits tool-output characters by source.
On the MoE line, replicated in both runs, whole-file reads fall from 7,293 to 2,578 at unchanged size per read (8,975$\to$8,516 characters), reads with a line limit rise from 37 to 64\,\% and commands with truncation pipes from 47 to 68\,\% (Table~\ref{tab:C3}), observations of $\geq$20k characters fall by 72\,\%, and whole-file reads account for 78\,\% of the drop (74\,\% on the dense line).
\paragraph{Regression and compaction.}
Table~\ref{tab:C1} gives the \SWEVerified regression rates: among unsolved trials the share that breaks a previously passing test follows capability (\aBase 37.7\,\% and 31.0\,\% after \vTwelve, \aQ 28.3\,\% and 27.1\,\% after \vTwelve, \nTwoSeven 24.0\,\%, \qThreeEight 16.8\,\%); the solved-group rate is 0 by construction and is not a merit.
Table~\ref{tab:C2} and Figure~\ref{fig:errors}b give context compaction and peak context: it fired in 52 of 13,733 trials (0.4\,\%; 57 events), half of the trials peak below 65k tokens and 99\,\% below 181k against a trigger near 218k, so compaction is not a confound of the token-footprint results.
\begin{figure*}[t]
\centering
\IfFileExists{../figures/fig14.pdf}{\includegraphics[width=\textwidth]{../figures/fig14.pdf}}{\fbox{\parbox[c][4cm][c]{0.95\textwidth}{\centering Placeholder (\code{figures/fig14.pdf}).}}}
\caption{\textbf{(a)}~Tool calls returning an error on \SWEPro, split into protocol errors the harness rejects and commands that ran and failed, with protocol-error recovery@3 above each bar: fine-tuning leaves the error rate roughly in place and doubles recovery (natives 0.30--0.34, fine-tuned arms 0.58--0.62, teacher 0.60). \textbf{(b)}~Peak context per trial (p50, p90, p99; both pools) against the $\approx$218k auto-compaction trigger.}
\label{fig:errors}
\end{figure*}
\paragraph{Protocol errors and edit rework.}
Figure~\ref{fig:errors}a draws the error taxonomy;
% Sources: fp_pooled.json (Table C3), fp_summary.json err_next (Table C4); NARRATIVE_REPORT.md S2, S4, D4, S5, X3 for the
% write-without-read counts, the git-history counts and the Edit-parameter check (A3B report page, protocol-error section).
Table~\ref{tab:C3} pools the error and editing rates, and Table~\ref{tab:C4} the next action after an error.
Recovery within three calls is teacher 0.603, \nTwoSeven 0.299, \aQ 0.329, the distilled arms 0.580--0.625 and \qThreeEight 0.338; after an error the teacher retries verbatim 1\,\% of the time, changes parameters 62\,\% and switches tool 38\,\% (\sTwoFiveSix 63/37, \nTwoSeven 53/46), the same measurement seen from another angle.
Edit rework falls from \nTwoSeven 0.036 to \sTwoFiveSix 0.025 (teacher 0.017) and from \aQ 0.050 to \aV 0.039; \qThreeEight's 0.012 is discounted because it prefers whole-file \code{Write} (22\,\% of its writes; teacher 8.5\,\%).
Write-without-read rates (Table~\ref{tab:C3}): the bare base falls from 21.3 to 6.5\,\% after \vTwelve, the post-trained MoE rises from 5.9 to 9.2\,\%, and the dense line stays at 8.6--10.7\,\% against the teacher's 11.0\,\%, so the habit converges on the teacher's rate from both directions on the MoE lines and is already there on the dense line.
Reading local git history, absent from the corpus and forbidden by the task instruction, drops from 140 to 92 trajectories ($-34$\,\%) on the MoE line in both runs.
The 1,106 \code{Edit} parameter-name errors of the bare base are not corpus content: the offending names occur 0 times in the corpus' 474,417 tool calls.
\paragraph{Dense versus sparse.}
Table~\ref{tab:C5} compares the dense and the sparse student at equal generation and after the same corpus: native, \nTwoSeven beats \aQ by $+3.97$\pp on Pro and $+5.40$\pp on Verified; after the same corpus \sThreeEightOne $-$ \aV is $+2.19$\pp on Pro ($p=0.137$) and $+8.20$\pp on Verified.
The difference has the same sign on both pools, is established on Verified and unresolved on Pro; behaviour follows the recipe (Appendix~\ref{app:fp}), the score follows the architecture where it is resolved.
\paragraph{Teacher failures.}
% Source: NARRATIVE_REPORT.md X1; fp_ci.md section a rows T_bp_passed / T_bp_failed (composite 0.0021 / 0.0026, Bash 0.0070 / 0.0024).
The teacher's failed trajectories differ from its successes in quantity, not habit: about twice the rounds (median 128 vs 76--102) with correspondingly more output and thinking tokens, while the by-product passed and failed populations sit at composite \JS 0.0021 and 0.0026 from the high-precision population (Bash 0.0070 and 0.0024), the teacher-internal floor of Table~\ref{tab:B4}.
\input{tables/tab2_funnel}
\input{tables/tabC0_p0rules}
\input{tables/tab4_rules}
\input{tables/tabC1_regression}
\input{tables/tabC2_compaction}
\input{tables/tabC3_protocol}
\input{tables/tabC4_errnext}
\input{tables/tabC5_dense_sparse}
\input{tables/tabC6_tokens}
完整资料 / TEX_C_EXTRAS
C_extras · 完整稿件源码
paper/distill-fingerprint/tex/appendix/C_extras.tex
公开内容 SHA-256 b315ecb1ec4af7617bff810815e79a28c0b527de2371e5c4252e282a4fee865a