Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 20 additions & 1 deletion sdk/ml/azure-ai-ml/azure/ai/ml/entities/_builders/command.py
Original file line number Diff line number Diff line change
Expand Up @@ -392,6 +392,12 @@ def set_limits(self, *, timeout: int, **kwargs): # pylint: disable=unused-argum
self.limits = CommandJobLimits(timeout=timeout)

def set_queue_settings(self, *, job_tier: Optional[str] = None, priority: Optional[str] = None):
"""Set QueueSettings for the job.
:param job_tier: determines the job tier.
:type job_tier: str
:param priority: controls the priority on the compute.
:type priority: str
"""
if isinstance(self.queue_settings, QueueSettings):
self.queue_settings.job_tier = job_tier
self.queue_settings.priority = priority
Expand Down Expand Up @@ -422,6 +428,8 @@ def sweep(
Union[ManagedIdentityConfiguration, AmlTokenConfiguration, UserIdentityConfiguration]
] = None,
queue_settings: Optional[QueueSettings] = None,
job_tier: Optional[str] = None,
priority: Optional[str] = None,
) -> Sweep:
"""Turn the command into a sweep node with extra sweep run setting. The command component in current Command
node will be used as its trial component. A command node can sweep for multiple times, and the generated sweep
Expand Down Expand Up @@ -456,6 +464,10 @@ def sweep(
UserIdentityConfiguration]
:param queue_settings: Queue settings for the job.
:type queue_settings: QueueSettings
:param job_tier: determines the job tier.
:type job_tier: str
:param priority: controls the priority on the compute.
:type priority: str
:return: A sweep node with component from current Command node as its trial component.
:rtype: Sweep
"""
Expand All @@ -466,6 +478,13 @@ def sweep(
if search_space:
inputs_search_space.update(search_space)

if not queue_settings:
queue_settings = self.queue_settings
if job_tier is not None:
queue_settings.job_tier = job_tier
if priority is not None:
queue_settings.priority = priority

sweep_node = Sweep(
trial=copy.deepcopy(
self.component
Expand All @@ -485,7 +504,7 @@ def sweep(
experiment_name=self.experiment_name,
identity=self.identity if not identity else identity,
_from_component_func=True,
queue_settings=self.queue_settings if queue_settings is None else queue_settings,
queue_settings=queue_settings,
)
sweep_node.set_limits(
max_total_trials=max_total_trials,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class QueueSettings(RestTranslatableMixin, DictMixin):
"Standard", "Premium".
:vartype job_tier: str or ~azure.mgmt.machinelearningservices.models.JobTier
:ivar priority: Controls the priority of the job on a compute.
:vartype priority: int
:vartype priority: str
"""

def __init__(
Expand Down