Repository navigation
Conversation
A replayed support wider than the server's sampling_support_width returns only part of its ids (top ids, the sampled token and the cutoff), with probabilities still normalized over the whole support. The server lists those rows in compact_logprobs.partial_rows; their recorded mass may fall short of one. Every other support row keeps the strict normalization check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Member
Author
|
Closing together with PrimeIntellect-ai/prime-rl#4321, which PrimeIntellect-ai/prime-rl#4233 makes unnecessary. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #202. Client side of PrimeIntellect-ai/prime-rl#4321.
prime-rl's inference server now caps how many ids each replayed token ships (
inference.sampling_support_width). A support wider than that is returned partially: its top ids, the sampled token and its least likely id (the cutoff). Its probabilities stay normalized over the whole support, so they sum to less than one. The server lists those rows incompact_logprobs.partial_rows._parse_compact_logprobsvalidatespartial_rows(a list of in-range row indices) and passes each row's flag to_select_sampler_head._select_sampler_headskips the "normalizes over the recorded support" check for partial rows only. Every other replay row keeps the strict check, and the<= 1.0001mass bound still applies to all rows.tests/test_client.py: malformedpartial_rowspayloads are rejected; a listed partial row with mass 0.9 is accepted; the same row without the listing still fails. 112 passed, 6 skipped locally.🤖 Generated with Claude Code
Note
Support server-declared partial replay supports in client logprob parsing
_parse_compact_logprobsin renderers/client.py now reads the optionalpartial_rowsfield, validates it as a list of integer row indices, and passes per-row partial status to_select_sampler_head_select_sampler_headgains apartialargument. Partial supports still need probabilities for all support ids, but skip the normalization check. The mass ceiling of 1.0001 still appliespartial_rowskeep the full normalization requirement; malformedpartial_rowsvalues (strings, out-of-range indices, booleans) are rejectedMacroscope summarized e190f65.