Reinforcement Learning
Transformers
English
post-training
distillation
agentic-coding
composer-2.5
cursor
kimi-k2
grpo
dapo
diloco
openenv
trl
verl
research
methodology
Instructions to use Codeseys/composer-replication-framework with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Codeseys/composer-replication-framework with Transformers:
# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("Codeseys/composer-replication-framework", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Commit History
-
feat(hints): ADR-009 layered HintGenerator; accepted
Track B of the deep-work-loop. Extends hint_generator.py from a flat dispatch registry into a layered, cost-ordered HintGenerator behind a typed Protocol — the SDPO textual-feedback hint source (Composer 2.5's hint mechanism is unstated in every Cursor artifact; this is our reconstruction). Layers (tried cheapest-first, first non-None wins): 1. TemplateHintGenerator — the existing 5 templates (free, deterministic; byte-identical to dispatch(), preserved). 2. RawErrorHintGenerator — raw env/tool error text as the hint (free; covers any message-bearing site templates miss). SDPO "environment feedback as conditioning signal". 3. LLMJudgeHintGenerator — <=2-sentence corrective hint via an injected complete() callable (optional, OFF unless provided; in-memory + disk cache keyed on error-context hash; covers style/communication/effort). CompositeHintGenerator.as_collator_hook() returns a callable matching the existing CollatorConfig.hint_generator signature (…84740d4
-
Wave 18: 14 backlog items closed + 3-reviewer cross-family review
Polish wave grinding down 14 P0/P1/P2 items from Wave 7 audit + Wave 11/12 self-critique + Wave 16/17 deferrals. Two passes of 3-reviewer cross-family review (Gemini 3.1 Pro / Grok 4.3 / Sonnet 4.6) caught 6 real issues in round 1; round 2 verified all fixed plus 2 new flagged items addressed. Doc honesty (P0): - README.md scoping change at line 29: dropped "any HuggingFace base model" for the more honest "any HF causal LM with a chat template (Qwen, Llama, Mistral, DeepSeek, Phi, Gemma families)". Added qualifier that Spike 006 zeroed the SDPO channel due to shape misalignment, so SDPO is verified via the integration test suite + end-to-end examples, not Spike 006. - spikes/005-integrated-trainer-skeleton/verl_path/README.md NEW — explicit STATUS: design-only marker per Wave 7 audit Objection 3. Documents what to do before relying on the VeRL path (install Ray, run parity test against trl_path). Test honesty (P1): - spikes/006-real-hf-model-smoke/verdict.md numerical c…54efac8 -
Wave 16: install ergonomics + gradient evidence + SDPO end-to-end example
Five-track polish wave with mandatory cross-model adversarial review (deepseek-v4-pro + gemini-3.1-pro-preview, route-fidelity-verified via direct-urllib scatter; reviewers caught 2 real bugs that BOTH made it into the staged diff and would have shipped without the review): Wave 16a — Install ergonomics (extras pinning) pyproject.toml dropped three extras whose lower bounds were unsatisfiable on public PyPI and would have blocked any fresh user: - monarch>=0.4.1: PyPI 'monarch' tops out at 0.1.11 and is unrelated to Meta's actor framework; the real Monarch ships as torchmonarch-nightly with platform constraints. - prime-rl>=0.5: 'prime-rl' is not registered on PyPI at all; Prime Intellect publishes from source only. - data-juicer>=1.0: 'data-juicer' is not registered on PyPI; the closest match (py-data-juicer) has broken transitive deps. All three integrations import lazily, so the framework still loads cleanly without them. docs/TROUBLESHOO…c0a5ab7 -
Wave 15: 4-angle multi-model self-critique caught 2 math BLOCKERs in primary loss kernels; fixed against upstream byte-for-byte + GSM8K example + ergonomics
PHASE 15a: 4 parallel adversarial reviewers, each with different framing to maximize independent-angle coverage: - MATH (Opus 4.7): cloned upstream OPSD/TAID/PRIME-RL/SimPO, did line-by-line diff. Found 2 BLOCKERs all 8+ prior reviewers missed. - TESTS (Opus 4.7): scrutinized 3 high-stakes test files for weak assertions. Found PRIME-RL parity test silently never runs; bit-exact test uses allclose; entropy-OPD test is pure smoke. - DOCS (Opus 4.7): audited 6 major docs + ADRs. Found test-count drift (77/107/124 vs 145), compose_loss kwarg drift, stale "Deferred to Wave 14" claim, PRIME-RL test count 10 vs 16. - USER-JOURNEY (Opus 4.7): walked "RL-finetune Qwen-7B on GSM8K" end-to-end. Scored framework 2.4/5 with Real-Task-Path = 1/5. #1 friction: NO GSM8K example anywhere. All 4 reports saved to /tmp/wave15_*.md. Headline: math reviewer's upstream-clone-and-diff approach caught what paper-level review missed. PHASE 15b: synthesized findings into 5-task fix scatter. PHA…e5add15 -
Wave 14: close every Wave 13 review finding + 4 documentation files; Wave 14b: real PRIME-RL parity + multi-process DiLoCo convergence
PHASE A: 4 parallel impl subagents closed every Wave 13 cross-model review item. T1 \u2014 compose_loss integration (closes W13 BLOCKER 2): - Added `dpo_variant: 'dpo'|'simpo'`, `sdpo_wrapper: 'none'|'taid'|'entropy_opd'`, `taid_schedule_step`, `taid_total_steps` plus 5 tuning kwargs - 11 new integration tests in composer_replication/tests/test_compose_loss_integration.py - Bit-exact reproduction of legacy compose_loss output when defaults preserved - All 38 spike-005 tests still pass T2 \u2014 replaysim DJ adapter reshape (closes W13 Suggestion 3): - _dpo_pair_to_dj_record now emits BOTH flat strings AND chat-messages for dual-shape compatibility with data-juicer's text ops - _dj_record_to_normalized round-trips both shapes - default.yaml fixed: text_keys plural \u2192 text_key singular (caught a related bug in the same op set) - Real data-juicer e2e test runs DefaultExecutor on a 3-record fixture - 15 tests (was 9) T3 \u2014 MockManager DiLoCo integration (closes W13 Suggest…d9dd3a5