- 
                Notifications
    
You must be signed in to change notification settings  - Fork 451
 
Refactor of MultiTask / FullyBayesianMultiTaskGP to use ProcuctKernel & IndexKernel #2908
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
| 
           This pull request was exported from Phabricator. Differential Revision: D76317553  | 
    
          Codecov ReportAll modified and coverable lines are covered by tests ✅ 
 Additional details and impacted files@@            Coverage Diff            @@
##              main     #2908   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          212       212           
  Lines        19822     19844   +22     
=========================================
+ Hits         19822     19844   +22     ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
  | 
    
… & IndexKernel (meta-pytorch#2908) Summary: Modifed MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and a seemingly even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
e644dee    to
    4894a16      
    Compare
  
    | 
           This pull request was exported from Phabricator. Differential Revision: D76317553  | 
    
… & IndexKernel Summary: X-link: facebookexternal/botorch_fb#23 X-link: meta-pytorch/botorch#2908 Modifed MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and a seemingly even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
… & IndexKernel (facebook#3992) Summary: X-link: facebookexternal/botorch_fb#23 X-link: meta-pytorch/botorch#2908 Modifed MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and a seemingly even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
… & IndexKernel (meta-pytorch#2908) Summary: X-link: facebook/Ax#3992 X-link: facebookexternal/botorch_fb#23 Modifed MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and a seemingly even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
4894a16    to
    4b704d0      
    Compare
  
    | 
           This pull request was exported from Phabricator. Differential Revision: D76317553  | 
    
… & IndexKernel (meta-pytorch#2908) Summary: X-link: facebook/Ax#3992 X-link: facebookexternal/botorch_fb#23 Modifed MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and a seemingly even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
4b704d0    to
    2cb5691      
    Compare
  
    | 
           This pull request was exported from Phabricator. Differential Revision: D76317553  | 
    
… & IndexKernel (facebook#3992) Summary: X-link: facebookexternal/botorch_fb#23 X-link: meta-pytorch/botorch#2908 Modifed MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and a seemingly even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
… & IndexKernel (facebook#3992) Summary: X-link: facebookexternal/botorch_fb#23 X-link: meta-pytorch/botorch#2908 Modifed MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and a seemingly even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
2cb5691    to
    c553d85      
    Compare
  
    … & IndexKernel (meta-pytorch#2908) Summary: X-link: facebook/Ax#3992 X-link: facebookexternal/botorch_fb#23 Modifed MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and a seemingly even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
| 
           This pull request was exported from Phabricator. Differential Revision: D76317553  | 
    
… & IndexKernel (facebook#3992) Summary: X-link: facebookexternal/botorch_fb#23 X-link: meta-pytorch/botorch#2908 Modifed MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and a seemingly even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
… & IndexKernel (meta-pytorch#2908) Summary: X-link: facebook/Ax#3992 X-link: facebookexternal/botorch_fb#23 Modifed MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and a seemingly even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
c553d85    to
    3f07a71      
    Compare
  
    | 
           This pull request was exported from Phabricator. Differential Revision: D76317553  | 
    
… & IndexKernel (meta-pytorch#2908) Summary: X-link: facebook/Ax#3992 X-link: facebookexternal/botorch_fb#23 Modified MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and an even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
3f07a71    to
    1e66b0d      
    Compare
  
    | 
           This pull request was exported from Phabricator. Differential Revision: D76317553  | 
    
… & IndexKernel (facebook#3992) Summary: X-link: facebookexternal/botorch_fb#23 X-link: meta-pytorch/botorch#2908 Modified MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and an even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
… & IndexKernel (meta-pytorch#2908) Summary: X-link: facebook/Ax#3992 X-link: facebookexternal/botorch_fb#23 Modified MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and an even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
| 
           This pull request was exported from Phabricator. Differential Revision: D76317553  | 
    
… & IndexKernel (facebook#3992) Summary: X-link: facebookexternal/botorch_fb#23 X-link: meta-pytorch/botorch#2908 Modified MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and an even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
| 
           This pull request was exported from Phabricator. Differential Revision: D76317553  | 
    
… & IndexKernel (meta-pytorch#2908) Summary: X-link: facebook/Ax#3992 X-link: facebookexternal/botorch_fb#23 Pull Request resolved: meta-pytorch#2908 Modified MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and an even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
72bbba9    to
    f7c5667      
    Compare
  
    … & IndexKernel (facebook#3992) Summary: Pull Request resolved: facebook#3992 X-link: facebookexternal/botorch_fb#23 X-link: meta-pytorch/botorch#2908 Modified MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and an even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
… & IndexKernel (meta-pytorch#2908) Summary: X-link: facebook/Ax#3992 X-link: facebookexternal/botorch_fb#23 Modified MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and an even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
f7c5667    to
    418f592      
    Compare
  
    … & IndexKernel (facebook#3992) Summary: X-link: facebookexternal/botorch_fb#23 X-link: meta-pytorch/botorch#2908 Modified MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and an even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
| 
           This pull request was exported from Phabricator. Differential Revision: D76317553  | 
    
… & IndexKernel (meta-pytorch#2908) Summary: X-link: facebook/Ax#3992 X-link: facebookexternal/botorch_fb#23 Pull Request resolved: meta-pytorch#2908 Modified MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and an even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
418f592    to
    ce19964      
    Compare
  
    … & IndexKernel (facebook#3992) Summary: Pull Request resolved: facebook#3992 X-link: facebookexternal/botorch_fb#23 X-link: meta-pytorch/botorch#2908 Modified MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and an even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
ce19964    to
    c7e6d4f      
    Compare
  
    … & IndexKernel (meta-pytorch#2908) Summary: X-link: facebook/Ax#3992 X-link: facebookexternal/botorch_fb#23 Modified MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and an even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
| 
           This pull request was exported from Phabricator. Differential Revision: D76317553  | 
    
… & IndexKernel (meta-pytorch#2908) Summary: X-link: facebook/Ax#3992 X-link: facebookexternal/botorch_fb#23 Modified MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and an even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
c7e6d4f    to
    27fc430      
    Compare
  
    | 
           This pull request was exported from Phabricator. Differential Revision: D76317553  | 
    
… & IndexKernel (facebook#3992) Summary: X-link: facebookexternal/botorch_fb#23 X-link: meta-pytorch/botorch#2908 Modified MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and an even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
… & IndexKernel (facebook#3992) Summary: Pull Request resolved: facebook#3992 X-link: facebookexternal/botorch_fb#23 X-link: meta-pytorch/botorch#2908 Modified MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and an even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
… & IndexKernel (meta-pytorch#2908) Summary: X-link: facebook/Ax#3992 X-link: facebookexternal/botorch_fb#23 Modified MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and an even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553
27fc430    to
    64970aa      
    Compare
  
    | 
           This pull request was exported from Phabricator. Differential Revision: D76317553  | 
    
… & IndexKernel (#3992) Summary: Pull Request resolved: #3992 X-link: facebookexternal/botorch_fb#23 X-link: meta-pytorch/botorch#2908 Modified MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and an even larger memory decrease. In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff. With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well. NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347 Reviewed By: saitcakmak Differential Revision: D76317553 fbshipit-source-id: 4ad0a687c7cabd605048b32becbdf295b10f394a
| 
           This pull request has been merged in 4871a22.  | 
    
Summary:
Modifed MultiTask and FullyBayesianMultiTask to use IndexKernel instead of two different covar modules. For large matrices, this constitutes a significant speed-up (2-3x anecdotally) and a seemingly even larger memory decrease.
In addition, this makes MultiTaskFBGP and SingleTaskFBGPs share a lot of code. I'll enable more code sharing between them in a subsequent diff.
With some additional functionality in IndexKernel (i.e. structured learning of the covar_matrix elements), this change would apply to other MTGPs as well.
NOTE: Providing negative indices to an IndexKernel is not supported: pytorch/pytorch#76347
Differential Revision: D76317553