Skip to content

chore: sync from 5168 - #8

Merged
binaryaaron merged 2 commits into
mainfrom
aagonzales/sync-5169-from-nmp
Feb 6, 2026
Merged

chore: sync from 5168#8
binaryaaron merged 2 commits into
mainfrom
aagonzales/sync-5169-from-nmp

Conversation

@binaryaaron

@binaryaaron binaryaaron commented Feb 4, 2026

Copy link
Copy Markdown
Collaborator

Summary

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Refactoring

Testing

  • Tests pass locally
  • Added/updated tests for changes

Related Issues

Closes #7

@binaryaaron
binaryaaron requested a review from a team as a code owner February 4, 2026 17:46
@binaryaaron
binaryaaron force-pushed the aagonzales/sync-5169-from-nmp branch from e0d209c to be16b13 Compare February 6, 2026 16:57
@binaryaaron
binaryaaron requested a review from a team as a code owner February 6, 2026 16:57
@github-actions

github-actions Bot commented Feb 6, 2026

Copy link
Copy Markdown
Contributor

All contributors have signed the DCO ✍️ ✅
Posted by the DCO Assistant Lite bot.

@binaryaaron

Copy link
Copy Markdown
Collaborator Author

I have read the DCO document and I hereby sign the DCO.

@binaryaaron

Copy link
Copy Markdown
Collaborator Author

recheck

@binaryaaron
binaryaaron merged commit edd8c97 into main Feb 6, 2026
7 of 8 checks passed
@binaryaaron
binaryaaron deleted the aagonzales/sync-5169-from-nmp branch February 6, 2026 17:14
binaryaaron added a commit that referenced this pull request May 27, 2026
Adds ``vllm_benchmark_analysis.py`` — the post-hoc analyzer that
partitions cells by cluster signal, computes per-condition + per-cluster
aggregates, and emits Welch-CI effect sizes. Combined #7+#8 from the
original brief because they're tightly coupled (effect size lives on
the same condition aggregate as the cluster stats).

## Pipeline

``analyze(output_dir, cluster_signal='auto',
min_cells_per_condition=6) -> AnalysisReport``:

1. Load all BenchmarkOutput JSONs in dir, flatten candidate cells.
2. Auto-pick cluster signal (or use the operator's choice).
3. Silhouette-scored ``k`` in range [2, 4]; ``random_state=42``.
4. Remap labels so cluster 0 has the lowest signal mean (stable ordering).
5. Per-condition: pooled mean/stddev/CoV on effective_tok_s + acceptance_rate.
6. Per-(condition × cluster): mean/stddev/CoV within cluster.
7. Effect size: Welch's-t Δ ± 95% CI vs the 'baseline' condition,
   both pooled and per-cluster.
8. Refuse aggregates for conditions with <6 cells (brief mandate).

## Schema

Pydantic models: ``AnalysisReport``, ``ConditionAggregate``,
``ConditionClusterAggregate``, ``ClusterStats``,
``ClusterAssignment``, ``EffectSize``. Each ``extra='forbid'``.
``AnalysisReport.to_markdown_summary()`` renders a human-readable
table-formatted summary.

## CLI

``tools/vllm_benchmark.py analyze <output_dir> [--cluster-signal
auto|wall_seconds|acceptance_rate] [--min-cells-per-condition N]
[--json-out PATH]`` — runs the pipeline + prints markdown + optionally
writes the full report JSON.

## Welch CI math

``_welch_ttest_ci(cand, base, alpha=0.05) -> (mean_diff, ci_low,
ci_high, welch_df) | None``. Welch–Satterthwaite degrees of freedom
computed explicitly. Returns None for underdetermined (n<2 either side
or both stddevs zero).

Validated synthetically: clear-difference inputs (cand mean ~1708,
base mean ~1502, n=6 each) → Δ=+205, CI=[+193, +216], df=7.3, CI
excludes 0; identical inputs → Δ=0, CI brackets 0 symmetrically.

Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
binaryaaron added a commit that referenced this pull request May 27, 2026
Adds ``vllm_benchmark_analysis.py`` — the post-hoc analyzer that
partitions cells by cluster signal, computes per-condition + per-cluster
aggregates, and emits Welch-CI effect sizes. Combined #7+#8 from the
original brief because they're tightly coupled (effect size lives on
the same condition aggregate as the cluster stats).

