Closed johnugeorge closed 5 years ago
I agree, returning ParameterAssignments is more consist with the semantics of a Get API. Also since we are defining Trial as its own resource type, its lifecycle should be handled by a controller.
message GetSuggestionsReply {
string study_id = 1;
message ParameterAssignments{
repeated ParameterAssignment assignments = 1;
}
ParameterAssignments parameter_assignments = 2;
}
What do you think @johnugeorge ?
@andreyvelich For NAS wouldn't the GetSuggestionsReply need to contain the architecture and operations?
@richardsliu Yes, but we store it in two different categorical parameters, architecture and nn_config: https://github.com/kubeflow/katib/blob/master/pkg/suggestion/v1alpha1/nasrl_service.py#L357
Currently, GetSuggestions and ValidateAlgorithmSettings API calls are called to corresponding suggestion service via Manager Service. (https://github.com/kubeflow/katib/blob/master/cmd/manager/v1alpha2/main.go#L138) Is it actually needed? Why can't the controller directly connect to the suggestion service?
I think we could eliminate manager as a GRPC server. I am working on a proposal for it.
@johnugeorge I have a proposal to eliminate katib-manager as a proxy between suggestion and experiment, PTAL #464
/assign
@johnugeorge I agree. You can call GetSuggestion from controller same as the manager do now. In GetSuggestion process, the manager is just a proxy. And only contain Assignments in GetSuggestionsReply will be more efficient.
/close by #743
/close
@gaocegege: Closing this issue.
Currently GetSuggestionsRequest and GetSuggestionsReply structure are as follows
2.Can GetSuggestionsReply have just ParameterAssignments(parameter name-value pair) instead of entire Trial? Suggestion algorithm need not construct entire Trial object which is a overhead. eg: Trial has TrialSpec and TrialStatus. SuggestionAlgorithm should not call CreateTrial. Instead Creating Trial object from ParameterAssignments should be left to the controller.
/cc @richardsliu /cc @YujiOshima /cc @jdplatt /cc @andreyvelich
WDYT?