Add README for dt-4bT-mixed-s50
Browse files
README.md
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
base_model: Qwen/Qwen3-4B-Thinking-2507
|
| 4 |
+
tags:
|
| 5 |
+
- multi-turn-agent
|
| 6 |
+
- search-r1
|
| 7 |
+
- cross-domain-transfer
|
| 8 |
+
- sft
|
| 9 |
+
pipeline_tag: text-generation
|
| 10 |
+
---
|
| 11 |
+
|
| 12 |
+
# wenyii/dt-4bT-mixed-s50
|
| 13 |
+
|
| 14 |
+
**Multi-turn agent SFT on Qwen3-4B-Thinking-2507** — `mixed` arm,
|
| 15 |
+
checkpoint at training step `s50`.
|
| 16 |
+
|
| 17 |
+
Part of an ICLR-target analysis study on cross-domain transfer of multi-turn
|
| 18 |
+
agent SFT (Qwen3-4B-Thinking, dual-terminator recipe). Sister checkpoints in
|
| 19 |
+
the same family:
|
| 20 |
+
|
| 21 |
+
| Arm | Steps available |
|
| 22 |
+
|---|---|
|
| 23 |
+
| `r2e` (code) | `s50`, `s100`, `ep1` (=s218) |
|
| 24 |
+
| `search` | `s50`, `s100` |
|
| 25 |
+
| `mixed` (50/50) | `s50`, `s100` |
|
| 26 |
+
|
| 27 |
+
Full step curves (s50/s100/s150/s200/ep1/ep2) available on request.
|
| 28 |
+
|
| 29 |
+
## Training recipe ("dt" = dual-terminator)
|
| 30 |
+
|
| 31 |
+
- **Base**: `Qwen/Qwen3-4B-Thinking-2507`
|
| 32 |
+
- **Data**: 3500 multi-turn trajectories per arm
|
| 33 |
+
- `r2e`: code-agent trajectories (R2E / SWE-Gym style, ending in
|
| 34 |
+
`<tool_call>{finish}`)
|
| 35 |
+
- `search`: search-agent trajectories (OpenSeeker + NQ-style, ending
|
| 36 |
+
in `Final answer: X`)
|
| 37 |
+
- `mixed`: 50/50 shuffle of r2e + search
|
| 38 |
+
- **Recipe diff vs. v5 (one-line edit)**: for the r2e arm, append
|
| 39 |
+
`Final answer: <pr_description-headline, ≤200 chars>` epilogue AFTER
|
| 40 |
+
the standard `<tool_call>{finish}`. This dual-terminates the trajectory
|
| 41 |
+
so a downstream literal-EM evaluator (Search-R1) can still extract the
|
| 42 |
+
final answer.
|
| 43 |
+
- **Optimizer**: LR 1e-5, cosine schedule, warmup 0.03, weight decay 0,
|
| 44 |
+
grad clip 1.0, batch 16, FSDP1 + Liger + flash-attn (bf16).
|
| 45 |
+
- **Saves**: steps 50, 100, 150, 200, 218 (=ep1), 436 (=ep2 for
|
| 46 |
+
search/mixed; r2e capped at ep1).
|
| 47 |
+
|
| 48 |
+
## How to use
|
| 49 |
+
|
| 50 |
+
```python
|
| 51 |
+
from transformers import AutoModelForCausalLM, AutoTokenizer
|
| 52 |
+
tok = AutoTokenizer.from_pretrained("wenyii/dt-4bT-mixed-s50")
|
| 53 |
+
mdl = AutoModelForCausalLM.from_pretrained("wenyii/dt-4bT-mixed-s50", torch_dtype="bfloat16")
|
| 54 |
+
```
|
| 55 |
+
|
| 56 |
+
Or with vLLM:
|
| 57 |
+
|
| 58 |
+
```bash
|
| 59 |
+
python -m vllm.entrypoints.openai.api_server \
|
| 60 |
+
--model wenyii/dt-4bT-mixed-s50 --port 8000 --tensor-parallel-size 1
|
| 61 |
+
```
|
| 62 |
+
|
| 63 |
+
For full multi-turn agent inference (retriever + tool-call parsing + answer
|
| 64 |
+
cascade extractor), see the reference SR1 7-bench eval pipeline
|
| 65 |
+
distributed alongside the paper.
|
| 66 |
+
|
| 67 |
+
## Headline numbers (Search-R1 7-bench, N=500 per bench, mml=16384)
|
| 68 |
+
|
| 69 |
+
dt-r2e-s100 reaches **EM 0.344 / F1 0.430** on SR1 7-bench, vs Qwen3-4B-Thinking-2507
|
| 70 |
+
base + `Final answer:` prompt nudge anchor at EM 0.302 / F1 0.389. See the
|
| 71 |
+
companion paper for the full 7-bench / per-arm / multi-seed analysis.
|
| 72 |
+
|
| 73 |
+
## Citation
|
| 74 |
+
|
| 75 |
+
```bibtex
|
| 76 |
+
@inproceedings{wenyimo2027dt4b,
|
| 77 |
+
title={...},
|
| 78 |
+
author={Mo, Wenyi and ...},
|
| 79 |
+
booktitle={ICLR 2027},
|
| 80 |
+
year={2027}
|
| 81 |
+
}
|
| 82 |
+
```
|