Spaces:
Running
Running
| from __future__ import annotations | |
| import importlib | |
| import re | |
| import sys | |
| from pathlib import Path | |
| ROOT = Path(__file__).resolve().parents[1] | |
| README = (ROOT / "README.md").read_text() | |
| SRC = ROOT / "src" | |
| sys.path.insert(0, str(SRC)) | |
| inferscale = importlib.import_module("inferscale") | |
| internal_version = inferscale.__version__ | |
| design_space_search = inferscale.design_space_search | |
| compare_agent_policies = inferscale.compare_agent_policies | |
| adaptive_tiering_study = inferscale.adaptive_tiering_study | |
| adaptive_alpha_sweep = inferscale.adaptive_alpha_sweep | |
| compare_agent_memory_policies = inferscale.compare_agent_memory_policies | |
| agent_memory_budget_sweep = inferscale.agent_memory_budget_sweep | |
| agent_affinity_sweep = inferscale.agent_affinity_sweep | |
| execution_prefetch_study = inferscale.execution_prefetch_study | |
| execution_threshold_sweep = inferscale.execution_threshold_sweep | |
| execution_decay_sweep = inferscale.execution_decay_sweep | |
| execution_planning_study = inferscale.execution_planning_study | |
| execution_horizon_sweep = inferscale.execution_horizon_sweep | |
| execution_budget_sweep = inferscale.execution_budget_sweep | |
| run_execution_learning = inferscale.run_execution_learning | |
| paired_study = inferscale.paired_study | |
| robustness_study = inferscale.robustness_study | |
| run_agent_session_simulation = inferscale.run_agent_session_simulation | |
| ttl_retention_sweep = inferscale.ttl_retention_sweep | |
| run_simulation = inferscale.run_simulation | |
| validate_cases = inferscale.validate_cases | |
| repeated_seed_policy_study = inferscale.repeated_seed_policy_study | |
| import_measurements = inferscale.import_measurements | |
| calibrate_measurements = inferscale.calibrate_measurements | |
| generate_research_report = inferscale.generate_research_report | |
| errors: list[str] = [] | |
| match = re.search(r"^short_description:\s*(.+)$", README, re.MULTILINE) | |
| if not match: | |
| errors.append("README metadata is missing short_description") | |
| short = "" | |
| else: | |
| short = match.group(1).strip().strip('"\'') | |
| if len(short) > 60: | |
| errors.append(f"short_description is {len(short)} chars; HF limit is 60") | |
| if "sdk: static" not in README: | |
| errors.append("README metadata must use sdk: static") | |
| if internal_version != "1.0.0": | |
| errors.append(f"internal package version is {internal_version}; expected 1.0.0") | |
| # Public-facing release/version branding is intentionally absent. Model names | |
| # such as Mistral-7B-v0.3 are allowed; project headings/badges are not. | |
| public_texts = [("README.md", README), ("index.html", (ROOT / "index.html").read_text())] | |
| for name, text in public_texts: | |
| if re.search(r"InferScale(?:-Sim)?\s*/?\s*v\d", text, re.IGNORECASE): | |
| errors.append(f"{name} contains public project version branding") | |
| if (ROOT / "CHANGELOG.md").exists(): | |
| errors.append("CHANGELOG.md should be omitted from the public portfolio release") | |
| src_files = sorted((ROOT / "src" / "inferscale").glob("*.py")) | |
| web_files = sorted((ROOT / "py" / "inferscale").glob("*.py")) | |
| if [path.name for path in src_files] != [path.name for path in web_files]: | |
| errors.append("browser Python mirror is stale; run python scripts/sync_web_python.py") | |
| else: | |
| for src, web in zip(src_files, web_files, strict=True): | |
| if src.read_bytes() != web.read_bytes(): | |
| errors.append(f"browser mirror differs for {src.name}; run sync_web_python.py") | |
| worker_text = (ROOT / "worker.mjs").read_text() | |
| for src in src_files: | |
| if f'"{src.name}"' not in worker_text: | |
| errors.append(f"worker module list is missing {src.name}") | |
| for ui_file in (ROOT / "index.html", ROOT / "app.js"): | |
| try: | |
| ui_file.read_text().encode("ascii") | |
| except UnicodeEncodeError: | |
| errors.append(f"{ui_file.name} contains non-ASCII UI glyphs; use text labels for reliable rendering") | |
| index = (ROOT / "index.html").read_text() | |
| app = (ROOT / "app.js").read_text() | |
| if "<footer" in index.lower(): | |
| errors.append("UI should not include a product-style footer") | |
| if "Download PNG" not in index or ".chart-download" not in app: | |
| errors.append("chart PNG export controls are missing") | |
| if "Worst repetition" not in index or "Target" not in index: | |
| errors.append("capacity evidence columns are missing") | |
| required_ui_ids = [ | |
| "traceFile", "pairedStudyBtn", "robustStudyBtn", "agentRunBtn", "agentCompareBtn", "agentTtlBtn", | |
| "agentMemoryCompareBtn", "agentBudgetBtn", "agentAffinityBtn", "predictiveCompareBtn", "predictiveAlphaBtn", | |
| "execRunBtn", "execCompareBtn", "execThresholdBtn", "execDecayBtn", "execPlanningBtn", "execHorizonBtn", | |
| "execBudgetBtn", "consRunBtn", "measurementCalibrateBtn", "consReportBtn", "exportBtn", "agentRunJson", | |
| ] | |
| for expected_id in required_ui_ids: | |
| if f'id="{expected_id}"' not in index: | |
| errors.append(f"UI is missing required control: {expected_id}") | |
| # Design guardrails for the public research-workbench UI. | |
| css = (ROOT / "styles.css").read_text() | |
| if "gradient(" in css.lower(): | |
| errors.append("UI should not use decorative CSS gradients") | |
| if re.search(r"border-radius:\s*(?:999|9999|50)%?px?", css, re.IGNORECASE): | |
| errors.append("UI contains pill-style over-rounding") | |
| if "feature freeze" in index.lower() or "feature freeze" in README.lower(): | |
| errors.append("public UI/docs should not mention the release process") | |
| if 'class="subtitle"' in index: | |
| errors.append("topbar should remain a compact tool header, not a product masthead") | |
| if re.search(r"\.section-kicker\s*\{[^}]*text-transform:\s*uppercase", css, re.DOTALL | re.IGNORECASE): | |
| errors.append("section labels should not use repetitive AI-style uppercase kickers") | |
| if 'class="metric emphasis"' in index or ".metric.emphasis" in css: | |
| errors.append("summary metric cards should remain visually uniform; avoid one-off accent-card emphasis") | |
| # Every $("id") lookup in app.js should resolve to a static DOM id. | |
| app_ids = set(re.findall(r'\$\("([A-Za-z0-9_-]+)"\)', app)) | |
| html_ids = set(re.findall(r'id="([A-Za-z0-9_-]+)"', index)) | |
| missing_ids = sorted(app_ids - html_ids) | |
| if missing_ids: | |
| errors.append(f"app.js references missing DOM ids: {', '.join(missing_ids[:12])}") | |
| smoke_cfg = { | |
| "model": "Qwen2.5-3B", | |
| "accelerator": "L4", | |
| "quantization": "int8", | |
| "duration_s": 4, | |
| "request_rate_rps": 1, | |
| "prompt_tokens_mean": 128, | |
| "output_tokens_mean": 8, | |
| } | |
| try: | |
| smoke = run_simulation(smoke_cfg) | |
| if smoke["summary"]["requests_completed"] <= 0: | |
| errors.append("simulation smoke test completed zero requests") | |
| if smoke["provenance"]["latency_profile_type"] != "analytical-reference": | |
| errors.append("profile provenance guard is missing") | |
| if smoke["diagnostics"].get("provenance") != "heuristic-simulator-diagnosis": | |
| errors.append("diagnosis provenance missing") | |
| except Exception as exc: # pragma: no cover | |
| errors.append(f"colocated smoke test raised: {exc}") | |
| try: | |
| trace = run_simulation(smoke_cfg | { | |
| "arrival_process": "trace", | |
| "trace_requests": [ | |
| {"arrival_time": 0.0, "prompt_tokens": 64, "output_tokens": 4}, | |
| {"arrival_time": 0.2, "prompt_tokens": 96, "output_tokens": 6}, | |
| ], | |
| }) | |
| if trace["summary"]["requests_generated"] != 2: | |
| errors.append("trace replay smoke test did not preserve request count") | |
| except Exception as exc: # pragma: no cover | |
| errors.append(f"trace replay smoke test raised: {exc}") | |
| try: | |
| pd = run_simulation(smoke_cfg | { | |
| "topology": "disaggregated_pd", | |
| "scheduler": "continuous_slo", | |
| "prefill_accelerator": "L4", | |
| "decode_accelerator": "L4", | |
| "interconnect_gbps": 50, | |
| }) | |
| if pd["resource"].get("p95_transfer_ms", 0) <= 0: | |
| errors.append("P/D transfer telemetry missing") | |
| except Exception as exc: # pragma: no cover | |
| errors.append(f"P/D smoke test raised: {exc}") | |
| try: | |
| design = design_space_search(smoke_cfg | { | |
| "shared_prefix_tokens": 64, | |
| "prefix_reuse_fraction": 0.5, | |
| "prefill_accelerator": "L4", | |
| "decode_accelerator": "L4", | |
| }, include_disaggregated=False) | |
| if design["candidate_count"] != 10 or design["pareto_count"] < 1 or design["efficiency_pareto_count"] < 1: | |
| errors.append("design-space smoke test did not return both expected Pareto frontiers") | |
| except Exception as exc: # pragma: no cover | |
| errors.append(f"design-space smoke test raised: {exc}") | |
| try: | |
| paired = paired_study( | |
| smoke_cfg | {"shared_prefix_tokens": 64, "prefix_reuse_fraction": 0.75}, | |
| study="prefix_cache", | |
| repetitions=4, | |
| bootstrap_samples=100, | |
| ) | |
| if paired["protocol"] != "paired-common-random-numbers" or len(paired["metrics"]) != 4: | |
| errors.append("paired research study smoke test is incomplete") | |
| except Exception as exc: # pragma: no cover | |
| errors.append(f"paired study smoke test raised: {exc}") | |
| try: | |
| robust = robustness_study( | |
| smoke_cfg | {"prefill_accelerator": "L4", "decode_accelerator": "L4"}, | |
| study="pd_vs_colocated", | |
| samples=4, | |
| uncertainty=0.10, | |
| ) | |
| if robust["method"] != "shared-multiplicative-latency-perturbation" or len(robust["rows"]) != 4: | |
| errors.append("robustness study smoke test is incomplete") | |
| except Exception as exc: # pragma: no cover | |
| errors.append(f"robustness study smoke test raised: {exc}") | |
| try: | |
| agent_cfg = { | |
| "model": "Qwen2.5-3B", "accelerator": "L4", "quantization": "int8", | |
| "duration_s": 12, "session_rate_rps": 0.25, "replicas": 2, "seed": 7, | |
| "retention_policy": "ttl", "routing_policy": "session_affinity", "kv_ttl_s": 3, | |
| } | |
| agent = run_agent_session_simulation(agent_cfg) | |
| if agent["provenance"].get("mode") != "stateful-agent-session-simulation": | |
| errors.append("agent-session provenance guard is missing") | |
| if agent["summary"].get("turns_completed", 0) <= 0: | |
| errors.append("agent-session smoke test completed zero turns") | |
| agent_compare = compare_agent_policies(agent_cfg) | |
| if agent_compare.get("candidate_count") != 4: | |
| errors.append("agent policy arena did not return four candidates") | |
| agent_ttl = ttl_retention_sweep(agent_cfg, [0, 1, 3]) | |
| if len(agent_ttl.get("rows", [])) != 3 or agent_ttl.get("pareto_count", 0) < 1: | |
| errors.append("agent TTL frontier smoke test is incomplete") | |
| agent_memory = compare_agent_memory_policies(agent_cfg | {"host_memory_gb": 4}) | |
| if agent_memory.get("candidate_count") != 5 or not any(row.get("host_hit_rate", 0) > 0 for row in agent_memory.get("rows", [])): | |
| errors.append("agent tiered-memory comparison is incomplete") | |
| agent_budget = agent_memory_budget_sweep(agent_cfg | {"host_memory_gb": 4}, [0.5, 1.0]) | |
| if len(agent_budget.get("rows", [])) != 6: | |
| errors.append("finite HBM budget study is incomplete") | |
| agent_affinity = agent_affinity_sweep(agent_cfg, [0, 150, 600]) | |
| if len(agent_affinity.get("rows", [])) != 3: | |
| errors.append("bounded-affinity sweep is incomplete") | |
| adaptive = run_agent_session_simulation(agent_cfg | { | |
| "retention_policy": "adaptive", | |
| "routing_policy": "bounded_affinity", | |
| "adaptive_predictor_scope": "per_tool_ema", | |
| }) | |
| if adaptive["provenance"].get("adaptive_policy") != "online-tool-gap-ewma-no-lookahead": | |
| errors.append("adaptive policy provenance guard is missing") | |
| if adaptive["resource"].get("adaptive_prediction_count", 0) <= 0: | |
| errors.append("adaptive policy produced no tool-gap predictions") | |
| predictive = adaptive_tiering_study( | |
| agent_cfg | {"host_memory_gb": 4, "routing_policy": "bounded_affinity"}, | |
| horizon_s=40, shift_fraction=0.5, shift_multiplier=2.0, alpha=0.3, | |
| ) | |
| if len(predictive.get("rows", [])) != 5 or predictive.get("shift_observation", 0) <= 0: | |
| errors.append("predictive tiering study is incomplete") | |
| alpha_sweep = adaptive_alpha_sweep( | |
| agent_cfg | {"host_memory_gb": 4, "routing_policy": "bounded_affinity"}, | |
| [0.1, 0.3, 0.8], horizon_s=40, shift_fraction=0.5, shift_multiplier=2.0, | |
| ) | |
| if len(alpha_sweep.get("rows", [])) != 3: | |
| errors.append("adaptation-rate sweep is incomplete") | |
| except Exception as exc: # pragma: no cover | |
| errors.append(f"agent-session smoke test raised: {exc}") | |
| try: | |
| execution_cfg = { | |
| "model": "Qwen2.5-3B", "accelerator": "L4", "quantization": "int8", | |
| "duration_s": 50, "workflow_rate_rps": 0.2, "seed": 7, | |
| "shift_fraction": 0.5, "confidence_threshold": 0.5, | |
| } | |
| execution_run = run_execution_learning(execution_cfg | {"prefetch_policy": "decayed"}) | |
| if execution_run["provenance"].get("mode") != "online-agent-execution-learning": | |
| errors.append("execution-learning provenance guard is missing") | |
| if execution_run["prediction"].get("count", 0) <= 0: | |
| errors.append("execution-learning run produced no transition observations") | |
| execution_compare = execution_prefetch_study(execution_cfg) | |
| if len(execution_compare.get("rows", [])) != 4: | |
| errors.append("execution prefetch policy study is incomplete") | |
| execution_threshold = execution_threshold_sweep(execution_cfg, [0.0, 0.5, 0.9]) | |
| if len(execution_threshold.get("rows", [])) != 3: | |
| errors.append("execution confidence-threshold sweep is incomplete") | |
| execution_decay = execution_decay_sweep(execution_cfg, [0.5, 0.85, 1.0]) | |
| if len(execution_decay.get("rows", [])) != 3: | |
| errors.append("execution transition-decay sweep is incomplete") | |
| execution_planning = execution_planning_study(execution_cfg | {"forecast_horizon": 3, "prefetch_top_k": 2}) | |
| if len(execution_planning.get("rows", [])) != 4: | |
| errors.append("execution multi-step planning study is incomplete") | |
| execution_horizon = execution_horizon_sweep(execution_cfg, [1, 2, 3]) | |
| if len(execution_horizon.get("rows", [])) != 3: | |
| errors.append("execution forecast-horizon sweep is incomplete") | |
| execution_budget = execution_budget_sweep(execution_cfg, [0.3, 0.6]) | |
| if len(execution_budget.get("rows", [])) != 6: | |
| errors.append("execution cache-budget sweep is incomplete") | |
| except Exception as exc: # pragma: no cover | |
| errors.append(f"execution-learning smoke test raised: {exc}") | |
| try: | |
| validation = validate_cases([{ | |
| "name": "release-fixture", | |
| "config": smoke_cfg, | |
| "measured": {"p95_ttft_ms": 100.0, "goodput_rps": 0.8}, | |
| }]) | |
| if validation["observation_count"] != 2: | |
| errors.append("external-measurement validation hook failed") | |
| except Exception as exc: # pragma: no cover | |
| errors.append(f"validation hook smoke test raised: {exc}") | |
| try: | |
| consolidation = repeated_seed_policy_study( | |
| { | |
| "model": "Qwen2.5-3B", "accelerator": "L4", "quantization": "int8", | |
| "duration_s": 32, "workflow_rate_rps": 0.12, "max_steps": 5, "seed": 7, | |
| }, | |
| repetitions=4, bootstrap_samples=100, | |
| ) | |
| if len(consolidation.get("policies", [])) != 4 or not consolidation.get("robust_winner"): | |
| errors.append("repeated-seed consolidation study is incomplete") | |
| if consolidation.get("oracle", {}).get("candidate_count_per_seed", 0) < 15: | |
| errors.append("bounded offline oracle search is incomplete") | |
| report = generate_research_report(consolidation) | |
| if "Robust policy ranking" not in report or "globally optimal" not in report: | |
| errors.append("research report guardrails are missing") | |
| except Exception as exc: # pragma: no cover | |
| errors.append(f"research consolidation smoke test raised: {exc}") | |
| try: | |
| measurement_fixture = '{"backend":"sglang","request_rate":1.0,"random_input_len":128,"random_output_len":16,"p95_ttft_ms":120.0,"p95_e2e_latency_ms":900.0}' | |
| imported = import_measurements(measurement_fixture, "auto", smoke_cfg) | |
| if imported.get("case_count") != 1: | |
| errors.append("measurement importer failed") | |
| calibration = calibrate_measurements(imported["cases"], holdout_fraction=0.33, seed=7) | |
| if calibration.get("validation_mode") != "resubstitution-insufficient-cases-for-holdout": | |
| errors.append("small-sample calibration guard is missing") | |
| except Exception as exc: # pragma: no cover | |
| errors.append(f"measurement calibration smoke test raised: {exc}") | |
| if errors: | |
| print("InferScale release check: FAIL") | |
| for error in errors: | |
| print(f"- {error}") | |
| raise SystemExit(1) | |
| print("InferScale release check: PASS") | |
| print(f"HF short_description: {len(short)}/60 characters") | |
| print(f"Python modules mirrored: {len(src_files)}") | |
| print(f"Colocated smoke requests: {smoke['summary']['requests_completed']}") | |
| print(f"Trace replay requests: {trace['summary']['requests_generated']}") | |
| print(f"P/D transfer p95: {pd['resource']['p95_transfer_ms']:.3f} ms") | |
| print(f"Design candidates: {design['candidate_count']}") | |
| print(f"Paired-study metrics: {len(paired['metrics'])}") | |
| print(f"Robustness perturbations: {len(robust['rows'])}") | |
| print(f"Agent turns: {agent['summary']['turns_completed']}") | |
| print(f"Agent policy candidates: {agent_compare['candidate_count']}") | |
| print(f"Agent TTL candidates: {len(agent_ttl['rows'])}") | |
| print(f"Agent memory policies: {agent_memory['candidate_count']}") | |
| print(f"HBM budget study rows: {len(agent_budget['rows'])}") | |
| print(f"Affinity sweep points: {len(agent_affinity['rows'])}") | |
| print(f"Adaptive predictions: {adaptive['resource']['adaptive_prediction_count']}") | |
| print(f"Predictive-tiering candidates: {len(predictive['rows'])}") | |
| print(f"Adaptation-rate points: {len(alpha_sweep['rows'])}") | |
| print(f"Execution transition observations: {execution_run['prediction']['count']}") | |
| print(f"Execution policy candidates: {len(execution_compare['rows'])}") | |
| print(f"Execution threshold points: {len(execution_threshold['rows'])}") | |
| print(f"Execution decay points: {len(execution_decay['rows'])}") | |
| print(f"Execution planning candidates: {len(execution_planning['rows'])}") | |
| print(f"Execution horizon points: {len(execution_horizon['rows'])}") | |
| print(f"Execution cache-budget rows: {len(execution_budget['rows'])}") | |
| print(f"Validation observations: {validation['observation_count']}") | |
| print(f"Robust policy candidates: {len(consolidation['policies'])}") | |
| print(f"Oracle candidates / seed: {consolidation['oracle']['candidate_count_per_seed']}") | |
| print(f"Imported measurement cases: {imported['case_count']}") | |
| print(f"Profile provenance: {smoke['provenance']['latency_profile_type']}") | |