Repository navigation
Conversation
The images carry no model weights: every MLIP checkpoint is fetched at run time into the mounted model cache. That is load-bearing for FAIRChem, whose UMA checkpoints are a gated repository (manual approval, FAIR Chemistry licence) that fairchem-core downloads with the caller's own HF_TOKEN — an image shipping them would be redistributing them. What the images do carry is software from PyPI, most of it permissive, plus three strong-copyleft packages: pymupdf (AGPL-3.0 or commercial) and openbabel-wheel (GPL) in cpu, mlip and fairchem, and python_hostlist (GPL-2.0+) in mlip. Record that inventory per image, say where the corresponding source is, and state the rule that no build step may pre-download weights. docker/NOTICE.md is copied into every image next to the server map, so the text travels with the artefact it describes rather than living only in the repository. The README gains a section pointing at it, with a command that verifies a given image carries no checkpoints.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds
docker/NOTICE.md, copies it into every image, and points the container README at it.The published images are now public (
ghcr.io/learningmatter-mit/atomisticskills-{cpu,mlip,fairchem,generative}), so anyone can pull them anonymously. That makes "what exactly is inside this artefact" a question readers can ask, and one we should be able to answer in writing.Two facts it records
1. The images carry no model weights. Every MLIP checkpoint is fetched at run time into the mounted model cache (
HF_HOME,TORCH_HOME,MATGL_CACHE). Three mechanisms hold that:.dockerignoreexcludes*.pt/*.pth/*.ckpt/*.traj/*.h5and**/.venv/; the Dockerfiles copy onlysrc/,skills/,venv/anddocker/;/opt/model-cacheis aVOLUME, empty at build.This is load-bearing for FAIRChem.
facebook/UMAisgated: manualwith licenceother(FAIR Chemistry licence);fairchem-corecallshf_hub_download(repo_id="facebook/UMA")with the caller's ownHF_TOKENafter access is granted. Without a token,load_modelfails with 401 — intended behaviour. The two.ptfiles insidefairchem-core(Jd.pt, 22 KB;wigner_d_coefficients.pt, 30 KB) are precomputed Wigner-D constant tables in the MIT-licensed wheel, not weights.2. Three dependencies are strongly copyleft, measured per image rather than assumed:
pymupdfopenbabel-wheeladitonly)python_hostlistpymupdfextracts PDF text in the paper-download and synthesis-extraction paths;openbabel-wheelships theobabelCLI that the docking skills invoke (venv/run cpu obabel ...), which is why it is a dependency without a singleimport openbabelin the tree.Why it is copied into the image
docker/NOTICE.mdjoins the COPY line in both Dockerfiles, so the notice travels with the artefact it describes instead of living only in the repository.Also records the rule
No build step may pre-download weights. That would convert a permitted run-time download into a redistribution the model licences do not allow, and would add gigabytes to every image. The README carries a one-liner that verifies a built image against this:
The text is an inventory and stays out of legal conclusions; it says so explicitly.
Verification
pytest tests/test_*.py(CI cpu scope): 1090 passed, 5 skipped — unchanged from before this branchpytest tests/test_images_and_manifests.py: 34 passed, including the check that every path the Dockerfiles COPY existsdocker/render.py servers --check,docker/render.py plugin-mcp --check,tools/sync_version.py --check: all up to dategenerative:2.0.0: no ≥20 MB*.pt/*.ckpt/*.safetensorsanywhere,/opt/model-cacheemptyNote this touches
docker/Dockerfile, so the affected-image rule selects every image for rebuild.