Views
No views yet
| trajectories | composition | |
|---|---|---|
| Arm A (baseline) | 2,040 | 100% fully-passing |
| Arm B (this model) | 2,040 | 1,255 fully-passing + 785 imperfect (38%) |
<tool_call>{"name": "bash", ...}</tool_call>
protocol defined in the system prompt (not native function calling), and tool
output returns in a tool role. Loss is computed on assistant turns only.| hyperparameter | value |
|---|---|
| learning rate | 5e-6 |
| lr scheduler | cosine, warmup ratio 0.1 |
| weight decay | 0.0 |
| optimizer | AdamW |
| epochs | 5 |
| per-device batch size | 1 |
| gradient accumulation | 8 |
| effective batch size | 64 |
| max sequence length | 20,000 |
| precision | bf16 |
| attention | sdpa |
1from transformers import AutoModelForCausalLM, AutoTokenizer
2
3model_id = "March07/Qwen2.5-Coder-32B-terminal-agent-sft-mix2040"
4tok = AutoTokenizer.from_pretrained(model_id)
5model = AutoModelForCausalLM.from_pretrained(model_id, dtype="bfloat16", device_map="auto")
6
7messages = [
8 {"role": "system", "content": "You are an expert technical assistant with access to bash tools."},
9 {"role": "user", "content": "List the files in /workspace."},
10]
11inputs = tok.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
12out = model.generate(inputs, max_new_tokens=512)
13print(tok.decode(out[0][inputs.shape[-1]:], skip_special_tokens=True))