Skip to content

feat(client): pass through sampling-mask logprobs and by-handle payload segments - #170

Open
faresobeid wants to merge 2 commits into
perf/packed-completion-logprobsfrom
feat/top-logprobs-v2
Open

faresobeid wants to merge 2 commits into
perf/packed-completion-logprobsfrom
feat/top-logprobs-v2

Conversation

@faresobeid

@faresobeid faresobeid commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

On top of #174's packed completion logprobs, renderers.client.generate() passes two more optional prime-rl /inference/v1/generate fields through. Both are pure pass-through: no request-side change, no parsing or validation (same as sampling_mask). Stock vLLM sends neither, and then the keys are None.

Stack

Base: #174 (perf/packed-completion-logprobs). Order: #174 -> PrimeIntellect-ai/verifiers#2778 -> prime-rl#3900; then this PR with PrimeIntellect-ai/verifiers#2756 (-> prime-rl#3794) and PrimeIntellect-ai/verifiers#2765 (-> prime-rl#3902).

Validation

  • pytest tests/test_client.py --noconftest (32 passed), ruff check, ruff format --check on renderers/client.py.

Note

Add sampling_mask_logprobs and payload to generate client result

The async generation client in client.py now reads two new fields from the generation choice and returns them. sampling_mask_logprobs carries the server's renormalized sampling-mask logprobs (prime-rl may send these with packed sampling-mask data). payload carries by-handle side-array data. Both keys are None when the choice does not provide the field.

Macroscope summarized d3a1af0.


Note

Low Risk
Optional response-field pass-through only; no request changes, validation, or behavior when fields are absent.

Overview
generate() now surfaces optional inference metadata from the generation choice without parsing or validation.

It returns sampling_mask_logprobs alongside the existing sampling_mask: when prime-rl’s server runs with score centering, this is the packed float32 logprob per kept vocab id (parallel to the mask ids); stock vLLM omits it and the value is None. The docstring and inline comments describe that behavior.

The result dict also passes through payload (by-handle side arrays for large routed_experts / sampling_mask segments written by the inference server instead of inline JSON).

Reviewed by Cursor Bugbot for commit d3a1af0. Bugbot is set up for automated code reviews on this repo. Configure here.

@faresobeid faresobeid changed the title feat(client): opt-in per-token top-k logprobs feat(client): pass through sampling-mask logprobs Oct 3, 2026
@faresobeid
faresobeid marked this pull request as ready for review October 3, 2026 11:52
macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Oct 3, 2026
@macroscopeapp

macroscopeapp Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Approvability

Verdict: Approved at d3a1af0

Macroscope's review found this PR approvable — This one-file change adds two optional server-response fields to generate() without changing requests, existing outputs, or control flow. The pass-through is small, backwards-compatible, and isolated, with no sensitive, deployment, or major runtime impact.

Notes:

  • Macroscope's correctness review did not run, so approvability was decided on eligibility alone.

You can add or adjust custom eligibility rules. Learn more.

@faresobeid
faresobeid force-pushed the feat/top-logprobs-v2 branch 3 times, most recently from 01c9cce to 1cd3446 Compare October 6, 2026 17:19
@faresobeid
faresobeid changed the base branch from main to perf/packed-completion-logprobs October 6, 2026 17:19
macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Oct 6, 2026
@faresobeid
faresobeid force-pushed the perf/packed-completion-logprobs branch from e134d56 to e161362 Compare October 8, 2026 14:35
@faresobeid
faresobeid force-pushed the feat/top-logprobs-v2 branch from 1cd3446 to ea01237 Compare October 8, 2026 14:35
@macroscopeapp
macroscopeapp Bot dismissed their stale review October 12, 2026 18:47

Dismissing prior approval to re-evaluate d3a1af0

@faresobeid faresobeid changed the title feat(client): pass through sampling-mask logprobs feat(client): pass through sampling-mask logprobs and by-handle payload segments Oct 12, 2026

This branch has not been deployed

No deployments
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