Agentic RL Training at Scale
This report summarizes scanner evidence for PrimeIntellect-ai/prime-rl, a Python project with 2,152 GitHub stars. SynthScan examined 96,940 lines of code across 565 source files, recording 1198 pattern matches distributed across 19 syntactic categories. The legacy adjusted pattern signal is 16.3 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 768 finding(s).
Are imports declared and package/API names verified? 215 finding(s).
Are wrappers, guards, and repeated structures necessary? 843 finding(s).
Which changes need focused human review? 1198 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1198 distinct pattern matches across 19 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/utils.py | 24 | def check_number_goes_up_or_down( | CODE |
| LOW | tests/utils.py | 110 | def check_final_eval_reward_above(lines: list[str], env_name: str, min_threshold: float): | CODE |
| LOW | tests/utils.py | 145 | def check_avg_reward_in_range( | CODE |
| LOW | tests/utils.py | 178 | def check_avg_mismatch_kl_in_range( | CODE |
| LOW | tests/utils.py | 211 | def check_mismatch_kl_in_range( | CODE |
| LOW⚡ | tests/unit/test_configs.py | 127 | def test_toml_partial_nested_override(tmp_path): | CODE |
| LOW⚡ | tests/unit/test_configs.py | 136 | def test_toml_discriminated_union_default_type(tmp_path): | CODE |
| LOW⚡ | tests/unit/test_configs.py | 145 | def test_toml_discriminated_union_switch_variant(tmp_path): | CODE |
| LOW⚡ | tests/unit/test_configs.py | 153 | def test_toml_discriminated_union_override_switch_variant(tmp_path): | CODE |
| LOW⚡ | tests/unit/test_configs.py | 161 | def test_cli_overrides_defaults(): | CODE |
| LOW⚡ | tests/unit/test_configs.py | 169 | def test_toml_overrides_defaults(tmp_path): | CODE |
| LOW⚡ | tests/unit/test_configs.py | 261 | def test_moe_compute_apply_to(backend, selection, num_layers, selected): | CODE |
| LOW⚡ | tests/unit/test_configs.py | 268 | def test_moe_compute_rejects_invalid_apply_to(selection): | CODE |
| LOW⚡ | tests/unit/test_configs.py | 273 | def test_moe_compute_rejects_out_of_range_layer(): | CODE |
| LOW⚡ | tests/unit/test_configs.py | 280 | def test_moe_compute_apply_to_cli(selection, selected): | CODE |
| LOW⚡ | tests/unit/test_configs.py | 325 | def test_removed_moe_runtime_fields_are_rejected(removed): | CODE |
| LOW⚡ | tests/unit/test_configs.py | 331 | def test_optimizer_state_offload_keeps_legacy_default(config_cls): | CODE |
| LOW⚡ | tests/unit/test_configs.py | 337 | def test_moe_router_dtype_auto_resolves_per_trainer(): | CODE |
| LOW⚡ | tests/unit/test_configs.py | 347 | def test_freeze_moe_router_auto_resolves_per_trainer(): | CODE |
| LOW⚡ | tests/unit/test_configs.py | 1063 | def test_orchestrator_renderer_auto_rejects_unmapped_model(): | CODE |
| LOW⚡ | tests/unit/test_configs.py | 1069 | def test_orchestrator_renderer_auto_accepts_mapped_model(): | CODE |
| LOW⚡ | tests/unit/test_configs.py | 1076 | def test_sft_renderer_auto_accepts_prime_qwen_model(): | CODE |
| LOW⚡ | tests/unit/test_configs.py | 1081 | def test_sft_rejects_default_renderer_for_real_data(): | CODE |
| LOW⚡ | tests/unit/test_configs.py | 1086 | def test_sft_allows_unused_default_renderer_for_fake_data(): | CODE |
| LOW⚡ | tests/unit/test_configs.py | 1096 | def test_orchestrator_explicit_renderer_skips_unmapped_check(): | CODE |
| LOW | tests/unit/test_configs.py | 188 | def test_removed_fused_lm_head_chunk_size_field_is_rejected(): | CODE |
| LOW | tests/unit/test_configs.py | 193 | def test_icepop_is_an_optional_loss_with_validated_ratio_bounds(): | CODE |
| LOW | tests/unit/test_configs.py | 212 | def test_moe_runtime_defaults_are_independent_from_dense_quantization(): | CODE |
| LOW | tests/unit/test_configs.py | 242 | def test_supported_moe_runtime_configs(model): | CODE |
| LOW | tests/unit/test_configs.py | 310 | def test_invalid_moe_runtime_configs_fail(model, message): | CODE |
| LOW | tests/unit/test_configs.py | 358 | def test_full_optimizer_offload_disables_gradient_clipping(config_cls): | CODE |
| LOW | tests/unit/test_configs.py | 371 | def test_full_optimizer_offload_requires_supported_optimizer(config_cls): | CODE |
| LOW | tests/unit/test_configs.py | 382 | def test_full_optimizer_offload_accepts_sign_sgd(config_cls): | CODE |
| LOW | tests/unit/test_configs.py | 393 | def test_resolved_json_roundtrips_explicit_none(tmp_path): | CODE |
| LOW | tests/unit/test_configs.py | 429 | def test_client_defaults_survive_partial_overrides( | CODE |
| LOW | tests/unit/test_configs.py | 440 | def test_env_algo_inherits_the_group_algo(): | CODE |
| LOW | tests/unit/test_configs.py | 470 | def test_sources_inherit_the_group_fields_they_leave_unset( | CODE |
| LOW | tests/unit/test_configs.py | 534 | def test_train_sources_can_use_their_own_group_sizes(): | CODE |
| LOW | tests/unit/test_configs.py | 560 | def test_group_defaults_match_source_defaults(group): | CODE |
| LOW | tests/unit/test_configs.py | 572 | def test_policy_sources_accept_different_top_p_values(): | CODE |
| LOW | tests/unit/test_configs.py | 612 | def test_policy_sampling_is_validated_before_rollouts(sampling, agent_sampling, rejected, frozen): | CODE |
| LOW | tests/unit/test_configs.py | 630 | def test_policy_sources_reject_mixed_top_k_capture(): | CODE |
| LOW | tests/unit/test_configs.py | 653 | def test_single_node_auto_inference_ports_follow_server_port(): | CODE |
| LOW | tests/unit/test_configs.py | 676 | def test_single_node_nccl_resolved_json_roundtrips(tmp_path): | CODE |
| LOW | tests/unit/test_configs.py | 695 | def test_multi_node_auto_inference_parallelism(): | CODE |
| LOW | tests/unit/test_configs.py | 716 | def test_disaggregated_inference_inherits_deployment_gpus_per_node(): | CODE |
| LOW | tests/unit/test_configs.py | 734 | def test_orchestrator_vlm_requires_renderer(): | CODE |
| LOW | tests/unit/test_configs.py | 764 | def test_trainer_rejects_vlm_cp_with_ring(): | CODE |
| LOW | tests/unit/test_configs.py | 781 | def test_ac_none_disables_ac_offloading(): | CODE |
| LOW | tests/unit/test_configs.py | 787 | def test_shared_model_name_propagates_to_subconfigs(): | CODE |
| LOW | tests/unit/test_configs.py | 804 | def test_shared_tokenizer_propagates_when_subconfigs_unset(): | CODE |
| LOW | tests/unit/test_configs.py | 817 | def test_shared_and_sub_tokenizer_name_conflict_raises(): | CODE |
| LOW | tests/unit/test_configs.py | 832 | def test_tokenizer_name_falls_back_to_model_name_when_unset(): | CODE |
| LOW | tests/unit/test_configs.py | 847 | def test_explicit_subconfig_tokenizer_name_survives_shared_model_propagation(): | CODE |
| LOW | tests/unit/test_configs.py | 880 | def test_tokenizer_chat_template_mismatch_raises(): | CODE |
| LOW | tests/unit/test_configs.py | 890 | def test_shared_seq_len_propagates_to_subconfigs(): | CODE |
| LOW | tests/unit/test_configs.py | 902 | def test_shared_and_sub_seq_len_conflict_raises(): | CODE |
| LOW | tests/unit/test_configs.py | 916 | def test_shared_and_sub_model_name_conflict_raises(): | CODE |
| LOW | tests/unit/test_configs.py | 928 | def test_shared_and_sub_max_steps_conflict_raises(): | CODE |
| LOW | tests/unit/test_configs.py | 940 | def test_trainer_chat_template_cascades_to_inference(): | CODE |
| 534 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/train/test_model.py | 24 | CODE | |
| LOW | tests/unit/inference/test_serving_tokens.py | 13 | CODE | |
| LOW | tests/unit/orchestrator/test_qwen3_vl_e2e.py | 3 | CODE | |
| LOW | tests/integration/test_benchmark_regression.py | 9 | CODE | |
| LOW | benchmarks/scripts/aggregate_results.py | 4 | CODE | |
| LOW | benchmarks/scripts/run_single_benchmark.py | 10 | CODE | |
| LOW | packages/prime-rl-configs/src/prime_rl/utils/config.py | 6 | CODE | |
| LOW | packages/prime-rl-configs/src/prime_rl/utils/config.py | 7 | CODE | |
| LOW | …ages/prime-rl-configs/src/prime_rl/utils/validation.py | 1 | CODE | |
| LOW | packages/prime-rl-configs/src/prime_rl/configs/rl.py | 12 | CODE | |
| LOW | src/prime_rl/monitors/prime.py | 1 | CODE | |
| LOW | src/prime_rl/monitors/__init__.py | 9 | CODE | |
| LOW | src/prime_rl/monitors/base.py | 1 | CODE | |
| LOW | src/prime_rl/monitors/file/monitor.py | 1 | CODE | |
| LOW | src/prime_rl/monitors/file/__init__.py | 1 | CODE | |
| LOW | src/prime_rl/monitors/file/traces/live.py | 15 | CODE | |
| LOW | src/prime_rl/monitors/wandb/monitor.py | 1 | CODE | |
| LOW | src/prime_rl/monitors/wandb/__init__.py | 1 | CODE | |
| LOW | src/prime_rl/monitors/wandb/overview.py | 13 | CODE | |
| LOW | src/prime_rl/transports/weights/__init__.py | 9 | CODE | |
| LOW | …prime_rl/transports/weights/nixl/cuda_malloc_memory.py | 3 | CODE | |
| LOW | …ime_rl/transports/weights/nixl/trainer_tensor_table.py | 3 | CODE | |
| LOW | src/prime_rl/transports/weights/nixl/tensor_routing.py | 3 | CODE | |
| LOW | src/prime_rl/transports/weights/nixl/graph.py | 3 | CODE | |
| LOW | src/prime_rl/transports/weights/nixl/model_express.py | 3 | CODE | |
| LOW | src/prime_rl/transports/weights/nixl/__init__.py | 3 | CODE | |
| LOW | src/prime_rl/transports/weights/nixl/__init__.py | 3 | CODE | |
| LOW | src/prime_rl/transports/weights/nixl/agent.py | 3 | CODE | |
| LOW | src/prime_rl/transports/weights/nixl/nixl.py | 3 | CODE | |
| LOW | src/prime_rl/transports/batch/__init__.py | 9 | CODE | |
| LOW | src/prime_rl/transports/batch/__init__.py | 9 | CODE | |
| LOW | src/prime_rl/transports/batch/__init__.py | 9 | CODE | |
| LOW | src/prime_rl/transports/batch/__init__.py | 9 | CODE | |
| LOW | src/prime_rl/transports/batch/__init__.py | 9 | CODE | |
| LOW | src/prime_rl/transports/batch/__init__.py | 9 | CODE | |
| LOW | src/prime_rl/utils/async_utils.py | 1 | CODE | |
| LOW | src/prime_rl/utils/sequence.py | 1 | CODE | |
| LOW | src/prime_rl/utils/cp.py | 1 | CODE | |
| LOW | src/prime_rl/utils/cp.py | 4 | CODE | |
| LOW | src/prime_rl/multimodal/registry.py | 1 | CODE | |
| LOW | src/prime_rl/multimodal/__init__.py | 1 | CODE | |
| LOW | src/prime_rl/multimodal/__init__.py | 1 | CODE | |
| LOW | src/prime_rl/multimodal/__init__.py | 1 | CODE | |
| LOW | src/prime_rl/multimodal/__init__.py | 2 | CODE | |
| LOW | src/prime_rl/multimodal/kimi_k25.py | 1 | CODE | |
| LOW | src/prime_rl/multimodal/qwen_vl.py | 1 | CODE | |
| LOW | src/prime_rl/multimodal/base.py | 1 | CODE | |
| LOW | src/prime_rl/inference/dynamo.py | 1 | CODE | |
| LOW | src/prime_rl/inference/vllm/server.py | 171 | CODE | |
| LOW | src/prime_rl/inference/vllm/routed_experts.py | 1 | CODE | |
| LOW | src/prime_rl/inference/vllm/serving_tokens.py | 17 | CODE | |
| LOW | src/prime_rl/inference/vllm/worker/nixl.py | 3 | CODE | |
| LOW | src/prime_rl/eval/runner.py | 14 | CODE | |
| LOW | src/prime_rl/eval/resume.py | 14 | CODE | |
| LOW | src/prime_rl/eval/online.py | 13 | CODE | |
| LOW | src/prime_rl/eval/eval.py | 9 | CODE | |
| LOW | src/prime_rl/trainer/multimodal.py | 1 | CODE | |
| LOW | src/prime_rl/trainer/utils.py | 24 | CODE | |
| LOW | src/prime_rl/trainer/scheduler.py | 1 | CODE | |
| LOW | src/prime_rl/trainer/distributed/deepep.py | 1 | CODE | |
| 145 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/unit/orchestrator/test_advantage.py | 171 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/orchestrator/test_advantage.py | 173 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/orchestrator/test_advantage.py | 228 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/orchestrator/test_advantage.py | 230 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/orchestrator/test_advantage.py | 278 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/orchestrator/test_advantage.py | 280 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/orchestrator/test_algorithms.py | 91 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/orchestrator/test_algorithms.py | 97 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/orchestrator/test_algorithms.py | 357 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/orchestrator/test_algorithms.py | 364 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/integration/test_benchmark_regression.py | 166 | # ============================================================================= | COMMENT |
| MEDIUM | tests/integration/test_benchmark_regression.py | 168 | # ============================================================================= | COMMENT |
| MEDIUM | tests/integration/test_benchmark_regression.py | 226 | # ============================================================================= | COMMENT |
| MEDIUM | tests/integration/test_benchmark_regression.py | 228 | # ============================================================================= | COMMENT |
| MEDIUM | …ges/prime-rl-configs/src/prime_rl/configs/algorithm.py | 71 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …ges/prime-rl-configs/src/prime_rl/configs/algorithm.py | 73 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …ges/prime-rl-configs/src/prime_rl/configs/algorithm.py | 84 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …ges/prime-rl-configs/src/prime_rl/configs/algorithm.py | 86 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …ges/prime-rl-configs/src/prime_rl/configs/algorithm.py | 149 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …ges/prime-rl-configs/src/prime_rl/configs/algorithm.py | 151 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/prime_rl/_compat.py | 7 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/prime_rl/_compat.py | 15 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/prime_rl/_compat.py | 22 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/prime_rl/_compat.py | 35 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/prime_rl/utils/vlm.py | 37 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/prime_rl/utils/vlm.py | 39 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/prime_rl/utils/vlm.py | 102 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/prime_rl/utils/vlm.py | 104 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/prime_rl/trainer/models/kernels/fp8_utils.py | 26 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/prime_rl/trainer/models/kernels/fp8_utils.py | 28 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/prime_rl/trainer/models/kernels/fp8_utils.py | 91 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/prime_rl/trainer/models/kernels/fp8_utils.py | 93 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/prime_rl/trainer/models/kernels/fp8_utils.py | 371 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/prime_rl/trainer/models/kernels/fp8_utils.py | 373 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/prime_rl/orchestrator/dispatcher.py | 324 | # ── lifecycle ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/prime_rl/orchestrator/dispatcher.py | 854 | # ── metrics ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/prime_rl/orchestrator/concurrency.py | 164 | # ── inbound hooks ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/prime_rl/orchestrator/concurrency.py | 295 | # ── internals ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/prime_rl/orchestrator/concurrency.py | 329 | # ── observability ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/prime_rl/orchestrator/orchestrator.py | 169 | # ── lifecycle ────────────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | packages/prime-rl-configs/src/prime_rl/configs/rl.py | 0 | run metadata. ``run.name`` names the run directory under ``output_dir``. | STRING |
| HIGH | packages/prime-rl-configs/src/prime_rl/configs/sft.py | 0 | run metadata. ``run.name`` names the run directory under ``output_dir``. | STRING |
| HIGH | packages/prime-rl-configs/src/prime_rl/configs/eval.py | 0 | run metadata. ``run.name`` names the run directory under ``output_dir``. | STRING |
| HIGH | packages/prime-rl-configs/src/prime_rl/configs/rl.py | 0 | delete the run directory (``output_dir / run.name``) before starting. required to overwrite a run directory that contain | STRING |
| HIGH | packages/prime-rl-configs/src/prime_rl/configs/sft.py | 0 | delete the run directory (``output_dir / run.name``) before starting. required to overwrite a run directory that contain | STRING |
| HIGH | packages/prime-rl-configs/src/prime_rl/configs/eval.py | 0 | delete the run directory (``output_dir / run.name``) before starting. required to overwrite a run directory that contain | STRING |
| HIGH | packages/prime-rl-configs/src/prime_rl/configs/rl.py | 0 | only validate and dump resolved configs, then exit early. | STRING |
| HIGH | …ges/prime-rl-configs/src/prime_rl/configs/inference.py | 0 | only validate and dump resolved configs, then exit early. | STRING |
| HIGH | packages/prime-rl-configs/src/prime_rl/configs/sft.py | 0 | only validate and dump resolved configs, then exit early. | STRING |
| HIGH | …/prime-rl-configs/src/prime_rl/configs/orchestrator.py | 0 | extra environment variables for the sft trainer process(es). merged on top of the launcher defaults. | STRING |
| HIGH | …kages/prime-rl-configs/src/prime_rl/configs/trainer.py | 0 | extra environment variables for the sft trainer process(es). merged on top of the launcher defaults. | STRING |
| HIGH | packages/prime-rl-configs/src/prime_rl/configs/sft.py | 0 | extra environment variables for the sft trainer process(es). merged on top of the launcher defaults. | STRING |
| HIGH | …/prime-rl-configs/src/prime_rl/configs/orchestrator.py | 0 | metric monitors (``monitors.wandb``, ``monitors.file``, ``monitors.prime``). | STRING |
| HIGH | packages/prime-rl-configs/src/prime_rl/configs/sft.py | 0 | metric monitors (``monitors.wandb``, ``monitors.file``, ``monitors.prime``). | STRING |
| HIGH | packages/prime-rl-configs/src/prime_rl/configs/eval.py | 0 | metric monitors (``monitors.wandb``, ``monitors.file``, ``monitors.prime``). | STRING |
| HIGH | …/prime-rl-configs/src/prime_rl/configs/orchestrator.py | 0 | betterstack heartbeat configuration for monitoring training progress. | STRING |
| HIGH | …kages/prime-rl-configs/src/prime_rl/configs/trainer.py | 0 | betterstack heartbeat configuration for monitoring training progress. | STRING |
| HIGH | packages/prime-rl-configs/src/prime_rl/configs/sft.py | 0 | betterstack heartbeat configuration for monitoring training progress. | STRING |
| HIGH | …me_rl/trainer/models/minimax_m2/modeling_minimax_m2.py | 0 | routed_experts (`torch.longtensor` of shape `(batch_size, sequence_length, num_hidden_layers, num_experts_per_tok)`, *op | STRING |
| HIGH | …/prime_rl/trainer/models/glm4_moe/modeling_glm4_moe.py | 0 | routed_experts (`torch.longtensor` of shape `(batch_size, sequence_length, num_hidden_layers, num_experts_per_tok)`, *op | STRING |
| HIGH | …rime_rl/trainer/models/qwen3_moe/modeling_qwen3_moe.py | 0 | routed_experts (`torch.longtensor` of shape `(batch_size, sequence_length, num_hidden_layers, num_experts_per_tok)`, *op | STRING |
| HIGH | …_rl/trainer/models/glm_moe_dsa/modeling_glm_moe_dsa.py | 0 | routed_experts (`torch.longtensor` of shape `(batch_size, sequence_length, num_hidden_layers, num_experts_per_tok)`, *op | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/docker_application.py | 26 | def set_fallback_version(pyproject: Path, version: str) -> None: | CODE |
| LOW | src/prime_rl/monitors/prime.py | 115 | def update_platform_record(output_dir: Path, update: dict[str, Any]) -> None: | CODE |
| LOW | src/prime_rl/monitors/__init__.py | 32 | __all__ = [ | CODE |
| LOW | src/prime_rl/monitors/file/__init__.py | 3 | __all__ = ["FileMonitor"] | CODE |
| LOW | src/prime_rl/monitors/file/traces/__init__.py | 33 | __all__ = ["get_annotations_dir", "get_index_path", "get_trace_dir", "get_trace_stream"] | CODE |
| LOW | src/prime_rl/monitors/wandb/__init__.py | 3 | __all__ = ["WandbMonitor"] | CODE |
| LOW | src/prime_rl/transports/weights/__init__.py | 14 | __all__ = [ | CODE |
| LOW | src/prime_rl/transports/weights/nixl/__init__.py | 5 | __all__ = ["NIXLWeightReceiver", "NIXLWeightSender"] | CODE |
| LOW | src/prime_rl/transports/weights/nixl/agent.py | 151 | def set_ucx_env_defaults(device_index: int) -> None: | CODE |
| LOW | src/prime_rl/transports/batch/__init__.py | 45 | __all__ = [ | CODE |
| LOW | src/prime_rl/utils/process.py | 91 | def set_proc_title(name: str) -> None: | CODE |
| LOW | src/prime_rl/multimodal/__init__.py | 4 | __all__ = [ | CODE |
| LOW | src/prime_rl/entrypoints/eval.py | 38 | def set_nested(target: dict[str, Any], keys: list[str], value: Any) -> None: | STRING |
| LOW | src/prime_rl/inference/vllm/worker/nccl.py | 134 | def update_weights_from_path(self, weight_dir: str) -> None: | CODE |
| LOW | src/prime_rl/inference/vllm/worker/filesystem.py | 24 | def update_weights_from_path(self, weight_path: str) -> None: | CODE |
| LOW | src/prime_rl/inference/vllm/worker/weight_transfer.py | 27 | def update_mla_absorbed_weights(model: Module) -> None: | CODE |
| LOW | src/prime_rl/inference/vllm/worker/nixl.py | 477 | def update_weights_from_path(self, weight_dir: str | None = None) -> None: | CODE |
| LOW | src/prime_rl/trainer/activation_checkpointing.py | 133 | __all__ = [ | CODE |
| LOW | src/prime_rl/trainer/parallel_dims.py | 33 | __all__ = ["ParallelDims"] | CODE |
| LOW | src/prime_rl/trainer/lora.py | 116 | def _set_module_by_name(model: nn.Module, module_name: str, new_module: nn.Module) -> None: | CODE |
| LOW | src/prime_rl/trainer/distributed/deepep.py | 471 | __all__ = [ | CODE |
| LOW | src/prime_rl/trainer/distributed/collectives.py | 257 | __all__ = [ | CODE |
| LOW | src/prime_rl/trainer/distributed/__init__.py | 3 | __all__ = ["ExpertWeightParallel"] | CODE |
| LOW | src/prime_rl/trainer/models/__init__.py | 127 | __all__ = [ | CODE |
| LOW | src/prime_rl/trainer/models/base.py | 159 | __all__ = ["ALL_CP_STYLES", "CPStyle", "CPSupport", "PreTrainedModelPrimeRL"] | CODE |
| LOW | src/prime_rl/trainer/models/laguna/__init__.py | 8 | __all__ = [ | CODE |
| LOW | …prime_rl/trainer/models/laguna/configuration_laguna.py | 194 | __all__ = ["LagunaConfig"] | CODE |
| LOW | src/prime_rl/trainer/models/laguna/modeling_laguna.py | 431 | __all__ = [ | CODE |
| LOW | src/prime_rl/trainer/models/gpt_oss/attention.py | 177 | __all__ = [ | CODE |
| LOW | src/prime_rl/trainer/models/gpt_oss/modeling_gpt_oss.py | 221 | __all__ = [ | CODE |
| LOW | src/prime_rl/trainer/models/gpt_oss/__init__.py | 8 | __all__ = [ | CODE |
| LOW | …ime_rl/trainer/models/gpt_oss/configuration_gpt_oss.py | 112 | __all__ = ["GptOssConfig"] | CODE |
| LOW | src/prime_rl/trainer/models/layers/moe.py | 101 | def set_compute(self, compute: ExpertCompute) -> None: | CODE |
| LOW | src/prime_rl/trainer/models/layers/moe.py | 348 | def set_token_dispatcher(self, token_dispatcher: TokenDispatcher) -> None: | CODE |
| LOW | src/prime_rl/trainer/models/layers/ulysses_attn.py | 48 | def update_ulysses_params(cu_seqlens: torch.Tensor, max_seqlen: int) -> None: | CODE |
| LOW | src/prime_rl/trainer/models/layers/lora/__init__.py | 11 | __all__ = [ | CODE |
| LOW | src/prime_rl/trainer/models/layers/lora/base.py | 14 | def set_lora_num_tokens(num_tokens: torch.Tensor, reset_reference: bool = False) -> None: | CODE |
| LOW | src/prime_rl/trainer/models/layers/lora/base.py | 42 | def set_multilora_scaling(scaling_factors: torch.Tensor, reset_reference: bool = False) -> None: | CODE |
| LOW | src/prime_rl/trainer/models/minimax_m2/__init__.py | 8 | __all__ = [ | CODE |
| LOW | …me_rl/trainer/models/minimax_m2/modeling_minimax_m2.py | 281 | __all__ = [ | STRING |
| LOW | …/trainer/models/nemotron_h/configuration_nemotron_h.py | 143 | __all__ = ["NemotronHConfig"] | CODE |
| LOW | …_rl/trainer/models/nemotron_h/converting_nemotron_h.py | 55 | __all__ = ["conversion_chain", "is_hf_state_dict", "is_prime_state_dict"] | CODE |
| LOW | src/prime_rl/trainer/models/nemotron_h/mamba.py | 244 | __all__ = [ | CODE |
| LOW | src/prime_rl/trainer/models/nemotron_h/__init__.py | 8 | __all__ = [ | CODE |
| LOW | …me_rl/trainer/models/nemotron_h/modeling_nemotron_h.py | 243 | __all__ = [ | CODE |
| LOW | src/prime_rl/trainer/models/qwen3/__init__.py | 3 | __all__ = ["Qwen3ForCausalLM", "Qwen3Model", "Qwen3PreTrainedModel"] | CODE |
| LOW | src/prime_rl/trainer/models/qwen3/modeling_qwen3.py | 279 | __all__ = ["Qwen3ForCausalLM", "Qwen3Model", "Qwen3PreTrainedModel"] | STRING |
| LOW | src/prime_rl/trainer/models/deepseek_v4/attention.py | 790 | __all__ = [ | CODE |
| LOW | …rime_rl/trainer/models/deepseek_v4/hyperconnections.py | 109 | __all__ = [ | CODE |
| LOW | …rainer/models/deepseek_v4/configuration_deepseek_v4.py | 360 | __all__ = ["DeepseekV4Config"] | CODE |
| LOW | src/prime_rl/trainer/models/deepseek_v4/__init__.py | 4 | __all__ = [ | CODE |
| LOW | …_rl/trainer/models/deepseek_v4/modeling_deepseek_v4.py | 345 | __all__ = [ | CODE |
| LOW | src/prime_rl/trainer/models/deepseek_v4/rotary.py | 131 | __all__ = ["DeepseekV4RotaryEmbedding"] | CODE |
| LOW | src/prime_rl/trainer/models/glm_moe_dsa/__init__.py | 8 | __all__ = [ | CODE |
| LOW | …_rl/trainer/models/glm_moe_dsa/modeling_glm_moe_dsa.py | 349 | __all__ = ["GlmMoeDsaConfig", "GlmMoeDsaPreTrainedModel", "GlmMoeDsaModel", "GlmMoeDsaForCausalLM"] | STRING |
| LOW | …rime_rl/trainer/models/qwen3_8_flash_next/attention.py | 110 | __all__ = ["IndexedGatedAttention"] | CODE |
| LOW | …qwen3_8_flash_next/configuration_qwen3_8_flash_next.py | 154 | __all__ = ["Qwen3_8FlashNextConfig", "Qwen3_8FlashNextTextConfig"] | CODE |
| LOW | src/prime_rl/trainer/models/qwen3_8_flash_next/norm.py | 25 | __all__ = ["RMSNorm"] | CODE |
| LOW | …prime_rl/trainer/models/qwen3_8_flash_next/__init__.py | 18 | __all__ = [ | CODE |
| LOW | …/trainer/models/qwen3_8_flash_next/rotary_embedding.py | 58 | __all__ = ["RotaryEmbedding", "apply_rotary_embedding"] | CODE |
| 38 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/integration/test_reverse_text_rl_sft.py | 40 | except (httpx.ConnectError, httpx.ReadTimeout): | CODE |
| HIGH | tests/integration/test_reverse_text_rl_opd.py | 41 | except (httpx.ConnectError, httpx.ReadTimeout): | CODE |
| HIGH | …ges/prime-rl-configs/src/prime_rl/configs/inference.py | 130 | except json.JSONDecodeError: | CODE |
| HIGH | …prime_rl/transports/weights/nixl/cuda_malloc_memory.py | 12 | except OSError: | CODE |
| HIGH | src/prime_rl/utils/async_utils.py | 16 | except BaseException: | CODE |
| HIGH | src/prime_rl/dashboard/server.py | 2210 | except OSError: | CODE |
| HIGH | src/prime_rl/trainer/models/kernels/sparse_mla_bwd.py | 12 | except Exception: | CODE |
| HIGH | src/prime_rl/trainer/models/kernels/sparse_mla_fwd.py | 12 | except Exception: | CODE |
| HIGH | …ner/models/kernels/deepseek_v4/dsv4_sparse_attn_bwd.py | 88 | except Exception: | CODE |
| HIGH | …ner/models/kernels/deepseek_v4/dsv4_sparse_attn_fwd.py | 114 | except Exception: | CODE |
| HIGH | …trainer/models/kernels/deepseek_v4/dsv4_sparse_attn.py | 16 | except Exception: | CODE |
| HIGH | src/prime_rl/orchestrator/dispatcher.py | 338 | except asyncio.TimeoutError: | CODE |
| HIGH | src/prime_rl/orchestrator/envs.py | 53 | except FileNotFoundError: | CODE |
| HIGH | src/prime_rl/orchestrator/inference_metrics.py | 456 | except asyncio.CancelledError: | CODE |
| HIGH | src/prime_rl/orchestrator/periodic_logger.py | 38 | except asyncio.TimeoutError: | CODE |
| HIGH | src/prime_rl/orchestrator/orchestrator.py | 460 | except asyncio.TimeoutError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | examples/advanced/glm-4.5-air/swe-budget.toml | 1 | # v1 RL: GLM-4.5-Air (100B MoE) on the v1 `scaleswe` SWE taskset, bash harness on a prime sandbox | COMMENT |
| MEDIUM⚡ | examples/advanced/glm-4.5-air/terminal.toml | 2 | # run through the rlm harness (ipython-only) on a prime sandbox. Each task ships its own Docker image | COMMENT |
| MEDIUM⚡ | examples/advanced/glm-4.5-air/terminal.toml | 12 | # Clean up this run's orphaned prime sandboxes before launch (hardcoded label, matches the harness labels below). | COMMENT |
| MEDIUM | examples/advanced/glm-4.5-air/terminal.toml | 90 | # # Metric-only monitors (weight 0): rlm harness-mechanics + swe code-usage rubrics, judged by GLM-5.2. | COMMENT |
| MEDIUM | examples/advanced/glm-4.5-air/swe.toml | 1 | # v1 RL: GLM-4.5-Air (100B MoE) on the v1 `scaleswe` SWE taskset, bash harness on a prime sandbox | COMMENT |
| MEDIUM | examples/advanced/glm-4.5-air/swe.toml | 25 | # Clean up this run's orphaned prime sandboxes before launch (hardcoded label, matches the harness labels below). | COMMENT |
| MEDIUM | examples/advanced/glm-4.5-air/swe.toml | 95 | # --- Eval: SWE-Bench Verified at step 0 + every 20 steps, bash harness on prime --- | COMMENT |
| MEDIUM | examples/advanced/glm-4.5-air/search.toml | 2 | # through the rlm harness (its built-in `search` skill) on a prime sandbox. GRPO + linear length | COMMENT |
| MEDIUM | examples/advanced/glm-4.5-air/search.toml | 11 | # Clean up this run's orphaned prime sandboxes before launch (hardcoded label, matches the harness labels below). | COMMENT |
| MEDIUM | examples/advanced/glm-4.5-air/search.toml | 101 | # # Metric-only monitor (weight 0): rlm harness-mechanics rubric, judged by GLM-5.2. | COMMENT |
| MEDIUM | examples/advanced/glm-4.5-air/search.toml | 125 | # # Metric-only monitor (weight 0): rlm harness-mechanics rubric, judged by GLM-5.2. | COMMENT |
| MEDIUM | examples/advanced/glm-4.5-air/search.toml | 150 | # # Metric-only monitor (weight 0): rlm harness-mechanics rubric, judged by GLM-5.2. | COMMENT |
| MEDIUM | examples/advanced/glm-4.5-air/swe-2-node.toml | 13 | # Clean up this run's orphaned prime sandboxes before launch (hardcoded label, matches the harness labels below). | COMMENT |
| MEDIUM | examples/advanced/glm-4.5-air/swe-2-node.toml | 31 | # --- Eval: SWE-Bench Verified at step 0 + every 20 steps, bash harness on prime --- | COMMENT |
| MEDIUM | examples/advanced/glm-4.5-air/swe-4-node.toml | 14 | # Clean up this run's orphaned prime sandboxes before launch (hardcoded label, matches the harness labels below). | COMMENT |
| MEDIUM | examples/advanced/glm-4.5-air/swe-4-node.toml | 32 | # --- Eval: SWE-Bench Verified at step 0 + every 20 steps, bash harness on prime --- | COMMENT |
| MEDIUM | configs/ci/integration/gsm8k-eval.toml | 1 | # CI eval smoke: gsm8k with the null harness in a local subprocess runtime against | COMMENT |
| MEDIUM | configs/debug/eval/tb2.toml | 1 | # Terminal-Bench 2 at avg@4: every task 4 times with the bash harness in prime | COMMENT |
| MEDIUM | configs/debug/eval/single-turn.toml | 1 | # Single env, single turn: gsm8k with the null harness (one chat completion per | COMMENT |
| MEDIUM | configs/debug/eval/multi-turn.toml | 1 | # Single env, multi turn: 16 terminal-bench-2 tasks with the bash harness in | COMMENT |
| MEDIUM | configs/debug/eval/aime2026.toml | 1 | # AIME 2026 at avg@16: every problem 16 times with the null harness (one chat | COMMENT |
| MEDIUM | src/prime_rl/dashboard/static/app.js | 966 | model: "#78f8a5", harness: "#b7a6fa", other: "#2a2a2a", | CODE |
| MEDIUM | src/prime_rl/inference/server.py | 10 | # spawn is more robust in vLLM nightlies and Qwen3-VL (fork can deadlock with multithreaded processes) | COMMENT |
| LOW | src/prime_rl/trainer/perf.py | 157 | # Some MoE models (e.g. DeepSeek) use moe_intermediate_size, others (e.g. Granite) just use intermediate_size | COMMENT |
| MEDIUM | src/prime_rl/trainer/sft/data.py | 357 | # scaffolding (e.g. <|im_start|>assistant) the harness emits. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/convert_fp8_to_bf16.py | 41 | CODE | |
| LOW | tests/unit/train/models/test_deepseek_v4_kernels.py | 63 | CODE | |
| LOW | tests/unit/train/models/test_deepseek_v4.py | 118 | CODE | |
| LOW | tests/integration/dashboard_smoke.py | 33 | CODE | |
| LOW | scripts/chat.py | 15 | CODE | |
| LOW | …ages/prime-rl-configs/src/prime_rl/utils/validation.py | 6 | CODE | |
| LOW | packages/prime-rl-configs/src/prime_rl/configs/rl.py | 607 | CODE | |
| LOW | src/prime_rl/monitors/prime.py | 63 | CODE | |
| LOW | src/prime_rl/monitors/file/traces/update.py | 67 | CODE | |
| LOW | src/prime_rl/transports/weights/nixl/agent.py | 151 | CODE | |
| LOW | src/prime_rl/utils/act_offloading.py | 56 | CODE | |
| LOW | src/prime_rl/utils/act_offloading.py | 116 | CODE | |
| LOW | src/prime_rl/utils/nccl.py | 10 | CODE | |
| LOW | src/prime_rl/utils/chat_template.py | 5 | CODE | |
| LOW | src/prime_rl/utils/utils.py | 71 | CODE | |
| LOW | src/prime_rl/dashboard/server.py | 710 | CODE | |
| LOW | src/prime_rl/dashboard/server.py | 1154 | CODE | |
| LOW | src/prime_rl/dashboard/server.py | 1917 | CODE | |
| LOW | src/prime_rl/dashboard/server.py | 1989 | CODE | |
| LOW | src/prime_rl/entrypoints/rl.py | 111 | CODE | |
| LOW | src/prime_rl/entrypoints/eval.py | 49 | CODE | |
| LOW | src/prime_rl/inference/dynamo.py | 199 | CODE | |
| LOW | src/prime_rl/inference/patches.py | 247 | CODE | |
| LOW | src/prime_rl/inference/patches.py | 272 | CODE | |
| LOW | src/prime_rl/inference/vllm/qwen38_weight_loading.py | 8 | CODE | |
| LOW | src/prime_rl/inference/vllm/qwen38_weight_loading.py | 22 | CODE | |
| LOW | src/prime_rl/inference/vllm/qwen38_weight_loading.py | 27 | CODE | |
| LOW | src/prime_rl/inference/vllm/gpt_oss_weight_loading.py | 6 | CODE | |
| LOW | src/prime_rl/inference/vllm/gpt_oss_weight_loading.py | 56 | CODE | |
| LOW | src/prime_rl/inference/vllm/gpt_oss_weight_loading.py | 80 | CODE | |
| LOW | src/prime_rl/inference/vllm/worker/nccl.py | 31 | CODE | |
| LOW | src/prime_rl/inference/vllm/worker/nixl.py | 147 | CODE | |
| LOW | src/prime_rl/inference/vllm/worker/nixl.py | 491 | CODE | |
| LOW | src/prime_rl/eval/runner.py | 166 | CODE | |
| LOW | src/prime_rl/eval/resume.py | 38 | CODE | |
| LOW | src/prime_rl/eval/resume.py | 57 | CODE | |
| LOW | src/prime_rl/eval/online.py | 77 | CODE | |
| LOW | src/prime_rl/trainer/model.py | 503 | CODE | |
| LOW | src/prime_rl/trainer/moe_runtime.py | 62 | CODE | |
| LOW | src/prime_rl/trainer/lora.py | 210 | CODE | |
| LOW | src/prime_rl/trainer/optim/state_offload.py | 35 | CODE | |
| LOW | src/prime_rl/trainer/optim/__init__.py | 136 | CODE | |
| LOW | src/prime_rl/trainer/optim/offload.py | 356 | CODE | |
| LOW | src/prime_rl/trainer/models/fusions.py | 204 | CODE | |
| LOW | src/prime_rl/trainer/models/fusions.py | 243 | CODE | |
| LOW | src/prime_rl/trainer/models/fusions.py | 267 | CODE | |
| LOW | src/prime_rl/trainer/models/kernels/sparse_mla_bwd.py | 102 | CODE | |
| LOW | src/prime_rl/trainer/models/kernels/sparse_mla_bwd.py | 150 | CODE | |
| LOW | …ner/models/kernels/deepseek_v4/dsv4_sparse_attn_bwd.py | 172 | CODE | |
| LOW | …ner/models/kernels/deepseek_v4/dsv4_sparse_attn_bwd.py | 231 | CODE | |
| LOW | src/prime_rl/trainer/models/layers/moe.py | 179 | CODE | |
| LOW | …_rl/trainer/models/nemotron_h/converting_nemotron_h.py | 17 | CODE | |
| LOW | …me_rl/trainer/models/nemotron_h/modeling_nemotron_h.py | 42 | CODE | |
| LOW | …dels/qwen3_8_flash_next/modeling_qwen3_8_flash_next.py | 297 | CODE | |
| LOW | src/prime_rl/trainer/models/qwen3_5/rotary_embedding.py | 109 | CODE | |
| LOW | src/prime_rl/trainer/sft/train.py | 71 | CODE | |
| LOW | src/prime_rl/trainer/sft/data.py | 151 | CODE | |
| LOW | src/prime_rl/trainer/sft/data.py | 511 | CODE | |
| LOW | src/prime_rl/trainer/rl/train.py | 80 | CODE | |
| LOW | src/prime_rl/orchestrator/dispatcher.py | 326 | CODE | |
| 6 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | benchmarks/scripts/aggregate_results.py | 76 | except Exception as e: | CODE |
| LOW | benchmarks/scripts/run_single_benchmark.py | 36 | except Exception: | CODE |
| LOW | benchmarks/scripts/run_single_benchmark.py | 293 | except Exception as e: | CODE |
| MEDIUM | benchmarks/scripts/run_single_benchmark.py | 296 | print(f"Error: {e}") | CODE |
| LOW | scripts/chat.py | 161 | except Exception as e: | CODE |
| LOW | src/prime_rl/monitors/prime.py | 382 | except Exception as e: | CODE |
| LOW | src/prime_rl/monitors/prime.py | 428 | except Exception as e: | CODE |
| LOW | src/prime_rl/monitors/prime.py | 440 | except Exception as e: | CODE |
| LOW⚡ | src/prime_rl/monitors/__init__.py | 129 | except Exception as e: | CODE |
| LOW⚡ | src/prime_rl/monitors/__init__.py | 138 | except Exception as e: | CODE |
| LOW⚡ | src/prime_rl/monitors/__init__.py | 147 | except Exception as e: | CODE |
| LOW⚡ | src/prime_rl/monitors/__init__.py | 156 | except Exception as e: | CODE |
| LOW⚡ | src/prime_rl/monitors/__init__.py | 165 | except Exception as e: | CODE |
| LOW⚡ | src/prime_rl/monitors/__init__.py | 174 | except Exception as e: | CODE |
| LOW | src/prime_rl/monitors/wandb/monitor.py | 137 | except Exception as e: | CODE |
| LOW | src/prime_rl/monitors/wandb/overview.py | 247 | except Exception as e: | CODE |
| LOW | src/prime_rl/transports/batch/zmq.py | 59 | except Exception: | CODE |
| LOW | src/prime_rl/utils/utils.py | 41 | except Exception: | CODE |
| LOW | src/prime_rl/utils/utils.py | 60 | except Exception: | CODE |
| MEDIUM | src/prime_rl/utils/utils.py | 36 | def async_wrapper(*args, **kwargs): | CODE |
| MEDIUM | src/prime_rl/utils/utils.py | 55 | def sync_wrapper(*args, **kwargs): | CODE |
| LOW | src/prime_rl/dashboard/server.py | 1714 | except Exception: | CODE |
| LOW | src/prime_rl/dashboard/server.py | 1769 | except Exception: | CODE |
| LOW | src/prime_rl/trainer/models/kernels/sparse_mla_bwd.py | 12 | except Exception: | CODE |
| LOW | src/prime_rl/trainer/models/kernels/sparse_mla_fwd.py | 12 | except Exception: | CODE |
| LOW | …ner/models/kernels/deepseek_v4/dsv4_sparse_attn_bwd.py | 88 | except Exception: | CODE |
| LOW | …ner/models/kernels/deepseek_v4/dsv4_sparse_attn_fwd.py | 114 | except Exception: | CODE |
| LOW | …trainer/models/kernels/deepseek_v4/dsv4_sparse_attn.py | 16 | except Exception: | CODE |
| LOW | src/prime_rl/orchestrator/dispatcher.py | 645 | except Exception as exc: | CODE |
| LOW | src/prime_rl/orchestrator/batch.py | 876 | except Exception as e: | CODE |
| LOW | src/prime_rl/orchestrator/inference_metrics.py | 301 | except Exception as e: | CODE |
| LOW | src/prime_rl/orchestrator/inference_metrics.py | 317 | except Exception as e: | CODE |
| LOW | src/prime_rl/orchestrator/inference_metrics.py | 331 | except Exception as e: | CODE |
| LOW | src/prime_rl/orchestrator/inference_metrics.py | 373 | except Exception as e: | CODE |
| LOW | src/prime_rl/orchestrator/utils.py | 93 | except Exception as exc: | CODE |
| LOW | src/prime_rl/orchestrator/clients.py | 99 | except Exception as error: | CODE |
| LOW | src/prime_rl/orchestrator/clients.py | 344 | except Exception as e: | CODE |
| LOW | src/prime_rl/orchestrator/watcher.py | 106 | except Exception as exc: | CODE |
| LOW | src/prime_rl/orchestrator/watcher.py | 127 | except Exception as exc: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/orchestrator/test_metrics.py | 14 | CODE | |
| LOW | src/prime_rl/monitors/__init__.py | 48 | CODE | |
| LOW | src/prime_rl/utils/pathing.py | 95 | CODE | |
| LOW | src/prime_rl/dashboard/server.py | 1543 | CODE | |
| LOW | src/prime_rl/dashboard/server.py | 1591 | CODE | |
| LOW | src/prime_rl/inference/patches.py | 272 | CODE | |
| LOW | src/prime_rl/trainer/model.py | 1020 | CODE | |
| LOW | …prime_rl/trainer/models/laguna/configuration_laguna.py | 38 | CODE | |
| LOW | src/prime_rl/trainer/models/laguna/modeling_laguna.py | 370 | CODE | |
| LOW | src/prime_rl/trainer/models/kernels/sparse_mla_bwd.py | 102 | CODE | |
| LOW | …ner/models/kernels/deepseek_v4/dsv4_sparse_attn_bwd.py | 172 | CODE | |
| LOW | src/prime_rl/trainer/models/gpt_oss/modeling_gpt_oss.py | 176 | CODE | |
| LOW | …ime_rl/trainer/models/gpt_oss/configuration_gpt_oss.py | 33 | CODE | |
| LOW | src/prime_rl/trainer/models/layers/attn.py | 574 | CODE | |
| LOW | …/trainer/models/minimax_m2/configuration_minimax_m2.py | 64 | CODE | |
| LOW | …me_rl/trainer/models/minimax_m2/modeling_minimax_m2.py | 211 | CODE | |
| LOW | …/trainer/models/nemotron_h/configuration_nemotron_h.py | 13 | CODE | |
| LOW | src/prime_rl/trainer/models/qwen3/modeling_qwen3.py | 219 | CODE | |
| LOW | …rainer/models/deepseek_v4/configuration_deepseek_v4.py | 103 | CODE | |
| LOW | …_rl/trainer/models/deepseek_v4/modeling_deepseek_v4.py | 302 | CODE | |
| LOW | …_rl/trainer/models/glm_moe_dsa/modeling_glm_moe_dsa.py | 279 | CODE | |
| LOW | …rainer/models/glm_moe_dsa/configuration_glm_moe_dsa.py | 119 | CODE | |
| LOW | …qwen3_8_flash_next/configuration_qwen3_8_flash_next.py | 10 | CODE | |
| LOW | …c/prime_rl/trainer/models/afmoe/configuration_afmoe.py | 18 | CODE | |
| LOW | src/prime_rl/trainer/models/afmoe/modeling_afmoe.py | 421 | CODE | |
| LOW | …/prime_rl/trainer/models/glm4_moe/modeling_glm4_moe.py | 255 | CODE | |
| LOW | …e_rl/trainer/models/glm4_moe/configuration_glm4_moe.py | 138 | CODE | |
| LOW | src/prime_rl/trainer/models/qwen3_5/modeling_qwen3_5.py | 331 | CODE | |
| LOW | …ime_rl/trainer/models/qwen3_5/configuration_qwen3_5.py | 9 | CODE | |
| LOW | …ime_rl/trainer/models/qwen3_5/configuration_qwen3_5.py | 127 | CODE | |
| LOW | src/prime_rl/trainer/models/llama/modeling_llama.py | 240 | CODE | |
| LOW | …rime_rl/trainer/models/qwen3_moe/modeling_qwen3_moe.py | 255 | CODE | |
| LOW | …rl/trainer/models/qwen3_moe/configuration_qwen3_moe.py | 142 | CODE | |
| LOW | src/prime_rl/trainer/sft/data.py | 266 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | README.md | 36 | 3. Native integration with [`verifiers`](https://github.com/PrimeIntellect-ai/verifiers) environments through the [Envir | CODE |
| MEDIUM⚡ | tests/unit/orchestrator/test_algorithms.py | 449 | # template scaffold (False), the second is message body (True). Only the body | COMMENT |
| MEDIUM⚡ | tests/unit/orchestrator/test_algorithms.py | 450 | # token gets the role weight — the scaffold is excluded (content granularity). | COMMENT |
| MEDIUM | tests/unit/orchestrator/test_algorithms.py | 478 | # Only position 5 (the body token) is weighted; the scaffold token at position 4 is not. | COMMENT |
| MEDIUM | docs/inference.md | 30 | - [Disaggregated](#pd-disaggregation) - Runs the inference server on multiple nodes, but disaggregates the prefill and d | CODE |
| MEDIUM | docs/configuration.md | 260 | - [**MiniMax-M2.5 SWE**](https://github.com/PrimeIntellect-ai/prime-rl/tree/main/configs/advanced/minimax-m2.5) — `MiniM | CODE |
| MEDIUM⚡ | examples/advanced/glm-4.5-air/terminal.toml | 1 | # exp: GLM-4.5-Air (100B MoE) RL across our v1 TERMINAL-domain envs — agentic shell/sandbox tasks | COMMENT |
| MEDIUM | examples/advanced/glm-4.5-air/README.md | 3 | RL on [`zai-org/GLM-4.5-Air`](https://huggingface.co/zai-org/GLM-4.5-Air) — a 100B MoE — at 131k context, across three a | CODE |
| MEDIUM | src/prime_rl/trainer/sft/data.py | 357 | # scaffolding (e.g. <|im_start|>assistant) the harness emits. | COMMENT |
| MEDIUM | src/prime_rl/trainer/sft/data.py | 465 | # If processed example is None, skip it (e.g. if tokenized sample exceeds context window) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/train/models/test_deepseek_v4_kernels.py | 801 | COMMENT | |
| LOW | tests/unit/train/models/test_deepseek_v4_kernels.py | 1041 | COMMENT | |
| LOW | tests/unit/train/models/test_deepseek_v4.py | 441 | COMMENT | |
| LOW | tests/unit/train/models/test_deepseek_v4.py | 601 | DOC_LENS = (14, 18) | COMMENT |
| LOW | examples/advanced/glm-4.5-air/swe-budget.toml | 1 | # v1 RL: GLM-4.5-Air (100B MoE) on the v1 `scaleswe` SWE taskset, bash harness on a prime sandbox | COMMENT |
| LOW | examples/advanced/glm-4.5-air/terminal.toml | 81 | # --- Train: tmax (per-task Docker image in a prime sandbox, rlm ipython) --- | COMMENT |
| LOW | examples/advanced/glm-4.5-air/terminal.toml | 141 | # name = "rlm" | COMMENT |
| LOW | examples/advanced/glm-4.5-air/swe.toml | 1 | # v1 RL: GLM-4.5-Air (100B MoE) on the v1 `scaleswe` SWE taskset, bash harness on a prime sandbox | COMMENT |
| LOW | examples/advanced/glm-4.5-air/swe-4-node.toml | 1 | # Budget variant of swe.toml: the same recipe on four nodes (1 train + 3 infer replicas, the | COMMENT |
| LOW | configs/advanced/deepseek-v4-flash/inference.toml | 1 | # Standalone vLLM serving pre-flight: does this cluster's vLLM serve the real DeepSeek V4 Flash | COMMENT |
| LOW | configs/advanced/deepseek-v4-flash/sft.toml | 1 | # Real-data SFT for deepseek-ai/DeepSeek-V4-Flash-0731 at full depth (all 43 layers, no | COMMENT |
| LOW | scripts/install_llmd.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/docker-entrypoint.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/docker-entrypoint.sh | 21 | # Slug + content hash for the checkout dir name. Slug keeps the path | COMMENT |
| LOW | …ages/prime-rl-configs/src/prime_rl/utils/validation.py | 141 | # the same SLURM allocation, so the nested inference inherits [slurm]. This is | COMMENT |
| LOW | src/prime_rl/_compat.py | 21 | COMMENT | |
| LOW | src/prime_rl/utils/act_offloading.py | 261 | # tensor. | COMMENT |
| LOW | src/prime_rl/dashboard/static/style.css | 761 | gap: 8px; | COMMENT |
| LOW | src/prime_rl/trainer/ckpt.py | 121 | # set_state_dict on the optimizer would route the loaded CPU values | COMMENT |
| LOW | src/prime_rl/trainer/parallel_dims.py | 1 | # Copyright (c) Meta Platforms, Inc. and affiliates. | COMMENT |
| LOW | …rime_rl/trainer/models/kernels/deepseek_v4/dsv4_mhc.py | 1 | # Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | COMMENT |
| LOW | …trainer/models/kernels/deepseek_v4/dsv4_sparse_attn.py | 1 | # Torch-facing layer for the DeepSeek V4 sparse attention kernels: the `prime_rl::dsv4_sparse_attn` | COMMENT |
| LOW | src/prime_rl/trainer/models/deepseek_v4/attention.py | 701 | raise ValueError(f"DeepSeek V4 cannot run the fused sparse-attention kernel: {blocker}") | COMMENT |
| LOW | …/prime_rl/trainer/models/glm4_moe/modeling_glm4_moe.py | 1 | # coding=utf-8 | COMMENT |
| LOW | src/prime_rl/trainer/models/llama/modeling_llama.py | 1 | # coding=utf-8 | COMMENT |
| LOW | …rime_rl/trainer/models/qwen3_moe/modeling_qwen3_moe.py | 1 | # coding=utf-8 | COMMENT |
| LOW | src/prime_rl/orchestrator/clients.py | 361 | # Retry on transient server errors (5xx, e.g. engine briefly unresponsive); | COMMENT |
| LOW | src/prime_rl/orchestrator/watcher.py | 81 | if next_step <= self.ckpt_step: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | src/prime_rl/utils/act_offloading.py | 214 | torch.autograd.variable.Variable._execution_engine.queue_callback(wait_and_del_remaining_references) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/unit/train/sft/test_sft_dataset.py | 33 | pytest.param('{"reasoning_effort": null}', id="json-string"), | CODE |
| HIGH | src/prime_rl/trainer/sft/data.py | 171 | returns ``True`` even when the value is null). Strip the noise before | STRING |
| HIGH | src/prime_rl/trainer/rl/annotations.py | 19 | positions outside that mask hold null, since a fold keeps sampled tokens only and a | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/chat.py | 70 | # Check if the non-whitespace starts with a thinking tag | COMMENT |
| LOW | scripts/chat.py | 92 | # Check if we might be building up to a thinking tag | COMMENT |
| LOW | scripts/chat.py | 117 | # Check if buffer might contain partial closing tag | COMMENT |
| LOW | .github/workflows/nightly_tests.yaml | 94 | # Set WANDB_MODE to online only if WANDB_API_KEY is available, otherwise set to offline | COMMENT |
| LOW | .github/workflows/cpu_tests.yaml | 38 | # Set WANDB_MODE to online only if WANDB_API_KEY is available, otherwise set to offline | COMMENT |
| LOW | src/prime_rl/trainer/lora.py | 159 | # Check if module is Linear or a supported expert class | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/chat.py | 234 | # Create the demo | COMMENT |
| MEDIUM | src/prime_rl/trainer/optim/offload.py | 1 | # This file is fully AI-generated. | COMMENT |
| MEDIUM | src/prime_rl/trainer/sft/train.py | 228 | # Create the iterator only after a potential resume: iter() forks workers with a | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/prime_rl/trainer/optim/offload.py | 1 | # This file is fully AI-generated. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/advanced/glm-5.3/README.md | 119 | For a fake-data dry run, append [`fake.toml`](sft/h200/fake.toml) instead. You can use the same dashboard to monitor the | CODE |
| LOW | examples/advanced/qwen3-30b-a3b/README.md | 125 | For a fake-data dry run, add [`fake.toml`](sft/h200/fake.toml) instead of the data overlay. `base.toml` sets `[slurm] pa | CODE |
| LOW | configs/README.md | 11 | (per-algorithm smokes), `fake/` (fake-data trainer/SFT smokes), and | CODE |
| LOW | …kages/prime-rl-configs/src/prime_rl/configs/trainer.py | 107 | """Replace MoE token-choice routing with a round-robin assignment so every expert sees an equal share. Intended for | STRING |
| LOW | skills/training/start-run/SKILL.md | 47 | - Multi-node SLURM stops after `.trainer.done` for trainer-only fake-data runs. Runs with inference stop after both `.tr | CODE |
| LOW | src/prime_rl/trainer/model.py | 213 | """Force MoE token-choice routers into round-robin assignment for fake-data smoke tests.""" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/advanced/glm-5.3/infer/pd-llmd.toml | 2 | # Step 3 / goal target. Topology mirrors the proven original glm5.1_llmd_inference | COMMENT |