Why does the MolMIM container start cleanly, then die with 402 Payment Required the second it touches the checkpoint? That failure – not SMILES theory – is what stops most first-time NIM deploys. Below is the install path for molmim:1.0.0 that gets past auth, cache, and “is it ready yet?” stalls.
MolMIM is NVIDIA’s small-molecule generator packaged as a NIM microservice (HTTP API), not the older BioNeMo notebook workflow. Model card lists MolMIM-24.03 / 70M-class weights (~65.2M params, Perceiver encoder + Transformer decoder). Method paper: arXiv:2208.09016.
System Requirements for MolMIM NIM 1.0.0
From NVIDIA’s support matrix (as of the current docs set):
| Resource | Minimum | Tested / Recommended |
|---|---|---|
| CPU | 4 cores | More helps concurrent API load |
| System RAM | 16 GB | 32 GB+ |
| Disk | 50 GB NVMe SSD | ~13.04 GB compressed image + checkpoint + layers |
| GPU | 1× NVIDIA, ≥3 GB VRAM, compute capability >7.0 | L40, A100, A10 (Ampere+ validated) |
| Software | Docker ≥23.0.1, driver ≥535, nvidia-container-toolkit ≥1.13.5 | Linux preferred; single-GPU only |
Cards that only meet the 3 GB floor can still boot; they are not on the validated list. Sanity-check the runtime before you pull multi-GB layers:
docker run --rm --runtime=nvidia --gpus 1 ubuntu nvidia-smi
There’s a dull stretch after a successful docker pull where the terminal barely moves. You’re not waiting on the image anymore – you’re waiting on a gated checkpoint with no progress bar. Plan bandwidth and coffee accordingly.
Official Image and Auth
Tag to pin (as of the latest NIM docs): nvcr.io/nim/nvidia/molmim:1.0.0 – also listed on the NGC molmim 1.0.0 page (~13.04 GB compressed). Checkpoint still downloads on first run.
A plain free NGC key is enough to pull the container and still not enough to fetch weights. Forum threads and the container’s Associated Products line match the same failure: 402 Payment Required without NVIDIA AI Enterprise or an active trial.
- Create a Personal API Key at ngc.nvidia.com with NGC Catalog access.
- Log in:
docker login nvcr.io
Username: $oauthtoken
Password: <YOUR_NGC_API_KEY>
Export both env names. Docs and build.nvidia snippets disagree on NGC_API_KEY vs NGC_CLI_API_KEY; empty auth looks like a “network” failure if you only set one.
export NGC_API_KEY=<YOUR_NGC_API_KEY>
export NGC_CLI_API_KEY=$NGC_API_KEY
Step-by-Step Install (Docker)
Persistent cache first – wrong internal path means another multi-GB hit every restart:
export LOCAL_NIM_CACHE=~/.cache/nim
mkdir -p "$LOCAL_NIM_CACHE"
docker pull nvcr.io/nim/nvidia/molmim:1.0.0
Run flags below mix the stable long-running service settings with the deployment-guide cache mount (/home/nvs/.cache/nim). Some build.nvidia snippets mount /home/nvs/.cache/ only; that mismatch is enough to ignore your host folder.
docker run -it --rm
--name molmim
--runtime=nvidia
-e NVIDIA_VISIBLE_DEVICES=0
-e NGC_API_KEY=$NGC_API_KEY
-e NGC_CLI_API_KEY=$NGC_API_KEY
--shm-size=2G
--ulimit memlock=-1
--ulimit stack=67108864
-p 8000:8000
-v "$LOCAL_NIM_CACHE:/home/nvs/.cache/nim"
nvcr.io/nim/nvidia/molmim:1.0.0
Leave that process attached. API port: 8000.
Cache tip: mount must be
/home/nvs/.cache/niminside the container. Host path can be anywhere you choose.
Verification (No Extra Config File)
Minimum NIM needs no YAML. Cold start stays non-ready for a few minutes while weights land – docs call this out; logs often stay quiet.
curl -X GET 'http://localhost:8000/v1/health/ready' -H 'accept: application/json'
Ready payload: {"status":"ready"}.
Smoke embedding with a tiny seed (not the usual demo molecule dump):
curl -X POST 'http://localhost:8000/embedding'
-H 'accept: application/json'
-H 'Content-Type: application/json'
-d '{"sequences": ["CCO"]}' | jq .
Optional generate call once health is green (endpoints also cover sample/decode/hidden-state per the overview):
curl -X POST 'http://localhost:8000/generate'
-H 'accept: application/json'
-H 'Content-Type: application/json'
-d '{
"algorithm": "CMA-ES",
"num_molecules": 3,
"property_name": "QED",
"minimize": false,
"min_similarity": 0.3,
"particles": 10,
"iterations": 2,
"smi": "CCO"
}'
JSON with structures/scores = stack is live. Wire your own seeds after that.
Common Install Errors and Fixes
- 402 / NgcAPIError on weight fetch (reports mention molmim:1.3 paths) – key lacks AI Enterprise or active trial. Image pull succeeding does not prove checkpoint entitlement.
- Silent auth miss – pass both
NGC_API_KEYandNGC_CLI_API_KEY. - Port in use – map another host port:
-p 8001:8000. - CUDA / toolkit failures – driver <535 or broken nvidia-container-toolkit; re-run the
nvidia-smitest container. - Full re-download every boot – volume omitted or not mapped to
/home/nvs/.cache/nim.
Already on BioNeMo Framework? You can load the published 70M-class checkpoint in notebooks instead. Different interface; fine for exploration, weaker as a shared HTTP service.
Upgrade, Uninstall, Cleanup
When NVIDIA ships a newer tag, read the docs version selector and release notes, stop the old container, pull the new tag, reuse the same cache mount.
docker stop molmim 2>/dev/null
docker rm molmim 2>/dev/null
docker rmi nvcr.io/nim/nvidia/molmim:1.0.0
# optional - drop weights if you are done
rm -rf ~/.cache/nim
docker system prune clears dangling layers if disk is tight against the 50 GB floor.
Health green? Hit /generate with your seeds or feed /embedding into whatever scoring model you already trust. Canonical docs hub: NVIDIA NIM for MolMIM.
FAQ
Does MolMIM NIM 1.0.0 run on RTX 3090/4090?
If the card still has ≥3 GB free and compute capability >7.0, yes it can start. Official validation is L40/A100/A10 – treat consumer Ampere/Ada as best-effort.
Why is the first start slow after docker pull?
Pull only gets the runtime. First launch authenticates to NGC and writes weights into the cache with almost no progress UI. Several minutes is normal. If ready never arrives, open container logs and look for 402 before you retune Docker flags.
Can I skip NVIDIA AI Enterprise for a local NIM?
For this gated NIM checkpoint path, community reports and NVIDIA replies say no – 402 stands without subscription or trial. Non-NIM options: older BioNeMo Framework + the published 70M-class checkpoint for notebook-style work. That sidesteps the NIM container entitlement model; it does not give you the same production microservice packaging.