File size: 1,423 Bytes
ce2d64b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from inferscale import paired_study, robustness_study


BASE = {
    "model": "Qwen2.5-3B",
    "accelerator": "L4",
    "quantization": "int8",
    "duration_s": 8,
    "request_rate_rps": 2.5,
    "prompt_tokens_mean": 256,
    "output_tokens_mean": 32,
    "shared_prefix_tokens": 128,
    "prefix_reuse_fraction": 0.75,
    "prefill_accelerator": "L4",
    "decode_accelerator": "L4",
}


def test_paired_study_uses_common_seeds_and_returns_ci():
    result = paired_study(BASE, "prefix_cache", repetitions=4, bootstrap_samples=100)
    assert result["protocol"] == "paired-common-random-numbers"
    assert len(result["pairs"]) == 4
    assert all(row["seed"] == BASE.get("seed", 7) + idx * 1009 for idx, row in enumerate(result["pairs"]))
    assert {row["metric"] for row in result["metrics"]} == {
        "goodput_rps", "p95_ttft_ms", "p95_e2e_ms", "slo_attainment"
    }
    assert all("delta_ci95_low" in row for row in result["metrics"])


def test_robustness_study_perturbs_reference_model():
    result = robustness_study(BASE, "pd_vs_colocated", samples=6, uncertainty=0.15)
    assert result["samples"] == 6
    assert result["method"] == "shared-multiplicative-latency-perturbation"
    assert len(result["rows"]) == 6
    for row in result["rows"]:
        assert 0.85 <= row["prefill_scale"] <= 1.15
        assert 0.85 <= row["decode_scale"] <= 1.15
        assert 0.85 <= row["transfer_scale"] <= 1.15