Data Forge & Quality Moat (v0.47.0)
soup data forge — synthetic data pipeline
Chunk → judge → active-prune → JSONL with provenance.
soup data forge --docs ./docs --output ./synth.jsonl \
--task sft \
--target-rows 5000 \
--teacher <model> \
--provenance ./provenance.jsonl--task picks the shape of what comes out: sft, preference or tool. --provenance writes a separate manifest of {source_doc, judge_id, chunk_id, filter_score} so a generated row can be traced back to the document it came from. The rest tune the pipeline: --uncertainty-threshold for the active-prune step, --max-chunk-chars for chunking, --judge-provider / --judge-model / --judge-base-url for the judge, and --hub hf|modelscope|modelers for where the teacher is pulled from.
Each row carries provenance (source doc, chunk offset, judge score).
soup data score — composite quality scorecard
PII + toxicity + langdetect + educational + decontamination.
soup data score --input ./train.jsonl --benchmarks gsm8kEach filter is also addressable individually:
soup data decontaminate— drop rows overlapping public benchmarks (n-gram heuristic)soup data toxicity— keyword baseline today; a Llama-Guard backend is named in the source but is still unshipped as of v0.74.0soup data langdetect— 2-letter language code per rowsoup data pii— flag email / phone / SSN / credit-card patternssoup data educational— educational-value score per row [0, 1]
Soup is free and Apache-2.0. If it saved you a training run, starring the repo costs nothing and helps most. You can also fund the GPU time behind the work a 4 GB laptop cannot reach.