Skip to content

create_optimization_job async

create_optimization_job(
    *,
    config_overrides: Optional[AsyncSageMakerClientConfig] = None,
    optimization_job_name: Optional[EntityName] = None,
    role_arn: Optional[RoleArn] = None,
    model_source: Optional[OptimizationJobModelSource] = None,
    deployment_instance_type: Optional[OptimizationJobDeploymentInstanceType] = None,
    max_instance_count: Optional[OptimizationJobMaxInstanceCount] = None,
    optimization_environment: Optional[OptimizationJobEnvironmentVariables] = None,
    optimization_configs: Optional[OptimizationConfigs] = None,
    output_config: Optional[OptimizationJobOutputConfig] = None,
    stopping_condition: Optional[StoppingCondition] = None,
    tags: Optional[TagList] = None,
    vpc_config: Optional[OptimizationVpcConfig] = None,
    training_plan_arns: Optional[OptimizationJobTrainingPlanArns] = None,
) -> CreateOptimizationJobResponse

Creates a job that optimizes a model for inference performance. To create the job, you provide the location of a source model, and you provide the settings for the optimization techniques that you want the job to apply. When the job completes successfully, SageMaker uploads the new optimized model to the output destination that you specify.

For more information about how to use this action, and about the supported optimization techniques, see Optimize model inference with Amazon SageMaker.

Parameters:

  • optimization_job_name (Optional[EntityName], default: None ) –

    A custom name for the new optimization job.

  • role_arn (Optional[RoleArn], default: None ) –

    The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker AI to perform tasks on your behalf.

    During model optimization, Amazon SageMaker AI needs your permission to:

    • Read input data from an S3 bucket

    • Write model artifacts to an S3 bucket

    • Write logs to Amazon CloudWatch Logs

    • Publish metrics to Amazon CloudWatch

    You grant permissions for all of these tasks to an IAM role. To pass this role to Amazon SageMaker AI, the caller of this API must have the iam:PassRole permission. For more information, see Amazon SageMaker AI Roles.

  • model_source (Optional[OptimizationJobModelSource], default: None ) –

    The location of the source model to optimize with an optimization job.

  • deployment_instance_type (Optional[OptimizationJobDeploymentInstanceType], default: None ) –

    The type of instance that hosts the optimized model that you create with the optimization job.

  • max_instance_count (Optional[OptimizationJobMaxInstanceCount], default: None ) –

    The maximum number of instances to use for the optimization job.

  • optimization_environment (Optional[OptimizationJobEnvironmentVariables], default: None ) –

    The environment variables to set in the model container.

  • optimization_configs (Optional[OptimizationConfigs], default: None ) –

    Settings for each of the optimization techniques that the job applies.

  • output_config (Optional[OptimizationJobOutputConfig], default: None ) –

    Details for where to store the optimized model that you create with the optimization job.

  • tags (Optional[TagList], default: None ) –

    A list of key-value pairs associated with the optimization job. For more information, see Tagging Amazon Web Services resources in the Amazon Web Services General Reference Guide.

  • vpc_config (Optional[OptimizationVpcConfig], default: None ) –

    A VPC in Amazon VPC that your optimized model has access to.

  • training_plan_arns (Optional[OptimizationJobTrainingPlanArns], default: None ) –

    The Amazon Resource Name (ARN) of the training plan to use for this optimization job.

    When you use reserved capacity from a training plan, the optimization job runs on that reserved capacity instead of on-demand capacity. If you omit this field, the job uses on-demand capacity. You can specify at most one training plan.

    For more information about how to reserve GPU capacity for your optimization jobs using Amazon SageMaker Training Plans, see Reserve capacity with training plans.

Raises:

  • ResourceInUse –

    Resource being accessed is in use.

  • ResourceLimitExceeded –

    You have exceeded an SageMaker resource limit. For example, you might have too many training jobs created.

  • UnknownServiceError –

    The service returned an error code this client does not model.