## Pipeline

``analyze(output_dir, cluster_signal='auto',
min_cells_per_condition=6) -> AnalysisReport``:

1. Load all BenchmarkOutput JSONs in dir, flatten candidate cells.
2. Auto-pick cluster signal (or use the operator's choice).
3. Silhouette-scored ``k`` in range [2, 4]; ``random_state=42``.
4. Remap labels so cluster 0 has the lowest signal mean (stable ordering).
5. Per-condition: pooled mean/stddev/CoV on effective_tok_s + acceptance_rate.
6. Per-(condition × cluster): mean/stddev/CoV within cluster.
7. Effect size: Welch's-t Δ ± 95% CI vs the 'baseline' condition,
   both pooled and per-cluster.
8. Refuse aggregates for conditions with <6 cells (brief mandate).

## Schema

Pydantic models: ``AnalysisReport``, ``ConditionAggregate``,
``ConditionClusterAggregate``, ``ClusterStats``,
``ClusterAssignment``, ``EffectSize``. Each ``extra='forbid'``.
``AnalysisReport.to_markdown_summary()`` renders a human-readable
table-formatted summary.

## CLI

``tools/vllm_benchmark.py analyze <output_dir> [--cluster-signal
auto|wall_seconds|acceptance_rate] [--min-cells-per-condition N]
[--json-out PATH]`` — runs the pipeline + prints markdown + optionally
writes the full report JSON.

## Welch CI math

``_welch_ttest_ci(cand, base, alpha=0.05) -> (mean_diff, ci_low,
ci_high, welch_df) | None``. Welch–Satterthwaite degrees of freedom
computed explicitly. Returns None for underdetermined (n<2 either side
or both stddevs zero).

Validated synthetically: clear-difference inputs (cand mean ~1708,
base mean ~1502, n=6 each) → Δ=+205, CI=[+193, +216], df=7.3, CI
excludes 0; identical inputs → Δ=0, CI brackets 0 symmetrically.

Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
binaryaaron added a commit that referenced this pull request Jun 4, 2026
Adds ``vllm_benchmark_analysis.py`` — the post-hoc analyzer that
partitions cells by cluster signal, computes per-condition + per-cluster
aggregates, and emits Welch-CI effect sizes. Combined #7+#8 from the
original brief because they're tightly coupled (effect size lives on
the same condition aggregate as the cluster stats).

## Pipeline

``analyze(output_dir, cluster_signal='auto',
min_cells_per_condition=6) -> AnalysisReport``:

