Skip to content
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

Update context order handling in ContextualDataset #2205

Closed
wants to merge 1 commit into from

Conversation

bletham
Copy link
Contributor

@bletham bletham commented Feb 14, 2024

Summary:
Currently ContextualDataset will re-order outputs to match the specified order of context_buckets.

This has produced a somewhat confusing state, where at different places (ContextualDataset, the model, the surrogates) we have been passing around outcome lists or context lists that are expected to determine ordering in some way, but without a clear place where re-ordering is happening or where that order is being defined.

D51906856 was a step towards clarifying this, by setting the policy that the modelbridge will be responsible for defining the desired ordering; it will then order the datasets accordingly; and everything downstream is expected to return the outputs in the same order as the datasets. That is, it is expected to return the outputs in the same order as the inputs, which seems the cleanest and most logical policy.

This diff updates ContextualDataset in line with that philosophy so that hte output order is always the order that the outcomes are provided in the datasets. If the user wants a particular output order, that can be handled by ordering the input datasets accordingly rather than by specifying context buckets. With this change, the context_buckets input is no longer necessary since the bucket names can be read from the parameter decomposition, and the outcome order is taken from datasets.

Reviewed By: saitcakmak

Differential Revision: D52452236

@facebook-github-bot facebook-github-bot added the CLA Signed Do not delete this pull request or issue due to inactivity. label Feb 14, 2024
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D52452236

Summary:

X-link: facebook/Ax#2198

Currently ContextualDataset will re-order outputs to match the specified order of context_buckets.

This has produced a somewhat confusing state, where at different places (ContextualDataset, the model, the surrogates) we have been passing around outcome lists or context lists that are expected to determine ordering in some way, but without a clear place where re-ordering is happening or where that order is being defined.

D51906856 was a step towards clarifying this, by setting the policy that the modelbridge will be responsible for defining the desired ordering; it will then order the datasets accordingly; and everything downstream is expected to return the outputs in the same order as the datasets. That is, it is expected to return the outputs in the same order as the inputs, which seems the cleanest and most logical policy.

This diff updates ContextualDataset in line with that philosophy so that hte output order is always the order that the outcomes are provided in the datasets. If the user wants a particular output order, that can be handled by ordering the input datasets accordingly rather than by specifying context buckets. With this change, the context_buckets input is no longer necessary since the bucket names can be read from the parameter decomposition, and the outcome order is taken from datasets.

Reviewed By: saitcakmak

Differential Revision: D52452236
bletham added a commit to bletham/Ax that referenced this pull request Feb 14, 2024
Summary:
X-link: pytorch/botorch#2205


Currently ContextualDataset will re-order outputs to match the specified order of context_buckets.

This has produced a somewhat confusing state, where at different places (ContextualDataset, the model, the surrogates) we have been passing around outcome lists or context lists that are expected to determine ordering in some way, but without a clear place where re-ordering is happening or where that order is being defined.

D51906856 was a step towards clarifying this, by setting the policy that the modelbridge will be responsible for defining the desired ordering; it will then order the datasets accordingly; and everything downstream is expected to return the outputs in the same order as the datasets. That is, it is expected to return the outputs in the same order as the inputs, which seems the cleanest and most logical policy.

This diff updates ContextualDataset in line with that philosophy so that hte output order is always the order that the outcomes are provided in the datasets. If the user wants a particular output order, that can be handled by ordering the input datasets accordingly rather than by specifying context buckets. With this change, the context_buckets input is no longer necessary since the bucket names can be read from the parameter decomposition, and the outcome order is taken from datasets.

Reviewed By: saitcakmak

Differential Revision: D52452236
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D52452236

bletham added a commit to bletham/Ax that referenced this pull request Feb 16, 2024
Summary:
X-link: pytorch/botorch#2205


Currently ContextualDataset will re-order outputs to match the specified order of context_buckets.

This has produced a somewhat confusing state, where at different places (ContextualDataset, the model, the surrogates) we have been passing around outcome lists or context lists that are expected to determine ordering in some way, but without a clear place where re-ordering is happening or where that order is being defined.

D51906856 was a step towards clarifying this, by setting the policy that the modelbridge will be responsible for defining the desired ordering; it will then order the datasets accordingly; and everything downstream is expected to return the outputs in the same order as the datasets. That is, it is expected to return the outputs in the same order as the inputs, which seems the cleanest and most logical policy.

This diff updates ContextualDataset in line with that philosophy so that hte output order is always the order that the outcomes are provided in the datasets. If the user wants a particular output order, that can be handled by ordering the input datasets accordingly rather than by specifying context buckets. With this change, the context_buckets input is no longer necessary since the bucket names can be read from the parameter decomposition, and the outcome order is taken from datasets.

Reviewed By: saitcakmak

Differential Revision: D52452236
bletham added a commit to bletham/botorch that referenced this pull request Feb 16, 2024
Summary:

X-link: facebook/Ax#2198

