Skip to content

Setup

Before you start

  • Make sure your environment meets all requirements
  • Confirm the environment has access to CUDA and data
  • Prepare BaseModel access information received from your BaseModel contact:
    • registry name and credentials (username + token)
    • image name

1. Pull the image

BaseModel is delivered as a Docker image. Log in to the BaseModel container registry and pull the image using the credentials provided to you:

bash
docker login -u USERNAME -p TOKEN_PASSWORD REGISTRY_URL
docker pull REGISTRY_URL/monad:VERSION

Replace USERNAME, TOKEN_PASSWORD, REGISTRY_URL, and VERSION with the values provided by your BaseModel contact.

Confirm the image is available:

bash
docker images | grep monad

2. Run the container

bash
docker run -it \
  --gpus all \
  --shm-size 64gb \
  -v /your/workspace:/workspace:z \
  -v /your/data:/data:z \
  --name basemodel \
  REGISTRY_URL/monad:VERSION
Flag Purpose
--gpus all Expose all available GPUs
--shm-size 64gb Shared memory for distributed processing and data loaders — do not skip, insufficient shared memory can crash the node
-v /your/workspace:/workspace:z Working directory for configs, onboarding package, and all model artefacts. Split into multiple mounts if needed.
-v /your/data:/data:z Optional — only required when using local Parquet files

Adjust paths and shared memory size to match your environment.

Host vs container paths

Paths in configs and scripts are always container-side paths (e.g., /workspace/..., /data/...). Files you write on the host at /your/workspace/ appear inside the container at /workspace/ via the volume mount. When reading outputs (reports, predictions), access them from the host-side mount path.

File ownership inside the container

The container runs as uid=1000 (user app). Files created inside the container are owned by this UID. If you encounter permission issues reading outputs on the host, either:

  • Fix ownership: chown -R $(id -u):$(id -g) /your/workspace/
  • Or run the container with your host UID: --user $(id -u):$(id -g)

Non-interactive mode

You can skip the shell and run a command directly by appending it to docker run. Add --rm so the container is removed after exit:

bash
docker run --rm \
  --gpus all --shm-size 64gb \
  -v /your/workspace:/workspace:z \
  -v /your/data:/data:z \
  REGISTRY_URL/monad:VERSION \
  python pretrain.py --config /basemodel/config.yaml --output-path /basemodel/output

3. Verify the installation

Inside the container:

bash
python -c "import monad"

If this results with no error, your environment is ready.

Delivery as Python wheel

A Python wheel is also available on request but is not covered by this documentation — please contact your BaseModel representative if needed.