Struct aws_sdk_sagemaker::types::S3ModelDataSource
source · #[non_exhaustive]pub struct S3ModelDataSource {
pub s3_uri: Option<String>,
pub s3_data_type: Option<S3ModelDataType>,
pub compression_type: Option<ModelCompressionType>,
}
Expand description
Specifies the S3 location of ML model data to deploy.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.s3_uri: Option<String>
Specifies the S3 path of ML model data to deploy.
s3_data_type: Option<S3ModelDataType>
Specifies the type of ML model data to deploy.
If you choose S3Prefix
, S3Uri
identifies a key name prefix. SageMaker uses all objects that match the specified key name prefix as part of the ML model data to deploy. A valid key name prefix identified by S3Uri
always ends with a forward slash (/).
If you choose S3Object
, S3Uri
identifies an object that is the ML model data to deploy.
compression_type: Option<ModelCompressionType>
Specifies how the ML model data is prepared.
If you choose Gzip
and choose S3Object
as the value of S3DataType
, S3Uri
identifies an object that is a gzip-compressed TAR archive. SageMaker will attempt to decompress and untar the object during model deployment.
If you choose None
and chooose S3Object
as the value of S3DataType
, S3Uri
identifies an object that represents an uncompressed ML model to deploy.
If you choose None and choose S3Prefix
as the value of S3DataType
, S3Uri
identifies a key name prefix, under which all objects represents the uncompressed ML model to deploy.
If you choose None, then SageMaker will follow rules below when creating model data files under /opt/ml/model directory for use by your inference code:
-
If you choose
S3Object
as the value ofS3DataType
, then SageMaker will split the key of the S3 object referenced byS3Uri
by slash (/), and use the last part as the filename of the file holding the content of the S3 object. -
If you choose
S3Prefix
as the value ofS3DataType
, then for each S3 object under the key name pefix referenced byS3Uri
, SageMaker will trim its key by the prefix, and use the remainder as the path (relative to/opt/ml/model
) of the file holding the content of the S3 object. SageMaker will split the remainder by slash (/), using intermediate parts as directory names and the last part as filename of the file holding the content of the S3 object. -
Do not use any of the following as file names or directory names:
-
An empty or blank string
-
A string which contains null bytes
-
A string longer than 255 bytes
-
A single dot (
.
) -
A double dot (
..
)
-
-
Ambiguous file names will result in model deployment failure. For example, if your uncompressed ML model consists of two S3 objects
s3://mybucket/model/weights
ands3://mybucket/model/weights/part1
and you specifys3://mybucket/model/
as the value ofS3Uri
andS3Prefix
as the value ofS3DataType
, then it will result in name clash between/opt/ml/model/weights
(a regular file) and/opt/ml/model/weights/
(a directory). -
Do not organize the model artifacts in S3 console using folders. When you create a folder in S3 console, S3 creates a 0-byte object with a key set to the folder name you provide. They key of the 0-byte object ends with a slash (/) which violates SageMaker restrictions on model artifact file names, leading to model deployment failure.
Implementations§
source§impl S3ModelDataSource
impl S3ModelDataSource
sourcepub fn s3_data_type(&self) -> Option<&S3ModelDataType>
pub fn s3_data_type(&self) -> Option<&S3ModelDataType>
Specifies the type of ML model data to deploy.
If you choose S3Prefix
, S3Uri
identifies a key name prefix. SageMaker uses all objects that match the specified key name prefix as part of the ML model data to deploy. A valid key name prefix identified by S3Uri
always ends with a forward slash (/).
If you choose S3Object
, S3Uri
identifies an object that is the ML model data to deploy.
sourcepub fn compression_type(&self) -> Option<&ModelCompressionType>
pub fn compression_type(&self) -> Option<&ModelCompressionType>
Specifies how the ML model data is prepared.
If you choose Gzip
and choose S3Object
as the value of S3DataType
, S3Uri
identifies an object that is a gzip-compressed TAR archive. SageMaker will attempt to decompress and untar the object during model deployment.
If you choose None
and chooose S3Object
as the value of S3DataType
, S3Uri
identifies an object that represents an uncompressed ML model to deploy.
If you choose None and choose S3Prefix
as the value of S3DataType
, S3Uri
identifies a key name prefix, under which all objects represents the uncompressed ML model to deploy.
If you choose None, then SageMaker will follow rules below when creating model data files under /opt/ml/model directory for use by your inference code:
-
If you choose
S3Object
as the value ofS3DataType
, then SageMaker will split the key of the S3 object referenced byS3Uri
by slash (/), and use the last part as the filename of the file holding the content of the S3 object. -
If you choose
S3Prefix
as the value ofS3DataType
, then for each S3 object under the key name pefix referenced byS3Uri
, SageMaker will trim its key by the prefix, and use the remainder as the path (relative to/opt/ml/model
) of the file holding the content of the S3 object. SageMaker will split the remainder by slash (/), using intermediate parts as directory names and the last part as filename of the file holding the content of the S3 object. -
Do not use any of the following as file names or directory names:
-
An empty or blank string
-
A string which contains null bytes
-
A string longer than 255 bytes
-
A single dot (
.
) -
A double dot (
..
)
-
-
Ambiguous file names will result in model deployment failure. For example, if your uncompressed ML model consists of two S3 objects
s3://mybucket/model/weights
ands3://mybucket/model/weights/part1
and you specifys3://mybucket/model/
as the value ofS3Uri
andS3Prefix
as the value ofS3DataType
, then it will result in name clash between/opt/ml/model/weights
(a regular file) and/opt/ml/model/weights/
(a directory). -
Do not organize the model artifacts in S3 console using folders. When you create a folder in S3 console, S3 creates a 0-byte object with a key set to the folder name you provide. They key of the 0-byte object ends with a slash (/) which violates SageMaker restrictions on model artifact file names, leading to model deployment failure.
source§impl S3ModelDataSource
impl S3ModelDataSource
sourcepub fn builder() -> S3ModelDataSourceBuilder
pub fn builder() -> S3ModelDataSourceBuilder
Creates a new builder-style object to manufacture S3ModelDataSource
.
Trait Implementations§
source§impl Clone for S3ModelDataSource
impl Clone for S3ModelDataSource
source§fn clone(&self) -> S3ModelDataSource
fn clone(&self) -> S3ModelDataSource
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for S3ModelDataSource
impl Debug for S3ModelDataSource
source§impl PartialEq<S3ModelDataSource> for S3ModelDataSource
impl PartialEq<S3ModelDataSource> for S3ModelDataSource
source§fn eq(&self, other: &S3ModelDataSource) -> bool
fn eq(&self, other: &S3ModelDataSource) -> bool
self
and other
values to be equal, and is used
by ==
.