Instructions to use ryoji-info/Gemma-4-12B-PsiLM with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use ryoji-info/Gemma-4-12B-PsiLM with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] huggingface-cli download --local-dir Gemma-4-12B-PsiLM ryoji-info/Gemma-4-12B-PsiLM
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Atomic Chat
| # MANIFEST β Hugging Face repo `ryoji-info/Gemma-4-12B-PsiLM` | |
| Everything in this directory (`release/gemma-4-12b-psilm/`) is uploaded as-is to the | |
| model repo; nothing outside it is needed. The backbone (`mlx-community/gemma-4-12B-it-4bit`) | |
| is **not** uploaded β the script downloads it at first run. | |
| ## Files to upload (and where each one came from) | |
| | path in the HF repo | source in the GitHub checkout | size | sha256 | | |
| |---|---|---:|---| | |
| | `README.md` | written for this release (the HF model card, YAML front matter) | 15 KB | β | | |
| | `psilm_infer.py` | written for this release | 18 KB | β | | |
| | `requirements.txt` | written for this release | 1 KB | β | | |
| | `MANIFEST.md` | this file (harmless to upload; drop it if you prefer) | β | β | | |
| | `psilm-banner.png` | `assets/psilm-banner.png` (1600 px wide) | 1.35 MB | `4cd65f32fe4aab5b49b66681a841b0128628e8d94c75494ae84f941b49c48089` | | |
| | `bridges/gemma-4-12b-4bit-mlx-1d-value-selective/bridges.safetensors` | `results/hf_export/bridges/gemma-4-12b-4bit-mlx-1d-value-selective/bridges.safetensors` (= `results/stage2_gemma12b/bridges.npz`, step 7000, learned-pointer tensors dropped) | 102,068,660 B | `f6ef8946c41b3cfa17df7c22bcab2c5cffbd856c2dd608970a364cc14d5e8f7d` | | |
| | `bridges/gemma-4-12b-4bit-mlx-1d-value-selective/config.json` | `results/hf_export/bridges/gemma-4-12b-4bit-mlx-1d-value-selective/config.json` | 1,287 B | `8a5add382beb65a0214f5e8b0b640e5d5df6f19e9a6caf1945400d2fe1e6bba5` | | |
| | `physics/fno_burgers_singlemode.safetensors` | `results/hf_export/physics/fno_burgers_singlemode.safetensors` (= `results/stage2/fno.pt`; loaders verified identical, max weight and field difference 0.0) | 552,076 B | `7bb0076c85cdcf2505a9079c05964e3eb77ac4a776eccf34216953f3c37bfcdd` | | |
| The copies were made with `cp` on 2026-09-06 and the hashes match the sources | |
| (`shasum -a 256`). Not uploaded: `__pycache__/`, `.DS_Store`. | |
| ### To add later (the two runs in progress) | |
| When the Gemma multi-mode and 2D runs finish, export them the same way and add: | |
| | path in the HF repo | source | | |
| |---|---| | |
| | `bridges/gemma-4-12b-4bit-mlx-multimode/{bridges.safetensors,config.json}` | the stage-2b Gemma checkpoint (`results/stage2b_gemma12b*/bridges.npz` + a `config.json` in the format of the 1D one) | | |
| | `physics/fno_burgers_multimode.safetensors` | `results/hf_export/physics/fno_burgers_multimode.safetensors` (loads with `load_fno_safetensors`, verified) | | |
| | `bridges/gemma-4-12b-4bit-mlx-2d-dpot/{bridges.safetensors,config.json}` | the stage-2d Gemma checkpoint | | |
| | `physics/dpot_tiny_fisher2d_finetuned.safetensors` | `results/hf_export/physics/dpot_tiny_fisher2d_finetuned.safetensors` | | |
| and fill the two *in progress* rows of `README.md` ("Bridges in this repository") from their | |
| `final_eval.json`; `psilm_infer.py` will need a `--task` switch for those (it is 1D-only today). | |
| ## Upload (maintainer runs this) | |
| From the GitHub checkout root, with `HF_TOKEN` set (or `huggingface-cli login` done): | |
| ```bash | |
| cd /Users/rxiii/Documents/GitHub/PsiLM | |
| HF_HUB_DISABLE_XET=1 .venv/bin/python - <<'EOF' | |
| from huggingface_hub import HfApi | |
| api = HfApi() | |
| repo = "ryoji-info/Gemma-4-12B-PsiLM" | |
| api.create_repo(repo, repo_type="model", private=True, exist_ok=True) | |
| api.upload_folder( | |
| folder_path="release/gemma-4-12b-psilm", | |
| repo_id=repo, | |
| repo_type="model", | |
| commit_message="Gemma-4-12B-PsiLM: bridges, Burgers FNO, one-command CLI, model card", | |
| ignore_patterns=["__pycache__/*", "*.pyc", ".DS_Store"], | |
| ) | |
| print("UPLOAD DONE") | |
| EOF | |
| ``` | |
| `HF_HUB_DISABLE_XET=1` keeps the upload on the classic LFS path (the Xet backend has | |
| stalled on this machine's earlier uploads). Make the repo public afterwards with | |
| `api.update_repo_settings(repo, private=False)` or from the repo's settings page, together | |
| with `ryoji-info/PsiLM-bridges` and `ryoji-info/PsiLM-physics`, which the card links to. | |
| ## After upload: the one-command check | |
| ```bash | |
| huggingface-cli download ryoji-info/Gemma-4-12B-PsiLM --local-dir /tmp/g4psilm && cd /tmp/g4psilm | |
| python3 -m venv .venv && .venv/bin/pip install -r requirements.txt | |
| .venv/bin/python psilm_infer.py | |
| ``` | |
| Note for the `pip install` line: the `psilm @ git+...` requirement needs the GitHub | |
| `pyproject.toml` to use package discovery (`[tool.setuptools.packages.find] include = ["psilm*"]`, | |
| changed on 2026-09-06 in the working tree from `packages = ["psilm"]`, which shipped only the | |
| top-level package without `psilm.mlx`, `psilm.stage2`, `psilm.physics`). That change must be | |
| pushed before the requirement installs a usable package; until then the script says so, and the | |
| `PSILM_REPO=/path/to/clone` fallback works regardless. | |