Independent filters
The layers run in a fixed order. A document rejected at layer B is never scored at layer F, so cost and evidence both stay traceable.
Services · curation
Quality comes from a sequence of independent filters — each with a defect type, a decision, a metric and a machine-readable reason code.
A single “cleaning” box hides which defect was removed and why. Splitting it into independent layers means every decision is attributable — and every threshold is negotiable.
The layers run in a fixed order. A document rejected at layer B is never scored at layer F, so cost and evidence both stay traceable.
Keep and reject are both written to the record, with the layer, the metric and a machine-readable reason code.
Thresholds come from the Dataset Specification — a pretraining corpus and a preference dataset do not share a recipe.
Rejection summary included; record-level rejected data is delivered only where source rights and the project agreement permit. Removals are aggregated by reason code, so they can be reviewed rather than trusted.
A and E are shown expanded; each band opens into defect type, a keep/reject pair, who decided, the metric and the reason code.
LAYER_A_ENCODINGLAYER_B_BOILERPLATELAYER_C_LOWQUALDUP_NEAR_PARAPII_EMAIL_REDACTEDLAYER_F_OFFDOMAINOrder matters as much as the thresholds: a cheaper filter never runs after a more expensive one, and clustering happens once.
Structured identifiers — emails, phone numbers, account and document numbers — are matched by rule, not by model confidence.
Project-specific categories are added per Dataset Specification and versioned with the pipeline.
A stratified sample of redactions is reviewed, and the residual risk is stated in the dataset card rather than implied away.
The same six layers, three different settings. This is why the page shows a method and not a number.
| Layer | Pretraining corpus | Parallel corpus | Post-training dataset |
|---|---|---|---|
| Layer B boilerplate | Aggressive — volume tolerates loss | Moderate — alignment needs context | Strict — prompts must read cleanly |
| Layer C linguistic | Threshold on document level | Per side, both languages scored | Per turn, plus style compliance |
| Layer D duplication | Near-duplicate clustering at scale | Pair-level, plus copied-target detection | Exact + leakage-aware split check |
| Layer E privacy | Redaction, retain structure | Redaction applied to both sides consistently | Redaction plus boundary-case review |
| Layer F usefulness | Domain relevance sampling | Not applied — alignment carries relevance | Task-family balance instead |
| Human review | Statistical sample | Sample of low-confidence pairs | All records of a flagged class |
Values are configuration patterns, not published thresholds. The agreed settings live in the Dataset Specification and are restated in the dataset card of every release.
Removals are a deliverable, not a side effect. The report aggregates by reason code so a reviewer can challenge any layer.
rejection report · aggregated by reason code
LAYER_B_BOILERPLATEillustrative — shape onlyDUP_NEAR_PARAillustrative — shape onlyLAYER_C_LOWQUALillustrative — shape onlyLAYER_F_OFFDOMAINillustrative — shape onlyPII_EMAIL_REDACTEDillustrative — shape onlyLAYER_A_ENCODINGillustrative — shape onlyBar lengths are shape only. Real shares are measured per release against the Dataset Specification and shipped inside the quality report — no rejection figure is published as a site-wide claim.
Illustrative — schema; no customer or production data.
Yes. Customer-provided collections enter at this stage with their own source policy. We run the same six layers, report what each one removed, and hand back a cleaned release plus the rejection summary — record-level rejected data only where source rights and the project agreement permit; the original is never overwritten.
Thresholds are set per project in the Dataset Specification, based on the product type and the acceptance criteria you define — a pretraining corpus and a preference dataset are configured differently, as shown above.
Rejected documents are removed from the delivered dataset. Every rejection is written to the record with its layer and reason code, and the aggregated rejection summary ships alongside the data; record-level rejected data is delivered only where source rights and the project agreement permit, so removals can be reviewed.
Yes. Project-specific reason codes are defined per Dataset Specification and versioned with the pipeline, the same way custom recognizers are added at layer E.
No. Automated PII detection reduces risk but does not guarantee complete removal; high-risk fields combine deterministic rules, custom recognizers and human sampling, with the residual risk documented in the dataset card.
We will help define a feasible pilot, quality criteria and a delivery format for your model.