interp-engine 1.13.1__tar.gz → 1.13.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {interp_engine-1.13.1 → interp_engine-1.13.2}/PKG-INFO +1 -1
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_capture/mhc.py +5 -1
- {interp_engine-1.13.1 → interp_engine-1.13.2}/pyproject.toml +1 -1
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_vllm_hyper_connections.py +30 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/.gitignore +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/LICENSE +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/README.md +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/README.md +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/__init__.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/bench_spec.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/cells.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/probe.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/probe_lens_stream.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/publish.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/report_bench.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/deepseek-v4-flash-0731__eager.json +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/deepseek-v4-flash-0731__vllm-cudagraph.json +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/deepseek-v4-flash-0731__vllm-static.json +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/deepseek-v4-flash-0731__vllm.json +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/gemma-2-2b__eager.json +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/gemma-2-2b__vllm-cudagraph.json +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/gemma-2-2b__vllm-static.json +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/gemma-2-2b__vllm.json +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/llama-3.1-8b__eager.json +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/llama-3.1-8b__vllm-cudagraph.json +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/llama-3.1-8b__vllm-static.json +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/llama-3.1-8b__vllm.json +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/qwen3-4b__eager.json +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/qwen3-4b__vllm-cudagraph.json +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/qwen3-4b__vllm-static.json +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/qwen3-4b__vllm.json +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/qwen3.8-27b__eager.json +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/qwen3.8-27b__vllm-cudagraph.json +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/qwen3.8-27b__vllm-static.json +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/qwen3.8-27b__vllm.json +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results-latest.md +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/run_all.sh +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/run_bench.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/workloads.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/docs/AGENT_INTEGRATION.md +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/docs/ARCHITECTURE_QUIRKS.md +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/docs/COMPATIBILITY.md +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/docs/ENGINE_HOOK_MAPPINGS.md +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/docs/GRADIENTS.md +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/docs/INTERNALS.md +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/docs/PERFORMANCE.md +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/docs/PORTING.md +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/docs/README.md +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/docs/SUPPORTED_POINTS.md +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/docs/USAGE.md +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/docs/VALIDATING_A_NEW_MODEL.md +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/__init__.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/_conformance.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/_loop.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/address.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/api.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/arch.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/attn_config.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/attn_scores.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/autograd_support.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/capture.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/chat_compose.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/chat_conventions.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/chat_formatters.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/cuda_preflight.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/describe.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/directions.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/dispatch.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/facts.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/hooks.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/lens.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/lens_stream.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/lens_topk.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/load.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/mappers.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/memory.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/model.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/moe_routing.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/notebook_stdout.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/oracle.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/points.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/protocol.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/residual_basis.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/sampling.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/select.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/server/__init__.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/server/__main__.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/server/app.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/server/config.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/server/lens.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/server/runner.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/server/schemas.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/steer.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/steer_specs.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/sync.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/tokenize.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_backend.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_capture/__init__.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_capture/_demux.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_capture/_hooks.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_capture/_payload.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_capture/_tp.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_capture/_tree.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_capture/attn.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_capture/capture.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_capture/graphs.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_capture/lens/__init__.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_capture/lens/intervene.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_capture/lens/readout.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_capture/lens/unembed.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_capture/native.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_capture/project.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_capture/requests.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_capture/static.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_capture/static_program.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_capture/steering.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/interp_engine/vllm_plugin.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/conftest.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/harness.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/model_expectations.yaml +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/synthetic_families.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_address.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_api_fixtures.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_api_generated.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_attn_config_tripwire.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_attn_probs_indexing.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_attn_scores.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_attn_z_gqa.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_autograd_support.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_bench_workloads.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_capability_refusals.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_capture_addressing.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_chat_compose.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_chat_formatters.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_chat_templates.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_core.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_cuda_preflight.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_describe.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_directions.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_doc_code_fences.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_eager_autograd.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_facts.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_family_points.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_gated_attn_out.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_gpu_sizer.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_head_contributions.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_hook_call_conventions.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_injected_system_spans.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_layer_kinds.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_lens_stream.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_lens_stream_pairing.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_load.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_logit_transform.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_mappers.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_memory.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_mlp_internals.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_model_expectations.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_moe.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_multigpu.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_multimodal_arch.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_new_models_gpu.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_no_chat_template.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_normalized_hook.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_notebook_stdout.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_oracle.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_packaging.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_padded_positions.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_parity_gpt2.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_per_layer_attn_dims.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_point_capability.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_points_registry.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_protocol.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_published_benchmarks.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_qk_norm.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_qkv_layout.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_reasoning_spans.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_release.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_resid_mid.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_residual_basis.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_sample_from_embeds.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_sampling.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_sandwich_norms.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_select.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_server.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_sliding_window_attn.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_small_models_gpu.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_static_decode_writes_gpu.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_static_dsv4_gpu.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_static_parity_gpu.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_static_program.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_static_program_gpu.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_static_set.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_static_warmup.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_steer_context.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_steer_math_parity.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_steer_ops_per_site_gpu.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_steer_reaches_generate.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_steer_scope.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_steer_specs.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_steer_stream_stack.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_sync_loop.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_sync_parity.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_unified_free_functions.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_unresolved_families.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_userless_prefix_spans.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_vllm_batch_axis.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_vllm_capture_gpu.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_vllm_capture_scales.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_vllm_engine_loop.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_vllm_graph_path.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_vllm_graphs_on_gpu.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_vllm_hook_availability.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_vllm_kv_isolation.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_vllm_new_points.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_vllm_only_families.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_vllm_padded_gpu.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_vllm_plugin.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_vllm_transformers_backend_gpu.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_vllm_wire_grammar.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_vocabulary_boundary.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_worker_lens_capture_readout.py +0 -0
- {interp_engine-1.13.1 → interp_engine-1.13.2}/tests/test_worker_lens_readout.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: interp-engine
|
|
3
|
-
Version: 1.13.
|
|
3
|
+
Version: 1.13.2
|
|
4
4
|
Summary: A fast, standardized, and easy to use interpretability engine.
|
|
5
5
|
Project-URL: Homepage, https://github.com/decoderesearch/interp-engine
|
|
6
6
|
Project-URL: Repository, https://github.com/decoderesearch/interp-engine
|
|
@@ -648,9 +648,13 @@ class _MhcTaps:
|
|
|
648
648
|
detectably different from no steer at all. So the rows the recorder actually changed take the
|
|
649
649
|
re-run and every other row keeps the kernel's own output, which is also why a zero delta needs
|
|
650
650
|
no re-run: no row changed.
|
|
651
|
+
|
|
652
|
+
Inside a graph capture the host cannot read ``changed``, so the re-run is always recorded and
|
|
653
|
+
the row mask alone decides at replay.
|
|
651
654
|
"""
|
|
652
655
|
changed = (edited != stack).flatten(start_dim=1).any(dim=1)
|
|
653
|
-
|
|
656
|
+
capturing = stack.is_cuda and torch.cuda.is_current_stream_capturing()
|
|
657
|
+
if not capturing and not bool(changed.any()):
|
|
654
658
|
return fused
|
|
655
659
|
bound = signature.bind(*args, **kwargs)
|
|
656
660
|
bound.apply_defaults()
|
|
@@ -1087,6 +1087,36 @@ def test_a_stream_stack_steer_reaches_the_collapse_the_very_same_kernel_computes
|
|
|
1087
1087
|
assert not torch.allclose(trunk.layers[1].ffn_input_stack, unsteered_stack), "nor did anything downstream"
|
|
1088
1088
|
|
|
1089
1089
|
|
|
1090
|
+
@pytest.mark.gpu
|
|
1091
|
+
@pytest.mark.skipif(not torch.cuda.is_available(), reason="records a CUDA graph")
|
|
1092
|
+
def test_a_stream_stack_steer_records_into_a_cuda_graph():
|
|
1093
|
+
"""vLLM records FULL decode graphs with plain capture, where the host cannot read a tensor.
|
|
1094
|
+
|
|
1095
|
+
Static writes edit the stack while the graph is recorded, so the re-run decision may not read
|
|
1096
|
+
``changed`` on the host there. It did, and the DeepSeek-V4 static engine failed at start-up.
|
|
1097
|
+
"""
|
|
1098
|
+
trunk = _HyperTrunk(n_layers=2).cuda()
|
|
1099
|
+
positions, input_ids = POSITIONS.cuda(), INPUT_IDS.cuda()
|
|
1100
|
+
_, handles = _steering_demux(trunk, {Address("resid_streams", 0): _bump(0.5)})
|
|
1101
|
+
try:
|
|
1102
|
+
with torch.no_grad():
|
|
1103
|
+
eager = trunk(positions, input_ids).clone()
|
|
1104
|
+
side = torch.cuda.Stream()
|
|
1105
|
+
side.wait_stream(torch.cuda.current_stream())
|
|
1106
|
+
with torch.cuda.stream(side):
|
|
1107
|
+
trunk(positions, input_ids)
|
|
1108
|
+
torch.cuda.current_stream().wait_stream(side)
|
|
1109
|
+
graph = torch.cuda.CUDAGraph()
|
|
1110
|
+
with torch.cuda.graph(graph):
|
|
1111
|
+
out = trunk(positions, input_ids)
|
|
1112
|
+
graph.replay()
|
|
1113
|
+
torch.cuda.synchronize()
|
|
1114
|
+
finally:
|
|
1115
|
+
for handle in handles:
|
|
1116
|
+
handle.remove()
|
|
1117
|
+
torch.testing.assert_close(out, eager)
|
|
1118
|
+
|
|
1119
|
+
|
|
1090
1120
|
def test_only_the_layer_that_is_actually_steered_pays_for_a_second_pre_phase():
|
|
1091
1121
|
"""The extra kernel is per call, so an unsteered forward must not pay for it -- and neither must
|
|
1092
1122
|
the layers of a steered forward that nobody asked about.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/deepseek-v4-flash-0731__eager.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/deepseek-v4-flash-0731__vllm.json
RENAMED
|
File without changes
|
|
File without changes
|
{interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/gemma-2-2b__vllm-cudagraph.json
RENAMED
|
File without changes
|
{interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/gemma-2-2b__vllm-static.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/llama-3.1-8b__vllm-cudagraph.json
RENAMED
|
File without changes
|
{interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/llama-3.1-8b__vllm-static.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/qwen3-4b__vllm-cudagraph.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/qwen3.8-27b__vllm-cudagraph.json
RENAMED
|
File without changes
|
{interp_engine-1.13.1 → interp_engine-1.13.2}/benchmarks/results/qwen3.8-27b__vllm-static.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|