VERONA
VERONA is a lightweight Python package for setting up adversarial robustness experiments and to compute robustness distributions. The package implements adversarial attacks which can be extended with the auto-verify plugin to enable complete verification.
Installation and Environment Setup
Create Virtual Environment and install ada-verona
The python package for VERONA is called ada-verona, as our research group is called ADA.
To run ada-verona, we recommend to set up a conda environment. We also recommend using miniforge as the package manager and using uv for dependency management.
Create a new conda environment named verona_env:
Installing the package
Inside the conda environment, install the ada-verona package:
GPU-version Installation
Note that the default installation is CPU-only, and that we recommend to install the GPU version for full functionality, as, e.g. AB-CROWN, heavily relies on GPU parallelization for practical performance. The package resolver will automatically resolve the correct version of the package for your system, depending on whether you have a GPU available, but you can also explicitly install the GPU version with the following command:
Local installation for e.g. development purposes
If you want to install ada-verona locally using git:
git clone https://github.com/ADA-research/VERONA.git
cd VERONA
uv pip install -e .
uv pip install -e .[dev] # to include development dependencies
Optional: AutoAttack Installation
To use the AutoAttack adversarial attack wrapper (AutoAttackWrapper), you need to install AutoAttack from its GitHub repository:
This package provides ensemble-based adversarial attacks for robustness evaluation, as described in the paper by Croce and Hein (2020).
Optional: AutoVerify Installation
To use the auto-verify verifiers, you need to install auto-verify separately:
Note: On macOS (and sometimes on Linux), you may need to install swig first with conda install -c conda-forge swig.
This package provides a framework for integrating verifiers. Please refer to the auto-verify documentation for details about auto-verify.
Setting up Pre-Commit Hooks
If you installed development dependencies (uv pip install -e .[dev]), pre-commit is already available. To install the git hooks, run:
This will automatically enforce code quality standards before each commit.