1. Load all BenchmarkOutput JSONs in dir, flatten candidate cells.
2. Auto-pick cluster signal (or use the operator's choice).
3. Silhouette-scored ``k`` in range [2, 4]; ``random_state=42``.
4. Remap labels so cluster 0 has the lowest signal mean (stable ordering).
5. Per-condition: pooled mean/stddev/CoV on effective_tok_s + acceptance_rate.
6. Per-(condition × cluster): mean/stddev/CoV within cluster.
7. Effect size: Welch's-t Δ ± 95% CI vs the 'baseline' condition,
   both pooled and per-cluster.
8. Refuse aggregates for conditions with <6 cells (brief mandate).

## Schema

Pydantic models: ``AnalysisReport``, ``ConditionAggregate``,
``ConditionClusterAggregate``, ``ClusterStats``,
``ClusterAssignment``, ``EffectSize``. Each ``extra='forbid'``.
``AnalysisReport.to_markdown_summary()`` renders a human-readable
table-formatted summary.

## CLI

``tools/vllm_benchmark.py analyze <output_dir> [--cluster-signal
auto|wall_seconds|acceptance_rate] [--min-cells-per-condition N]
[--json-out PATH]`` — runs the pipeline + prints markdown + optionally
writes the full report JSON.

## Welch CI math

``_welch_ttest_ci(cand, base, alpha=0.05) -> (mean_diff, ci_low,
ci_high, welch_df) | None``. Welch–Satterthwaite degrees of freedom
computed explicitly. Returns None for underdetermined (n<2 either side
or both stddevs zero).

Validated synthetically: clear-difference inputs (cand mean ~1708,
base mean ~1502, n=6 each) → Δ=+205, CI=[+193, +216], df=7.3, CI
excludes 0; identical inputs → Δ=0, CI brackets 0 symmetrically.

Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
binaryaaron added a commit that referenced this pull request Jun 9, 2026
Adds ``vllm_benchmark_analysis.py`` — the post-hoc analyzer that
partitions cells by cluster signal, computes per-condition + per-cluster
aggregates, and emits Welch-CI effect sizes. Combined #7+#8 from the
original brief because they're tightly coupled (effect size lives on
the same condition aggregate as the cluster stats).

## Pipeline

``analyze(output_dir, cluster_signal='auto',
min_cells_per_condition=6) -> AnalysisReport``:

1. Load all BenchmarkOutput JSONs in dir, flatten candidate cells.
2. Auto-pick cluster signal (or use the operator's choice).
3. Silhouette-scored ``k`` in range [2, 4]; ``random_state=42``.
4. Remap labels so cluster 0 has the lowest signal mean (stable ordering).
5. Per-condition: pooled mean/stddev/CoV on effective_tok_s + acceptance_rate.
6. Per-(condition × cluster): mean/stddev/CoV within cluster.
7. Effect size: Welch's-t Δ ± 95% CI vs the 'baseline' condition,
   both pooled and per-cluster.
8. Refuse aggregates for conditions with <6 cells (brief mandate).

## Schema

Pydantic models: ``AnalysisReport``, ``ConditionAggregate``,
``ConditionClusterAggregate``, ``ClusterStats``,
``ClusterAssignment``, ``EffectSize``. Each ``extra='forbid'``.
``AnalysisReport.to_markdown_summary()`` renders a human-readable
table-formatted summary.

## CLI

``tools/vllm_benchmark.py analyze <output_dir> [--cluster-signal
auto|wall_seconds|acceptance_rate] [--min-cells-per-condition N]
[--json-out PATH]`` — runs the pipeline + prints markdown + optionally
writes the full report JSON.

## Welch CI math

``_welch_ttest_ci(cand, base, alpha=0.05) -> (mean_diff, ci_low,
ci_high, welch_df) | None``. Welch–Satterthwaite degrees of freedom
computed explicitly. Returns None for underdetermined (n<2 either side
or both stddevs zero).

Validated synthetically: clear-difference inputs (cand mean ~1708,
base mean ~1502, n=6 each) → Δ=+205, CI=[+193, +216], df=7.3, CI
excludes 0; identical inputs → Δ=0, CI brackets 0 symmetrically.

Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
binaryaaron added a commit that referenced this pull request Jun 15, 2026
Adds ``vllm_benchmark_analysis.py`` — the post-hoc analyzer that
partitions cells by cluster signal, computes per-condition + per-cluster
aggregates, and emits Welch-CI effect sizes. Combined #7+#8 from the
original brief because they're tightly coupled (effect size lives on
the same condition aggregate as the cluster stats).

## Pipeline

``analyze(output_dir, cluster_signal='auto',
min_cells_per_condition=6) -> AnalysisReport``:

