-
Notifications
You must be signed in to change notification settings - Fork 37
Make FastLDF the default + remove SimpleVarInfo #1139
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
penelopeysm
wants to merge
2
commits into
py/params-from-ldf
Choose a base branch
from
py/not-experimental
base: py/params-from-ldf
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
79a440c to
64ad4af
Compare
Contributor
Benchmark Report for Commit 6f5df1aComputer InformationBenchmark Results |
Contributor
|
DynamicPPL.jl documentation for PR #1139 is available at: |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## py/params-from-ldf #1139 +/- ##
======================================================
- Coverage 81.53% 77.15% -4.38%
======================================================
Files 42 40 -2
Lines 3953 3725 -228
======================================================
- Hits 3223 2874 -349
- Misses 730 851 +121 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
3e646ca to
0dd2f70
Compare
c4f93fe to
c1ee6cc
Compare
0dd2f70 to
077457f
Compare
d86ff22 to
be27184
Compare
0150ef4 to
2fad97b
Compare
be27184 to
0cc9278
Compare
0cc9278 to
6f5df1a
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There are two commits in this PR:
Replace
LogDensityFunctionwithFastLDF(that's not controversial);Remove
SimpleVarInfo(which might be controversial).SVI
I would argue that the main purpose of SVI was for performance when evaluating a model with NamedTuple or Dict parameters:
However, exactly the same thing can be accomplished now with the combination of
InitFromParams+OnlyAccsVarInfo:Indeed, this strategy is on par with SVI for the NamedTuple case and faster than SVI for the Dict case (see benchmarks on #1125; performance characteristics on this PR are the same).
The other context in which SVI was useful was evaluation with vector parameters, but that's handled by FastLDF. Thus, my conclusion is that SVI is no longer needed.
Furthermore, because SVI is gone, I believe
DynamicTransformation,StaticTransformation, andmaybe_invlink_before_eval!!can also go. However, we'll leave that for another time.I looked through GitHub for usage of SimpleVarInfo, and it's only in DPPL, Turing, Mooncake benchmarks (trivially fixed once FastLDF is released), and https://github.com/epimap/Epimap.jl-public and https://github.com/marius311/MuseInference.jl, which haven't been updated in a while.
Miscellany
I'm lumping these into a single PR, but also happy to split them up. The two commits are completely standalone though. The main purpose of lumping them is so that I have a single branch to test Turing CI against.