|
Download docs/publishing.md from gdslab/alma: direct link, hf CLI and curl.
- Browser
- Download file 6.28 kB
-
https://huggingface.co/gdslab/alma/resolve/main/docs/publishing.md
- Command line
-
hf download hf://gdslab/alma/docs/publishing.md
-
curl -L -o publishing.md https://huggingface.co/gdslab/alma/resolve/main/docs/publishing.md
6.28 kB
| # Publishing ALMA code and weights | |
| ## Current terminology update | |
| The current release uses public segmentation terminology throughout. Four | |
| segmentation configs were renamed. The QL2 segmentation checkpoint now uses | |
| a public provenance identifier; all tensors are identical, but its file hash | |
| changed. Upload the refreshed folder and synchronize the config directory | |
| so obsolete config filenames are removed from the current hosted revision: | |
| ```bash | |
| hf upload gdslab/alma ./release_artifacts . --delete="configs/*" | |
| ``` | |
| This follows the CLI's folder synchronization behavior: local configs are | |
| uploaded and obsolete remote configs are removed. Existing repository history | |
| is retained. After the upload, use its new commit hash with | |
| `scripts/set_weight_urls.py`, refresh/upload the manifest, and then commit/push | |
| the code changes. The user completed this upload at commit | |
| `aa51bb453ec2aac74e74e1d84e2d0903625575e7`; all six URLs are now pinned to | |
| that revision. Upload the refreshed manifest/docs before pushing GitHub code. | |
| - Code: https://github.com/gdslab/alma | |
| - Model weights: https://huggingface.co/gdslab/alma | |
| - Code license: MIT, with upstream attribution in LICENSE and NOTICE. | |
| - Weight license: MIT, authorized by the authors; see WEIGHTS_LICENSE. | |
| Six verified weights (about 1.44 GB) are staged in `release_artifacts/`. | |
| This directory and downloaded weights are excluded from Git. Originals remain | |
| in the research repositories. Run the commands below yourself; authentication | |
| and uploads are not performed by the preparation step. | |
| ## 1. Validate inside a GPU allocation | |
| ```bash | |
| cd /scratch/gautschi/goel65/ALMA | |
| conda activate pointm2ae | |
| ALMA_WEIGHTS_DIR=release_artifacts python -m unittest discover -s tests -v | |
| ``` | |
| Confirm the CUDA test passes rather than skips. Record the actual result in | |
| the audit/change log. Full training and paper-metric reproduction have not | |
| been rerun; do not infer those from the smoke test. | |
| ## 2. Refresh upload metadata | |
| The canonical HF model card is version-controlled at | |
| `model_cards/huggingface.md`. Refresh its staged copy after edits: | |
| ```bash | |
| cp model_cards/huggingface.md release_artifacts/README.md | |
| cp LICENSE WEIGHTS_LICENSE NOTICE CITATION.cff CODE_CHANGE_LOG.txt release_artifacts/ | |
| cp checkpoints/manifest.yaml release_artifacts/manifest.yaml | |
| cp -r configs model_cards docs release_artifacts/ | |
| (cd release_artifacts && sha256sum -c SHA256SUMS) | |
| ``` | |
| All six checksums must report OK. This does not rewrite weight files. | |
| ## 3. Upload to Hugging Face | |
| Use a machine/node with internet access and an account with write access to | |
| the `gdslab` organization: | |
| ```bash | |
| pip install -U huggingface_hub | |
| hf auth login | |
| ``` | |
| If the model repository does not exist, create it as public: | |
| ```bash | |
| hf repos create gdslab/alma --repo-type model | |
| ``` | |
| Skip creation if it already exists. Upload the prepared folder: | |
| ```bash | |
| hf upload gdslab/alma ./release_artifacts . | |
| ``` | |
| Commands follow the [official HF CLI guide](https://huggingface.co/docs/huggingface_hub/guides/cli). | |
| Keep the full 40-character commit hash from the upload result or the model | |
| repository's commit history. | |
| ## 4. Pin and verify download links | |
| Replace `COMMIT_HASH` with that actual weight-upload commit hash: | |
| ```bash | |
| python scripts/set_weight_urls.py --repo-id gdslab/alma --revision COMMIT_HASH | |
| cp checkpoints/manifest.yaml release_artifacts/manifest.yaml | |
| hf upload gdslab/alma release_artifacts/manifest.yaml manifest.yaml | |
| ``` | |
| The manifest-only upload creates another commit; weight URLs should remain | |
| pinned to the earlier commit containing the verified weights. Never insert | |
| a made-up commit or replace the revision with `main`. | |
| Use a fresh directory so existing local files cannot bypass download testing: | |
| ```bash | |
| ALMA_VERIFY_DIR=$(mktemp -d /tmp/alma-download-verify.XXXXXX) | |
| for regime in QL1 QL2; do | |
| for kind in encoder mae seg; do | |
| python scripts/download_weights.py "ALMA-${regime}-Indiana-${kind}" --out-dir "$ALMA_VERIFY_DIR" || break 2 | |
| done | |
| done | |
| ``` | |
| Require six `verified=` messages. A download/checksum failure must be resolved | |
| before publishing the code release. The verification directory holds about | |
| 1.44 GB and can be removed after verification. | |
| Record the weight commit, completed verification, and manifest change in | |
| CODE_CHANGE_LOG.txt and the workspace's global audit log before committing. | |
| The initial upload commit was `5307569f57e16b59eca53484c42304d8ddd8c38e`. | |
| The terminology update is uploaded at | |
| `aa51bb453ec2aac74e74e1d84e2d0903625575e7`, and the manifest is repinned. | |
| Fresh public-download verification remains to be completed. | |
| ## 5. Publish the GitHub repository | |
| Initial local state on 2026-09-30: no commits, no remote, branch `master`. | |
| Create an empty public GitHub repository named `gdslab/alma` if needed. | |
| Do not generate another README, license, or gitignore. | |
| Inspect remote history before the first push: | |
| ```bash | |
| git ls-remote https://github.com/gdslab/alma.git | |
| ``` | |
| For an empty remote and the initial local state: | |
| ```bash | |
| git branch -M main | |
| git remote add origin https://github.com/gdslab/alma.git | |
| git add . | |
| git diff --cached --stat | |
| git diff --cached --name-only | |
| ``` | |
| Review the staged files: no weights, datasets, credentials, or outputs should | |
| be present. Then: | |
| ```bash | |
| git commit -m "Release ALMA pretraining and segmentation" | |
| git push -u origin main | |
| git tag -a v0.1.0 -m "ALMA initial public release" | |
| git push origin v0.1.0 | |
| ``` | |
| If a remote or commits already exist, inspect them and preserve their history | |
| before proceeding; do not force-push or reset the remote. Authenticate with | |
| your GitHub account using your established Git credential setup. | |
| ## Completion | |
| Check both public repository pages, license display, cross-links, all six | |
| weight files, and the pinned manifest. From a fresh GitHub checkout, install | |
| the package and download the weights using the manifest; run the GPU checks | |
| with that checkout to confirm the public release path works. | |
| CITATION.cff contains the title and authors. Add manuscript DOI/venue when | |
| available. For an optional archival DOI, follow | |
| [Zenodo's GitHub release instructions](https://help.zenodo.org/docs/github/archive-software/github-upload/). | |
| Git-ignored weights are not included in a code archive; archive them separately | |
| if a DOI for the model files is needed. | |