Skip to content

Hackathon demo: adversarial benchmark pipeline + metrics dashboard - #2684

Merged
hannahwestra25 merged 1 commit into
microsoft:copilot/adversarial_datasetfrom
hannahwestra25:hannahwestra25-turbo-doodle
Sep 16, 2026
Merged

hannahwestra25 merged 1 commit into
microsoft:copilot/adversarial_datasetfrom
hannahwestra25:hannahwestra25-turbo-doodle

Conversation

@hannahwestra25

Copy link
Copy Markdown
Contributor

Combines PR #2551's benchmark-store/cache-reuse/pipeline-automation work with PR #2667's metrics dashboard (scorer quality + benchmark leaderboard) into one branch for an end-to-end hackathon demo. Not intended to merge as-is — opened so the .azuredevops/adversarial-benchmark.yml pipeline can be manually triggered against a real microsoft/PyRIT branch.

…to adversarial dataset branch

Transplants the dashboard-only work from PR microsoft#2667 (hannahwestra25-metrics-dashboard)
onto this branch's already-integrated benchmark-store/cache-reuse/pipeline-automation
work from PR microsoft#2551, producing a single hackathon-demo branch with the full
data -> pipeline -> committed store -> dashboard loop.

Brings over, unchanged from microsoft#2667:
- doc/dashboard/ (0_dashboard.md, 1_scorer_quality.md, 2_benchmark_leaderboard.md,
  and the committed _generated/*.html fragments)
- build_scripts/generate_dashboard_html.py (renders the committed JSONL/scorer_evals
  data into the static HTML fragments the docs pages include)
- build_scripts/import_adversarial_benchmark_snapshot.py + its test (manual fallback
  to upsert a technique-metrics.json snapshot, e.g. downloaded from an ADO pipeline
  artifact, when the scenario result isn't in local memory)
- pyrit/datasets/benchmark_results/adversarial_benchmark_metrics.jsonl seeded with
  real ADO-ingested demo data
- doc/myst.yml (nav entry) and pyrit/common/path.py (BENCHMARK_RESULTS_PATH constant)

Deliberately NOT brought over: the exporter identity-fields/cache-reuse logic and
scenario/pipeline changes from microsoft#2667's f973f5e, since this branch already has its
own, more advanced version of that same logic (55bece4, cherry-picked earlier from
f973f5e and reconciled against this branch's dynamic BenchmarkTechnique registry).
Re-applying microsoft#2667's version here would conflict with and regress that integration.

Also updates 0_dashboard.md's "Refreshing the data" section: it previously said there
was no CI automation for the benchmark store; this branch's pipeline now has an opt-in
publishBenchmarkStore parameter that runs the exporter and opens a PR automatically,
so the doc now describes that path alongside the fully-manual one.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@hannahwestra25
hannahwestra25 marked this pull request as ready for review September 16, 2026 20:00
@hannahwestra25
hannahwestra25 merged commit e8f64ff into microsoft:copilot/adversarial_dataset Sep 16, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant