-
Notifications
You must be signed in to change notification settings - Fork 68
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
Fix storage API failing to return DF for experiments without any tunables #889
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can filter out those nulls at the query level instead of doing it on the client side. maybe all we have to do is remove that isouter=True
parameter at line 167? Can you please check?
P.S. I am trying to understand why on Earth I made this join outer and I can't remember the reason :) Most likely that's some copy/paste artifact, but please double check that everything works when you make this a regular inner join
We can have benchmarks that have no Tunables associated with them, in which case I think we still want to return other aspects of the Experiment data. |
Also, in that case, I think we should only return one row per trial, so the filtering client side isn't really a problem. |
Nevermind. Querying results is already a separate data frame that gets merged at the end of this function. Given that, the only reason I can think of to do the filtering client side is if we want the @motus, thoughts? |
The more I've looked at this the more I think it should just be an inner join.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One small suggested tweak to the test. Otherwise LGTM. Thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Per the discussions, can you please also add a test to check that pending trials that don't yet have results, still show up in the results_df, with empty results columns?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we can also add some failed trials for good measure
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! Thanks for fixing the bug, and double thanks for adding a unit test!
[like] Brian Kroth (GSL) reacted to your message:
…________________________________
From: Sergiy Matusevych ***@***.***>
Sent: Wednesday, December 4, 2024 11:33:56 PM
To: microsoft/MLOS ***@***.***>
Cc: Brian Kroth (GSL) ***@***.***>; Review requested ***@***.***>
Subject: Re: [microsoft/MLOS] Fix storage API failing to return DF for experiments without any tunables (PR #889)
@motus commented on this pull request.
________________________________
On mlos_bench/mlos_bench/tests/storage/exp_data_test.py<#889 (comment)>:
we can also add some failed trials for good measure
—
Reply to this email directly, view it on GitHub<#889 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ABQ53FAX7UPCVNGKVJ3X3A32D6GOJAVCNFSM6AAAAABS66R47OVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDIOBQGEZDINRSGU>.
You are receiving this because your review was requested.Message ID: ***@***.***>
|
Pull Request
Fix storage API failing to return DF for experiments without any tunables
Addresses #884
Description
When an experiment is run without any tunables (benchmarking with default parameters), the storage API fails to return a dataframe of the results.
Example error:
Going to the relevant line and inserting a breakpoint, the relevant columns are
["trial_id", "tunable_config_id", "param", "value"]
.We can see the data is full of NULLs / Nones
Type of Change
Indicate the type of change by choosing one (or more) of the following:
Testing
Unit test added covering this case, and also manual testing.
Additional Notes (optional)
Add any additional context or information for reviewers.