적용 대상:
Azure CLI ml 확장 v2(현재)
Python SDK azure-ai-ml v2(현재)
이 문서에서는 SweepJob 클래스를 사용하여 Azure Machine Learning SDK v2 및 CLI v2를 사용하여 효율적인 하이퍼 매개 변수 튜닝을 자동화하는 방법을 알아봅니다.
- 매개 변수 검색 공간 정의
- 샘플링 알고리즘 선택
- 최적화 목표 설정
- 조기 종료 정책 구성
- 스윕 작업 제한 설정
- 실험 제출
- 학습 작업 시각화
- 최상의 구성 선택
하이퍼 매개 변수 튜닝이란?
하이퍼 매개 변수는 모델 학습을 제어하는 조정 가능한 설정입니다. 예를 들어 신경망의 경우 숨겨진 계층의 수와 계층당 노드 수를 선택합니다. 모델 성능은 이러한 값에 크게 좌우됩니다.
하이퍼 매개 변수 튜닝 (또는 하이퍼 매개 변수 최적화)은 최상의 성능을 제공하는 하이퍼 매개 변수 구성을 찾는 프로세스입니다. 이 프로세스는 종종 계산 비용이 많이 들고 수동입니다.
Azure Machine Learning을 사용하면 하이퍼 매개 변수 튜닝을 자동화하고 병렬로 실험을 실행하여 하이퍼 매개 변수를 효율적으로 최적화할 수 있습니다.
검색 공간 정의
하이퍼 매개 변수마다 정의된 값의 범위를 탐색하여 하이퍼 매개 변수를 튜닝합니다.
하이퍼 매개 변수는 불연속 또는 연속적일 수 있으며 매개 변수 식으로 표현된 값 분포를 가질 수 있습니다.
개별 하이퍼 매개 변수
개별 하이퍼 매개 변수는 불연속 값 중 Choice로 지정됩니다.
Choice는 다음과 같을 수 있습니다.
- 하나 이상의 쉼표로 구분된 값
-
range개체 - 임의의
list개체
from azure.ai.ml.sweep import Choice
command_job_for_sweep = command_job(
batch_size=Choice(values=[16, 32, 64, 128]),
number_of_hidden_layers=Choice(values=range(1,5)),
)
참조:
이 경우 [16, batch_size 32, 64, 128] number_of_hidden_layers 중 하나를 사용하고 [1, 2, 3, 4] 중 하나를 가져옵니다.
배포를 사용하여 다음과 같은 고급 불연속 하이퍼 매개 변수도 지정할 수 있습니다.
-
QUniform(min_value, max_value, q)- round(Uniform(min_value, max_value) / q) * q와 같은 값을 반환합니다. -
QLogUniform(min_value, max_value, q)- round(exp(Uniform(min_value, max_value)) / q) * q와 같은 값을 반환합니다. -
QNormal(mu, sigma, q)- round(Normal(mu, sigma) / q) * q와 같은 값을 반환합니다. -
QLogNormal(mu, sigma, q)- round(exp(Normal(mu, sigma)) / q) * q와 같은 값을 반환합니다.
연속 하이퍼 매개 변수
연속 하이퍼 매개 변수는 연속 값 범위에 대한 분포로 지정됩니다.
-
Uniform(min_value, max_value)- min_value와 max_value 간에 균일하게 분산된 값을 반환합니다. -
LogUniform(min_value, max_value)- 반환 값의 로그가 균일하게 분산되도록 exp(Uniform(min_value, max_value))에 따라 도출된 값을 반환합니다. -
Normal(mu, sigma)- 평균 mu 및 표준 편차 sigma를 사용하여 일반적으로 배포되는 실제 값 반환 -
LogNormal(mu, sigma)- 반환 값의 로그가 정규 분포되도록 exp(Normal(mu, sigma))에 따라 도출된 값을 반환합니다.
매개 변수 공간 정의의 예제는 다음과 같습니다.
from azure.ai.ml.sweep import Normal, Uniform
command_job_for_sweep = command_job(
learning_rate=Normal(mu=10, sigma=3),
keep_probability=Uniform(min_value=0.05, max_value=0.1),
)
참조:
이 코드는 learning_rate 및 keep_probability라는 두 개의 매개 변수를 사용하여 검색 공간을 정의합니다.
learning_rate는 평균 값 10과 표준 편차 3이 있는 정규 분포를 갖게 됩니다.
keep_probability는 최솟값 0.05 및 최댓값 0.1이 있는 균일한 분포를 갖게 됩니다.
CLI의 경우 sweep job YAML 스키마를 사용하여 탐색 공간을 정의합니다.
search_space:
conv_size:
type: choice
values: [2, 5, 7]
dropout_rate:
type: uniform
min_value: 0.1
max_value: 0.2
하이퍼 매개 변수 공간 샘플링
하이퍼 매개 변수 공간에 대한 샘플링 방법을 지정합니다. Azure Machine Learning은 다음을 지원합니다.
- 무작위 샘플링
- 그리드 샘플링
- Bayesian 샘플링
무작위 샘플링
임의 샘플링은 불연속 및 연속 하이퍼 매개 변수를 지원하며 성능이 낮은 작업의 조기 종료를 지원합니다. 많은 사용자가 임의 샘플링으로 시작하여 유망한 지역을 식별한 다음 구체화합니다.
임의 샘플링에서 값은 정의된 검색 공간에서 균일하게(또는 지정된 임의 규칙을 통해) 그려집니다. 명령 작업을 만든 후 샘플링 알고리즘을 정의하는 데 사용합니다 sweep .
from azure.ai.ml.entities import CommandJob
from azure.ai.ml.sweep import RandomSamplingAlgorithm, SweepJob, SweepJobLimits
command_job = CommandJob(
inputs=dict(kernel="linear", penalty=1.0),
compute=cpu_cluster,
environment=f"{job_env.name}:{job_env.version}",
code="./scripts",
command="python scripts/train.py --kernel $kernel --penalty $penalty",
experiment_name="sklearn-iris-flowers",
)
sweep = SweepJob(
sampling_algorithm=RandomSamplingAlgorithm(seed=999, rule="sobol", logbase="e"),
trial=command_job,
search_space={"ss": Choice(type="choice", values=[{"space1": True}, {"space2": True}])},
inputs={"input1": {"file": "top_level.csv", "mode": "ro_mount"}}, # type:ignore
compute="top_level",
limits=SweepJobLimits(trial_timeout=600),
)
참조:
sobol
Sobol은 공간 채우기 및 재현성을 향상시키는 준 임의 시퀀스입니다. 시드를 제공하고 rule="sobol"에 RandomSamplingAlgorithm을 설정합니다.
from azure.ai.ml.sweep import RandomSamplingAlgorithm
sweep_job = command_job_for_sweep.sweep(
compute="cpu-cluster",
sampling_algorithm = RandomSamplingAlgorithm(seed=123, rule="sobol"),
...
)
그리드 샘플링
그리드 샘플링은 불연속 하이퍼 매개 변수를 지원합니다. 검색 공간을 철저히 검색하도록 예산을 편성할 수 있는 경우에는 그리드 샘플링을 사용합니다. 낮은 성능 작업의 조기 종료를 지원합니다.
그리드 샘플링은 가능한 모든 값에 간단한 그리드 검색을 수행합니다.
choice 하이퍼 매개 변수에서만 그리드 샘플링을 사용할 수 있습니다. 예를 들어 다음 공간에는 샘플이 6개 있습니다.
from azure.ai.ml.sweep import Choice
command_job_for_sweep = command_job(
batch_size=Choice(values=[16, 32]),
number_of_hidden_layers=Choice(values=[1,2,3]),
)
sweep_job = command_job_for_sweep.sweep(
compute="cpu-cluster",
sampling_algorithm = "grid",
...
)
참조: 선택
Bayesian 샘플링
Bayesian 샘플링(Bayesian 최적화)은 기본 메트릭을 효율적으로 개선하기 위해 이전 결과에 따라 새 샘플을 선택합니다.
하이퍼 매개 변수 공간을 탐색하는 데 예산이 충분한 경우에는 Bayesian 샘플링을 사용하는 것이 좋습니다. 최상의 결과를 얻으려면 튜닝되는 하이퍼 매개 변수 수의 20배 이상의 최대 작업 수를 권장합니다.
동시 작업의 수는 튜닝 프로세스의 효율성에 영향을 줍니다. 병렬 처리 수준이 낮을수록 이전에 완료된 작업의 혜택을 받는 작업 수가 증가하므로 동시 작업 수가 적을수록 샘플링 수렴이 향상될 수 있습니다.
Bayesian 샘플링은 choice, uniform, 그리고 quniform 분포를 지원합니다.
from azure.ai.ml.sweep import Uniform, Choice
command_job_for_sweep = command_job(
learning_rate=Uniform(min_value=0.05, max_value=0.1),
batch_size=Choice(values=[16, 32, 64, 128]),
)
sweep_job = command_job_for_sweep.sweep(
compute="cpu-cluster",
sampling_algorithm = "bayesian",
...
)
참조:
비우기 목표 지정
하이퍼 매개 변수 튜닝을 최적화하려는 기본 메트릭과 목표를 지정하여 비우기 작업의 목표를 정의합니다. 각 학습 작업은 기본 메트릭에 대해 평가됩니다. 조기 종료 정책은 기본 메트릭을 사용하여 성능이 낮은 작업을 식별합니다.
-
primary_metric: 기본 메트릭 이름은 학습 스크립트에서 로그한 메트릭의 이름과 정확하게 일치해야 합니다. -
goal:Maximize또는Minimize일 수 있으며, 작업을 평가할 때 기본 메트릭을 최대화할지 아니면 최소화할지 여부를 결정합니다.
from azure.ai.ml.sweep import Uniform, Choice
command_job_for_sweep = command_job(
learning_rate=Uniform(min_value=0.05, max_value=0.1),
batch_size=Choice(values=[16, 32, 64, 128]),
)
sweep_job = command_job_for_sweep.sweep(
compute="cpu-cluster",
sampling_algorithm = "bayesian",
primary_metric="accuracy",
goal="Maximize",
)
참조:
이 샘플에서는 "정확도"를 극대화합니다.
하이퍼 매개 변수 튜닝에 대한 메트릭 기록
학습 스크립트는 스윕 작업에서 예상하는 정확한 이름으로 기본 메트릭을 기록 해야 합니다 .
다음 샘플 코드 조각을 사용하여 학습 스크립트에 기본 메트릭을 로그합니다.
import mlflow
mlflow.log_metric("accuracy", float(val_accuracy))
학습 스크립트는 val_accuracy를 계산하고 기본 메트릭 "정확도"로 로그합니다. 메트릭이 로그될 때마다 하이퍼 매개 변수 튜닝 서비스에 의해 수신됩니다. 사용자는 보고 빈도를 결정해야 합니다.
학습 작업의 로깅 값에 대한 자세한 내용은 Azure Machine Learning 학습 작업에서 로깅 사용을 참조하세요.
초기 종료 정책 지정
효율성 향상을 위해 실적이 저조한 작업을 조기에 종료합니다.
정책이 적용되는 시기를 제어하는 매개 변수를 다음과 같이 구성할 수 있습니다.
-
evaluation_interval: 정책 적용 빈도입니다. 학습 스크립트에서 기본 메트릭을 기록할 때마다 한 번의 간격으로 계산됩니다. 따라서 1의evaluation_interval은 학습 스크립트에서 기본 메트릭을 보고할 때마다 정책을 적용합니다. 2의evaluation_interval은 다른 모든 시간에 정책을 적용합니다. 지정되지 않는 경우evaluation_interval은 기본적으로 0으로 설정됩니다. -
delay_evaluation: 지정된 간격 동안 첫 번째 정책 평가를 지연합니다. 이는 모든 구성이 최소 간격 동안 실행되도록 허용하여 학습 작업의 조기 종료를 방지하는 선택적 매개 변수입니다. 지정된 경우 정책은 delay_evaluation보다 크거나 같은 evaluation_interval의 모든 배수마다 적용됩니다. 지정되지 않는 경우delay_evaluation은 기본적으로 0으로 설정됩니다.
Azure Machine Learning은 다음 초기 종료 정책을 지원합니다.
산적 정책
밴딧 정책은 지연 계수 또는 양과 평가 간격을 사용합니다. 기본 메트릭이 최상의 작업에서 허용되는 여유를 벗어나면 작업이 종료됩니다.
다음 구성 매개 변수를 지정합니다.
slack_factor또는slack_amount: 최상의 작업과 차이를 허용합니다.slack_factor는 비율입니다.slack_amount는 절대값입니다.예를 들어 간격 10에 적용되는 산적 정책을 사용하는 것이 좋습니다. 기본 메트릭을 보고한 10 간격에서 가장 효율적으로 수행되는 작업이 0.8이고 기본 메트릭을 최대화하는 것을 목표로 한다고 가정합니다. 정책에서
slack_factor를 0.2로 지정하면 10 간격에서 최상의 메트릭이 0.66(0.8/(1+slack_factor)) 미만인 모든 학습 작업이 종료됩니다.evaluation_interval: (선택 사항) 정책 적용 빈도입니다.delay_evaluation: (선택 사항) 지정된 간격 동안 첫 번째 정책 평가를 지연합니다.
from azure.ai.ml.sweep import BanditPolicy
sweep_job.early_termination = BanditPolicy(slack_factor = 0.1, delay_evaluation = 5, evaluation_interval = 1)
참조: BanditPolicy
이 예제에서는 평가 간격 5에서 시작하여 메트릭이 보고될 때 모든 간격에서 초기 종료 정책이 적용됩니다. 최상의 메트릭이 (1/(1+0.1) 또는 가장 효율적으로 수행되는 작업의 91% 미만인 모든 작업이 종료됩니다.
중앙값 중지 정책
중앙값 중지는 작업에서 보고하는 기본 메트릭의 실행 평균을 기반으로 하는 초기 종료 정책입니다. 이 정책은 모든 학습 작업에서 실행 평균을 계산하고, 기본 메트릭 값이 평균의 중앙값보다 낮은 작업을 중지합니다.
이 정책은 다음 구성 매개 변수를 사용합니다.
-
evaluation_interval: 정책 적용에 대한 빈도입니다(선택적 매개 변수). -
delay_evaluation: 지정된 간격 동안 첫 번째 정책 평가를 지연합니다(선택적 매개 변수).
from azure.ai.ml.sweep import MedianStoppingPolicy
sweep_job.early_termination = MedianStoppingPolicy(delay_evaluation = 5, evaluation_interval = 1)
이 예제에서는 평가 간격 5에서 시작하여 모든 간격에서 초기 종료 정책이 적용됩니다. 최상의 기본 메트릭이 모든 학습 작업에서 1:5 간격에 걸쳐 실행 평균의 중앙값보다 낮은 경우 작업은 5 간격에서 중지됩니다.
잘림 선택 영역 정책
잘림 선택 영역은 각 평가 간격에서 성능이 가장 낮은 작업의 백분율을 취소합니다. 작업은 기본 메트릭을 사용하여 비교됩니다.
이 정책은 다음 구성 매개 변수를 사용합니다.
-
truncation_percentage: 각 평가 간격에서 종료할 성능이 가장 낮은 작업의 백분율입니다. 1~99 사이의 정수 값입니다. -
evaluation_interval: (선택 사항) 정책 적용 빈도입니다. -
delay_evaluation: (선택 사항) 지정된 간격 동안 첫 번째 정책 평가를 지연합니다. -
exclude_finished_jobs: 정책을 적용할 때 완료된 작업을 제외할지 여부를 지정합니다.
from azure.ai.ml.sweep import TruncationSelectionPolicy
sweep_job.early_termination = TruncationSelectionPolicy(evaluation_interval=1, truncation_percentage=20, delay_evaluation=5, exclude_finished_jobs=true)
이 예제에서는 평가 간격 5에서 시작하여 모든 간격에서 초기 종료 정책이 적용됩니다. 5 간격의 성능이 5 간격의 모든 작업 중에서 가장 낮은 20% 성능인 경우 작업은 5 간격에서 종료되고 정책을 적용할 때 완료된 작업은 제외됩니다.
종료 정책 없음(기본값)
정책이 지정되지 않은 경우 하이퍼 매개 변수 튜닝 서비스를 통해 모든 학습 작업이 완료될 때까지 실행됩니다.
sweep_job.early_termination = None
참조: SweepJob
초기 종료 정책 선택
- 가능성이 높은 작업을 종료하지 않고 비용 절약을 제공하는 보수적인 정책을 원하는 경우
evaluation_interval1 및delay_evaluation5의 중앙값 중지 정책을 사용하는 것이 좋습니다. 이는 일반적인 설정이며, 기본 메트릭에서 손실 없이 약 25%-35% 절감을 제공할 수 있습니다(계산 데이터에 따라). - 더욱 적극적으로 절약하려면 허용 가능한 slack이 더 작은 산적 정책이나 잘림 비율이 더 큰 잘림 선택 정책을 사용합니다.
비우기 작업에 대한 제한 설정
비우기 작업에 대한 제한을 설정하여 리소스 예산을 제어합니다.
-
max_total_trials: 최대 시험 작업 수입니다. 1~1000 사이의 정수여야 합니다. -
max_concurrent_trials: (선택 사항) 동시에 실행할 수 있는 최대 시험 작업 수입니다. 지정하지 않으면 max_total_trials는 병렬로 시작하는 작업의 수입니다. 지정하는 경우 1~1000 사이의 정수여야 합니다. -
timeout: 전체 스윕 작업을 실행할 수 있는 최대 시간(초)입니다. 이 한도에 도달하면 시스템이 모든 평가판을 포함하여 스윕 작업을 취소합니다. -
trial_timeout: 각 시험 작업을 실행할 수 있는 최대 시간(초)입니다. 이 한도에 도달하면 시스템이 평가판을 취소합니다.
참고
max_total_trials 및 timeout이 모두 지정되는 경우 이러한 두 임계값 중 첫 번째 임계값에 도달하면 하이퍼 매개 변수 튜닝 실험이 종료됩니다.
참고
동시 시험 작업 수는 지정된 컴퓨팅 대상에서 사용할 수 있는 리소스에서 제어됩니다. 원하는 동시성에 사용할 수 있는 리소스가 컴퓨팅 대상에 있는지 확인합니다.
sweep_job.set_limits(max_total_trials=20, max_concurrent_trials=4, timeout=1200)
이 코드는 최대 20개의 총 시험 작업을 사용하도록 하이퍼 매개 변수 튜닝 실험을 구성하고, 전체 비우기 작업에 대한 시간 제한이 1,200초인 4개의 시험 작업을 한 번에 실행합니다.
하이퍼 매개 변수 튜닝 실험 구성
하이퍼 매개 변수 튜닝 실험을 구성하려면 다음을 제공합니다.
- 정의된 하이퍼 매개 변수 검색 공간
- 샘플링 알고리즘
- 초기 종료 정책 지정
- 목표
- 리소스 한계
- CommandJob 또는 CommandComponent
- SweepJob
SweepJob은 명령 또는 명령 구성 요소에서 하이퍼 매개 변수 비우기를 실행할 수 있습니다.
참고
sweep_job에서 사용되는 컴퓨팅 대상에는 동시성 수준을 만족할 수 있는 충분한 리소스가 있어야 합니다. 컴퓨팅 대상에 대한 자세한 내용은 컴퓨팅 대상을 참조하세요.
하이퍼 매개 변수 조정 실험 구성
from azure.ai.ml import MLClient
from azure.ai.ml import command, Input
from azure.ai.ml.sweep import Choice, Uniform, MedianStoppingPolicy
from azure.identity import DefaultAzureCredential
# Create your base command job
command_job = command(
code="./src",
command="python main.py --iris-csv ${{inputs.iris_csv}} --learning-rate ${{inputs.learning_rate}} --boosting ${{inputs.boosting}}",
environment="AzureML-lightgbm-3.2-ubuntu18.04-py37-cpu@latest",
inputs={
"iris_csv": Input(
type="uri_file",
path="https://azuremlexamples.blob.core.windows.net/datasets/iris.csv",
),
"learning_rate": 0.9,
"boosting": "gbdt",
},
compute="cpu-cluster",
)
# Override your inputs with parameter expressions
command_job_for_sweep = command_job(
learning_rate=Uniform(min_value=0.01, max_value=0.9),
boosting=Choice(values=["gbdt", "dart"]),
)
# Call sweep() on your command job to sweep over your parameter expressions
sweep_job = command_job_for_sweep.sweep(
compute="cpu-cluster",
sampling_algorithm="random",
primary_metric="test-multi_logloss",
goal="Minimize",
)
# Specify your experiment details
sweep_job.display_name = "lightgbm-iris-sweep-example"
sweep_job.experiment_name = "lightgbm-iris-sweep-example"
sweep_job.description = "Run a hyperparameter sweep job for LightGBM on Iris dataset."
# Define the limits for this sweep
sweep_job.set_limits(max_total_trials=20, max_concurrent_trials=10, timeout=7200)
# Set early stopping on this one
sweep_job.early_termination = MedianStoppingPolicy(
delay_evaluation=5, evaluation_interval=2
)
참조:
command_job 매개 변수 식을 적용할 수 있도록 함수로 호출됩니다.
sweep 함수는 샘플링 알고리즘, 목표, 제한, 컴퓨트 및 trial로 구성됩니다. 코드 조각은 샘플 노트북 명령 또는 CommandComponent에서 하이퍼매개변수 스윕을 실행하기에서 나온 것입니다. 이 샘플에서는 learning_rate과 boosting이 조정됩니다. 조기 중지는 MedianStoppingPolicy에 의해 실행되며, 기본 메트릭이 모든 작업의 실행 평균 중앙값보다 나쁠 경우 해당 작업을 중지합니다(MedianStoppingPolicy 참조).
매개 변수 값을 받고, 구문 분석하고, 튜닝되는 학습 스크립트에 전달하는 방법을 알아보려면 이 코드 샘플을 참조하세요.
중요합니다
모든 하이퍼 매개 변수 비우기 작업은 모델 및 모든 데이터 로더 다시 빌드를 포함하여 학습을 처음부터 다시 시작합니다. Azure Machine Learning 파이프라인 또는 수동 프로세스를 사용하여 학습 작업 이전에 최대한 많은 데이터 준비를 수행하면 이 비용을 최소화할 수 있습니다.
하이퍼 매개 변수 튜닝 실험 제출
하이퍼 매개 변수 튜닝 구성을 정의하면 다음과 같이 작업을 제출합니다.
# submit the sweep
returned_sweep_job = ml_client.create_or_update(sweep_job)
# get a URL for the status of the job
returned_sweep_job.services["Studio"].endpoint
참조:
하이퍼 매개 변수 튜닝 작업 시각화
Azure Machine Learning Studio에서 하이퍼 매개 변수 튜닝 작업을 시각화합니다. 자세한 내용은 스튜디오에서 작업 레코드 보기를 참조하세요.
메트릭 차트: 이 시각화는 하이퍼 매개 변수 튜닝 기간 동안 각 HyperDrive 자식 작업에 대해 로그된 메트릭을 추적합니다. 각 줄은 자식 작업을 나타내고, 각 지점은 해당 런타임 반복에서 기본 메트릭 값을 측정합니다.
병렬 좌표 차트: 이 시각화에서는 기본 메트릭 성능과 개별 하이퍼 매개변수 값 간의 상관 관계를 보여줍니다. 차트는 축을 이동(선택하여 축 레이블에 따라 끌기)하고 단일 축에서 값을 강조 표시하는(선택하여 단일 축을 따라 세로 방향으로 끌어 원하는 값 범위 강조 표시) 대화형 차트입니다. 병렬 좌표 차트의 가장 오른쪽에는 해당 작업 인스턴스에 대해 설정된 하이퍼 매개 변수에 해당하는 최상의 메트릭 값을 그리는 축이 포함됩니다. 이 축은 차트 그라데이션 범례를 보다 읽기 쉬운 방식으로 데이터에 투영하기 위해 제공됩니다.
2차원 분산형 차트: 이 시각화에서는 개별 하이퍼 매개 변수 2개와 연결된 기본 메트릭 값 간의 상관 관계를 보여줍니다.
3차원 분산형 차트: 이 시각화는 2D와 동일하지만 기본 메트릭 값과의 상관 관계에 대한 하이퍼 매개 변수 차원 3개를 허용합니다. 또한 선택하고 끌어서 차트 방향을 바꿔 3D 공간에서 다양한 상관 관계를 볼 수도 있습니다.
최상의 시험 작업 찾기
모든 튜닝 작업이 완료되면 최상의 평가판 출력을 검색합니다.
# Download best trial model output
ml_client.jobs.download(returned_sweep_job.name, output_name="model")
참조:
CLI를 사용하여 최상의 시험 작업에 대한 모든 기본 및 명명된 출력과 비우기 작업의 로그를 다운로드할 수 있습니다.
az ml job download --name <sweep-job> --all
필요에 따라 최상의 평가판 출력만 다운로드합니다.
az ml job download --name <sweep-job> --output-name model