OmniVector-Embed
Production-grade multimodal embedding model — unified 4096-dimensional embeddings for text, code, image, video, and audio. Built on Mistral-7B with ONNX export and int8 quantization for deployment.
Replicates and extends NV-Embed-v2 with multimodal support and CPU-friendly inference.
Installation
pip install omnivector-embed
With vision support:
pip install omnivector-embed[vision]
Quick Start
from omnivector.model import OmniVectorModel
# Load a trained model
model = OmniVectorModel.from_pretrained("AuralithAI/omnivector-embed-v1")
# Encode text
embeddings = model.encode(["What is machine learning?", "ML is a subset of AI."])
# Encode with Matryoshka dimensionality
embeddings_512 = model.encode(["query"], output_dim=512)
embeddings_4096 = model.encode(["query"], output_dim=4096)
Key Features
| Feature | Description |
|---|---|
| Multimodal | Text, code, image, video, and audio in one embedding space |
| Matryoshka | Flexible output dimensions: 512, 1024, 2048, 4096 |
| ONNX Export | Opset 17 with dynamic int8 quantization |
| CPU Inference | Full ONNX Runtime support — no GPU required |
| LoRA Training | Fine-tune with 0.1% of parameters (rank 16) |
| 3-Stage Pipeline | Retrieval → Generalist → Multimodal training |
Architecture
Input → Mistral-7B (bidirectional, eager attention, LoRA)
→ Latent Attention Pooling (512 latents × 4096, 8 heads)
→ Matryoshka dimensions [512, 1024, 2048, 4096]
→ L2 normalize
- Backbone: Mistral-7B-v0.1 with bidirectional attention
- Pooling: Cross-attention with learned latent queries
- Vision: SigLIP-SO400M (1152 → 4096 projection)
- Audio: Whisper-tiny (384 → 4096 MLP projection)
- Loss: InfoNCE + Matryoshka Representation Learning + cross-modal contrastive
ONNX Export
from omnivector.export import OnnxExporter
exporter = OnnxExporter(model_path="path/to/model", opset_version=17)
exporter.export("model.onnx")
# Quantize to int8
from omnivector.export import OnnxQuantizer
OnnxQuantizer.quantize_dynamic("model.onnx", "model_int8.onnx")
Evaluation
Built-in MTEB evaluation:
python scripts/evaluate.py --model-path path/to/model --tasks retrieval
Training
3-stage training pipeline with DeepSpeed ZeRO-2:
# Stage 1: Retrieval (text pairs with hard negatives)
python scripts/training.py --config configs/stage1_retrieval.yaml
# Stage 2: Generalist (55M+ pairs)
python scripts/training.py --config configs/stage2_generalist.yaml
# Stage 3: Multimodal (image/video/audio + text)
python scripts/train_multimodal.py --config configs/stage3_multimodal.yaml
Stack
| Component | Version |
|---|---|
| Python | ≥ 3.9 |
| PyTorch | ≥ 2.2.0 |
| Transformers | 4.44.2 |
| PEFT | 0.12.0 |
| ONNX Runtime | ≥ 1.18.0 |
| DeepSpeed | ≥ 0.14.0 |
Links
- GitHub: AuralithAI/OmniVector-Embed
- Paper: NV-Embed-v2 (arXiv:2405.17428)
- Documentation: docs/architecture.md
License
Apache 2.0 — see LICENSE.
Metadata
Release files for omnivector-embed 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| omnivector_embed-0.1.0.tar.gz | 661.7 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| omnivector_embed-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 710.7 kB
Release files / omnivector_embed-0.1.0.tar.gz
| Download URL | omnivector_embed-0.1.0.tar.gz |
|---|---|
| Size | 661.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
02769b456c6236f8ae4f15d201748e2f59e53f965db66d94d1ee12d4d8fd99cc
|
|
BLAKE2b-256 checksum How to use checksums |
3883818f15066f96ae445ffcebdd2c957c1ed25bc407433eaef0b56a93b59a8f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 20, 2026.
Transparency logRelease files / omnivector_embed-0.1.0-py3-none-any.whl
| Download URL | omnivector_embed-0.1.0-py3-none-any.whl |
|---|---|
| Size | 49.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
caffba33a36a04176a6206849cf2f345d64456c5f14507aabdce5dce82862a57
|
|
BLAKE2b-256 checksum How to use checksums |
e964e2fbaf204ee4cb349df63fd592e4b31860d4902aecc5b426ddb2100a6ee6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 20, 2026.
Transparency logSecurity for omnivector-embed 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for omnivector_embed-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 20, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.