packages feed

amazonka-sagemaker-2.0: gen/Amazonka/SageMaker/Types/TrainingInputMode.hs

{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.SageMaker.Types.TrainingInputMode
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.SageMaker.Types.TrainingInputMode
  ( TrainingInputMode
      ( ..,
        TrainingInputMode_FastFile,
        TrainingInputMode_File,
        TrainingInputMode_Pipe
      ),
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude

-- | The training input mode that the algorithm supports. For more
-- information about input modes, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html Algorithms>.
--
-- __Pipe mode__
--
-- If an algorithm supports @Pipe@ mode, Amazon SageMaker streams data
-- directly from Amazon S3 to the container.
--
-- __File mode__
--
-- If an algorithm supports @File@ mode, SageMaker downloads the training
-- data from S3 to the provisioned ML storage volume, and mounts the
-- directory to the Docker volume for the training container.
--
-- You must provision the ML storage volume with sufficient capacity to
-- accommodate the data downloaded from S3. In addition to the training
-- data, the ML storage volume also stores the output model. The algorithm
-- container uses the ML storage volume to also store intermediate
-- information, if any.
--
-- For distributed algorithms, training data is distributed uniformly. Your
-- training duration is predictable if the input data objects sizes are
-- approximately the same. SageMaker does not split the files any further
-- for model training. If the object sizes are skewed, training won\'t be
-- optimal as the data distribution is also skewed when one host in a
-- training cluster is overloaded, thus becoming a bottleneck in training.
--
-- __FastFile mode__
--
-- If an algorithm supports @FastFile@ mode, SageMaker streams data
-- directly from S3 to the container with no code changes, and provides
-- file system access to the data. Users can author their training script
-- to interact with these files as if they were stored on disk.
--
-- @FastFile@ mode works best when the data is read sequentially. Augmented
-- manifest files aren\'t supported. The startup time is lower when there
-- are fewer files in the S3 bucket provided.
newtype TrainingInputMode = TrainingInputMode'
  { fromTrainingInputMode ::
      Data.Text
  }
  deriving stock
    ( Prelude.Show,
      Prelude.Read,
      Prelude.Eq,
      Prelude.Ord,
      Prelude.Generic
    )
  deriving newtype
    ( Prelude.Hashable,
      Prelude.NFData,
      Data.FromText,
      Data.ToText,
      Data.ToByteString,
      Data.ToLog,
      Data.ToHeader,
      Data.ToQuery,
      Data.FromJSON,
      Data.FromJSONKey,
      Data.ToJSON,
      Data.ToJSONKey,
      Data.FromXML,
      Data.ToXML
    )

pattern TrainingInputMode_FastFile :: TrainingInputMode
pattern TrainingInputMode_FastFile = TrainingInputMode' "FastFile"

pattern TrainingInputMode_File :: TrainingInputMode
pattern TrainingInputMode_File = TrainingInputMode' "File"

pattern TrainingInputMode_Pipe :: TrainingInputMode
pattern TrainingInputMode_Pipe = TrainingInputMode' "Pipe"

{-# COMPLETE
  TrainingInputMode_FastFile,
  TrainingInputMode_File,
  TrainingInputMode_Pipe,
  TrainingInputMode'
  #-}