Skip to content

add inference tests - #3

Merged
samsja merged 2 commits into
mainfrom
add-inference-test
Feb 20, 2025
Merged

add inference tests#3
samsja merged 2 commits into
mainfrom
add-inference-test

Conversation

@samsja

@samsja samsja commented Feb 20, 2025

Copy link
Copy Markdown
Member

No description provided.

Signed-off-by: Sami Jaghouar <sami.jaghouar@gmail.com>
@samsja
samsja force-pushed the add-inference-test branch from 2afc8d7 to 6907933 Compare February 20, 2025 21:50
@samsja
samsja requested a review from apaz-cli February 20, 2025 21:57
@samsja
samsja marked this pull request as draft February 20, 2025 22:00
Signed-off-by: Sami Jaghouar <sami.jaghouar@gmail.com>
@samsja
samsja marked this pull request as ready for review February 20, 2025 22:07
@samsja
samsja merged commit 1fe1e18 into main Feb 20, 2025
leonardtang pushed a commit to haizelabs/prime-rl that referenced this pull request Jan 1, 2026
samsja added a commit that referenced this pull request Mar 30, 2026
* add new env

* add more gpu trainer

* add more gpu train

* update deps

* add tmux helper

* update confiogs

* update int4

* add multi env worker

* add generating logs filter

* split verticaly

---------

Co-authored-by: Mika Senghaas <mail@mikasenghaas.de>
seanbell added a commit to clouddatalabs/scalerl-prime-rl that referenced this pull request Apr 25, 2026
snowflake_poc_critique.md findings PrimeIntellect-ai#2 and PrimeIntellect-ai#3 against arXiv:2510.13786:

- Terminal-Bench handoff config now matches the paper's batch geometry:
  batch_size = 768 (= 48 prompts × 16 generations/step). The math smoke
  config keeps batch_size = 256 (16 prompts × 16) — already documented
  inline as a smaller-than-paper smoke choice; that comment stays.
- Both configs now use trainer.scheduler.type = "linear" with
  warmup_steps = 100 and decay_steps = 0 to match the paper's 100-step
  linear warmup into the constant LR phase. torch.optim's LinearLR
  caps at end_factor=1.0 after total_iters, so warmup_steps=100 +
  decay_steps=0 is effectively warmup→constant. Comment in the math
  config explains the mechanism so future readers don't re-flatten to
  pure constant.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
seanbell added a commit to clouddatalabs/scalerl-prime-rl that referenced this pull request Apr 26, 2026
Previously emitted warnings.warn(); test-api critique PrimeIntellect-ai#3: a warning is
invisible under PYTHONWARNINGS=ignore and in log-suppressed SLURM
contexts. ScaleRL §3.2 IS-parity violation has to fail loud or it
silently ships bf16 LM-head matmul to the trainer.

Replace the warning with a ValueError that names the three remediation
paths: drop fp32_lm_head=True, add an [inference] block, or set the
opt-in env var PRIME_RL_FP32_LM_HEAD_EXTERNAL_OK=1 to acknowledge
you've exported PRIME_RL_VLLM_FP32_LM_HEAD=1 on the external vLLM
server yourself.

Update the existing test to expect the ValidationError, plus a new
test for the explicit opt-out path. Inference-omitted + fp32_off
remains a clean accept (no IS-parity hazard).
snimu added a commit that referenced this pull request Jun 4, 2026
- enabled_losses=None now validated as the full term list, so >1 echo term per
  env is caught at config time instead of at rollout time. [review #6]
- loss_overrides keys validated against `losses`; non-echo overrides rejected. [#7]
- warn (don't fail) when prompt-role echo is configured with renderer=None
  (MITO), where prompt_attribution is unavailable so it would silently no-op. [#8]
- token_export: add echo_mask/echo_weight columns + export sequences trained
  only via echo (gate on loss_mask OR echo_mask). [#9]
- doc notes: echo CE uses the rollout temperature (scale alpha to compensate,
  kept as-is); negative alpha is intentional (suppresses tokens). [#1, #10]
- tests for the new config validators.

Deferred to a follow-up pass (per the review): full per-sample primary routing /
rl-disable [#2b] + the <=1-primary validation it enables [#5], and the multi-run
losses fingerprint [#3]. Not run locally; ruff + py_compile clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
snimu added a commit that referenced this pull request Jun 4, 2026
…review #3)

The trainer builds its loss cores once from its startup `losses`; each run's
orchestrator carries its own. Register a MultiRunManager config-validation hook
(alongside the LoRA-rank hook, reusing the per-run config-discovery path) that
rejects a run whose `losses` differ from the trainer's. Single-run is already
covered by validate_shared_losses.

Not run locally; ruff + py_compile clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
snimu added a commit that referenced this pull request Jun 5, 2026
…lters

- #2 loss_overrides may only override fields the orchestrator applies per-env: the role/custom
  `filters` and a *constant* weight's `alpha`. Overriding `weight` type/tau/custom, `loss` (core),
  or `name` (all resolved globally) is now rejected at config time instead of silently ignored.
- #3 filters chain by AND (intersection): to_echo_config intersects role filters' role sets (and
  tool_names) and keeps *all* custom filters; build_echo_annotations intersects their per-step masks
  (_apply_echo_filters). EchoLossConfig.filter -> filters (list). validate_supported rejects role
  filters that intersect to no roles. Multiple role/custom filters now narrow rather than union/last-win.

Tests: loss-override unsupported-field rejection; disjoint-role-filter rejection; multiple-filter acceptance.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
snimu added a commit that referenced this pull request Jun 10, 2026
…ithout 'tool' role

Two config guardrails from the bug review (#3, #8) that prevent silently-no-op
configs:

#3 — `reference.logprobs.top_k` is shipped ahead of its consumer (top-k scoring
is a follow-up: prefill request + wider transport + a core). Accepting top_k>1
made it silently behave like top_k=1; reject it with a clear "not supported yet"
message until the follow-up wires it.

#8 — `EchoAdvantageConfig.tool_names` only narrows the 'tool' role, so setting it
without 'tool' in `roles` is a silent no-op (echo_advantage only checks names on
tool-role tokens). Reject it (add 'tool' to roles or drop tool_names).

Tests: both rejections.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mikasenghaas
mikasenghaas deleted the add-inference-test branch August 5, 2026 04:26
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