For developers

In-depth documentation of the Ersilia Model Hub to help developers contribute to our open source platform.

This chapter is mainly intended to developers who want to contribute to Ersilia's infrastructure. If you intend to contribute AI/ML models, please refer to the Model contribution chapter.

The Ersilia CLI

The main codebase of Ersilia is the Ersilia CLI. For a full reference of all commands available, please visit this page. A detailed reference of the Ersilia API can be accessed here.

To start contributing to Ersilia, please fork our master branch and work on it locally. We recommend installing Ersilia in editable mode inside a Conda environment:

conda create -n ersilia python=3.12
conda activate ersilia
git clone https://github.com/your_username/ersilia
cd ersilia
pip install -e . 

Working with models as Docker containers

All models incorporated in Ersilia are dockerized for easy deployment. While the dockerization step happens as part of our CI/CD workflows, it is recommended to install Docker for model testing purposes.

Working with models from source

Ersilia models can also be packaged from source. The source code and parameters for a given model are available in its corresponding GitHub repository. Some model checkpoints are too large (>100MB) for GitHub storage. If you want to work with models from source, please make sure that git-lfs is installed and active in your system to push large files to the model repository.

Working with models from source is often recommendable to quickly explore potential issues with the model. Typically, a dedicated Conda environment will be created by Ersilia automatically at fetch time.

CI/CD workflows and testing

Ersilia relies heavily on GitHub Actions workflows for automation and testing. Visit the corresponding sections to learn more about:

Model packaging

An important part of the Ersilia infrastructure is the packaging of models with Ersilia Pack. Please see the Ersilia Pack documentation for more information.

Last updated

Was this helpful?