252 Commits
Author SHA1 Message Date
Yinjie Wang f48ac358ad Add files via upload 2026-05-22 23:17:31 -05:00
Yinjie Wang f4b22f669d Update README.md 2026-05-22 23:17:14 -05:00
Yinjie Wang ffdebf1d46 Merge pull request #114 from Gen-Verse/fix/topk-opd-imports
Fix top-k OPD imports for OpenClaw combine
2026-05-11 23:41:25 -05:00
yinjjiew e91bbed811 Fix top-k OPD imports for OpenClaw combine
Keep the top-k OPD helper modules importable from openclaw-combine and avoid enabling incompatible full recompute for Qwen3-VL deepstack bridge providers.
2026-05-12 04:30:21 +00:00
Yinjie Wang d69351a8c8 Update README.md 2026-05-07 04:30:59 -05:00
Yinjie Wang c0bb84f362 Add files via upload 2026-05-07 04:30:22 -05:00
Yinjie Wang 150a466930 Delete assets/openclawrl1performance.png 2026-05-07 04:29:56 -05:00
Yinjie Wang 0116be3577 Delete assets/example.pdf 2026-05-07 04:29:48 -05:00
Yinjie Wang 1d36ebaa6b Update image format in README for evaluation overview 2026-05-07 04:28:18 -05:00
Yinjie Wang 386ccf2d47 Update README.md 2026-05-07 04:24:38 -05:00
Yinjie Wang fcf53ee005 Add files via upload 2026-05-07 04:24:09 -05:00
Yinjie Wang 2475c1d515 Update README.md 2026-05-07 04:12:08 -05:00
Yinjie Wang 1368c5b20d Merge pull request #110 from Gen-Verse/openclaw-test-three-phase-flow
Add TA phase to OpenClaw test flow
2026-05-07 04:08:38 -05:00
yinjjiewandCursor 37b60e02af Add TA phase to OpenClaw test flow
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-07 04:06:43 -05:00
Yinjie Wang 9e0c5b1ddd Update OpenClaw setup instructions in README
Removed reference to local file-backed skill authoring in OpenClaw runtime.
2026-05-07 03:45:21 -05:00
Yinjie Wang 73a1a02e1f Update README.md 2026-05-07 03:44:05 -05:00
Yinjie Wang a9fc1840cc Update README.md 2026-05-07 03:43:10 -05:00
Yinjie Wang 92c247bd8f Merge pull request #109 from Gen-Verse/openclaw-topk-opd-main
feat(openclaw): add hybrid top-k OPD training
2026-05-07 03:16:55 -05:00
yinjjiew d7b0c689b9 feat(openclaw): add hybrid top-k OPD training
Document and wire the top-k hint-selection objective so OpenClaw can train with hybrid GRPO and OPD signals while supporting OPD-only and GRPO-only ablations.
2026-05-07 08:13:17 +00:00
Yinjie Wang 6b4058ac7f Add files via upload 2026-04-29 19:16:32 -05:00
Yinjie Wang f2b18ce4ab Merge pull request #106 from Gen-Verse/yinjjiew/openclaw-combine-topk-select
openclaw-combine: multi-candidate top-K OPD select path
2026-04-27 22:00:10 -05:00
yinjjiew 386bdf4510 openclaw-combine: multi-candidate top-K OPD select path
Adds the multi-candidate variant of the openclaw-combine pipeline that
uses the slime retool-hybrid-select infra (PR #105) to drive K teacher
forwards per Sample, with in-kernel k* selection over the 9-cell
(--distill-subset-mode x --hint-selection) matrix.

Files added (all under openclaw-combine/):

* openclaw_combine_select_api_server.py
  OpenClawCombineSelectAPIServer subclass of OpenClawCombineAPIServer.
  Three-case dispatch (OPD-only / OPD+RL / RL-only) is preserved; the
  OPD evaluate step keeps ALL accepted hints (deduped, shortest-first,
  capped at OPENCLAW_TOPK_MAX_CAND) and ships them as
  sample.teacher_tokens_candidates instead of selecting a single hint.
  RL-only turns ship a degenerate K_i=1 un-enhanced candidate so the
  multi-cand pipeline always has something to gather.

* openclaw_combine_select_rollout.py
  Drop-in alternative to openclaw_combine_rollout.generate_rollout_*;
  same worker / queue / drain plumbing, swaps in
  OpenClawCombineSelectAPIServer. Module-level singleton state is
  intentionally separate so both rollout entry points can co-exist on
  the same launcher PYTHONPATH.

* openclaw_topk_select_loss.py
  Combined GRPO + top-K OPD loss with the 9-cell selection matrix.
  Reuses _opd_one_sample / _gather_along_K /
  _overlap_count_per_token / _select_k_star_per_token from
  hint_opt_exp so the math stays identical to retool / hint_opd_exp.
  Per-Sample sequence_optimal under openclaw-combine IS per-PRM-step
  k* under the dynamic-history paradigm (one Sample per session-turn).

* run_qwen3_4b_openclaw_topk_select.sh
  Launcher: 4 actor + 2 rollout + 1 SGLang PRM + 1 Megatron PRM
  teacher GPUs. Forces OPENCLAW_COMBINE_OPD_TEACHER_SOURCE=megatron
  (the topk-select kernel needs per-cand top-K log-probs / indices,
  which the inference-side teacher path does not produce). Uses raw
  torch_dist load (no bridge) for both student and teacher.

No changes to existing code paths; the legacy combine_loss /
openclaw_combine_api_server / openclaw_combine_rollout entries are
untouched. Activation is fully gated by the launcher's choice of
--rollout-function-path / --custom-loss-function-path /
--custom-generate-function-path.

Made-with: Cursor
2026-04-28 02:57:28 +00:00
Yinjie Wang 01301eef4a Merge pull request #105 from Gen-Verse/yinjjiew/slime-retool-hybrid-select
slime: multi-candidate PRM teacher (retool-hybrid-select)
2026-04-27 21:17:55 -05:00
yinjjiew 81f541405b slime: multi-candidate PRM teacher (retool-hybrid-select)
Adds the multi-candidate teacher path used by
toolcall-rl/generate_with_retool_hybrid_select.py: each sample carries
K_i hint-enhanced token sequences (variable across samples), K teacher
forwards run in series, and per-position top-K selection picks the best
candidate per token / per sample.

Changes by file:

* slime/slime/utils/arguments.py
  - --hint-m: number of PRM hint-generation rollouts per step (falls back
    to --prm-m).
  - --hint-selection {shortest,token_optimal,sequence_optimal}:
    legacy single-forward 'shortest' vs new K-forward overlap-based
    selectors. 'student' subset-mode is intentionally degenerate here.

* slime/slime/ray/rollout.py
  - RolloutManager: transport per-sample teacher_tokens_candidates
    (list[list[Tensor]]) and teacher_total_lengths_candidates through
    the rollout payload alongside the existing teacher_tokens fields.

* slime/slime/backends/megatron_utils/actor.py
  - compute_prm_teacher_log_probs dispatches to a new
    _compute_prm_teacher_log_probs_multi_cand path when
    teacher_tokens_candidates is present; runs K_max forwards (cyclic-
    padded to K_max) and stacks per-candidate outputs along a leading
    K axis, exposed under *_cand keys, with prm_teacher_K_per_sample /
    prm_teacher_K_max for downstream masking.
  - Single-candidate path is byte-identical when no _cand fields are set.

* slime/slime/backends/megatron_utils/loss.py
  - emit_native_topk_indices(K) context manager: in the same
    gather-at-indices forward, also compute the candidate's *own* native
    top-K indices and return them under topk_native_indices, so the
    K-loop can carry per-candidate selection signals to the loss with
    no extra teacher pass. Default disabled (K=0) preserves existing
    behavior bit-for-bit.

* slime/slime/backends/megatron_utils/data.py
  - log_rollout_data: skip per-sample mean logging for the new
    *_cand keys and the candidate token/length lists.

* slime/slime/backends/megatron_utils/model.py
  - train_one_step: include the new prm_teacher_*_cand and
    step_wise_step_token_spans keys in the keep-as-list set when
    repacking the rollout batch.

Made-with: Cursor
2026-04-28 02:15:19 +00:00
Yinjie Wang a58ec520d2 Refactor OpenClaw training script comments and paths 2026-04-21 00:30:51 -05:00
Yinjie Wang 50e092ab37 Update README with qwen3.5 usage instructions
Add instructions for using qwen3.5 and converting to torch list.
2026-04-21 00:29:43 -05:00
Yinjie Wang 2035e75040 Update README.md 2026-04-21 00:15:33 -05:00
Yinjie Wang bec16108b1 Add files via upload 2026-04-21 00:07:27 -05:00
Yinjie Wang 959fa7b03d Update paths and remove deprecated variables in script 2026-04-21 00:06:10 -05:00
Yinjie Wang 2292b538f8 Merge pull request #96 from zhuchichi56/pr-openclaw-rl-oel
feat: add openclaw-rl/oel module for OEL (Online Experiential Learning)
2026-04-21 00:02:27 -05:00
Yinjie Wang 2b6e33ec1e Merge pull request #99 from Gen-Verse/yinjjiew/slime-prm-teacher-topk-opd
slime: Qwen3.5, infra fix, PRM teacher with separate architecture, top-K OPD distillation
2026-04-21 00:01:54 -05:00
yinjjiew 177747e461 slime: PRM teacher with separate architecture, top-K OPD distillation, and Qwen3.5 robustness fixes
Core slime changes that unblock running a different-sized PRM teacher next
to the student (e.g. Qwen3-8B teacher with Qwen3-4B student) and add a
token-level top-K OPD distillation path. Also bundles several Qwen3.5
robustness fixes and an SGLang router fast-fail.

PRM teacher and top-K OPD
- actor.py: copy architectural fields (num_layers/hidden_size/ffn/heads/
  query_groups/kv/RoPE/MoE/MLA/MTP/vocab) from the teacher's torch_dist
  common.pt onto a deepcopied args namespace so the teacher can be a
  different model size than the student's MODEL_ARGS without going through
  --megatron-to-hf-mode bridge. Adds compute_student_topk and
  gather_at_indices wired into ray/actor_group.py.
- loss.py: opt-in emit_topk_logprobs context manager;
  _vocab_parallel_topk_log_probs and gather_log_probs_at_indices for
  per-token top-K extraction. Default actor/old_actor/ref forwards are
  byte-identical to before.
- arguments.py: --prm-teacher-rotary-base, --prm-teacher-megatron-to-hf-mode,
  --prm-teacher-hf-checkpoint, --distill-subset-mode {student,teacher,overlap}.
- train_async.py: three-pass dispatch when distill_topk>0 with
  subset_mode=student (student top-K, teacher gather, student loss).
- data.py / model.py: carry prm_teacher_topk_log_probs / topk_indices /
  topk_log_probs through rollout logging and train_one_step packing.

Bridge / raw mode parity and OOM fix
- model_provider.py: forward CLI flags into bridge providers
  (recompute, dropout, attention/dropout/SwiGLU/RoPE fusion, dtype, CP)
  so bridge mode does not silently keep HF-config defaults
  (e.g. attention_dropout=0.1) and cause train-vs-inference skew.
- model.py: pass fp32_output=False on the train forward to match the
  forward-only path; without this, packing 2 samples into a 16K
  microbatch produces a 7.58 GiB fp32 logits allocation that OOMs an
  80GB GPU.

Qwen3.5 robustness
- backends/sglang_utils/qwen3_5.py: drop the .self_attn. prefix from
  Megatron-emitted weight names and remove the erroneous model. re-prefix
  so weights load correctly into SGLang's Qwen3.5 full-attention layer
  (qkv_proj/o_proj/q_norm/k_norm registered as direct attributes of the
  decoder layer, not under self_attn).
- slime_plugins/models/hf_attention.py: _load_hf_config JSON fallback for
  Qwen3.5 / Qwen3.5-VL checkpoints whose model_type is not yet registered
  in transformers; new _AllGatherForDuplicatedComputation autograd Function
  whose backward returns the local slice (avoids the world_size gradient
  inflation when wrapping duplicated computation); pass
  tensor_parallel_output_grad=False on the SP gather of hidden_states for
  hybrid linear-attention layers.
- slime_plugins/models/qwen3_5.py: re-export _load_hf_config.

SGLang router fail-fast
- utils/http_utils.py: stop drowning logs after N consecutive
  no_available_workers / circuits-open 503s from the router; tunable via
  SLIME_HTTP_PERMANENT_FAIL_FAST (default 3). Also throttles retry log
  spam to attempts {1,5,10,25,50}.

Launch scripts (Qwen3.5)
- scripts/run-qwen35-4B.sh: Qwen3.5 4B training launcher.
- scripts/models/qwen3.5-9B-VL.sh, qwen3.5-27B-VL.sh: Qwen3.5 VL configs.
2026-04-21 04:57:16 +00:00
Yinjie Wang d3cbdfa675 Update generate_with_retool.py 2026-04-20 23:28:21 -05:00
zhuchichi56 a111c686b0 feat: add openclaw-rl/oel module for OEL (Online Experiential Learning)
Online Experiential Learning with On-Policy Context Distillation for personalized agents.

- Experience-augmented teacher distillation (top-K reverse KL)
- Single-session and cross-session experience modes
- Post-hoc extraction + teacher replay (all turns benefit from full-session experience)
- Qwen3-1.7B training script + GSM8K hard problem eval framework
- Peak accuracy: 46.0 (+19.4 over baseline)
2026-04-20 13:59:26 +00:00
Yinjie Wang 881fd5039f Update README.md 2026-04-19 13:38:06 -05:00
Yinjie Wang d9741a962d Merge pull request #93 from Jinxiaolong1129/sync-swe-rl-to-main
Add 4b train and eval script
2026-04-18 14:27:42 -05:00
jinxiaolong1129 593b44f567 sanitize swe-rl 4b scripts and document required env overrides 2026-04-18 19:23:47 +00:00
jinxiaolong1129 836e63b3b4 remove obsolete swe-rl eval directory
Drop legacy eval scripts under swe-rl/eval so the branch only keeps the new unified swe-rl evaluation flow.
2026-04-18 16:31:02 +00:00
jinxiaolong1129 410c8c1723 refactor swe-rl default 4b workflow and docs cleanup 2026-04-18 15:43:36 +00:00
Yinjie Wang ba17865d37 Update gui_qwen3vl_8b_rl.sh 2026-04-16 16:13:36 -05:00
Yinjie Wang 6c79eed752 Merge pull request #89 from xuyangc03/feature/terminal-rl/rollout-pipeline-improvement
feat (terminal-rl): clean up docs, imports, and naming
2026-04-16 15:55:46 -05:00
Xuyang Chen ccb79a959c Update README.md 2026-04-16 14:11:12 -04:00
Xuyang Chen e2bd965097 Remove unused import and fix separator 2026-04-16 14:09:54 -04:00
Xuyang Chen c338c4c7b6 Revert rollout_runner naming back to agent_runner and RolloutRunner back to AgentRunner 2026-04-16 14:09:54 -04:00
Yinjie Wang a922984eb7 Update README to clarify results.txt details
Clarified the description of results.txt and provided an example link.
2026-04-15 22:37:49 -05:00
Yinjie Wang 60d735e7da Update README.md 2026-04-15 22:34:09 -05:00
Ling Yang deca0368c1 Update README.md 2026-04-16 08:10:41 +08:00
Yinjie Wang 193de867c9 Revise Track 2 release notes in README
Updated Track 2 release notes and added support for more cloud services.
2026-04-15 17:03:53 -05:00
Yinjie Wang 1473e06556 Update README.md 2026-04-15 16:49:22 -05:00
Yinjie Wang 24176bd4e4 Merge pull request #86 from yisu201506/firetitan-integration
Add Firetitan Training SDK integration for remote RL training
2026-04-15 16:39:04 -05:00