ProprietaryLegal's picture
PLI Labs public snapshot 2026-10-28 (history squashed)
e1acc15
Raw History Blame Contribute Delete
9.91 kB
"""Round5 whole-HOLD admission, registered historical budget and forced output checks."""
from __future__ import annotations
import json
import threading
from pathlib import Path
import pytest
from offload.launch.windows import pf1_window as pf
from offload.launch.windows import pp4_budget as b
from offload.launch.windows import pp4_cells as c
from offload.launch.windows import pp4_metrics as m
from offload.launch.windows import pp4_prerequisites as prerequisites
from offload.launch.windows import pp4_window as w
from offload.launch.windows.tests import test_pf1_window as base
from offload.launch.windows.tests.test_pp4_window import WORKER
from offload.prefill_maxlen.evidence import Json, number, record
def test_budget_recomputes_gap_scaling_worker_cuts_and_explicit_profile_retirement() -> None:
result = b.estimate(pair={'seconds': 600})
assert result['total_s'] == 4743 and result['fits'] is True
assert result['headline_per_start_s'] == 220
assert result['cells'] == ['short-b1', '32k-b1'] and result['all_cells_total_s'] == 5373
assert result['profile_per_start_s'] == 0
assert result['block_budget_s'] == {'s1-A': 1167., 's2-B': 1089., 's3-A': 1047.}
assert 'measured_complete_block_budget' in prerequisites.RETIRED_GATES
assert 'measured_complete_block_budget' not in prerequisites.GATES
def test_all_nine_measured_cold_cell_source_hashes_and_numeric_values() -> None:
plan = record(json.loads(b.PATH.read_text()))
paths: set[str] = set()
for value in record(plan['cells']).values():
row = record(value)
for observation in record_list(row['observations']):
path = pf.CAMPAIGN/str(observation['source'])
assert pf.digest(path) == observation['sha256']
paths.add(str(path))
streams = record_list(record(json.loads(path.read_text()))['streams'])
assert all(record(s['usage'])['completion_tokens'] == 1500 for s in streams)
assert observation['max_ttft_s'] == max(number(s['ttft_s']) for s in streams)
spans = [max(number(x) for x in record(s['last_by_kind_s']).values())
-min(number(x) for x in record(s['first_by_kind_s']).values()) for s in streams]
assert observation['max_decode_span_s'] == max(spans)
assert len(paths) == 9
def record_list(value: Json) -> list[dict[str, Json]]:
assert isinstance(value, list)
return [record(v) for v in value]
def test_missing_admission_cannot_be_replaced_by_old_pair_pointer(tmp_path: Path) -> None:
path = tmp_path/'missing-admission.json'
with pytest.raises(FileNotFoundError): b.pair_reserve(path, WORKER.commit)
path.write_text('{"schema":"pp4-physical-pair-v1","complete":true}')
with pytest.raises(ValueError): b.pair_reserve(path, WORKER.commit)
def test_late_start_needs_all_remaining_blocks_and_cannot_skip_closing_off(tmp_path: Path) -> None:
clock = base.Clock()
live = w.Live(tmp_path, pf.Supervisor(tmp_path, clock=clock), native=WORKER, remote='experiment',
expected=WORKER.commit, data_dir=tmp_path, tag='owned', admission={
'verifier_sha256': {}, 'block_budget_s': {'s1-A': 100., 's2-B': 110., 's3-A': 100.}}, clock=clock)
try:
live.submit = clock()+310
assert live.fits(w.ARMS[0])
clock.now += .001
assert not live.fits(w.ARMS[0])
live.submit = clock()+210
assert live.fits(w.ARMS[1])
clock.now += .001
assert not live.fits(w.ARMS[1])
live.submit = clock()+100
assert live.fits(w.ARMS[2])
clock.now += .001
assert not live.fits(w.ARMS[2])
assert w.SUBMIT_S == w.ABORT_S == 73*60 and w.RESTORE_S == 85*60
finally:
live.sup.close()
def test_seeded_http_preserves_settings_and_forces_eos() -> None:
seen: list[dict[str, Json]] = []
class Api(c.Http):
def stream(self, body: dict[str, Json], first: threading.Event) -> dict[str, Json]:
seen.append(body)
return {}
c.SeededApi(Api('http://unused'), 45).stream({'seed': 42, 'max_tokens': 512, 'temperature': 1, 'top_p': 1,
'cache_salt': 'owned-start-wave:cell:0'}, threading.Event())
assert seen == [{'seed': 45, 'max_tokens': 512, 'temperature': 1, 'top_p': 1, 'ignore_eos': True,
'cache_salt': 'owned-start-wave:cell:0'}]
@pytest.mark.parametrize('tokens,finish', [(511, 'length'), (1500, 'length'), (512, 'stop')])
def test_short_eos_or_legacy_output_never_enters512_summary(tokens: int, finish: str) -> None:
with pytest.raises(ValueError, match='budget incomplete'):
c.summarize({'batch': 1, 'streams': [{'usage': {'completion_tokens': tokens}, 'finish': finish}]}, {}, {})
def test_split_window_input_is_retired_not_reinterpreted() -> None:
assert [a.role for a in w.ARMS] == ['A', 'B', 'A']
with pytest.raises(ValueError, match='one complete'):
w.validate_prior({}, 'a'*40)
assert m.REGISTRATION == 'pp4-r6-512-aba-no-measurement-profiles-v1'
assert [m.group_count(name) for name in c.CELLS] == [4, 4, 2]
def constant_groups(rate: int, count: int = 4) -> list[dict[str, Json]]:
return [{'spec_request_rounds': 100., 'accepted_tokens': float(rate*2-100), 'server_decode_seconds': 2.}
for _ in range(count)]
def test_strict_win_boundary_and_inclusive_loss_boundary() -> None:
equal = m.compare([constant_groups(100), constant_groups(102), constant_groups(100)])
assert equal['required_delta_tps'] == equal['point_delta_tps'] == 2.
assert equal['win'] is False
assert m.compare([constant_groups(100), constant_groups(103), constant_groups(100)])['win'] is True
loss = m.compare([constant_groups(100), constant_groups(95), constant_groups(110)])
assert loss['point_delta_tps'] == -10. and loss['off_spread_tps'] == 10.
assert loss['no_loss_beyond_spread'] is True
assert m.compare([constant_groups(100), constant_groups(94), constant_groups(110)])['no_loss_beyond_spread'] is False
def test_off_spread_overrides_two_percent_and_every_group_stays_intact() -> None:
point = m.compare([constant_groups(100, 2), constant_groups(115, 2), constant_groups(110, 2)])
assert point['required_delta_tps'] == 10. and point['win'] is False
assert point['bootstrap_seed'] == 4103 and point['resamples'] == 2000
assert point['independent_groups'] == 2
assert point['paired_delta_95pct_tps'] == [10., 10.]
def test_b4_cannot_win_and_any_cell_loss_stops() -> None:
from offload.launch.windows.tests.test_pp4_window import complete
starts = complete()
on = record(record(starts[w.ARMS[1].name])['cells'])
for name in ('short-b1', '32k-b1'):
for row in record_list(record(on[name])['waves']): row['accepted_tokens'] = 1000.
assert w.decision(starts)['status'] == 'INCONCLUSIVE'
starts = complete()
for row in record_list(record(record(record(starts[w.ARMS[1].name])['cells'])['32k-b4'])['waves']):
row['accepted_tokens'] = 999.
assert w.decision(starts)['status'] == 'INCONCLUSIVE'
@pytest.mark.parametrize('change', ['512', 'eos', 'seed', 'salt', 'complete', 'greedy'])
def test_each_evidence_contract_refuses_changed_receipt(change: str) -> None:
from offload.launch.windows.tests.test_pp4_window import complete
starts = complete()
block = record(starts[w.ARMS[1].name])
group = record_list(record(record(block['cells'])['short-b1'])['waves'])[0]
stream = record_list(group['streams'])[0]
if change == '512': record(stream['usage'])['completion_tokens'] = 511
if change == 'eos': record(stream['sampling'])['ignore_eos'] = False
if change == 'seed': record(stream['sampling'])['seed'] = 43
if change == 'salt':
off = record_list(record(record(record(starts[w.ARMS[0].name])['cells'])['short-b1'])['waves'])[0]
stream['cache_salt_sha256'] = record_list(off['streams'])[0]['cache_salt_sha256']
if change == 'complete': group['completed_requests'] = 0
if change == 'greedy': record_list(record(block['greedy'])['checks'])[5]['identical'] = False
with pytest.raises(ValueError): w.decision(starts)
def test_nearest_rank95_interval_is_preregistered() -> None:
assert m.interval(list(range(2000))) == [49, 1949]
def test_actual_execute_refuses_budget_before_output_or_process(tmp_path: Path, monkeypatch: pytest.MonkeyPatch,
capsys: pytest.CaptureFixture[str]) -> None:
import subprocess
monkeypatch.setenv('WINDOW_COORDINATOR', 'Deepseek/coordinator')
monkeypatch.setattr(b, 'pair_reserve', lambda path, expected: {'seconds': 960})
proof = tmp_path/'primary.json'; proof.write_text('{}')
receipt: dict[str, Json] = {'schema': 'pp4-live-admission-v1', 'source_commit': WORKER.commit,
'verdict': 'QUALIFIED', 'depth': 5, 'worker_identity': WORKER.identity, 'markov_identity': WORKER.markov,
'runtime_python': prerequisites.PYTHON, 'runtime_torch': '2.12.1+cu130',
'runtime_artifact_sha256': {prerequisites.STOCK: 'd'*64, prerequisites.FACC: 'e'*64,
'p2p/'+pf.digest(pf.ROOT/'offload/dspark/worker/p2p/p2p.cu')[:16]+'/dspark_p2p.so': 'f'*64},
'gates': {name: {'pass': True, 'evidence_path': str(proof.resolve()), 'sha256': pf.digest(proof)}
for name in prerequisites.GATES}}
path = tmp_path/'qualification.json'; path.write_text(json.dumps(receipt))
def forbidden(*args: object, **kwargs: object) -> None: raise AssertionError('process/remote action before budget refusal')
monkeypatch.setattr(subprocess, 'Popen', forbidden)
out = tmp_path/'PP4-never-created'
assert w.main(['--execute', '--qualification', str(path), '--expected-experiment-commit', WORKER.commit,
'--out', str(out)]) == 1
assert not out.exists()
assert 'ESTIMATED 85.05min exceeds85min after B4 omission' in capsys.readouterr().err