Skip to main content

ML data quality gate — ingest, validate, and ship datasets with confidence.

Project description

Verifily

ML data quality gate. Ingest, validate, and ship datasets with confidence.

Verifily catches contamination, PII leaks, SQL template leakage, contract violations, and metric regressions before they reach production. It runs locally — no network, no GPU, no external services.

One command gates your CI pipeline. Exit 0 means ship.

Install

pip install -e .

For integrations (HuggingFace, W&B, MLflow) and API server:

pip install -e ".[all]"

60-Second Quick Start

# 1. Scaffold a project
verifily quickstart my_project

# 2. Ingest raw data (JSONL, CSV, Parquet, or HuggingFace)
verifily ingest --in my_project/data/raw/sample.csv \
                --out my_project/data/artifact \
                --schema sft

# 3. Run the CI gate
verifily pipeline --config my_project/verifily.yaml --ci
# Exit 0 = SHIP, 1 = DONT_SHIP, 2 = INVESTIGATE

Or run the full demo end-to-end:

bash scripts/demo_quickstart_ci.sh

What Verifily Prevents

Risk How Verifily catches it
Train/eval data leakage Exact-match + Jaccard contamination detection via MinHash LSH
SQL template leakage Three-tier NL2SQL gate: exact SQL, template fingerprint, question near-dup
PII in training data Regex-based PII scan with configurable thresholds and redaction
Missing or corrupt artifacts Run contract validation (hashes, configs, eval results)
Metric regressions Threshold checks against baselines with delta tracking
Ambiguous ship decisions Deterministic gate: blockers always block, no silent passes
Dataset drift Privacy-safe fingerprinting and diff without raw data exposure

Supported Schemas

8 canonical dataset types, auto-detected from field names:

Schema Required fields Use case
sft instruction, output Supervised fine-tuning
qa question, answer Question answering
classification text, label Text classification
chat messages Multi-turn conversations
summarization document, summary Summarization tasks
translation source, target Translation pairs
rm_pairwise prompt, chosen, rejected Reward model training
nl2sql question, sql, schema Natural language to SQL

CLI Commands

Command Purpose
verifily quickstart <path> Scaffold a working project
verifily ingest Normalize raw data to artifact format (JSONL, CSV, Parquet, hf://)
verifily pipeline --ci Run full quality gate (CI mode)
verifily report Dataset quality report with PII scan
verifily contamination Detect train/eval overlap
verifily contract-check Validate run artifacts
verifily fingerprint Privacy-safe dataset summary
verifily diff-datasets Compare two datasets
verifily ci-init Generate GitHub/GitLab CI config
verifily serve Start API server
verifily version Show version, Python, platform

NL2SQL Commands

Command Purpose
verifily nl2sql validate Validate NL2SQL dataset structure
verifily nl2sql fingerprint SQL normalization + template fingerprinting
verifily nl2sql split Leakage-resistant train/eval splitting
verifily nl2sql gate Three-tier contamination gate for NL2SQL

Integrations

All opt-in with lazy imports. No hard dependencies.

Integration What it does
HuggingFace Datasets Load datasets via hf:// URIs
Weights & Biases Log decisions, metrics, and artifacts
MLflow Track runs with model registry integration
GitHub Actions Pre-built action + CI workflow generator
# HuggingFace
verifily ingest --in "hf://squad" --out datasets/squad --schema qa

# W&B + MLflow
verifily pipeline --config pipeline.yaml --wandb --mlflow

CI Exit Codes

Code Label Meaning
0 SHIP All quality gates passed
1 DONT_SHIP One or more blockers failed
2 INVESTIGATE Risk flags present, no hard blockers
3 CONTRACT_FAIL Run contract invalid
4 TOOL_ERROR Invalid config or unexpected error

Documentation

Versioning

Verifily follows Semantic Versioning. See VERSIONING.md.

Current version: 1.2.0

Stability Guarantees

  • Deterministic outputs — fixed seed produces identical results across runs
  • Stable contractsrun_contract_v1 schema is frozen within the v1.x line
  • Stable exit codes — 0/1/2/3/4 semantics are frozen
  • Backward compatibility within MAJOR version — artifacts from any v1.x release are accepted
  • 1,300+ tests — all deterministic, no network, no GPU

License

Business Source License 1.1 (BSL-1.1). See LICENSE for details.

You may use Verifily for any purpose except offering it as a commercial data quality or ML pipeline gating service to third parties. On 2030-02-16, the license converts to Apache 2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

verifily-1.4.1.tar.gz (315.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

verifily-1.4.1-py3-none-any.whl (378.9 kB view details)

Uploaded Python 3

File details

Details for the file verifily-1.4.1.tar.gz.

File metadata

  • Download URL: verifily-1.4.1.tar.gz
  • Upload date:
  • Size: 315.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for verifily-1.4.1.tar.gz
Algorithm Hash digest
SHA256 2a2a322d56656fef8bcdf8e73660e4acbaf10696a04ae3082df920a439447c8e
MD5 ea88892ada68b27b828cf0023b88a4c5
BLAKE2b-256 010336c2e4596bf0a5c54988f839871a9da7899e2611708381a110a1a8a3546a

See more details on using hashes here.

File details

Details for the file verifily-1.4.1-py3-none-any.whl.

File metadata

  • Download URL: verifily-1.4.1-py3-none-any.whl
  • Upload date:
  • Size: 378.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for verifily-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 34b4d61c59748d57da453b1398a156b5edb99754859e77dce8e71dcc88ee02d4
MD5 188016b41b71bc430b9a9c1e4af0f6cb
BLAKE2b-256 c5099e2f21875ac55ea30385b4bf856ebccb39bd9a77816bb805507d5e1c19d3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page