Mahmoud-queens/swe-agent-subset-selection-vectors
Trajectory embeddings for "Trajectory-Aware Benchmark Subset Selection for Cost-Efficient Software Engineering Agent Regression Testing" This repository holds the embeddings of sanitized agent trajectories used in the paper named above. They are the input of the selection stage of the paper's replication package: https://github.com/SAILResearch/swe-agent-subset-selection Publishing the vectors spares users the embedding step, which takes between several hours and several days… See the full description on the dataset page: https://huggingface.co/datasets/Mahmoud-queens/swe-agent-subset-selection-vectors.
Trajectory embeddings for "Trajectory-Aware Benchmark Subset Selection for Cost-Efficient Software Engineering Agent Regression Testing"
This repository holds the embeddings of sanitized agent trajectories used in the paper named above. They are the input of the selection stage of the paper's replication package: https://github.com/SAILResearch/swe-agent-subset-selection
Publishing the vectors spares users the embedding step, which takes between several hours and several days depending on the dataset.
What the vectors are
Each trajectory (one agent run on one benchmark instance) was parsed into a unified step schema and sanitized (outcome-revealing and repository-specific terms masked). Every step was then embedded with nomic-ai/nomic-embed-text-v1.5 (revision e5cf08aadaa33385f5990def41f7a23405aec398, model code nomic-ai/nomic-bert-2048 at 7710840340a098cfb869c4f65e87cf2b1b70caca), 768 dimensions, float32.
There are two files per trajectory:
..._ts.npy: time-series matrix, steps x 768;..._pooled.npy: pooled vector of 3,840 values (first, middle and last step, then the mean and the standard deviation over steps).
File names are <OUTCOME>_<repository>_<trajectory id>_{ts,pooled}.npy, with OUTCOME = SUCCESS or FAIL (whether the run resolved the instance). The replication package reads the outcomes from this prefix, so the files must not be renamed.
Datasets
Files
Each <dataset>_vectors.md5 lists the md5 of every file inside the corresponding archive, one line per file.
Layout inside the archives
<dataset>_vectors.tar.gz
vectors/pooled/<run>/*.npy multi_model, multi_agent: one folder per run
vectors/timeseries/<run>/*.npy
vectors/{pooled,timeseries}/<N>_runs/run_<i>/*.npy single_setup: run groups N = 5..10
features/trajectory_features.npz multi_model, multi_agent: ten trajectory features
features/trajectory_features_meta.json (used by some clustering configurations)
single_setup_repository_map.json trajectory id -> instance id, repository, outcomeUse with the replication package
From the root of the replication package:
python pipeline/fetch.py --dataset multi_model --vectors # or multi_agent, single_setup
python reproduce.py pipeline --dataset multi_model --rq 2fetch.py --vectors downloads the archive and its manifest, unpacks it to data/<dataset>/, checks every file against the manifest and, for singlesetup, places the repository map as `data/singlesetup/repository_map.json. reproduce.py pipeline` then runs the selection and evaluation stages on these vectors.
Use without the replication package
import numpy as np
pooled = np.load("vectors/pooled/<run>/SUCCESS_<repository>_<trajectory id>_pooled.npy") # shape (3840,)
steps = np.load("vectors/timeseries/<run>/SUCCESS_<repository>_<trajectory id>_ts.npy") # shape (n_steps, 768)Licence and citation
The raw trajectories come from the sources listed above and remain under their terms. If you use these vectors, please cite the paper by its title; the full reference will be added on publication.
