BaseAL is a framework for developing and evaluating active learning methods. BaseAL (v1) currently focuses on audio and bioacoustic data.
The tool provides a complete pipeline for evaluating sampling strategies and 3D visualisation.
- Experiment Management: Track and compare different active learning configurations
- Interactive 3D Visualisation: Explore high-dimensional embeddings using PCA/UMAP reduction with an interactive Three.js interface
- Multiple Sampling Strategies: Compare different sampling and diversification strategies
- Model Integration: Simulates transfer learning of embeddings using an adjustable classification head.
**For BaseAL compatible dataset generation see the dataset generator. This is built on Bacpipe for seamless integration with bioacoustic models
git clone https://github.com/benmcewen1/BaseAL.git
cd BaseALuv syncMake sure you activate the env source .venv/bin/activate or select via Ctrl + Shift + P in VSCode.
See the Dependencies list in pyproject.toml.
See the docs to get started working with the BaseAL framework, and developing active learning sampling strategies.
uv sync --extra test
uv run pytest -vTests run against small synthetic embedding datasets generated on the fly (no demo data download required) and cover the sampling strategies, warm-up strategies, the neural network model, the ActiveLearner/Manager pipeline, and the embedding visualisation utilities in core/.
If you are a participating in the BioDCASE data challenge, an biodcase_example.ipynb is setup here with everything needed to get started.
The following is optional and only required for the web app.
cd app
npm installcd api
python main.pyThe API will be available at http://localhost:8000
You can verify it's running by visiting http://localhost:8000/docs for the interactive API documentation.
Open a new terminal window and run:
cd ../app
npm run devThe web interface will be available at http://localhost:5173
- Open
http://localhost:5173in your browser - Click "Get Started".
- Select "Use Config File" and "Load Config", this will select the default options.
- Use Run Cycle/Run All Cycles buttons to step through AL cycles
- Interact with the 3D scatter plot to explore your data
cd /path/to/BaseAL
apptainer build --fakeroot baseal.sif apptainer_build/baseal.defapptainer shell --bind /any/required/paths:/mnt baseal.sifIf you use this software, please cite:
@software{mcewen_baseal,
author={McEwen, Ben and Zhang, Shiqi},
title={{BaseAL}: Active Learning Baseline},
year=2026,
version={v1.2},
publisher={Zenodo},
doi={10.5281/zenodo.21806638},
url={https://doi.org/10.5281/zenodo.21806638}
}Contributions are welcome! Please contact Ben McEwen to discuss potential contributions.
Authors of substantial contributions will be recognised as authors in the citable DOI for subsequent releases.
Substantial contributions include:
- Implementing a major feature or new functionality
- Significant refactoring or performance improvements
- Comprehensive documentation or tutorials
- Bug fixes that resolve critical issues
Minor contributions (small bug fixes, typos, formatting) will be acknowledged in the release notes.
BaseAL uses embeddings pre-generated by Bacpipe developed by Vincent Kather.
