Use this guide after every train.py --eval-only or post-training evaluation.
It explains how to turn evaluation artifacts into concrete model, data, and
training changes without inventing results.
results/eval_<timestamp>.json: authoritative machine-readable output. Inspectsummary,aggregate_statistics,metadata_segments,benchmark_suites,quality_issue_summary, and per-rowdetails.latest_results.txt: non-developer readout. It includes an executive section, strengths, issue severities/priorities, next experiments, and a fencedMachine-readable diagnosticsJSON block generated from the summary.
Future harnesses can also call:
from src.evaluation_report import build_evaluation_diagnostics
diagnostics = build_evaluation_diagnostics(eval_payload["summary"])- Start with
overall_status:healthy: no metric-driven issues were detected.watch: issues exist, but none are high severity.needs_attention: high-severity model/data/eval issues exist.blocked: critical issues exist.insufficient_evidence: key metrics are missing or sample size is too small.
- Fix the highest
priorityissue first (P0, thenP1,P2,P3). - Use each issue's
likely_root_causesto decide whether the next change belongs to data coverage, training configuration, prompt/context handling, decoding/model behavior, or evaluation metadata. - Run the listed
next_experimentson the same split before changing broad thresholds or retraining on a larger dataset.
| Category | What it means | First action |
|---|---|---|
inference_reliability |
Rows failed before metrics were computed. | Rerun failed rows with batch size 1 and lower generation length. |
model_behavior |
Text or structured behavior does not match references. | Inspect worst samples and weakest replication categories before retraining. |
syntax_and_deployability |
Generated Solidity fails syntax/compiler/deployability checks. | Cluster compiler/scaffold errors and repair the largest pattern. |
evaluation_data |
Metrics lack bytecode/compiler/opcode evidence or taxonomy clusters. | Backfill metadata or correct evaluation rows before trusting gates. |
prompting_and_context |
TAC/context was truncated. | Increase context budget or reduce nonessential prompt metadata. |
regression_risk |
Current metrics regressed against a baseline. | Ablate recent data/training/decoding changes on a fixed split. |
- Select one issue and one suggested experiment.
- Write the hypothesis in terms of a metric, e.g.
replication_by_category_micro.state_write.recallshould improve. - Modify only the relevant area: data slice, prompt budget, training config, or decoding config.
- Re-run evaluation with the same test dataset and baseline comparison.
- Keep the change only if the target metric improves without unacceptable regressions in semantic similarity, replication F1, grounded hallucination rate, Solidity validity, or bytecode semantic score.