Helper library with tests that check common issues in neural network models.
Project description
pangolinn: Unit Testing for Neural Networks
As a Pangolin looks for bugs and catches them, the goal of this library is ot help developers finding bugs in their neural networks and newly-created models.
🖥 Installation
pangolinn is available on PyPi and can be installed by running:
pip install pangolinn
Alternatively, the latest development version can be installed with:
git clone https://github.com/hlt-mt/pangolinn.git
cd pangolinn
pip install -e .
If you want to contribute to the project, you can install
the additional development dependencies by using the dev
specifier:
pip install -e .[dev]
🔧 Usage
To test your model/module you need to:
- create a pangolinn wrapper that builds it and determines how to use it;
- create a test suite that inherits from the pangolinn tester you want to use and
set the attribute
module_wrapper_class
to the name of the wrapper class of your module.
For complete examples, please refer to the UTs in this repository, e.g. Transformer decoder causality test.
🚀 Features
The repository currently contains the following test suites:
- Encoder padding tester: checks that the presence of padding does not alter the results.
- Causality tester: checks that a module fulfils the causal property, i.e. it does not look at future elements of the sequence (e.g., as autoregressive decoders have to do).
💡 Contributing and Feature Requests
Our goal is to provide a comprehensive test suit for neural networks, therefore contributions from interested researchers and developers are extremely appreciated.
You can either create a feature request to propose new tests or a pull request to contribute to our repository with your own tests.
📃 Licence
pangolinn is licensed under Apache Version 2.0.
🏅 Citation
If using this repository, please cite:
@inproceedings{papi-et-al-2024-when,
title={{When Good and Reproducible Results are a Giant with Feet of Clay: The Importance of Software Quality in NLP}},
author={Papi, Sara and Gaido, Marco and Pilzer, Andrea and Negri, Matteo},
booktitle = "Proceedings of the 62nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)",
address = "Bangkok, Thailand",
year={2024}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pangolinn-0.0.1.tar.gz
.
File metadata
- Download URL: pangolinn-0.0.1.tar.gz
- Upload date:
- Size: 12.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b2fda4695147a52d5c72ae21976c3757737341dedf937617a1c7bbb10b29587 |
|
MD5 | 6609a5e059e6393847110f6d715e7dc0 |
|
BLAKE2b-256 | 3e649dd91a4de51363b5b5e9e4cd0ee5dc20fe995f5679c8b2ad907830977081 |
File details
Details for the file pangolinn-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: pangolinn-0.0.1-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32b9cff8865d6614ae26b3f45d32c7e3f0bb9f933208f09eab62bfeac2805f24 |
|
MD5 | 3f625a46f8041c4e3796fcd837b55b4c |
|
BLAKE2b-256 | 7748f5f027a6d0ec1358ca657fba990f536493b6d803ba2a85d3e5e34d2e6c4f |