Installation#
Use this page for Python, PyTorch, platform-specific setup and optional extras. For the shortest route to a result, follow getting started.
Linux setup#
Venn requires Python 3.12. CPU workflows run on Linux and Windows, including ARM64. On Linux, clone the repository and enter its root directory:
git clone https://github.com/markrussinovich/venn-vdm.git venn
cd venn
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install torch --index-url https://download.pytorch.org/whl/cpu # CPU-only PyTorch
python -m pip install .
python -m pip check
If you already have a checkout, start with the virtual-environment command from its root directory.
Skip the pip install torch line if you want CUDA PyTorch; the default
wheel on Linux includes the CUDA libraries and is several times larger. Neither
install downloads a model. Contributors use python -m pip install -e '.[dev]'.
ARM64 and Windows#
Use native ARM64 Python, not an x86-64 interpreter under emulation. The CPU quickstart, sweep and development tests have been exercised on an ARM64 Windows laptop both natively and in Ubuntu under WSL 2. This does not establish GPU, trained-head text serving, media or optional-adapter compatibility. The pinned reader has also been smoke-tested for CPU text embedding on both platforms.
For CPU text support and development, install
uv and use the two-step
recipe below: install matching torch and torchvision packages from the
official CPU index, then install Venn from your regular package feed. Neither
step downloads model weights.
On Ubuntu ARM64, including WSL, run these commands from the clone:
uv venv --python cpython-3.12-linux-aarch64-gnu .venv
uv pip install --python .venv/bin/python torch torchvision --index-url https://download.pytorch.org/whl/cpu
uv pip install --python .venv/bin/python -e ".[embedding,dev]"
uv pip check --python .venv/bin/python
.venv/bin/python -m venn quickstart
.venv/bin/python -m venn sweep --rows 1000 --batch-size 256
For native Windows ARM64, install uv and run these commands from the clone in PowerShell. The explicit interpreter target avoids accidentally testing x86-64 emulation:
uv venv --python cpython-3.12-windows-aarch64-none .venv
uv pip install --python .venv\Scripts\python.exe torch torchvision --index-url https://download.pytorch.org/whl/cpu
uv pip install --python .venv\Scripts\python.exe -e ".[embedding,dev]"
uv pip check --python .venv\Scripts\python.exe
.\.venv\Scripts\python.exe -c "import platform; print(platform.machine())"
.\.venv\Scripts\python.exe -m venn quickstart
.\.venv\Scripts\python.exe -m venn sweep --rows 1000 --batch-size 256
The architecture check should print ARM64. Install CPU PyTorch first from its
official index: the default package feed may not carry Windows ARM64 wheels,
and Linux package resolution may otherwise pull in unnecessary CUDA packages.
Install torch and torchvision together so the resolver can select compatible
versions; the available pair may differ between platforms. For a smaller,
reader-free environment, install torch alone and use .[dev] instead.
If you use a package mirror, it must also carry Venn's required reader
dependencies, including transformers>=5.22 and sentence-transformers>=6.1.
The PyTorch CPU index does not replace your regular package feed for these.
The benchmark and native arena GPU paths require CUDA; these CPU checks do not
enable Qualcomm GPU or NPU acceleration.
Extras add optional capabilities:
| Extra | Adds |
|---|---|
embedding |
The EmbeddingGemma 2 reader, for text, image and audio input |
benchmark |
Datasets and tooling for venn benchmark, venn redteam and venn demos |
adapters |
Azure AI Search, Qdrant, Weaviate, LanceDB and pgvector clients |
mcp |
The MCP bridge |
arena |
ViZDoom and video encoding for the arena example |
For task selection, read Venn and Jev. For runnable workflows, see the example index.
Verify the installation#
Run venn quickstart for an authored CPU example with no model downloads.
Then choose a workflow in the documentation overview
or the example catalog. For download and runtime issues,
see troubleshooting.