Source code in docs_src/capo_sagemaker/_services/async_sage_maker.py
async def create_optimization_job(
    self,
    *,
    config_overrides: Optional[AsyncSageMakerClientConfig] = None,
    optimization_job_name: Optional[
        "capo_sagemaker.types.entity_name.EntityName"
    ] = None,
    role_arn: Optional["capo_sagemaker.types.role_arn.RoleArn"] = None,
    model_source: Optional[
        "capo_sagemaker.types.optimization_job_model_source.OptimizationJobModelSource"
    ] = None,
    deployment_instance_type: Optional[
        "capo_sagemaker.types.optimization_job_deployment_instance_type.OptimizationJobDeploymentInstanceType"
    ] = None,
    max_instance_count: Optional[
        "capo_sagemaker.types.optimization_job_max_instance_count.OptimizationJobMaxInstanceCount"
    ] = None,
    optimization_environment: Optional[
        "capo_sagemaker.types.optimization_job_environment_variables.OptimizationJobEnvironmentVariables"
    ] = None,
    optimization_configs: Optional[
        "capo_sagemaker.types.optimization_configs.OptimizationConfigs"
    ] = None,
    output_config: Optional[
        "capo_sagemaker.types.optimization_job_output_config.OptimizationJobOutputConfig"
    ] = None,
    stopping_condition: Optional[
        "capo_sagemaker.types.stopping_condition.StoppingCondition"
    ] = None,
    tags: Optional["capo_sagemaker.types.tag_list.TagList"] = None,
    vpc_config: Optional[
        "capo_sagemaker.types.optimization_vpc_config.OptimizationVpcConfig"
    ] = None,
    training_plan_arns: Optional[
        "capo_sagemaker.types.optimization_job_training_plan_arns.OptimizationJobTrainingPlanArns"
    ] = None,
) -> "capo_sagemaker.types.create_optimization_job_response.CreateOptimizationJobResponse":
    """<p>Creates a job that optimizes a model for inference performance. To create the job, you provide the location of a source model, and you provide the settings for the optimization techniques that you want the job to apply. When the job completes successfully, SageMaker uploads the new optimized model to the output destination that you specify.</p> <p>For more information about how to use this action, and about the supported optimization techniques, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/model-optimize.html">Optimize model inference with Amazon SageMaker</a>.</p>

    Args:
        optimization_job_name: <p>A custom name for the new optimization job.</p>
        role_arn: <p>The Amazon Resource Name (ARN) of an IAM role that enables Amazon SageMaker AI to perform tasks on your behalf. </p> <p>During model optimization, Amazon SageMaker AI needs your permission to:</p> <ul> <li> <p>Read input data from an S3 bucket</p> </li> <li> <p>Write model artifacts to an S3 bucket</p> </li> <li> <p>Write logs to Amazon CloudWatch Logs</p> </li> <li> <p>Publish metrics to Amazon CloudWatch</p> </li> </ul> <p>You grant permissions for all of these tasks to an IAM role. To pass this role to Amazon SageMaker AI, the caller of this API must have the <code>iam:PassRole</code> permission. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html">Amazon SageMaker AI Roles.</a> </p>
        model_source: <p>The location of the source model to optimize with an optimization job.</p>
        deployment_instance_type: <p>The type of instance that hosts the optimized model that you create with the optimization job.</p>
        max_instance_count: <p>The maximum number of instances to use for the optimization job.</p>
        optimization_environment: <p>The environment variables to set in the model container.</p>
        optimization_configs: <p>Settings for each of the optimization techniques that the job applies.</p>
        output_config: <p>Details for where to store the optimized model that you create with the optimization job.</p>
        tags: <p>A list of key-value pairs associated with the optimization job. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services resources</a> in the <i>Amazon Web Services General Reference Guide</i>.</p>
        vpc_config: <p>A VPC in Amazon VPC that your optimized model has access to.</p>
        training_plan_arns: <p>The Amazon Resource Name (ARN) of the training plan to use for this optimization job.</p> <p>When you use reserved capacity from a training plan, the optimization job runs on that reserved capacity instead of on-demand capacity. If you omit this field, the job uses on-demand capacity. You can specify at most one training plan.</p> <p>For more information about how to reserve GPU capacity for your optimization jobs using Amazon SageMaker Training Plans, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/reserve-capacity-with-training-plans.html">Reserve capacity with training plans</a>.</p>

    Raises:
        capo_sagemaker.errors.resource_in_use.ResourceInUse: <p>Resource being accessed is in use.</p>
        capo_sagemaker.errors.resource_limit_exceeded.ResourceLimitExceeded: <p> You have exceeded an SageMaker resource limit. For example, you might have too many training jobs created. </p>
        capo_sagemaker.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_sagemaker.types.create_optimization_job_request.CreateOptimizationJobRequest]",
    ) -> AsyncOperationResponse[
        "capo_sagemaker.types.create_optimization_job_response.CreateOptimizationJobResponse"
    ]:
        import capo_sagemaker._operations.sage_maker.create_optimization_job

        (
            output,
            http_response,
        ) = await capo_sagemaker._operations.sage_maker.create_optimization_job.async_create_optimization_job(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("CreateOptimizationJob")
    )
    input_: capo_sagemaker.types.create_optimization_job_request.CreateOptimizationJobRequest = {}
    if optimization_job_name is not None:
        input_["optimization_job_name"] = optimization_job_name
    if role_arn is not None:
        input_["role_arn"] = role_arn
    if model_source is not None:
        input_["model_source"] = model_source
    if deployment_instance_type is not None:
        input_["deployment_instance_type"] = deployment_instance_type
    if max_instance_count is not None:
        input_["max_instance_count"] = max_instance_count
    if optimization_environment is not None:
        input_["optimization_environment"] = optimization_environment
    if optimization_configs is not None:
        input_["optimization_configs"] = optimization_configs
    if output_config is not None:
        input_["output_config"] = output_config
    if stopping_condition is not None:
        input_["stopping_condition"] = stopping_condition
    if tags is not None:
        input_["tags"] = tags
    if vpc_config is not None:
        input_["vpc_config"] = vpc_config
    if training_plan_arns is not None:
        input_["training_plan_arns"] = training_plan_arns

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output