1. Load all BenchmarkOutput JSONs in dir, flatten candidate cells.
2. Auto-pick cluster signal (or use the operator's choice).
3. Silhouette-scored ``k`` in range [2, 4]; ``random_state=42``.
4. Remap labels so cluster 0 has the lowest signal mean (stable ordering).
5. Per-condition: pooled mean/stddev/CoV on effective_tok_s + acceptance_rate.
6. Per-(condition × cluster): mean/stddev/CoV within cluster.
7. Effect size: Welch's-t Δ ± 95% CI vs the 'baseline' condition,
   both pooled and per-cluster.
8. Refuse aggregates for conditions with <6 cells (brief mandate).

## Schema

Pydantic models: ``AnalysisReport``, ``ConditionAggregate``,
``ConditionClusterAggregate``, ``ClusterStats``,
``ClusterAssignment``, ``EffectSize``. Each ``extra='forbid'``.
``AnalysisReport.to_markdown_summary()`` renders a human-readable
table-formatted summary.

## CLI

``tools/vllm_benchmark.py analyze <output_dir> [--cluster-signal
auto|wall_seconds|acceptance_rate] [--min-cells-per-condition N]
[--json-out PATH]`` — runs the pipeline + prints markdown + optionally
writes the full report JSON.

## Welch CI math

``_welch_ttest_ci(cand, base, alpha=0.05) -> (mean_diff, ci_low,
ci_high, welch_df) | None``. Welch–Satterthwaite degrees of freedom
computed explicitly. Returns None for underdetermined (n<2 either side
or both stddevs zero).

Validated synthetically: clear-difference inputs (cand mean ~1708,
base mean ~1502, n=6 each) → Δ=+205, CI=[+193, +216], df=7.3, CI
excludes 0; identical inputs → Δ=0, CI brackets 0 symmetrically.

Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
binaryaaron added a commit that referenced this pull request Jul 10, 2026
Adds ``vllm_benchmark_analysis.py`` — the post-hoc analyzer that
partitions cells by cluster signal, computes per-condition + per-cluster
aggregates, and emits Welch-CI effect sizes. Combined #7+#8 from the
original brief because they're tightly coupled (effect size lives on
the same condition aggregate as the cluster stats).

## Pipeline

``analyze(output_dir, cluster_signal='auto',
min_cells_per_condition=6) -> AnalysisReport``:

1. Load all BenchmarkOutput JSONs in dir, flatten candidate cells.
2. Auto-pick cluster signal (or use the operator's choice).
3. Silhouette-scored ``k`` in range [2, 4]; ``random_state=42``.
4. Remap labels so cluster 0 has the lowest signal mean (stable ordering).
5. Per-condition: pooled mean/stddev/CoV on effective_tok_s + acceptance_rate.
6. Per-(condition × cluster): mean/stddev/CoV within cluster.
7. Effect size: Welch's-t Δ ± 95% CI vs the 'baseline' condition,
   both pooled and per-cluster.
8. Refuse aggregates for conditions with <6 cells (brief mandate).

## Schema

Pydantic models: ``AnalysisReport``, ``ConditionAggregate``,
``ConditionClusterAggregate``, ``ClusterStats``,
``ClusterAssignment``, ``EffectSize``. Each ``extra='forbid'``.
``AnalysisReport.to_markdown_summary()`` renders a human-readable
table-formatted summary.

## CLI

``tools/vllm_benchmark.py analyze <output_dir> [--cluster-signal
auto|wall_seconds|acceptance_rate] [--min-cells-per-condition N]
[--json-out PATH]`` — runs the pipeline + prints markdown + optionally
writes the full report JSON.

## Welch CI math

``_welch_ttest_ci(cand, base, alpha=0.05) -> (mean_diff, ci_low,
ci_high, welch_df) | None``. Welch–Satterthwaite degrees of freedom
computed explicitly. Returns None for underdetermined (n<2 either side
or both stddevs zero).

Validated synthetically: clear-difference inputs (cand mean ~1708,
base mean ~1502, n=6 each) → Δ=+205, CI=[+193, +216], df=7.3, CI
excludes 0; identical inputs → Δ=0, CI brackets 0 symmetrically.

Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
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