Skip to content

Clay-foundation/model

Repository files navigation

Clay Foundation Model

Jupyter Book Badge Deploy Book Status

An open source AI model and interface for Earth.

License

Clay Model is licensed under the Apache. This applies to the source code as well as the trained model weights.

The Documentation is licensed under the CC-BY-4.0 license.

Quickstart

Launch into a JupyterLab environment on

Binder SageMaker Studio Lab
Binder Open in SageMaker Studio Lab

Installation

Pip Installation (Recommended)

The easiest way to install Clay Foundation Model is via pip:

pip install git+https://github.com/Clay-foundation/model.git

This will install the claymodel package and all its dependencies. You can then import and use it in your Python code:

from claymodel.datamodule import ClayDataModule
from claymodel.module import ClayMAEModule

Development Installation

For development or advanced usage, you can set up the full development environment:

To help out with development, start by cloning this repo-url

git clone <repo-url>
cd model

Then we recommend using mamba to install the dependencies. A virtual environment will also be created with Python and JupyterLab installed.

mamba env create --file environment.yml

Note

The command above has been tested on Linux devices with CUDA GPUs.

Activate the virtual environment first.

mamba activate claymodel

Finally, double-check that the libraries have been installed.

mamba list

Usage

Running jupyter lab

mamba activate claymodel
python -m ipykernel install --user --name claymodel  # to install virtual env properly
jupyter kernelspec list --json                       # see if kernel is installed
jupyter lab &

Running the model

The neural network model can be ran via LightningCLI v2.

Note

If you installed via pip, you'll need to clone the repository to access the trainer script and config files.

To check out the different options available, and look at the hyperparameter configurations, run:

python trainer.py --help

To quickly test the model on one batch in the validation set:

python trainer.py fit --model ClayMAEModule --data ClayDataModule --config configs/config.yaml --trainer.fast_dev_run=True

To train the model:

python trainer.py fit --model ClayMAEModule --data ClayDataModule --config configs/config.yaml

More options can be found using python trainer.py fit --help, or at the LightningCLI docs.

Contributing

Writing documentation

Our Documentation uses Jupyter Book.

Install it with:

pip install -U jupyter-book

Then build it with:

jupyter-book build docs/

You can preview the site locally with:

python -m http.server --directory _build/html

There is a GitHub Action on ./github/workflows/deploy-docs.yml that builds the site and pushes it to GitHub Pages.