From 9f339107f19410def47ae6b73c8abe0b30f4bdfb Mon Sep 17 00:00:00 2001 From: junpenglao Date: Thu, 2 Apr 2026 21:36:23 +0200 Subject: [PATCH 1/4] Migrate to Jupyter Book 2 - Upgrade jupyter-book from 1.x to >=2 (backed by mystmd engine) - Replace _config.yml + _toc.yml with unified myst.yml - Update CI workflows: use `jupyter book build --execute --html` - Add BASE_URL env var for GitHub Pages deployment - Add BlackJAX logo and site branding - Update README with build/setup/contributing instructions - Add CLAUDE.md for Claude Code guidance Co-Authored-By: Claude Opus 4.6 --- .github/workflows/publish.yml | 14 ++---- .github/workflows/test.yml | 15 +------ .gitignore | 1 + CLAUDE.md | 80 ++++++++++++++++++++++++++++++++++ README.md | 61 +++++++++++++++++++++++++- book/_config.yml | 42 ------------------ book/_toc.yml | 28 ------------ book/blackjax.png | Bin 0 -> 161829 bytes book/myst.yml | 50 +++++++++++++++++++++ requirements.txt | 2 +- 10 files changed, 196 insertions(+), 97 deletions(-) create mode 100644 CLAUDE.md delete mode 100644 book/_config.yml delete mode 100644 book/_toc.yml create mode 100644 book/blackjax.png create mode 100644 book/myst.yml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index b7cfed73..d38b98ca 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -18,15 +18,6 @@ jobs: - name: Checkout the branch uses: actions/checkout@v3 - - name: Jupyter Book cache - id: cache - uses: actions/cache@v3 - with: - path: ./jupyter_cache - key: jupyter-cache-${{ github.run_id }} - restore-keys: | - jupyter-cache - - name: Set up Python uses: actions/setup-python@v4 with: @@ -37,9 +28,10 @@ jobs: pip install -r requirements.txt - name: Build the book + env: + BASE_URL: /${{ github.event.repository.name }} run: | - mkdir -p ./jupyter_cache - jupyter-book build -nv --keep-going book + cd book && jupyter book build --execute --html - name: Publish to GitHub Pages uses: JamesIves/github-pages-deploy-action@v4 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 31f87bb6..9b27be5a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,15 +12,6 @@ jobs: - name: Checkout the branch uses: actions/checkout@v3 - - name: Jupyter Book cache - id: cache - uses: actions/cache@v3 - with: - path: ./jupyter_cache - key: ${{ github.event.number }}-jupyter-cache-${{ github.run_id }} - restore-keys: | - ${{ github.event.number }}-jupyter-cache - - name: Set up Python uses: actions/setup-python@v4 with: @@ -29,9 +20,7 @@ jobs: - name: Install dependencies run: | pip install -r requirements.txt + - name: Build the book run: | - mkdir -p ./jupyter_cache - ls ./jupyter_cache - jupyter-book build -n --keep-going book - ls ./jupyter_cache + cd book && jupyter book build --execute --html diff --git a/.gitignore b/.gitignore index b33ed3d6..9191cf60 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ _build *_version.py /jupyter_cache/ .DS_Store +*.myst.bak diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 00000000..058be424 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,80 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Overview + +The Sampling Book is a [Jupyter Book](https://jupyterbook.org/) containing tutorials on sampling algorithms built with the [BlackJAX](https://github.com/blackjax-devs/blackjax) library. Notebooks cover both algorithm showcases and model-specific examples. + + +## Commands + +All commands should be run via `mamba run -n sampling_book `. + +### Install dependencies +```bash +mamba run -n sampling_book pip install -r requirements.txt +``` + +### Build the book +```bash +cd book && mamba run -n sampling_book jupyter book build --execute --html +``` + +Static HTML output goes to `book/_build/html/`. Execution results are cached in +`book/_build/execute/` (auto-invalidates when cell code changes; clear with +`mamba run -n sampling_book jupyter book clean --execute`). + +For local preview (dev server): +```bash +cd book && mamba run -n sampling_book jupyter book start --execute +``` + +### Linting / formatting +Pre-commit hooks handle formatting for both Python source and notebooks: +```bash +mamba run -n sampling_book pre-commit run --all-files +``` + +Tools configured: `black`, `isort` (black profile), `flake8` (ignores E501, E203, E731, W503), `mypy`, `pyupgrade`, and their `nbQA` notebook equivalents (`nbqa-black`, `nbqa-isort`, `nbqa-flake8`). + +### PR Workflow + +Always branch from `origin/main`: +```bash +git fetch origin +git checkout -b my-branch origin/main +``` + +Before opening or updating a PR, always rebase onto the latest `origin/main` +and force-push: +```bash +git fetch origin && git rebase origin/main +git push --force-with-lease +``` + +## Architecture + +### Notebook format +All tutorial notebooks live under `book/` as MyST Markdown files (`.md` with jupytext frontmatter, `format_name: myst`). They are **not** `.ipynb` files — jupytext converts them at build time. The TOC is defined in the `toc` section of `book/myst.yml`. + +- `book/algorithms/` — notebooks showcasing specific BlackJAX samplers (NUTS, SMC, MCLMC, MEADS, LAPS, etc.) +- `book/models/` — notebooks showing BlackJAX applied to specific statistical models (GPs, logistic regression, BNNs, ODE solvers, etc.) + +### Shared Python utilities (`src/`) +A small installable package (`samplingbook`, installed as `-e .`) provides reusable helpers: +- `src/models/sparse_regression.py` — Aesara/Aeppl model definition and log-density helper for the German Credit sparse regression example + +This package is declared in `pyproject.toml` and installed via `requirements.txt` (`-e .`). Add shared model/utility code here when multiple notebooks need it. + +### Key dependencies +- **BlackJAX** — installed from `main` branch (`git+https://github.com/blackjax-devs/blackjax.git@main`) +- **JAX / jaxlib** — numerical backend +- **Aesara / Aeppl** — used in some older notebooks for model specification +- **ArviZ** — posterior diagnostics and plotting +- **NumpPyro, TFP** — used in select notebooks for comparison or model building + +### CI +`.github/workflows/test.yml` — builds the book on PRs to `main`, using a cache keyed by PR number. +`.github/workflows/publish.yml` — publishes the built book (triggered separately). + diff --git a/README.md b/README.md index 5b50e07a..39e103a7 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,60 @@ -# The sampling book +# The Sampling Book -The sampling book is a series of tutorials on sampling algorithms built with the [Blackjax](https://github.com/blackjax-devs/blackjax) library. +The Sampling Book is a series of tutorials on sampling algorithms built with the [BlackJAX](https://github.com/blackjax-devs/blackjax) library. The book is built with [Jupyter Book 2](https://jupyterbook.org/) and published to GitHub Pages. + +## Setup + +Install dependencies into a conda/mamba environment: + +```bash +mamba create -n sampling_book python=3.13 +mamba activate sampling_book +pip install -r requirements.txt +``` + +## Building the book + +Build the static site with notebook execution: + +```bash +cd book && jupyter book build --execute --html +``` + +Static HTML output goes to `book/_build/html/`. + +For a local preview with live reload: + +```bash +cd book && jupyter book start --execute +``` + +This serves the book at `http://localhost:3000`. + +## Contributing + +All tutorial notebooks are MyST Markdown files (`.md`) under `book/`, organized into: + +- `book/algorithms/` — sampling algorithm showcases +- `book/models/` — model-specific examples + +### Converting between `.ipynb` and `.md` + +Notebooks are stored as MyST Markdown (`.md`) via [jupytext](https://jupytext.readthedocs.io/). To convert between formats during development: + +```bash +# .md → .ipynb (for interactive editing in Jupyter) +jupytext --to ipynb book/algorithms/my_notebook.md + +# .ipynb → .md (convert back before committing) +jupytext --to myst book/algorithms/my_notebook.ipynb +``` + +Only commit the `.md` files — `.ipynb` files are for local development only. + +### Linting + +Pre-commit hooks enforce formatting (black, isort, flake8) for both Python source and notebooks: + +```bash +pre-commit run --all-files +``` diff --git a/book/_config.yml b/book/_config.yml deleted file mode 100644 index be4ecf8d..00000000 --- a/book/_config.yml +++ /dev/null @@ -1,42 +0,0 @@ -# Book settings -# Learn more at https://jupyterbook.org/customize/config.html - -title: The Sampling Book Project -author: The Blackjax Team -email: remi@thetypicalset.com - -exclude_patterns: [README.md] - -parse: - myst_enable_extensions: - - dollarmath - - amsmath - -# Define the name of the latex output file for PDF builds -latex: - latex_documents: - targetname: book.tex - -# Add a bibtex file so that we can create citations -bibtex_bibfiles: - - references.bib - -# Information about where the book exists on the web -repository: - url: https://github.com/blackjax-devs/sampling-book # Online location of your book - branch: main # Which branch of the repository should be used when creating links (optional) - -# Add GitHub buttons to your book -# See https://jupyterbook.org/customize/config.html#add-a-link-to-your-repository -html: - use_issues_button: true - use_repository_button: true - -execute: - execute_notebooks: cache - cache: ./jupyter_cache - timeout: 600 - -sphinx: - extra_extensions: - - IPython.sphinxext.ipython_console_highlighting diff --git a/book/_toc.yml b/book/_toc.yml deleted file mode 100644 index 131a8ad4..00000000 --- a/book/_toc.yml +++ /dev/null @@ -1,28 +0,0 @@ -format: jb-book -root: index -parts: -- caption: Algorithms - chapters: - - file: algorithms/contour_sgld.md - - file: algorithms/cyclical_sgld.md - - file: algorithms/pathfinder.md - - file: algorithms/PeriodicOrbitalMCMC.md - - file: algorithms/TemperedSMC.md - - file: algorithms/TemperedSMCWithOptimizedInnerKernel.md - - file: algorithms/SMCvsPersistentSampling.md - - file: algorithms/mclmc.md - - file: algorithms/meads.md - - file: algorithms/laps.md - - file: algorithms/low_rank_mass_matrix.md -- caption: Models - chapters: - - file: models/change_of_variable_hmc.md - - file: models/GP_EllipticalSliceSampler.md - - file: models/GP_Marginal.md - - file: models/sparse_regression.md - - file: models/logistic_regression.md - - file: models/LogisticRegressionWithLatentGaussianSampler.md - - file: models/mlp.md - - file: models/hierarchical_bnn.md - - file: models/RegimeSwitchingModel.md - - file: models/probabilistic_ode_solver_parameter_estimation.md diff --git a/book/blackjax.png b/book/blackjax.png new file mode 100644 index 0000000000000000000000000000000000000000..a473a883f7264ab0ce72cede779894d1fdc076af GIT binary patch literal 161829 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
lKIST2~+y%CT(EZitlXcP($n2!3!9SG|xS% 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 jupytext # Dependencies for the notebooks From 80c1a0184ef8655748fd0162c548ec129691e175 Mon Sep 17 00:00:00 2001 From: junpenglao Date: Thu, 2 Apr 2026 21:37:56 +0200 Subject: [PATCH 2/4] Fix .gitignore pattern for .bak files and remove CLAUDE.md from PR Co-Authored-By: Claude Opus 4.6 --- .gitignore | 2 +- CLAUDE.md | 80 ------------------------------------------------------ 2 files changed, 1 insertion(+), 81 deletions(-) delete mode 100644 CLAUDE.md diff --git a/.gitignore b/.gitignore index 9191cf60..363ef738 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,4 @@ _build *_version.py /jupyter_cache/ .DS_Store -*.myst.bak +*.bak diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index 058be424..00000000 --- a/CLAUDE.md +++ /dev/null @@ -1,80 +0,0 @@ -# CLAUDE.md - -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. - -## Overview - -The Sampling Book is a [Jupyter Book](https://jupyterbook.org/) containing tutorials on sampling algorithms built with the [BlackJAX](https://github.com/blackjax-devs/blackjax) library. Notebooks cover both algorithm showcases and model-specific examples. - - -## Commands - -All commands should be run via `mamba run -n sampling_book `. - -### Install dependencies -```bash -mamba run -n sampling_book pip install -r requirements.txt -``` - -### Build the book -```bash -cd book && mamba run -n sampling_book jupyter book build --execute --html -``` - -Static HTML output goes to `book/_build/html/`. Execution results are cached in -`book/_build/execute/` (auto-invalidates when cell code changes; clear with -`mamba run -n sampling_book jupyter book clean --execute`). - -For local preview (dev server): -```bash -cd book && mamba run -n sampling_book jupyter book start --execute -``` - -### Linting / formatting -Pre-commit hooks handle formatting for both Python source and notebooks: -```bash -mamba run -n sampling_book pre-commit run --all-files -``` - -Tools configured: `black`, `isort` (black profile), `flake8` (ignores E501, E203, E731, W503), `mypy`, `pyupgrade`, and their `nbQA` notebook equivalents (`nbqa-black`, `nbqa-isort`, `nbqa-flake8`). - -### PR Workflow - -Always branch from `origin/main`: -```bash -git fetch origin -git checkout -b my-branch origin/main -``` - -Before opening or updating a PR, always rebase onto the latest `origin/main` -and force-push: -```bash -git fetch origin && git rebase origin/main -git push --force-with-lease -``` - -## Architecture - -### Notebook format -All tutorial notebooks live under `book/` as MyST Markdown files (`.md` with jupytext frontmatter, `format_name: myst`). They are **not** `.ipynb` files — jupytext converts them at build time. The TOC is defined in the `toc` section of `book/myst.yml`. - -- `book/algorithms/` — notebooks showcasing specific BlackJAX samplers (NUTS, SMC, MCLMC, MEADS, LAPS, etc.) -- `book/models/` — notebooks showing BlackJAX applied to specific statistical models (GPs, logistic regression, BNNs, ODE solvers, etc.) - -### Shared Python utilities (`src/`) -A small installable package (`samplingbook`, installed as `-e .`) provides reusable helpers: -- `src/models/sparse_regression.py` — Aesara/Aeppl model definition and log-density helper for the German Credit sparse regression example - -This package is declared in `pyproject.toml` and installed via `requirements.txt` (`-e .`). Add shared model/utility code here when multiple notebooks need it. - -### Key dependencies -- **BlackJAX** — installed from `main` branch (`git+https://github.com/blackjax-devs/blackjax.git@main`) -- **JAX / jaxlib** — numerical backend -- **Aesara / Aeppl** — used in some older notebooks for model specification -- **ArviZ** — posterior diagnostics and plotting -- **NumpPyro, TFP** — used in select notebooks for comparison or model building - -### CI -`.github/workflows/test.yml` — builds the book on PRs to `main`, using a cache keyed by PR number. -`.github/workflows/publish.yml` — publishes the built book (triggered separately). - From ec420d85e57b8776bada05d9d7d48c030a824498 Mon Sep 17 00:00:00 2001 From: junpenglao Date: Thu, 2 Apr 2026 22:01:38 +0200 Subject: [PATCH 3/4] Enable execution caching in Jupyter Book 2 Add execute config to myst.yml so notebook outputs are cached in _build/execute/ and reused when cell code hasn't changed. Co-Authored-By: Claude Opus 4.6 --- book/myst.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/book/myst.yml b/book/myst.yml index b258e686..704eff99 100644 --- a/book/myst.yml +++ b/book/myst.yml @@ -39,6 +39,9 @@ project: - file: models/hierarchical_bnn.md - file: models/RegimeSwitchingModel.md - file: models/probabilistic_ode_solver_parameter_estimation.md +execute: + enabled: true + cache: _build/execute site: title: The Sampling Book logo: blackjax.png From 45c247b3feafaf35b682a5fd8f62753756973a71 Mon Sep 17 00:00:00 2001 From: junpenglao Date: Thu, 2 Apr 2026 22:08:48 +0200 Subject: [PATCH 4/4] Fix Jupyter Book 2 build warnings - Move logo under site.options in myst.yml - Remove unsupported execute config (use --execute CLI flag instead) - Change :args: to :tags: in mlp.md - Convert @-mentions to links in hierarchical_bnn.md to avoid citation errors Co-Authored-By: Claude Opus 4.6 --- book/models/hierarchical_bnn.md | 2 +- book/models/mlp.md | 6 +++--- book/myst.yml | 5 +---- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/book/models/hierarchical_bnn.md b/book/models/hierarchical_bnn.md index 140889fe..b8ee2b58 100644 --- a/book/models/hierarchical_bnn.md +++ b/book/models/hierarchical_bnn.md @@ -14,7 +14,7 @@ kernelspec: # Hierarchical Bayesian Neural Networks Code is based on [This blog post](https://twiecki.io/blog/2018/08/13/hierarchical_bayesian_neural_network/) by [Thomas Wiecki](https://twitter.com/twiecki) (see -[Original PyMC3 Notebook](https://github.com/twiecki/WhileMyMCMCGentlySamples/blob/master/content/downloads/notebooks/bayesian_neural_network_hierarchical.ipynb)). Converted to Blackjax by Aleyna Kara (@karalleyna) and Kevin Murphy (@murphyk). (For a Numpyro version, see [here](https://github.com/probml/probml-notebooks/blob/main/notebooks/bnn_hierarchical_numpyro.ipynb).) +[Original PyMC3 Notebook](https://github.com/twiecki/WhileMyMCMCGentlySamples/blob/master/content/downloads/notebooks/bayesian_neural_network_hierarchical.ipynb)). Converted to Blackjax by Aleyna Kara ([@karalleyna](https://github.com/karalleyna)) and Kevin Murphy ([@murphyk](https://github.com/murphyk)). (For a Numpyro version, see [here](https://github.com/probml/probml-notebooks/blob/main/notebooks/bnn_hierarchical_numpyro.ipynb).) We create T=18 different versions of the "two moons" dataset, each rotated by a different amount. These correspond to T different nonlinear binary classification "tasks" that we have to solve. We only get a few labeled samples from each each task, so solving them separately (with T independent MLPs, or multi layer perceptrons) will result in poor performance. If we pool all the data, and fit a single MLP, we also get poor performance, because we are mixing together different decision boundaries. But if we use a hierarchical Bayesian model, with one MLP per task, and one learned prior MLP, we will get better results, as we will see. diff --git a/book/models/mlp.md b/book/models/mlp.md index 3ee5c850..51c5426a 100644 --- a/book/models/mlp.md +++ b/book/models/mlp.md @@ -433,7 +433,7 @@ ax.set_ylabel("# uncertain predictions"); Perhaps unsurprisingly, the digit 8 is overrepresented in the set of examples $i$ for which $\max_d P(y_i=d|x_i) < 0.95$. As a purely academic exercise and sanity test of sort, let us now re-compute the point-wise accuracy ignoring the digits for which the model is uncertain, varying the threshold above which we consider the model to be certain: ```{code-cell} ipython3 -:args: [hide-cell] +:tags: [hide-cell] def compute_accuracy(probs, y): predicted = jnp.argmax(probs, axis=1) @@ -443,7 +443,7 @@ def compute_accuracy(probs, y): ``` ```{code-cell} ipython3 -:args: [hide-cell] +:tags: [hide-cell] thresholds = np.linspace(0.1, 1.0, 90) @@ -458,7 +458,7 @@ for t in thresholds: ``` ```{code-cell} ipython3 -:args: [hide-input] +:tags: [hide-input] _, axes = plt.subplots(1, 2, figsize=(10, 4)) axes[0].plot(thresholds, accuracies) diff --git a/book/myst.yml b/book/myst.yml index 704eff99..e17fa91a 100644 --- a/book/myst.yml +++ b/book/myst.yml @@ -39,15 +39,12 @@ project: - file: models/hierarchical_bnn.md - file: models/RegimeSwitchingModel.md - file: models/probabilistic_ode_solver_parameter_estimation.md -execute: - enabled: true - cache: _build/execute site: title: The Sampling Book - logo: blackjax.png actions: - title: GitHub url: https://github.com/blackjax-devs/sampling-book options: + logo: blackjax.png folders: true template: book-theme