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.4.1

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.2.tar.gz (330.3 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.2-py3-none-any.whl (395.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: verifily-1.4.2.tar.gz
  • Upload date:
  • Size: 330.3 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.2.tar.gz
Algorithm Hash digest
SHA256 2dd964307d9ed1e8d2963d7ee66195ffb24a622f7ede687913d2d8922e55d937
MD5 02d6432579ea7a2684fcd5dff1c6abae
BLAKE2b-256 f1ba19471a9d8bcd7c6815940abd3af5b9831233e4627953da8e484c8ac1a20c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: verifily-1.4.2-py3-none-any.whl
  • Upload date:
  • Size: 395.8 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7fd10c44368ac44d1bdd53a0e4f9d7e65400870b7abc03dccb98e7a3bbcd9e9f
MD5 5d94c1da2717bd9a4e7c9c92002e4eea
BLAKE2b-256 b1a29574f5978d52ce9c11bf47980fcea893237b47b1d43dd3b6f02da771ab2d

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