|
| 1 | +--- |
| 2 | +title: Turing.jl Newsletter 8 |
| 3 | +description: The fortnightly newsletter for the Turing.jl probabilistic programming language |
| 4 | +categories: |
| 5 | + - Newsletter |
| 6 | +author: |
| 7 | + - name: The TuringLang team |
| 8 | + url: /team/ |
| 9 | +date: 2025-06-06 |
| 10 | +--- |
| 11 | + |
| 12 | +The major update this week is the release of Turing.jl v0.39. |
| 13 | +The biggest change is the update to AdvancedVI 0.4, and corresponding changes in Turing's VI interface. |
| 14 | +We're still working on bringing all the docs up to date, but here's what you can expect from the new version: |
| 15 | + |
| 16 | +- location-scale families with dense scale matrices, |
| 17 | +- parameter-free stochastic optimization algorithms like `DoG` and `DoWG`, |
| 18 | +- proximal operators for stable optimization, |
| 19 | +- the sticking-the-landing control variate for faster convergence, and |
| 20 | +- the score gradient estimator for non-differentiable targets. |
| 21 | + |
| 22 | +There are some other small changes to do with imports and exports. |
| 23 | +The brief summary is: `@addlogprob!` is now formally exported. |
| 24 | +There are a bunch of other, unexported, things where you may need to change from `Turing.foo` to `DynamicPPL.foo` – although this probably only applies if you were using DynamicPPL internals. |
| 25 | +If you have any issues with these please feel free to get in touch. |
| 26 | + |
| 27 | +Apart from this, we have also released AdvancedHMC.jl 0.8! Breaking changes include: |
| 28 | +- if you are relying the internal `transition` to make an MCMC transition from phase point `z` using trajectory `τ` (or HMCKernel `κ`) with Hamiltonian `h`, please note the signature has changed. |
| 29 | + The usage should now always be `transition(h, τ, z)` or `transition(h, κ, z)`. |
| 30 | +- HMC sampling requires appropriate step size for the Leapfrog integration, as the chosen step size directly affects the numerical stability of the integration process. |
| 31 | + While AdvancedHMC.jl provides `find_good_stepsize` to find a suitable step size during HMC sampling, it didn’t support manual step size specification, which caused unnecessary searching. |
| 32 | + Now `initial_step_size` can be specified as a keyword in `find_good_stepsize` if you want more control of the step size selection process. |
| 33 | + |
| 34 | +And finally, we have a few new examples of normalising flows in the NormalizingFlows.jl library: https://github.com/TuringLang/NormalizingFlows.jl/tree/main/example |
0 commit comments