Skip to content

Declarative per-request steering gates (when × scope × apply) - #219

Merged
RhizoNymph merged 11 commits into
feat/dynamic-steeringfrom
feat/declarative-per-request-steering
Jul 2, 2026
Merged

Declarative per-request steering gates (when × scope × apply)#219
RhizoNymph merged 11 commits into
feat/dynamic-steeringfrom
feat/declarative-per-request-steering

Conversation

@RhizoNymph

Copy link
Copy Markdown
Owner

Lets a client attach its own conditional steering to a request — a nested list of when × scope × apply gates in the request payload — with no server-registered consumer. Bridges the static-easy / dynamic-hard cliff. Builds on the per-row monitor (#217).

Gate model

  • when: always | probe (sigmoid(sharpness·(residual@probe − threshold)))
  • scope: this_token | next_step | rest_of_request | rest_of_conversation
  • apply: add (vector × strength, composed on top of the request's static decode steering) | attenuate (damp existing steering)

How it works

  • Schema (vllm/v1/steering_schema.py): msgspec tagged unions carried on RequestMetadata.steering (like conversation_id). Vector source = {name} (server registry) or inline {packed} base64 escape hatch. Names resolve to packed at the frontend, so the worker only ever sees packed bytes — no worker-side registry. Unpacked to numpy once at admission and surfaced on StepRequestView.steering (v1 + v2).
  • Built-in consumer (vllm/v1/capture/declarative.py): auto-registered (reserved name _declarative_steering) when steering is on, enable_declarative_gates is set (default), and pp==1; enabling it turns on enable_row_monitor. Subclasses SteeringController to reuse the conversation latch/bridge + _armed lifecycle, overrides on_step for multi-gate/multi-scope dispatch. probe × this_token runs in-graph every decode token via a per-request SteeringMonitorUpdate(req_id=) (free, cudagraph-safe); host-evaluated scopes read the captured residual on the CPU; rest_of_conversation latches + bridges turns.
  • Substrate (steering_action_queue.py, steering_model_runner_mixin.py, steering_manager.py): RequestSteeringOverride.compose_admitted folds the request's admitted decode delta (add-on-top); _req_override_source enforces precedence (operator consumer wins over a client gate); release_dynamic_config purges the row's per-row monitor + scale so per-request gates leave no residue.
  • Named vector registry (vllm/entrypoints/openai/steering/vector_registry.py + vllm/entrypoints/serve/steering/vectors_router.py): frontend-only probe/steer namespaces; POST /v1/steering/vectors/register|unregister, GET /v1/steering/vectors, gated by the steering API key + dev mode. Distinct from the module registry.

Locked design decisions

Nested-list schema; add composes on top; vector source name-first + inline packed; operator precedence wins. (See design doc §8.2.)

Config

--enable-declarative-gates (default on with steering), --declarative-probe-sites (host-probe capture allow-list). Off ⇒ zero behavior change.

Tests

CPU unit tests: schema build/resolve/roundtrip/validation (tests/v1/test_steering_schema.py), consumer on_step dispatch for all scope×apply combos + latch/bridge/pulse lifecycle (tests/v1/capture/test_declarative_consumer.py), the frontend registry (tests/entrypoints/openai/test_steering_vector_registry.py), and release_dynamic_config monitor/scale purge (tests/v1/worker/test_steering_declarative_cleanup.py). Existing steering suites remain green.

Remaining: GPU e2e (this_token+probe in-graph, rest_of_conversation latch, named-vector parity) — builds entirely on already-GPU-validated substrate (#217 row monitor, override pool).

Notes for sibling branches

Extends RequestMetadata (new steering field) and StepRequestView (new steering field) — expect trivial conflicts with any branch also touching those.

@RhizoNymph
RhizoNymph merged commit fd259a7 into feat/dynamic-steering Jul 2, 2026
RhizoNymph added a commit that referenced this pull request Jul 3, 2026
test(steering): update stale fixtures for post-#217/#219 runner state
RhizoNymph added a commit that referenced this pull request Jul 6, 2026
test(capture): update stale v2 glue fixtures for post-#219 state
@RhizoNymph
RhizoNymph deleted the feat/declarative-per-request-steering branch July 11, 2026 19:27
RhizoNymph added a commit that referenced this pull request Jul 12, 2026
* fix(capture): post_block captures the true block output (residual + mlp), not bare residual

* fix(capture): apply post-FFN norm before post_block hook in gemma2/gemma3 (capture true block output)

* fix(capture): global filesystem hook validator rejected post_block (stale post_mlp)

* docs(capture): fsync is a no-op on Linux NFS exports (sync+async A/B); file count is the lever, COMMIT-honoring NAS is the only fsync-cost regime

* docs(capture): fsync cost is storage-dependent (3 regimes incl. COMMIT-honoring NAS); credit fd-cache mechanism; file count is the universal lever

* fix(steering): route post_block steering through the shared 12-arg op helper

* fix(steering): size gemma3 steering table for the dynamic-override pool

* test(steering): update stale post_mlp hook references to post_block

* update readme

* feat(capture): wire mlp_in/mlp_out hooks for transcoder training data

* feat(steering): wire steering/capture hooks into gpt_oss and dbrx

* fix(qwen3_next/qwen3_5): repair gdn import after mamba.gdn package refactor

* fix(capture): keep post_block capture op live so cudagraph writes the buffer

* feat(capture): port sync-execution capture consumers to the v2 runner

* fix(capture): v2 sync view uses real scheduled-token count and skips dummy runs

* feat: activation patching — data plane, injection plane, source store

* feat: activation patching config, request spec, admission, and resolution

* feat: PatchStudy client library for activation-patching sweeps

* fix(capture): skip v2 sync consumers during kernel warmup forwards

* test: offline GPU validation harness for activation patching

* fix(capture): keep post_block capture op live so cudagraph writes the buffer

* fix: PatchStudy uses capture_wait so clean sources are durable before patching

* feat: scheduler per-site patch backpressure + admission source-existence check

* test: add TP/PP args to patch validation harness

* feat: server-side /v1/patch_sweep endpoint (one-call grid sweeps)

* test: live validation of /v1/patch_sweep vs per-cell path

* feat(steering): per-conversation latched dynamic steering

* test(capture): set total_num_scheduled_tokens in v2 sync-view test stubs

* feat(api): forward conversation_id from OpenAI chat/completion requests to SamplingParams

* fix(steering): add declared_graphsafe_keys to sync example consumers (registry config build)

* feat(steering): sync-consumer contract ABC + latching steering controller base

* feat: move conversation_id off SamplingParams into RequestMetadata channel

* feat(steering): per-row monitor probe table in apply_steering kernel + op

* feat(steering): per-row monitor control plane (manager, action, runner, config)

* test(steering): per-row monitor manager + op tests

* docs(steering): document per-row (per-request) monitor

* feat(steering): wire enable_row_monitor through EngineArgs

* fix(steering): e2e_stub consumers inherit SyncCaptureConsumer; add per-row monitor mode

* test(steering): per-row monitor serve e2e (gate on/off isolates per-request probe)

* feat(steering): declarative gate schema + request-metadata plumbing

* feat(steering): surface declarative gates on StepRequestView (v1 + v2)

* feat(steering): substrate for declarative gates (compose-on-top, precedence, row cleanup)

* feat(steering): built-in declarative per-request steering consumer + auto-register

* feat(steering): named probe/steer vector registry + admin endpoints

* test(steering): declarative gates schema/consumer/registry/cleanup + EngineArgs wiring

* docs(steering): declarative per-request gates (design §8.2 + overview)

* fix(steering): bridge latched conversations for later gateless turns

* feat(patch): wire activation patching into the v1 model runner

Patch was only wired into the v2 runner, so any model not on the v2 allowlist
(e.g. gemma3) silently accepted patch specs without applying them. Wire the same
control plane into the v1 GPUModelRunner: PatchModelRunnerMixin, _init_patch_state,
per-step _update_patch_buffers, and add/finish hooks. Move the runner-agnostic
_patch_add_request into the base mixin (shared by both runners).

Root fix: set the process-global patch slot count before the v1 model build so
register_steering_buffers attaches patch buffers (the v2 runner already did this;
v1 did not, so no patchable layers were discovered).

GPU-validated on gemma3-4b (v1 runner) and Qwen3-0.6B (both runners), eager +
cudagraph: no-op/self-identity bit-exact, cross-run replace reproduces clean,
denoising surfaces the clean answer.

* docs: activation patching feature doc + interp-infra OVERVIEW index

* feat(steering): log sync-capture VRAM footprint + robust declarative probe-site parsing

* docs(steering): declarative capture footprint + probe-site notes (§8.2)

* fix(patch): patched KV must not poison the prefix cache

A patched request re-forwards from its patch floor and registers its computed
blocks under vanilla token hashes, so a later unpatched request with the same
prompt could be served the patched KV (GPU repro: 0.47 max logprob corruption;
only unnoticed because short validation prompts never filled a full block).

Fold a deterministic patch-spec hash into the block hashes of all blocks at or
after the lowest patched position (attention propagates the patch forward), the
same mechanism steering uses. Blocks below the floor stay shareable, preserving
the corrupt-prefix sharing that makes sweeps cheap; distinct specs get distinct
KV chains.

GPU-validated both ways: with the fix an unpatched rerun after a patched run is
bit-identical to a fresh-engine ground truth; with the fix disabled it differs
by 0.47.

* fix(steering): gate vector registry on dev-mode only, not the steering API key

* feat(patch): exact answer grading via logprob_token_ids

Sweep cells graded the answer/foil by looking them up in the generated top-k
logprobs — an answer outside top-k graded as None (top-k boundary flicker),
silently dropping cells from the grid.

Use the engine's logprob_token_ids to score the answer/foil ids exactly on
every request: the sweep endpoint resolves answer_token/foil_token to single
token ids via the tokenizer (400 if multi-token), and PatchStudy resolves them
via /tokenize, both passing the ids through (logprob_token_ids is now exposed
on the completions API). The engine requires logprobs == len(ids) when ids are
given.

Live-validated: a token far outside top-1 is reported exactly; the full sweep
grid grades every cell (0 top-k None-mismatches, 63/63 cells).

* fix(patch): lease source runs against eviction + void silently-unpatched cells

A source run evicted between admission (manifest check, positively cached) and
worker resolution made the patch entry log-and-skip: the request ran UNPATCHED
and its sweep cell silently reported the corrupt baseline as a patched result.

Two layers of defense:
- Leases: the admission path leases referenced runs on the workers (throttled
  to ~one RPC per run per half-TTL); store eviction skips unexpired-leased runs,
  soft-exceeding the byte budget with a warning instead of un-patching in-flight
  requests. Live-validated: a leased run survives capture pressure that would
  previously have evicted it, and re-sweeps grade 4/4 cells.
- Backstop: any residual resolution miss is recorded per-request in a worker
  registry; the sweep endpoint drains it after each sweep (collective_rpc) and
  voids the affected cells (grid=None + skipped[] entries) instead of returning
  unpatched values.

* refactor(patch): resolve buffer slots from the VllmConfig context, not a runner-set global

The process-global slot count had to be set by each runner before its model
build — the v1 runner didn't, which shipped patching as a silent no-op there.
Resolve the slot count inside maybe_register_patch_buffers from
get_current_vllm_config_or_none() (models are always built under
set_current_vllm_config, on every runner), removing the runner-side setup from
both runners; the global remains only as a test-context fallback. GPU-checked:
buffers register and patching validates on both runners with no runner code.

* fix(steering): content-keyed bounded probe tensor cache

* fix(steering): bridged overrides preserve compose_admitted

* fix(steering): fail-safe declarative gate resolution at admission

* feat(patch): clean/corrupt token-position alignment

source_position == dest_position silently patches shifted positions when the
clean and corrupt prompts tokenize to different lengths — a plausible-looking
but wrong heatmap. Add alignment: equal lengths map identity (corresponding
positions are the causal-tracing pairing); unequal lengths map the common token
prefix by identity and the common suffix by the length delta, and skip the
differing middle loudly (skipped[] + alignment summary in the response).

The sweep endpoint takes clean_prompt and refuses a length mismatch without it
(the source run's captured prompt length is exposed via the admission cache);
PatchStudy records the clean prompt on CleanRun and aligns automatically on
both the per-cell and server-side paths. Live-validated: mismatch 400s without
clean_prompt; an 11-vs-9-token pair aligns (prefix 4, suffix 4, middle skipped)
and grades 16/16 aligned cells.

* feat(patch): report empirical batch-nondeterminism noise floor per sweep

vLLM is not batch-invariant by default, so identical requests in different
batch compositions return slightly different logprobs. Rather than forcing
batch-invariant mode (a server-wide throughput tax far below causal-tracing
signal), each sweep re-runs the corrupt baseline inside the cell batch and
reports |delta| vs the solo baseline as noise_floor — grid differences at or
below it are not meaningful. Docs point at batch_invariance for exact
reproducibility.

* fix(steering): declarative probe gates fail closed

* fix(steering): port declarative override parity (compose+precedence) to v2 runner

* test(steering): update stale fixtures for post-#217/#219 runner state

* test(patch): alpha-interpolation GPU check + reject multimodal prompts

- gpu_patch_validate gains check F: at the best denoising site, alpha in
  {0, 0.5, 1} must move the answer logprob monotonically corrupt -> clean
  (exact grading via logprob_token_ids). Validates the lerp path between its
  endpoints, which was only CPU-tested.
- Chat admission rejects patch specs on multimodal prompts: prompt positions
  include image placeholder tokens, so patch positions would target
  placeholder activations — semantically undefined and unvalidated. Documented
  text-only scope.

* docs(patch): sync feature doc with config-context registration + gemma3 TP2/PP2

* feat(patch): --enable-patching implies patch_source capture consumer

* feat(patch): one-call sweeps via server-side auto-capture

* refactor(patch): promote PatchStudy to vllm package, share alignment, add span positions

* chore(steering): latch byte bounds + documented trust model

* fix(steering): warmup matches runtime row-monitor specialization; single-source op args

* fix(capture): port client_request_id sidecar + streaming metadata refresh to v1

* test(steering): cross-runner conformance harness for the control plane

* feat(steering): cross-rank applied-action checksum in dynamic status

* chore(steering): typed RowOwner state + refcount-0 purge + dirty-state grouping

* feat(patch): compose server-side spans + one-call auto-capture in sweeps

* refactor(patch): drop superseded resolve_positions helper

* docs: add performance benchmarks section to readme

* feat(patch): opt-in SSE streaming for /v1/patch_sweep grids

* feat(patch): multi-hook sweeps + source-run lifecycle (auto-drop, DELETE)

* fix(patch): stream cells and noise floor in the summary's metric units

* feat(steering): worker-registered named vectors + latch-by-reference

* test(steering): drop stale second arg from scheduler override hook call

* test(patch): streamed multi-hook + auto-drop both-path coverage

* test(steering): conformance harness tracks typed RowOwner keys

* fix(patch): scheduler backpressure must reserve against usable slots (slot 0 sentinel)

* chore(patch): ruff lint + format pass over the feature surface

* docs(patch): read-through fixes — usable-slots wording, section levels, streaming units

* docs: update dynamic steering benchmarks with latest sweep results

* docs: patch-sweep vs TransformerLens benchmark in README performance section

* refactor(steering): canonical per-request state + release-at-preemption on both runners

* refactor(capture): shared capture/sync-consumer runner mixin

* refactor(steering): shared _apply_request_override via req-position accessor

* refactor(steering): unified per-step hot path over SteeringBatchView

* test(capture): update stale v2 glue fixtures for post-#219 state

* refactor(steering): delete gpu steering mixin; one control plane, two accessors

* docs(patch): rework example into a coarse-to-fine walkthrough; client all_prompt + noise_floor

* fix(patch): reject patch+multimodal before rendering to avoid mm-cache desync

* fix(steering): eager/kernel dtype parity, params-buffer guard, kernel-helper dedup, gating invariant docs

* chore(patch): mypy fixes for CI parity

* docs(patch): multi-rank configs now validated under cudagraph too

* fix(steering): JIT cache probe handles Triton >= 3.6 device_caches

* test(steering): declarative-gates + preemption-pressure GPU e2e

* feat(patch): engine-side offline patch admission in input processor

* feat(rust): forward per-request patch spec through OpenAI routes

* fix(rust): re-sync EngineCoreOutputs wire format and skip undecodable output frames

* feat(patch): spawn Python patch sidecar alongside the Rust frontend

* feat(rust): reverse-proxy patch sweep routes to the patch sidecar

* docs: document the Rust patch sidecar sweep surface

* feat: per-dim patch alpha buffer (alpha*mask folded into one table)

* feat: worker resolution of module/zeros/inline patch sources with per-dim masks

* feat: client-provided patch vector sources on the wire + admission validation

* feat: vector-sourced patch sweeps (source_module/inline/mask) + ablation client

* feat(rust): forward patch_vectors table verbatim like patch

* docs: patch value sources (module/zeros/inline, masks, ablation sweeps)

* test: live validation harness for client-provided patch vector sources

* test: pacing-robust streaming parity + mask tolerance in patch vector harness

* docs: standalone per-request patching walkthrough

* fix: reject wrong-width module/inline patch rows at resolve instead of crashing staging

* fix: width-validate steering vectors at registration and admission seams

* feat: mount steering routes without dev mode, key-gate module mutations

* feat(rust): gate steering module mutations behind the steering API key

* fix(capture): register patch_source as a built-in consumer

* fix(steering): base-tier vectors apply under Ray executor TP

* fix(ray): RayExecutorV2 actor handles survive multi-node session init

* fix(ray): RayExecutorV2 actor handles survive multi-node session init (backport to feat/integration)

* fix(capture): register patch_source as a built-in consumer (backport to feat/integration)

* fix(steering): base-tier vectors apply under Ray executor TP (backport to feat/integration)

* DCP supports hybrid attention (vllm-project#40996)

Signed-off-by: YanXu <yancey.yx@alibaba-inc.com>
Signed-off-by: Jingyi Yang <girasoleyang@gmail.com>
Co-authored-by: Jingyi Yang <girasoleyang@gmail.com>

* [Core][KV events] Report prefix-cache-reused blocks in full report mode (vllm-project#45261)

Signed-off-by: Lei Gong <gonglei25@huawei.com>
Co-authored-by: Lei Gong <gonglei25@huawei.com>
Co-authored-by: Claude <noreply@anthropic.com>

* [Feature][Parser] Support include_reasoning param for non-Harmony models (vllm-project#44301)

Signed-off-by: Alberto Perdomo <aperdomo@redhat.com>
Co-authored-by: Chauncey <chaunceyjiang@gmail.com>

* [Perf] fuse more rmsnorm and all-reduce in qwen3.5 (vllm-project#46998)

Signed-off-by: zjy0516 <riverclouds.zhu@qq.com>

* [XPU] Enable v1/sample tests on XPU CI (vllm-project#44472)

Signed-off-by: Chaojun Zhang <chaojun.zhang@intel.com>

* [CI] Right-size test-area timeouts from nightly durations (vllm-project#48186)

Signed-off-by: khluu <khluu000@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

* Add XPU nightly and release image publishing to DockerHub (vllm-project#48126)

Signed-off-by: wenjun.liu <wenjun.liu@intel.com>
Signed-off-by: jun,du <jun.du@intel.com>
Co-authored-by: jun,du <jun.du@intel.com>
Co-authored-by: Kunshang Ji <kunshang.ji@intel.com>

* [Rust Frontend] Integrate MM video support (vllm-project#47959)

Signed-off-by: Bugen Zhao <i@bugenzhao.com>

* [Model][CI/Build] Cosmos3: enable registry tests and register Cosmos3-Super (vllm-project#48211)

Signed-off-by: Mingfei Guo <1800012773@pku.edu.cn>

* [CI] Add TORCH_NIGHTLY=1 build mode (run full suite on torch nightly) (vllm-project#47180)

Co-authored-by: Andrey Talman <atalman@users.noreply.github.com>
Co-authored-by: Kevin H. Luu <khluu000@gmail.com>

* Deepstream video backend (vllm-project#42424)

Signed-off-by: Viranjan Pagar <vpagar@nvidia.com>
Signed-off-by: Isotr0py <Isotr0py@outlook.com>
Signed-off-by: Isotr0py <mozf@mail2.sysu.edu.cn>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Isotr0py <mozf@mail2.sysu.edu.cn>
Co-authored-by: Isotr0py <Isotr0py@outlook.com>
Co-authored-by: Roger Wang <hey@rogerw.io>

* [Rust Frontend] Add roundtrip fixtures for more chat parsers (vllm-project#47883)

Co-authored-by: Bugen Zhao <i@bugenzhao.com>
Signed-off-by: reidliu41 <reid201711@gmail.com>
Signed-off-by: Bugen Zhao <i@bugenzhao.com>

* [Misc] Remove dead code in ViT functionality test (vllm-project#48220)

Signed-off-by: Isotr0py <Isotr0py@outlook.com>

* [Bugfix][Spec Decode] Fix DFlash draft/target layer-count mismatch (vllm-project#48113)

Signed-off-by: Nick Hill <nickhill123@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* [Model] Migrate MistralLarge3ForCausalLM to AutoWeightsLoader (vllm-project#48153)

Signed-off-by: Yuchen Fan <functionhx@gmail.com>

* [Refactor] Remove unused rocm kernel `combine_topk_swa_indices_ragged` (vllm-project#48158)

Signed-off-by: yewentao256 <zhyanwentao@126.com>

* [Bugfix] Fix turboquant FP8 cast failure for BF16 models on Ampere GPUs (vllm-project#39988)

Signed-off-by: Xu Zhou <xuzhou9417@163.com>
Co-authored-by: Xu Zhou <xuzhou9417@163.com>
Co-authored-by: Hoseung Kim <ghyutjik123@gmail.com>

* fix: correct load_weights track logic and enable weight integrity for… (vllm-project#41811)

Signed-off-by: Yipeng Hu <i26268@metax-tech.com>
Signed-off-by: HuYiPeng <144002351+MynameFelix@users.noreply.github.com>
Signed-off-by: Isotr0py <Isotr0py@outlook.com>
Co-authored-by: Yipeng Hu <i26268@metax-tech.com>
Co-authored-by: Isotr0py <Isotr0py@outlook.com>

* [Build/CI] Build arm64 PR and postmerge image builds for Blackwell SM10x and SM110 (vllm-project#48041)

Signed-off-by: Tyler Michael Smith <tlrmchlsmth@gmail.com>

* [Model] Add LongCat-Flash-Lite (n-gram embedding) (vllm-project#47857)

Signed-off-by: mgoin <mgoin64@gmail.com>

* [ROCm] Enable DeepSeek-V4 DSpark speculative decoding on AMD (MI350X / MI355X, gfx950) (vllm-project#47419)

Signed-off-by: larryli2-amd <larryli2@amd.com>
Signed-off-by: larryli2-amd <Larry.Li@amd.com>
Co-authored-by: Andreas Karatzas <akaratza@amd.com>

* patch: auto-size the clean-run source store by default so --enable-patching just works

* [Bugfix] Fix FlashMLA dense fp8 metadata crash (num_sm_parts clamp) (vllm-project#48045)

Signed-off-by: Matthew Bonanni <mbonanni@redhat.com>
Co-authored-by: Claude <noreply@anthropic.com>

* handle topk_ids padding in align sum kernel (vllm-project#47785)

Signed-off-by: gnovack <novackgm@gmail.com>

* [Bugfix][Test] Register Qwen/Qwen3.5-4B example model (vllm-project#48276)

Signed-off-by: Nick Hill <nickhill123@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* [Bugfix] Fix thinking_token_budget not enforced after natural </think> re-entry (vllm-project#45984)

Signed-off-by: Ashwin Giridharan <girida@amazon.com>

* Add VLLM_FLASHINFER_AUTOTUNE_SKIP_OPS and skip CuTeDSL fp4_gemm autotuning by default (vllm-project#48268)

Signed-off-by: mgoin <mgoin64@gmail.com>
Signed-off-by: Michael Goin <mgoin64@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* [Quantization] Bound peak memory when repacking FP4 MoE weights for Marlin (vllm-project#47851)

Signed-off-by: Joe Rowell <joerowell4@gmail.com>
Signed-off-by: mgoin <mgoin64@gmail.com>
Co-authored-by: mgoin <mgoin64@gmail.com>

* [BugFix] weights processing peak memory reduction for nvfp4 MoE layers (vllm-project#46276)

Signed-off-by: Jimmy Lee <hirejimmylee@gmail.com>

* [BugFix] Fix packed HND KV cache reshape for FlashAttention (vllm-project#47314)

Signed-off-by: Lucas Wilkinson <lwilkins@redhat.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* [Misc] Use meta tensor for KV cache stride calculation (vllm-project#47316)

Signed-off-by: Lucas Wilkinson <lwilkins@redhat.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* [Logs] DP Supervisor Log Improvement (vllm-project#48278)

Signed-off-by: Robert Shaw <robertgshaw2-redhat@ip-172-31-18-125.us-east-2.compute.internal>
Co-authored-by: Robert Shaw <robertgshaw2-redhat@ip-172-31-18-125.us-east-2.compute.internal>

* perf(capture): metadata-only consumer fast path

* perf(capture): metadata fast path skips gather and materialize

* perf(capture): cache/batch per-step gather index tensors

* [Revert] [Build] Update vllm ...builds FA3 with torch stable API (vllm-project#48269)

Signed-off-by: Lucas Wilkinson <lwilkins@redhat.com>

* perf(capture): defer metadata delivery to finalize (accumulate row counts per step)

* Bump Transformers version to 5.13.0 (vllm-project#47867)

Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>

* [XPU]remove is_xxx from moe class and bump up kernels (vllm-project#48079)

Signed-off-by: mayuyuace <qiming1.zhang@intel.com>
Co-authored-by: Kunshang Ji <kunshang.ji@intel.com>

* [CI] Point CI at Transformers release rather than release branch (vllm-project#48328)

Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>

* FP32 router GEMV optimization (vllm-project#48335)

Signed-off-by: peiyuanz <peiyuanz@inferact.ai>
Signed-off-by: Jee Jee Li <jeejeelee@inferact.ai>
Co-authored-by: peiyuanz <peiyuanz@inferact.ai>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: zhouzhou <zhouzhou@zhouzhoudeMacBook-Pro.local>

* [XPU][UT]Fix InternS1ProForConditionalGeneration AssertionError (vllm-project#48232)

Signed-off-by: Lai, Yejing <yejing.lai@intel.com>

* [2/N][KV-Cache Layout Refactor] Pack K/V into the content dim across attention backends (vllm-project#44455)

Signed-off-by: Lucas Wilkinson <lwilkins@redhat.com>
Signed-off-by: Matthew Bonanni <mbonanni@redhat.com>
Signed-off-by: Lucas Wilkinson <LucasWilkinson@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: OpenAI Codex <codex@openai.com>
Co-authored-by: Matthew Bonanni <mbonanni@redhat.com>
Co-authored-by: Nicolò Lucchesi <nlucches@redhat.com>

* fix(entrypoints): stop resolve_items leaking in-flight media fetch tasks on partial failure (vllm-project#48333)

Signed-off-by: ErenAta16 <erena6466@gmail.com>

* fix(processor): route MiMo-V2-Omni media fetch through MediaConnector (vllm-project#43117)

Signed-off-by: Ievgen Bondarenko <ibondarenko@student.sierracollege.edu>
Signed-off-by: Ievgen (Jack) Bondarenko <ibondarenko@student.sierracollege.edu>
Signed-off-by: Isotr0py <Isotr0py@outlook.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Isotr0py <Isotr0py@outlook.com>

* document graph safe keys for per request capture

* fix(capture): keep kernel-warmup requests out of capture tracking

* test: adapt fork suites to upstream interfaces, drop removed-arch steering params

---------

Signed-off-by: YanXu <yancey.yx@alibaba-inc.com>
Signed-off-by: Jingyi Yang <girasoleyang@gmail.com>
Signed-off-by: Lei Gong <gonglei25@huawei.com>
Signed-off-by: Alberto Perdomo <aperdomo@redhat.com>
Signed-off-by: zjy0516 <riverclouds.zhu@qq.com>
Signed-off-by: Chaojun Zhang <chaojun.zhang@intel.com>
Signed-off-by: khluu <khluu000@gmail.com>
Signed-off-by: wenjun.liu <wenjun.liu@intel.com>
Signed-off-by: jun,du <jun.du@intel.com>
Signed-off-by: Bugen Zhao <i@bugenzhao.com>
Signed-off-by: Mingfei Guo <1800012773@pku.edu.cn>
Signed-off-by: Viranjan Pagar <vpagar@nvidia.com>
Signed-off-by: Isotr0py <Isotr0py@outlook.com>
Signed-off-by: Isotr0py <mozf@mail2.sysu.edu.cn>
Signed-off-by: reidliu41 <reid201711@gmail.com>
Signed-off-by: Nick Hill <nickhill123@gmail.com>
Signed-off-by: Yuchen Fan <functionhx@gmail.com>
Signed-off-by: yewentao256 <zhyanwentao@126.com>
Signed-off-by: Xu Zhou <xuzhou9417@163.com>
Signed-off-by: Yipeng Hu <i26268@metax-tech.com>
Signed-off-by: HuYiPeng <144002351+MynameFelix@users.noreply.github.com>
Signed-off-by: Tyler Michael Smith <tlrmchlsmth@gmail.com>
Signed-off-by: mgoin <mgoin64@gmail.com>
Signed-off-by: larryli2-amd <larryli2@amd.com>
Signed-off-by: larryli2-amd <Larry.Li@amd.com>
Signed-off-by: Matthew Bonanni <mbonanni@redhat.com>
Signed-off-by: gnovack <novackgm@gmail.com>
Signed-off-by: Ashwin Giridharan <girida@amazon.com>
Signed-off-by: Michael Goin <mgoin64@gmail.com>
Signed-off-by: Joe Rowell <joerowell4@gmail.com>
Signed-off-by: Jimmy Lee <hirejimmylee@gmail.com>
Signed-off-by: Lucas Wilkinson <lwilkins@redhat.com>
Signed-off-by: Robert Shaw <robertgshaw2-redhat@ip-172-31-18-125.us-east-2.compute.internal>
Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>
Signed-off-by: mayuyuace <qiming1.zhang@intel.com>
Signed-off-by: peiyuanz <peiyuanz@inferact.ai>
Signed-off-by: Jee Jee Li <jeejeelee@inferact.ai>
Signed-off-by: Lai, Yejing <yejing.lai@intel.com>
Signed-off-by: Lucas Wilkinson <LucasWilkinson@users.noreply.github.com>
Signed-off-by: ErenAta16 <erena6466@gmail.com>
Signed-off-by: Ievgen Bondarenko <ibondarenko@student.sierracollege.edu>
Signed-off-by: Ievgen (Jack) Bondarenko <ibondarenko@student.sierracollege.edu>
Co-authored-by: Yan Xu <yancey.yx@alibaba-inc.com>
Co-authored-by: Jingyi Yang <girasoleyang@gmail.com>
Co-authored-by: GongLei-HW <1327185943@qq.com>
Co-authored-by: Lei Gong <gonglei25@huawei.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: alberto <aperdomo@redhat.com>
Co-authored-by: Chauncey <chaunceyjiang@gmail.com>
Co-authored-by: Jiangyun Zhu <riverclouds.zhu@qq.com>
Co-authored-by: Chaojun Zhang <chaojun.zhang@intel.com>
Co-authored-by: Kevin H. Luu <khluu000@gmail.com>
Co-authored-by: wenjun liu <wenjun.liu@intel.com>
Co-authored-by: jun,du <jun.du@intel.com>
Co-authored-by: Kunshang Ji <kunshang.ji@intel.com>
Co-authored-by: Bugen Zhao <i@bugenzhao.com>
Co-authored-by: Mingfei Guo <52491257+guoriyue@users.noreply.github.com>
Co-authored-by: Andrey Talman <atalman@fb.com>
Co-authored-by: Andrey Talman <atalman@users.noreply.github.com>
Co-authored-by: ViranjanPagar <vpagar@nvidia.com>
Co-authored-by: Isotr0py <mozf@mail2.sysu.edu.cn>
Co-authored-by: Isotr0py <Isotr0py@outlook.com>
Co-authored-by: Roger Wang <hey@rogerw.io>
Co-authored-by: Reid <61492567+reidliu41@users.noreply.github.com>
Co-authored-by: Nick Hill <nickhill123@gmail.com>
Co-authored-by: FAN YUCHEN <2994114386@qq.com>
Co-authored-by: Wentao Ye <44945378+yewentao256@users.noreply.github.com>
Co-authored-by: XuZhou <17717803682@163.com>
Co-authored-by: Xu Zhou <xuzhou9417@163.com>
Co-authored-by: Hoseung Kim <ghyutjik123@gmail.com>
Co-authored-by: HuYiPeng <144002351+MynameFelix@users.noreply.github.com>
Co-authored-by: Yipeng Hu <i26268@metax-tech.com>
Co-authored-by: Tyler Michael Smith <tlrmchlsmth@gmail.com>
Co-authored-by: Michael Goin <mgoin64@gmail.com>
Co-authored-by: larryli2-amd <Larry.Li@amd.com>
Co-authored-by: Andreas Karatzas <akaratza@amd.com>
Co-authored-by: Matthew Bonanni <mbonanni@redhat.com>
Co-authored-by: gnovack <novackgm@gmail.com>
Co-authored-by: Ashwin Giridharan <ashwing@users.noreply.github.com>
Co-authored-by: Joe Rowell <joerowell4@gmail.com>
Co-authored-by: Jimmy Lee <58957694+thisisjimmyfb@users.noreply.github.com>
Co-authored-by: Lucas Wilkinson <LucasWilkinson@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Robert Shaw <114415538+robertgshaw2-redhat@users.noreply.github.com>
Co-authored-by: Robert Shaw <robertgshaw2-redhat@ip-172-31-18-125.us-east-2.compute.internal>
Co-authored-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>
Co-authored-by: Qiming Zhang <qiming1.zhang@intel.com>
Co-authored-by: Jee Jee Li <pandaleefree@gmail.com>
Co-authored-by: peiyuanz <peiyuanz@inferact.ai>
Co-authored-by: zhouzhou <zhouzhou@zhouzhoudeMacBook-Pro.local>
Co-authored-by: Yejing Lai <yejing.lai@intel.com>
Co-authored-by: OpenAI Codex <codex@openai.com>
Co-authored-by: Nicolò Lucchesi <nlucches@redhat.com>
Co-authored-by: ErenAta16 <erena6466@gmail.com>
Co-authored-by: Ievgen Bondarenko <ibondarenko@student.sierracollege.edu>
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