createModelPackage method
- List<
AdditionalInferenceSpecificationDefinition> ? additionalInferenceSpecifications, - bool? certifyForMarketplace,
- String? clientToken,
- Map<
String, String> ? customerMetadataProperties, - String? domain,
- DriftCheckBaselines? driftCheckBaselines,
- InferenceSpecification? inferenceSpecification,
- ManagedStorageType? managedStorageType,
- MetadataProperties? metadataProperties,
- ModelApprovalStatus? modelApprovalStatus,
- ModelPackageModelCard? modelCard,
- ModelLifeCycle? modelLifeCycle,
- ModelMetrics? modelMetrics,
- String? modelPackageDescription,
- String? modelPackageGroupName,
- String? modelPackageName,
- ModelPackageRegistrationType? modelPackageRegistrationType,
- String? samplePayloadUrl,
- ModelPackageSecurityConfig? securityConfig,
- SkipModelValidation? skipModelValidation,
- SourceAlgorithmSpecification? sourceAlgorithmSpecification,
- String? sourceUri,
- List<
Tag> ? tags, - String? task,
- ModelPackageValidationSpecification? validationSpecification,
Creates a model package that you can use to create SageMaker models or list on Amazon Web Services Marketplace, or a versioned model that is part of a model group. Buyers can subscribe to model packages listed on Amazon Web Services Marketplace to create models in SageMaker.
To create a model package by specifying a Docker container that contains
your inference code and the Amazon S3 location of your model artifacts,
provide values for InferenceSpecification. To create a model
from an algorithm resource that you created or subscribed to in Amazon Web
Services Marketplace, provide a value for
SourceAlgorithmSpecification.
- Versioned - a model that is part of a model group in the model registry.
- Unversioned - a model package that is not part of a model group.
May throw ConflictException.
May throw ResourceLimitExceeded.
Parameter additionalInferenceSpecifications :
An array of additional Inference Specification objects. Each additional
Inference Specification specifies artifacts based on this model package
that can be used on inference endpoints. Generally used with SageMaker Neo
to store the compiled artifacts.
Parameter certifyForMarketplace :
Whether to certify the model package for listing on Amazon Web Services
Marketplace.
This parameter is optional for unversioned models, and does not apply to versioned models.
Parameter clientToken :
A unique token that guarantees that the call to this API is idempotent.
Parameter customerMetadataProperties :
The metadata properties associated with the model package versions.
Parameter domain :
The machine learning domain of your model package and its components.
Common machine learning domains include computer vision and natural
language processing.
Parameter driftCheckBaselines :
Represents the drift check baselines that can be used when the model
monitor is set using the model package. For more information, see the
topic on Drift
Detection against Previous Baselines in SageMaker Pipelines in the
Amazon SageMaker Developer Guide.
Parameter inferenceSpecification :
Specifies details about inference jobs that you can run with models based
on this model package, including the following information:
- The Amazon ECR paths of containers that contain the inference code and model artifacts.
- The instance types that the model package supports for transform jobs and real-time endpoints used for inference.
- The input and output content formats that the model package supports for inference.
Parameter managedStorageType :
The storage type of the model package.
Parameter modelApprovalStatus :
Whether the model is approved for deployment.
This parameter is optional for versioned models, and does not apply to unversioned models.
For versioned models, the value of this parameter must be set to
Approved to deploy the model.
Parameter modelCard :
The model card associated with the model package. Since
ModelPackageModelCard is tied to a model package, it is a
specific usage of a model card and its schema is simplified compared to
the schema of ModelCard. The
ModelPackageModelCard schema does not include
model_package_details, and model_overview is
composed of the model_creator and model_artifact
properties. For more information about the model package model card
schema, see Model
package model card schema. For more information about the model card
associated with the model package, see View
the Details of a Model Version.
Parameter modelLifeCycle :
A structure describing the current state of the model in its life cycle.
Parameter modelMetrics :
A structure that contains model metrics reports.
Parameter modelPackageDescription :
A description of the model package.
Parameter modelPackageGroupName :
The name or Amazon Resource Name (ARN) of the model package group that
this model version belongs to.
This parameter is required for versioned models, and does not apply to unversioned models.
Parameter modelPackageName :
The name of the model package. The name must have 1 to 63 characters.
Valid characters are a-z, A-Z, 0-9, and - (hyphen).
This parameter is required for unversioned models. It is not applicable to versioned models.
Parameter modelPackageRegistrationType :
The package registration type of the model package input.
Parameter samplePayloadUrl :
The Amazon Simple Storage Service (Amazon S3) path where the sample
payload is stored. This path must point to a single gzip compressed tar
archive (.tar.gz suffix). This archive can hold multiple files that are
all equally used in the load test. Each file in the archive must satisfy
the size constraints of the InvokeEndpoint
call.
Parameter securityConfig :
The KMS Key ID (KMSKeyId) used for encryption of model
package information.
Parameter skipModelValidation :
Indicates if you want to skip model validation.
Parameter sourceAlgorithmSpecification :
Details about the algorithm that was used to create the model package.
Parameter sourceUri :
The URI of the source for the model package. If you want to clone a model
package, set it to the model package Amazon Resource Name (ARN). If you
want to register a model, set it to the model ARN.
Parameter tags :
A list of key value pairs associated with the model. For more information,
see Tagging
Amazon Web Services resources in the Amazon Web Services General
Reference Guide.
If you supply ModelPackageGroupName, your model package
belongs to the model group you specify and uses the tags associated with
the model group. In this case, you cannot supply a tag
argument.
Parameter task :
The machine learning task your model package accomplishes. Common machine
learning tasks include object detection and image classification. The
following tasks are supported by Inference Recommender:
"IMAGE_CLASSIFICATION" | "OBJECT_DETECTION" |
"TEXT_GENERATION" |"IMAGE_SEGMENTATION" |
"FILL_MASK" | "CLASSIFICATION" |
"REGRESSION" | "OTHER".
Specify "OTHER" if none of the tasks listed fit your use case.
Parameter validationSpecification :
Specifies configurations for one or more transform jobs that SageMaker
runs to test the model package.
Implementation
Future<CreateModelPackageOutput> createModelPackage({
List<AdditionalInferenceSpecificationDefinition>?
additionalInferenceSpecifications,
bool? certifyForMarketplace,
String? clientToken,
Map<String, String>? customerMetadataProperties,
String? domain,
DriftCheckBaselines? driftCheckBaselines,
InferenceSpecification? inferenceSpecification,
ManagedStorageType? managedStorageType,
MetadataProperties? metadataProperties,
ModelApprovalStatus? modelApprovalStatus,
ModelPackageModelCard? modelCard,
ModelLifeCycle? modelLifeCycle,
ModelMetrics? modelMetrics,
String? modelPackageDescription,
String? modelPackageGroupName,
String? modelPackageName,
ModelPackageRegistrationType? modelPackageRegistrationType,
String? samplePayloadUrl,
ModelPackageSecurityConfig? securityConfig,
SkipModelValidation? skipModelValidation,
SourceAlgorithmSpecification? sourceAlgorithmSpecification,
String? sourceUri,
List<Tag>? tags,
String? task,
ModelPackageValidationSpecification? validationSpecification,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'SageMaker.CreateModelPackage'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
if (additionalInferenceSpecifications != null)
'AdditionalInferenceSpecifications':
additionalInferenceSpecifications,
if (certifyForMarketplace != null)
'CertifyForMarketplace': certifyForMarketplace,
'ClientToken': clientToken ?? _s.generateIdempotencyToken(),
if (customerMetadataProperties != null)
'CustomerMetadataProperties': customerMetadataProperties,
if (domain != null) 'Domain': domain,
if (driftCheckBaselines != null)
'DriftCheckBaselines': driftCheckBaselines,
if (inferenceSpecification != null)
'InferenceSpecification': inferenceSpecification,
if (managedStorageType != null)
'ManagedStorageType': managedStorageType.value,
if (metadataProperties != null)
'MetadataProperties': metadataProperties,
if (modelApprovalStatus != null)
'ModelApprovalStatus': modelApprovalStatus.value,
if (modelCard != null) 'ModelCard': modelCard,
if (modelLifeCycle != null) 'ModelLifeCycle': modelLifeCycle,
if (modelMetrics != null) 'ModelMetrics': modelMetrics,
if (modelPackageDescription != null)
'ModelPackageDescription': modelPackageDescription,
if (modelPackageGroupName != null)
'ModelPackageGroupName': modelPackageGroupName,
if (modelPackageName != null) 'ModelPackageName': modelPackageName,
if (modelPackageRegistrationType != null)
'ModelPackageRegistrationType': modelPackageRegistrationType.value,
if (samplePayloadUrl != null) 'SamplePayloadUrl': samplePayloadUrl,
if (securityConfig != null) 'SecurityConfig': securityConfig,
if (skipModelValidation != null)
'SkipModelValidation': skipModelValidation.value,
if (sourceAlgorithmSpecification != null)
'SourceAlgorithmSpecification': sourceAlgorithmSpecification,
if (sourceUri != null) 'SourceUri': sourceUri,
if (tags != null) 'Tags': tags,
if (task != null) 'Task': task,
if (validationSpecification != null)
'ValidationSpecification': validationSpecification,
},
);
return CreateModelPackageOutput.fromJson(jsonResponse.body);
}