-
-
Notifications
You must be signed in to change notification settings - Fork 369
Pluggable Algorithms #105
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
Pluggable Algorithms #105
Conversation
|
Looks great, would you be able to add some documentation and example config code to the readme? |
…and configuration vs. redis storage. What a mess. Also tries to refactor helper.rb
|
So, it turns out that you'd actually like to persist the algorithm being used on a per experiment basis. This would let you use a bandit algorithm for some experiments, but a traditional split experiment for others. This started me down a rabbit hole. Issues I'm trying to work on:
In short this is not yet ready to merge, but is a work in progress you should be aware of. Let me know if this seems like an insane direction! |
|
No it sounds reasonable, ping me when it's ready! |
|
I think this is ready to merge, can you take a peek? |
|
Ok, there are a lot of changes in there, including test changes, which makes me wonder if it will have broken any backwards compatibility with previous versions that I'd like to check before merging. Maybe @philnash and @buddhamagnet can give it once over as well? |
|
Yes, as I indicated, it got away from me a bit. I do not think that the semantics of any of the specs have changed, and I tried to not remove any assertions. Things have moved around a bit however. |
|
Hey all. My MBP is being repaired at the moment so won't have a chance to look for a few days. Will do ASAP and thanks for the endeavour @woodhull! |
|
Just making sure that history records that my friend @aaronsw is missed even here. Whiplash, the alternate bandit algorithm implementation in this pull request is derived from the VictoryKit and Whiplash projects he had been working on until he passed away last night. RIP. |
|
❤️ |
Regression in splitrb#105.
For us, we'd like to use the default weighted sample algorithm for some experiments, but a bandit approach for others.
This pull request abstracts the algorithm used to choose alternatives in an experiment into a pluggable module.
There is a global configuration option for which algorithm to use, but it can be overridden on a per-experiment basis.