TuringLang / TuringLang/AdvancedVI.jl

Deprecate AdvancedVI or move it outside TuringLang

Open
#281 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
107
Forks
22
Avg merge
5d 21h
Merged PRs (30d)
2

Description

Variational inference methods are often difficult to scale to complex models with strong or structured parameter dependencies. Their performance can depend heavily on the variational family, parameterisation, gradient estimator, and optimisation method, while more expressive approximations add substantial implementation complexity. This makes VI an area where researchers should be able to experiment with new methods without requiring those methods to become part of Turing.jl or DynamicPPL.

AdvancedVI therefore does not need to live inside either Turing.jl or DynamicPPL. It can instead be maintained as an independent inference package operating against a generic log-density and gradient interface. Turing models can expose the required log density and derivatives through that interface, allowing AdvancedVI, or other VI implementations, to be applied to Turing models without depending on Turing's internal model representation.

This separation would give VI implementations more freedom to evolve independently while keeping Turing.jl and DynamicPPL focused on modelling and model execution. It would also make the boundary clearer: Turing provides models and exposes their log densities and gradients; AdvancedVI provides variational inference algorithms that consume that interface.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by reviewing AdvancedVI's public interfaces and its interaction with Turing.jl and DynamicPPL, then determine whether the package should be deprecated or moved behind a generic log-density and gradient interface. Done requires an agreed package boundary and an implementation plan.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
machine-learning
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.