Class ResourceConfig

java.lang.Object
software.amazon.awssdk.services.sagemaker.model.ResourceConfig
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<ResourceConfig.Builder,ResourceConfig>

@Generated("software.amazon.awssdk:codegen") public final class ResourceConfig extends Object implements SdkPojo, Serializable, ToCopyableBuilder<ResourceConfig.Builder,ResourceConfig>

Describes the resources, including machine learning (ML) compute instances and ML storage volumes, to use for model training.

See Also:
  • Method Details

    • instanceType

      public final TrainingInstanceType instanceType()

      The ML compute instance type.

      If the service returns an enum value that is not available in the current SDK version, instanceType will return TrainingInstanceType.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from instanceTypeAsString().

      Returns:
      The ML compute instance type.
      See Also:
    • instanceTypeAsString

      public final String instanceTypeAsString()

      The ML compute instance type.

      If the service returns an enum value that is not available in the current SDK version, instanceType will return TrainingInstanceType.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from instanceTypeAsString().

      Returns:
      The ML compute instance type.
      See Also:
    • instanceCount

      public final Integer instanceCount()

      The number of ML compute instances to use. For distributed training, provide a value greater than 1.

      Returns:
      The number of ML compute instances to use. For distributed training, provide a value greater than 1.
    • volumeSizeInGB

      public final Integer volumeSizeInGB()

      The size of the ML storage volume that you want to provision.

      ML storage volumes store model artifacts and incremental states. Training algorithms might also use the ML storage volume for scratch space. If you want to store the training data in the ML storage volume, choose File as the TrainingInputMode in the algorithm specification.

      When using an ML instance with NVMe SSD volumes, SageMaker doesn't provision Amazon EBS General Purpose SSD (gp2) storage. Available storage is fixed to the NVMe-type instance's storage capacity. SageMaker configures storage paths for training datasets, checkpoints, model artifacts, and outputs to use the entire capacity of the instance storage. For example, ML instance families with the NVMe-type instance storage include ml.p4d, ml.g4dn, and ml.g5.

      When using an ML instance with the EBS-only storage option and without instance storage, you must define the size of EBS volume through VolumeSizeInGB in the ResourceConfig API. For example, ML instance families that use EBS volumes include ml.c5 and ml.p2.

      To look up instance types and their instance storage types and volumes, see Amazon EC2 Instance Types.

      To find the default local paths defined by the SageMaker training platform, see Amazon SageMaker Training Storage Folders for Training Datasets, Checkpoints, Model Artifacts, and Outputs.

      Returns:
      The size of the ML storage volume that you want to provision.

      ML storage volumes store model artifacts and incremental states. Training algorithms might also use the ML storage volume for scratch space. If you want to store the training data in the ML storage volume, choose File as the TrainingInputMode in the algorithm specification.

      When using an ML instance with NVMe SSD volumes, SageMaker doesn't provision Amazon EBS General Purpose SSD (gp2) storage. Available storage is fixed to the NVMe-type instance's storage capacity. SageMaker configures storage paths for training datasets, checkpoints, model artifacts, and outputs to use the entire capacity of the instance storage. For example, ML instance families with the NVMe-type instance storage include ml.p4d, ml.g4dn, and ml.g5.

      When using an ML instance with the EBS-only storage option and without instance storage, you must define the size of EBS volume through VolumeSizeInGB in the ResourceConfig API. For example, ML instance families that use EBS volumes include ml.c5 and ml.p2.

      To look up instance types and their instance storage types and volumes, see Amazon EC2 Instance Types.

      To find the default local paths defined by the SageMaker training platform, see Amazon SageMaker Training Storage Folders for Training Datasets, Checkpoints, Model Artifacts, and Outputs.

    • volumeKmsKeyId

      public final String volumeKmsKeyId()

      The Amazon Web Services KMS key that SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the training job.

      Certain Nitro-based instances include local storage, dependent on the instance type. Local storage volumes are encrypted using a hardware module on the instance. You can't request a VolumeKmsKeyId when using an instance type with local storage.

      For a list of instance types that support local instance storage, see Instance Store Volumes.

      For more information about local instance storage encryption, see SSD Instance Store Volumes.

      The VolumeKmsKeyId can be in any of the following formats:

      • // KMS Key ID

        "1234abcd-12ab-34cd-56ef-1234567890ab"

      • // Amazon Resource Name (ARN) of a KMS Key

        "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"

      Returns:
      The Amazon Web Services KMS key that SageMaker uses to encrypt data on the storage volume attached to the ML compute instance(s) that run the training job.

      Certain Nitro-based instances include local storage, dependent on the instance type. Local storage volumes are encrypted using a hardware module on the instance. You can't request a VolumeKmsKeyId when using an instance type with local storage.

      For a list of instance types that support local instance storage, see Instance Store Volumes.

      For more information about local instance storage encryption, see SSD Instance Store Volumes.

      The VolumeKmsKeyId can be in any of the following formats:

      • // KMS Key ID

        "1234abcd-12ab-34cd-56ef-1234567890ab"

      • // Amazon Resource Name (ARN) of a KMS Key

        "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"

    • keepAlivePeriodInSeconds

      public final Integer keepAlivePeriodInSeconds()

      The duration of time in seconds to retain configured resources in a warm pool for subsequent training jobs.

      Returns:
      The duration of time in seconds to retain configured resources in a warm pool for subsequent training jobs.
    • hasInstanceGroups

      public final boolean hasInstanceGroups()
      For responses, this returns true if the service returned a value for the InstanceGroups property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • instanceGroups

      public final List<InstanceGroup> instanceGroups()

      The configuration of a heterogeneous cluster in JSON format.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasInstanceGroups() method.

      Returns:
      The configuration of a heterogeneous cluster in JSON format.
    • trainingPlanArn

      public final String trainingPlanArn()

      The Amazon Resource Name (ARN); of the training plan to use for this resource configuration.

      Returns:
      The Amazon Resource Name (ARN); of the training plan to use for this resource configuration.
    • toBuilder

      public ResourceConfig.Builder toBuilder()
      Description copied from interface: ToCopyableBuilder
      Take this object and create a builder that contains all of the current property values of this object.
      Specified by:
      toBuilder in interface ToCopyableBuilder<ResourceConfig.Builder,ResourceConfig>
      Returns:
      a builder for type T
    • builder

      public static ResourceConfig.Builder builder()
    • serializableBuilderClass

      public static Class<? extends ResourceConfig.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      Description copied from interface: SdkPojo
      Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in an SdkPojo class, and is generated based on a service model.

      If an SdkPojo class does not have any inherited fields, equalsBySdkFields and equals are essentially the same.

      Specified by:
      equalsBySdkFields in interface SdkPojo
      Parameters:
      obj - the object to be compared with
      Returns:
      true if the other object equals to this object by sdk fields, false otherwise.
    • toString

      public final String toString()
      Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
      Returns:
      List of SdkField in this POJO. May be empty list but should never be null.
    • sdkFieldNameToField

      public final Map<String,SdkField<?>> sdkFieldNameToField()
      Specified by:
      sdkFieldNameToField in interface SdkPojo
      Returns:
      The mapping between the field name and its corresponding field.