Contributing to AdapterHub
There are many ways in which you can contribute to AdapterHub and the adapters
library.
This includes code contributions such as:
implementing new adapter methods
adding support for new Transformer
fixing open issues
as well as non-code contributions such as:
training and uploading adapters to the Hub
writing documentation and blog posts
helping others with their issues and questions
Whichever way you’d like to contribute, you’re very welcome to do so!
Contributing to the adapters
codebase
Setting up your dev environment
To get started with writing code for adapters
, you’d want to set up the project on a local development environment.
adapters
closely follows the original Hugging Face Transformers repository in many aspects.
This guide assumes that you want to set up your dev environment on a local machine and that you have basic knowledge of git
.
Additionally, you require Python 3.8 or above pre-installed to get started.
In the following, we go through the setup procedure step by step:
Fork the
adapters
repository to get a local copy of the code under your user account.Clone your fork to your local machine:
git clone --recursive git@github.com:<YOUR_USERNAME>/adapters.git cd adapters
Note: The
--recursive
flag is important to initialize git submodules.Create a virtual environment, e.g. via
virtualenv
orconda
.Install PyTorch, following the installation command for your environment on their website.
Install Hugging Face Transformers from the local git submodule:
pip install ./hf_transformers
Install
adapters
and required dev dependencies:pip install -e ".[dev]"
Adding Adapter Methods
How to integrate new efficient fine-tuning/ adapter methods to adapters
is described at https://docs.adapterhub.ml/contributing/adding_adapter_methods.html.
Adding Adapters to a Model
How to add adapter support to a model type already supported by Hugging Face Transformers is described at https://docs.adapterhub.ml/contributing/adding_adapters_to_a_model.html.
Testing your changes to the codebase
adapters
provides multiple Makefile targets for easily running tests and repo checks.
Make sure these checks run without errors to pass the CI pipeline tasks when you open a pull request.
To run all tests in the repository:
make test
To auto format code and imports in the whole codebase:
make style
This will run black
and isort
.
To run all quality checks ensuring code style and repo consistency:
make quality
This will run checks with black
, isort
and flake8
as well as additional custom checks.
Publishing Pre-Trained Adapters
How to make your own trained adapters accessible for the adapters
library HuggingFace Model Hub is described at https://docs.adapterhub.ml/huggingface_hub.html.