Currently ContextualDataset will re-order outputs to match the specified order of context_buckets.

This has produced a somewhat confusing state, where at different places (ContextualDataset, the model, the surrogates) we have been passing around outcome lists or context lists that are expected to determine ordering in some way, but without a clear place where re-ordering is happening or where that order is being defined.

D51906856 was a step towards clarifying this, by setting the policy that the modelbridge will be responsible for defining the desired ordering; it will then order the datasets accordingly; and everything downstream is expected to return the outputs in the same order as the datasets. That is, it is expected to return the outputs in the same order as the inputs, which seems the cleanest and most logical policy.

This diff updates ContextualDataset in line with that philosophy so that hte output order is always the order that the outcomes are provided in the datasets. If the user wants a particular output order, that can be handled by ordering the input datasets accordingly rather than by specifying context buckets. With this change, the context_buckets input is no longer necessary since the bucket names can be read from the parameter decomposition, and the outcome order is taken from datasets.

Reviewed By: saitcakmak

Differential Revision: D52452236
bletham added a commit to bletham/botorch that referenced this pull request Feb 16, 2024
Summary:

X-link: facebook/Ax#2198

Currently ContextualDataset will re-order outputs to match the specified order of context_buckets.

This has produced a somewhat confusing state, where at different places (ContextualDataset, the model, the surrogates) we have been passing around outcome lists or context lists that are expected to determine ordering in some way, but without a clear place where re-ordering is happening or where that order is being defined.

D51906856 was a step towards clarifying this, by setting the policy that the modelbridge will be responsible for defining the desired ordering; it will then order the datasets accordingly; and everything downstream is expected to return the outputs in the same order as the datasets. That is, it is expected to return the outputs in the same order as the inputs, which seems the cleanest and most logical policy.

This diff updates ContextualDataset in line with that philosophy so that hte output order is always the order that the outcomes are provided in the datasets. If the user wants a particular output order, that can be handled by ordering the input datasets accordingly rather than by specifying context buckets. With this change, the context_buckets input is no longer necessary since the bucket names can be read from the parameter decomposition, and the outcome order is taken from datasets.

Reviewed By: saitcakmak

Differential Revision: D52452236
@facebook-github-bot
Copy link
Contributor

This pull request has been merged in e6d5469.

facebook-github-bot pushed a commit to facebook/Ax that referenced this pull request Feb 16, 2024
Summary:
X-link: pytorch/botorch#2205

Pull Request resolved: #2198

Currently ContextualDataset will re-order outputs to match the specified order of context_buckets.

This has produced a somewhat confusing state, where at different places (ContextualDataset, the model, the surrogates) we have been passing around outcome lists or context lists that are expected to determine ordering in some way, but without a clear place where re-ordering is happening or where that order is being defined.

D51906856 was a step towards clarifying this, by setting the policy that the modelbridge will be responsible for defining the desired ordering; it will then order the datasets accordingly; and everything downstream is expected to return the outputs in the same order as the datasets. That is, it is expected to return the outputs in the same order as the inputs, which seems the cleanest and most logical policy.

This diff updates ContextualDataset in line with that philosophy so that hte output order is always the order that the outcomes are provided in the datasets. If the user wants a particular output order, that can be handled by ordering the input datasets accordingly rather than by specifying context buckets. With this change, the context_buckets input is no longer necessary since the bucket names can be read from the parameter decomposition, and the outcome order is taken from datasets.

Reviewed By: saitcakmak

Differential Revision: D52452236

fbshipit-source-id: 499bd6772eb11e550598151389abe21716370f2b
stefanpricopie pushed a commit to stefanpricopie/botorch that referenced this pull request Feb 27, 2024
Summary:
Pull Request resolved: pytorch#2205

X-link: facebook/Ax#2198

Currently ContextualDataset will re-order outputs to match the specified order of context_buckets.

This has produced a somewhat confusing state, where at different places (ContextualDataset, the model, the surrogates) we have been passing around outcome lists or context lists that are expected to determine ordering in some way, but without a clear place where re-ordering is happening or where that order is being defined.

D51906856 was a step towards clarifying this, by setting the policy that the modelbridge will be responsible for defining the desired ordering; it will then order the datasets accordingly; and everything downstream is expected to return the outputs in the same order as the datasets. That is, it is expected to return the outputs in the same order as the inputs, which seems the cleanest and most logical policy.

This diff updates ContextualDataset in line with that philosophy so that hte output order is always the order that the outcomes are provided in the datasets. If the user wants a particular output order, that can be handled by ordering the input datasets accordingly rather than by specifying context buckets. With this change, the context_buckets input is no longer necessary since the bucket names can be read from the parameter decomposition, and the outcome order is taken from datasets.

Reviewed By: saitcakmak

Differential Revision: D52452236

fbshipit-source-id: 499bd6772eb11e550598151389abe21716370f2b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed Do not delete this pull request or issue due to inactivity. fb-exported Merged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants