CoolFace
Datasetpublic

nanoswe/swesmith-qwen3.6-35b-a3b

SWE-smith trajectories from Qwen3.6-35B-A3B Multi-turn coding-agent trajectories (issue → tool-using rollout → patch) produced by Qwen3.6-35B-A3B on SWE-smith tasks, stored untokenized. This is the exact SFT corpus used for the harbor arm of the nanoswe teacher-distillation experiments. 101,901 trajectories over 45,242 unique SWE-smith task instances (3 sampled rollouts per task, ~2.25 surviving filtering), 53 parquet shards, ~1.4 GB. ≈1.96B training tokens = exactly one epoch… See the full description on the dataset page: https://huggingface.co/datasets/nanoswe/swesmith-qwen3.6-35b-a3b.

sourceHugging Faceupdated 1mo agoView on Hugging Face
0likes404downloads
Dataset Card

SWE-smith trajectories from Qwen3.6-35B-A3B

Multi-turn coding-agent trajectories (issue → tool-using rollout → patch) produced by Qwen3.6-35B-A3B on SWE-smith tasks, stored untokenized. This is the exact SFT corpus used for the harbor arm of the nanoswe teacher-distillation experiments.

  • —101,901 trajectories over 45,242 unique SWE-smith task instances (3 sampled rollouts per task, ~2.25 surviving filtering), 53 parquet shards, ~1.4 GB.
  • —≈1.96B training tokens = exactly one epoch (measured packed, SmolLM3 tokenizer, chat-rendered; ~72 messages and ~69k characters per trajectory).
  • —51.2% of graded trajectories resolve the task — see resolved / graded below.

Schema

columntypedescription
messageslist<struct<role, content>>the trajectory as a chat conversation: system, user (task), then alternating assistant/user (observation), ending on assistant
patchstringthe final diff the trajectory produced (non-empty for every row)
modelstringgenerator tag — constant harbor-v2
instance_idstring<swesmith_instance_id>__s{0,1,2}; the __sN suffix is the sample index, so the three rollouts of one task share a prefix
gradedboolthe patch was actually run against the SWE-smith test harness
resolvedboolthe patch passed the harness (F2P + P2P). Only meaningful where graded == True
verifiedboollegacy, constant `False` — kept only for schema compatibility with `nanoswe/nanoswe-trajs-260812`. Use `resolved`.

Correctness

`resolved == False` is not the same as "failed" — 9.3% of rows were never graded (the grading sweep did not cover every rollout). Always pair the two flags:

rowsshare
graded & resolved47,27346.4%
graded & failed45,10544.3%
ungraded (label unknown)9,5239.3%
total101,901

Per sample:

samplerowsgradedresolved (of graded)
__s034,06532,878 (96.5%)16,336 (49.7%)
__s134,03629,739 (87.4%)15,430 (51.9%)
__s233,80029,761 (88.1%)15,507 (52.1%)
all101,90192,378 (90.7%)47,273 (51.2%)

Failed rollouts are deliberately kept: they are useful for RFT/DPO-style setups and for studying failure modes. Filter on resolved if you only want successful ones.

Generation

PolicyQwen3.6-35B-A3B, SFT'd on a filtered SWE-smith curation before rollout (not the stock instruct model)
Scaffoldmini-swe-agent, bash-only, THOUGHT: + ``` `bash ``` action format
Samplingtemperature 0.7, thinking disabled, 3 independent samples per task
TasksSWE-smith smith_harbor train split, instances 0–56,638
ServingvLLM, per-instance Apptainer sandboxes on an HTCondor cluster

Filtering

Applied in order, from raw rollouts to the shards here:

  1. 1.Submitted only — rollouts that terminated without producing a patch are dropped.
  2. 2.Patch hygiene — cheat-pattern rollouts (e.g. recovering the fix from git history rather than writing it) are removed at consolidation.
  3. 3.32k fit — trajectories whose full chat render exceeds 32,768 tokens are dropped (Qwen3 tokenizer), so every row trains at a 32k sequence length without truncation.

The system message is a fixed scaffold prompt, identical across rows; downstream nanoswe training strips it and unwraps the <pr_description> envelope in messages[1].

Caveats

  • —Task-level correlation. Up to 3 rollouts share a task instance. Split on the instance_id prefix (strip __sN), not on rows, or held-out sets will leak.
  • —`resolved` is trajectory-level, not instance-level: a task can be resolved by one sample and failed by another. That disagreement is signal, not noise.
  • —Teacher is fine-tuned, so this corpus reflects an already SWE-adapted policy — it is not a measurement of stock Qwen3.6-35B-A3B's agentic ability.
  • —SWE-smith tasks are synthetic (bugs injected into real repos), so patch style is narrower than real-world PRs.

Loading

python
from datasets import load_dataset

ds = load_dataset("nanoswe/swesmith-qwen3.6-35b-a3b", split="train")
correct = ds.filter(lambda r: r["resolved"])                 # 47,273 rows
failed  = ds.filter(lambda r: r["graded"] and not r["resolved"])  # 45,105 rows

Related