-
Notifications
You must be signed in to change notification settings - Fork 28.9k
[SPARK-21523][ML] update breeze to 0.13.2 for an emergency bugfix in strong wolfe line search #18797
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
Conversation
|
@sethah mentioned the potential impact of this so yeah I agree we should get this in and to 2.2 |
|
Can you change the title? Upgrade to 0.13.2. |
|
Test build #80125 has finished for PR 18797 at commit
|
|
Ah, looks like some legitimate failures related to the change we pulled in. Probably just needs some test adjustments |
|
Strange thing, the code failed this @srowen @sethah Do you know the reason ? The require is almost impossible to fail. Is there some bug in the three testcases? |
|
The actual failure in the first two cases looks like it must be related: The last one looks like it's just expecting a different convergence sequence. I don't know much about it but didn't seem too odd at first glance. If I have time later this week I'll try to rerun locally and see if the test fixes look easy. |
|
@srowen Yeah, the third case is another problem (I think we can simply change the assert statement to be |
|
The only number that is <= Double.PositiveInfinity is Double.NaN, because it has no ordering at all with respect to anything. So init must be NaN somehow. It's called from LBFGS in Breeze, where the value is It might still be a Breeze issue that's just now uncovered, but, haven't proven that yet. |
|
I've figured out the problem, and pretty sure it's a problem in the AFT test that was hidden until now. It runs AFTSurvivlaRegression on this input: The problem is one label is 0, but this is interpreted as a time to failure (I believe?). Somewhere the code takes the log of this value, gets -Infinity, quickly gets NaN in an expression, and eventually causes the error per above. I think we can just modify the test but wanted to see if that makes sense to @yanboliang @zhengruifeng @BenFradet who have touched the AFT code? |
|
Thanks! Waiting AFT testcode author to figure out how to modify the testcase. |
|
@srowen there shouldn't be any issue with removing the first row of the test data afaict. |
|
Yeah, the only issue is that the test set is generated and used in several tests. Maybe we can just see if changing it works for all callers. |
|
@WeichenXu123 it does appear that the tests pass with the following tiny changes -- I can make a proper PR on your branch if needed, but I'm lazy and just attached the diff since it's 3 lines. |
|
@srowen Great! thanks! |
af82dfc to
be57175
Compare
|
@WeichenXu123 there is one more change you'll need, in |
srowen
left a comment
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.
Pending tests, looks OK. This change passed MLlib tests for me.
|
Test build #80257 has finished for PR 18797 at commit
|
|
Test build #80258 has finished for PR 18797 at commit
|
|
Test build #80259 has finished for PR 18797 at commit
|
|
@WeichenXu123 looks like we need one other tiny tweak to the Python equivalents. There I think it's easiest to convert a 0 to a tiny value: |
|
@srowen @WeichenXu123 |
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.
If no theoretically guaranteed, why we need to keep this test? I remember we change here multiple times when we did breeze upgrade. What do you think about just removing this line? We never check the number of iterations at other test suites. @srowen @WeichenXu123
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.
OK by me. You could also make it a range. Or something really basic like "> 0".
|
Yes it seems like that should be checked somewhere. It might be rational to include it here as a double check that the newly uncovered issue that needs to be fixed to upgrade breeze is gone. But could happen in another change too. |
|
Test build #80369 has finished for PR 18797 at commit
|
fbf1677 to
5063758
Compare
|
Test build #80381 has finished for PR 18797 at commit
|
|
Test build #3884 has finished for PR 18797 at commit
|
…strong wolfe line search ## What changes were proposed in this pull request? Update breeze to 0.13.1 for an emergency bugfix in strong wolfe line search scalanlp/breeze#651 ## How was this patch tested? N/A Author: WeichenXu <[email protected]> Closes #18797 from WeichenXu123/update-breeze. (cherry picked from commit b35660d) Signed-off-by: Yanbo Liang <[email protected]>
|
Merged into master and branch-2.2. Thanks for all. |
…strong wolfe line search ## What changes were proposed in this pull request? Update breeze to 0.13.1 for an emergency bugfix in strong wolfe line search scalanlp/breeze#651 ## How was this patch tested? N/A Author: WeichenXu <[email protected]> Closes apache#18797 from WeichenXu123/update-breeze. (cherry picked from commit b35660d) Signed-off-by: Yanbo Liang <[email protected]>
…strong wolfe line search ## What changes were proposed in this pull request? Update breeze to 0.13.1 for an emergency bugfix in strong wolfe line search scalanlp/breeze#651 ## How was this patch tested? N/A Author: WeichenXu <[email protected]> Closes apache#18797 from WeichenXu123/update-breeze. (cherry picked from commit b35660d)
What changes were proposed in this pull request?
Update breeze to 0.13.1 for an emergency bugfix in strong wolfe line search
scalanlp/breeze#651
How was this patch tested?
N/A