Skip to main content

EmbedFlow

Progressive embedding-model migration over existing vector indexes.

EmbedFlow lets a new embedding model serve over candidates from an existing vector index while target document vectors are materialized progressively. It supports migration analysis, persistent caching, background work, FAISS, Qdrant, a CLI, and FastAPI.

The full project README and architecture diagram are on https://github.com/arnsri33/embedflow.

Install

python -m pip install embedflow

For FAISS and the dashboard:

python -m pip install "embedflow[faiss,dashboard]"

Qdrant and model-runtime extras are documented in the installation guide. For model-backed analysis, install embedflow[faiss,models,dashboard].

Why EmbedFlow?

Embedding-model upgrades usually mean re-embedding the corpus and building a second index before the new model can serve. EmbedFlow tests whether the existing retriever can remain useful during that transition.

Different representation spaces can still preserve useful retrieval neighborhoods. EmbedFlow retrieves a bounded source candidate set, scores those candidates with the target model, and fills a persistent target-vector cache in the background.

Try it

The deterministic demo needs no paid service or model download. From a source checkout, run:

./scripts/run_demo.sh

Open http://127.0.0.1:8000/. The first search can be COLD or PARTIAL; repeated traffic becomes WARM as target vectors are materialized.

Analyze a migration

embedflow analyze \
  --documents ./documents.jsonl \
  --index ./legacy.index \
  --source-model sentence-transformers/all-MiniLM-L6-v2 \
  --target-model Qwen/Qwen3-Embedding-0.6B \
  --probe-queries ./probe_queries.jsonl \
  --device cuda \
  --output-dir ./analysis

The report includes the frozen T2-v1 diagnostic (SAFE, EXPAND, or UNSAFE_OR_UNCERTAIN), a recommended initial candidate depth, and ANN health. SAFE is an empirical deployment signal; validate important migrations on the target corpus.

Start progressive serving with:

embedflow serve --config ./analysis/embedflow.analysis.yaml --device cuda

Known migration evidence

EmbedFlow ships a versioned registry of measured results from the research study. Matching model contracts provide useful starting depths and show what was observed on earlier corpora; a new corpus still receives its own analysis.

embedflow registry list
embedflow registry show \
  --source Qwen/Qwen3-Embedding-4B \
  --target Qwen/Qwen3-Embedding-8B

Selected core records (nDCG@10, G(50)):

Source Target Evaluation G(50) Observed depth
MiniLM-L6-v2 Qwen3-8B BRIGHT, 413K 0.03665
Qwen3-0.6B Qwen3-8B BRIGHT, 413K 0.01465 200
Qwen3-4B Qwen3-8B BRIGHT, 413K 0.00347 20
MiniLM-L6-v2 Qwen3-8B Natural Questions, 1M 0.03255 500
Qwen3-4B Qwen3-8B Natural Questions, 1M -0.00043 20

See the registry documentation for matching levels, contract fingerprints, and provenance.

Research

For candidate depth K, EmbedFlow measures:

G(K) = M_T - M_{T|S_K}

Lower G(K) means the source candidate pool recovers more of native target retrieval quality. Containment reports neighborhood overlap separately. The study includes 63 development settings, frozen BRIGHT validation, and Natural Questions scale experiments through 1M documents.

Read the concepts and methodology for definitions and reproduction details.

Integrations

Backend Status
FAISS Supported
Qdrant Supported

See the FAISS guide and Qdrant guide.

CLI

embedflow --help
embedflow analyze --help
embedflow serve --config ./embedflow.yaml
embedflow status --config ./embedflow.yaml
embedflow registry list
embedflow economics --corpus-size 1000000000 --docs-per-second 106.98 --gpu-price 3.29
embedflow doctor --config ./embedflow.yaml

The CLI reference and API reference cover the remaining commands and endpoints.

Status

EmbedFlow v0.1.0 is an alpha release for research and early real-world testing. T2-v1 is an empirical finite-tail diagnostic, partial rankings can differ from fully warm target reranking, and ANN fidelity needs a reference comparison to audit.

Links

Download files

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

Source Distribution

embedflow-0.1.0.tar.gz (139.0 kB view details)

Uploaded Source

Built Distribution

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

embedflow-0.1.0-py3-none-any.whl (125.7 kB view details)

Uploaded Python 3

File details

Details for the file embedflow-0.1.0.tar.gz.

File metadata

  • Download URL: embedflow-0.1.0.tar.gz
  • Upload date:
  • Size: 139.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.12

File hashes

Hashes for embedflow-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5a39d687ac59429a20a527180695c83818afb7f3dc0911844e6ce4b7d80605f3
MD5 ef674a1b5323293436445d4a5c215f5f
BLAKE2b-256 4d625fe2515a255682052d4d225b2b235ebac3fa1d05795dcea6d51da3423ab1

See more details on using hashes here.

File details

Details for the file embedflow-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: embedflow-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 125.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.12

File hashes

Hashes for embedflow-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a1dde4a56792ae65fbdb5e8a573b515bdd6bb1e4a6cf24e5fb2dee4ded826f18
MD5 1c1a851bd17d1b1eaf892776c967969e
BLAKE2b-256 8ffd05cd663135764a19cf008be78a02551bb83d6b67aa5a532e1554d446c6c7

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page