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.2.1.tar.gz (256.8 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.2.1-py3-none-any.whl (312.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for verifily-1.2.1.tar.gz
Algorithm Hash digest
SHA256 9204246ce14af9ac976e0039dbf4b6f9e76e57fc417da3e1b8de54bb308a6566
MD5 a0028fe00f17237fbdb94cd0da52d503
BLAKE2b-256 6bff12dd75a23e26a8297376e2a16b6044dd1bfbee2b0eee294606adf17680b9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: verifily-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 312.3 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.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4ed768316d8e87227691bff11746b14704126b9c333aced44adf917eaf45aca7
MD5 b5355d69b00eea4a4776fb128008a8b4
BLAKE2b-256 6beb06531edf43aa350aad308f0567cd15e719e7cfee83f0c3508d1777e09c5f

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