

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Como configurar trabalhos de treinamento para acessar conjuntos de dados
<a name="model-access-training-data"></a>

Ao criar um trabalho de treinamento, você especifica a localização dos conjuntos de dados de treinamento em um armazenamento de dados de sua escolha e o modo de entrada de dados para o trabalho. O Amazon SageMaker AI oferece suporte ao Amazon Simple Storage Service (Amazon S3), ao Amazon Elastic File System (Amazon EFS) e ao Amazon for Lustre. FSx Você pode escolher um dos modos de entrada para transmitir o conjunto de dados em tempo real ou baixar todo o conjunto de dados no início do trabalho de treinamento.

**nota**  
Seu conjunto de dados deve residir no mesmo Região da AWS local do trabalho de treinamento.

## SageMaker Modos de entrada de IA e opções de armazenamento AWS em nuvem
<a name="model-access-training-data-input-modes"></a>

Esta seção fornece uma visão geral dos modos de entrada de arquivos suportados SageMaker pelos dados armazenados no Amazon EFS e no Amazon FSx for Lustre.

![\[Resumo dos modos de entrada de SageMaker IA para o Amazon S3 e sistemas de arquivos no Amazon EFS e no Amazon FSx for Lustre.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/sagemaker-training-input-mode.png)

+ O *modo de arquivo* apresenta uma visualização do sistema de arquivos do conjunto de dados para o contêiner de treinamento. Esse é o modo de entrada padrão se você não especificar explicitamente uma das outras duas opções. Se você usa o modo de arquivo, o SageMaker AI baixa os dados de treinamento do local de armazenamento para um diretório local no contêiner do Docker. O treinamento começa após o download do conjunto de dados completo. No modo de arquivo, a instância de treinamento deve ter espaço de armazenamento suficiente para caber em todo o conjunto de dados. A velocidade de download do modo de arquivo depende do tamanho do conjunto de dados, do tamanho médio dos arquivos e do número de arquivos. Você pode configurar o conjunto de dados para o modo de arquivo fornecendo um prefixo, arquivo de manifesto ou arquivo de manifesto aumentado do Amazon S3. Use um prefixo S3 quando todos os arquivos do conjunto de dados estiverem localizados em um prefixo S3 comum. O modo de arquivo é compatível com o [modo local de SageMaker IA](https://sagemaker.readthedocs.io/en/stable/overview.html#local-mode) (iniciando um contêiner de SageMaker treinamento interativamente em segundos). Para treinamento distribuído, você pode fragmentar o conjunto de dados em várias instâncias com a opção `ShardedByS3Key`.
+ O *modo de arquivo rápido* dá acesso ao sistema de arquivos a uma fonte de dados do Amazon S3 enquanto aproveita a vantagem de desempenho do modo pipe. No início do treinamento, o modo de arquivo rápido identifica os arquivos de dados, mas não os baixa. O treinamento pode começar sem esperar o download de todo o conjunto de dados. Isso significa que o startup do treinamento leva menos tempo quando há menos arquivos no prefixo Amazon S3 fornecido.

  Em contraste com o modo pipe, o modo de arquivo rápido funciona com acesso randomizado aos dados. No entanto, funciona melhor quando os dados são lidos sequencialmente. O modo de arquivo rápido não é compatível com arquivos de manifesto aumentados.

  O modo de arquivo rápido expõe objetos do S3 usando uma interface de sistema de arquivos compatível com POSIX, como se os arquivos estivessem disponíveis no disco local da sua instância de treinamento. Ele transmite conteúdo do S3 sob demanda à medida que seu script de treinamento consome dados. Isso significa que seu conjunto de dados não precisa mais caber no espaço de armazenamento da instância de treinamento como um todo, e você não precisa esperar que o conjunto de dados seja baixado para a instância de treinamento antes do início do treinamento. Atualmente, o Fast File é compatível apenas com prefixos S3 (não é compatível com manifesto e manifesto aumentado). O modo de arquivo rápido é compatível com o modo local SageMaker AI.
**nota**  
Usar o modo Fast File pode aumentar CloudTrail os custos devido ao registro adicional de:  
Eventos de dados do Amazon S3 (se habilitado em CloudTrail).
AWS KMS eventos de descriptografia ao acessar objetos do Amazon S3 criptografados com chaves. AWS KMS 
Eventos de gerenciamento relacionados às AWS KMS operações.
Revise seus custos de CloudTrail configuração e monitoramento se você tiver o CloudTrail registro habilitado para esses tipos de eventos.
+ O *modo Pipe* transmite dados diretamente de uma fonte de dados do Amazon S3. O streaming pode proporcionar tempos de inicialização mais rápidos um throughput melhor que o modo de arquivo.

  Ao transmitir os dados diretamente, você pode reduzir o tamanho dos volumes do Amazon EBS usados pela instância de treinamento. O modo de Pipe precisa apenas de espaço em disco suficiente para armazenar os artefatos de modelo finais.

  É outro modo de streaming que é amplamente substituído pelo modo de arquivo mais novo e simpler-to-use rápido. No modo pipe, os dados são pré-obtidos do Amazon S3 com alta simultaneidade e taxa de transferência e transmitidos para um canal nomeado, também conhecido como canal (FIFO) por seu First-In-First-Out comportamento. Cada pipe só pode ser lido por um único processo. Uma extensão específica de SageMaker IA que [integra TensorFlow convenientemente o modo Pipe ao carregador de TensorFlow dados nativo](https://sagemaker.readthedocs.io/en/stable/frameworks/tensorflow/using_tf.html#training-with-pipe-mode-using-pipemodedataset) para streaming de texto TFRecords ou formatos de arquivo ReCordio. O modo Pipe também é compatível com fragmentação e embaralhamento de dados gerenciados.
+ *O Amazon S3 Express One Zone é uma classe de armazenamento de zona* de disponibilidade única e alto desempenho que pode fornecer acesso consistente a dados de um dígito em milissegundos para os aplicativos mais sensíveis à latência, incluindo treinamento de modelos. SageMaker O Amazon S3 Express One Zone permite que os clientes coloquem seus recursos computacionais e de armazenamento de objetos em uma única zona de AWS disponibilidade, otimizando o desempenho e os custos computacionais com maior velocidade de processamento de dados. Para aumentar ainda mais a velocidade de acesso e oferecer compatibilidade com centenas de milhares de solicitações por segundo, os dados são armazenados em um novo tipo de bucket: um bucket de diretório do Amazon S3.

  SageMaker O treinamento do modelo de IA oferece suporte a buckets de diretório One Zone do Amazon S3 Express de alto desempenho como um local de entrada de dados para o modo de arquivo, modo de arquivo rápido e modo pipe. Para usar o Amazon S3 Express One Zone, insira a localização do bucket do diretório Amazon S3 Express One Zone, em vez de um bucket do Amazon S3. Forneça o ARN para o perfil do IAM com o controle de acesso e a política de permissões necessários. Para mais detalhes, consulte [AmazonSageMakerFullAccesspolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html). Você só pode criptografar seus dados de saída de SageMaker IA em buckets de diretório com criptografia do lado do servidor com chaves gerenciadas do Amazon S3 (SSE-S3). Atualmente, a criptografia do lado do servidor com AWS KMS chaves (SSE-KMS) não é suportada para armazenar dados de saída de SageMaker IA em buckets de diretório. Para obter mais informações, consulte [Amazon S3 Express One Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-one-zone.html).
+ O Amazon FSx for Lustre — for Lustre pode ser escalado FSx para centenas de gigabytes de taxa de transferência e milhões de IOPS com recuperação de arquivos de baixa latência. Ao iniciar um trabalho de treinamento, a SageMaker IA monta o sistema de arquivos FSx for Lustre no sistema de arquivos da instância de treinamento e inicia seu script de treinamento. A montagem em si é uma operação relativamente rápida que não depende do tamanho do conjunto de dados armazenado no FSx Lustre. 

   FSx Para acessar o Lustre, seu trabalho de treinamento deve se conectar a uma Amazon Virtual Private Cloud (VPC), o que requer configuração e envolvimento. DevOps Para evitar custos de transferência de dados, o sistema de arquivos usa uma única zona de disponibilidade e você precisa especificar uma sub-rede VPC que mapeie essa ID da zona de disponibilidade ao executar o trabalho de treinamento.
+ Amazon EFS — Para usar o Amazon EFS como fonte de dados, os dados já devem residir no Amazon EFS antes do treinamento. SageMaker A IA monta o sistema de arquivos Amazon EFS especificado na instância de treinamento e, em seguida, inicia seu script de treinamento. Seu trabalho de treinamento deve se conectar a uma VPC para acessar o Amazon EFS.
**dica**  
*Para saber mais sobre como especificar sua configuração de VPC para estimadores de SageMaker IA, consulte [Usar sistemas de arquivos como entradas de treinamento na](https://sagemaker.readthedocs.io/en/stable/overview.html?highlight=VPC#use-file-systems-as-training-inputs) documentação do SDK para AI SageMaker Python.*

# Configure o modo de entrada de dados usando o SDK do SageMaker Python
<a name="model-access-training-data-using-pysdk"></a>

SageMaker O Python SDK fornece a [classe genérica Estimator](https://sagemaker.readthedocs.io/en/stable/api/training/estimators.html#sagemaker.estimator.Estimator) e suas [variações para estruturas de ML para](https://sagemaker.readthedocs.io/en/stable/frameworks/index.html) o lançamento de trabalhos de treinamento. Você pode especificar um dos modos de entrada de dados ao configurar a `Estimator` classe de SageMaker IA ou o `Estimator.fit` método. Os modelos de código a seguir mostram as duas formas de especificar os modos de entrada.

**Para especificar o modo de entrada usando a classe Estimator**

```
from sagemaker.estimator import Estimator
from sagemaker.inputs import TrainingInput

estimator = Estimator(
    checkpoint_s3_uri='s3://amzn-s3-demo-bucket/checkpoint-destination/',
    output_path='s3://amzn-s3-demo-bucket/output-path/',
    base_job_name='job-name',
    input_mode='File'  # Available options: File | Pipe | FastFile
    ...
)

# Run the training job
estimator.fit(
    inputs=TrainingInput(s3_data="s3://amzn-s3-demo-bucket/my-data/train")
)
```

*Para obter mais informações, consulte a classe [SageMaker.Estimator.Estimator](https://sagemaker.readthedocs.io/en/stable/api/training/estimators.html#sagemaker.estimator.Estimator) na documentação do SDK para Python. SageMaker *

**Para especificar o modo de entrada por meio do método `estimator.fit()`**

```
from sagemaker.estimator import Estimator
from sagemaker.inputs import TrainingInput

estimator = Estimator(
    checkpoint_s3_uri='s3://amzn-s3-demo-bucket/checkpoint-destination/',
    output_path='s3://amzn-s3-demo-bucket/output-path/',
    base_job_name='job-name',
    ...
)

# Run the training job
estimator.fit(
    inputs=TrainingInput(
        s3_data="s3://amzn-s3-demo-bucket/my-data/train",
        input_mode='File'  # Available options: File | Pipe | FastFile
    )
)
```

[Para obter mais informações, consulte o método da classe [SageMaker.Estimator.fit e o sagemaker.inputs](https://sagemaker.readthedocs.io/en/stable/api/training/estimators.html#sagemaker.estimator.Estimator.fit). TrainingInput](https://sagemaker.readthedocs.io/en/stable/api/utility/inputs.html#sagemaker.inputs.TrainingInput)classe na documentação do *SageMaker Python SDK*.

**dica**  
*Para saber mais sobre como configurar o Amazon FSx for Lustre ou o Amazon EFS com sua configuração de VPC usando os estimadores do SDK do SageMaker Python, [consulte Usar sistemas de arquivos como entradas de treinamento](https://sagemaker.readthedocs.io/en/stable/overview.html?highlight=VPC#use-file-systems-as-training-inputs) na documentação do AI Python SDK. SageMaker *

**dica**  
As integrações do modo de entrada de dados com o Amazon S3, o Amazon EFS e o FSx Lustre são formas recomendadas de configurar a fonte de dados de forma otimizada de acordo com as melhores práticas. Você pode melhorar estrategicamente o desempenho do carregamento de dados usando as opções de armazenamento gerenciado por SageMaker IA e os modos de entrada, mas isso não é estritamente restrito. Você pode escrever sua própria lógica de leitura de dados diretamente no seu contêiner de treinamento. Por exemplo, você pode configurar para ler de uma fonte de dados diferente, escrever sua própria classe de carregador de dados S3 ou usar as funções de carregamento de dados de estruturas de terceiros em seu script de treinamento. No entanto, você deve se certificar de especificar os caminhos corretos que a SageMaker IA pode reconhecer.

**dica**  
Se você usa um contêiner de treinamento personalizado, certifique-se de instalar o [kit de ferramentas de SageMaker treinamento](https://github.com/aws/sagemaker-training-toolkit) que ajuda a configurar o ambiente para trabalhos de SageMaker treinamento. Caso contrário, você deve especificar as variáveis de ambiente explicitamente em seu Dockerfile. Para obter mais informações, consulte [Criar um contêiner com seus próprios algoritmos e modelos](https://docs.aws.amazon.com/sagemaker/latest/dg/docker-containers-create.html).

Para obter mais informações sobre como definir os modos de entrada de dados usando o nível baixo SageMaker APIs[Como a Amazon SageMaker AI fornece informações de treinamento](your-algorithms-training-algo-running-container.md), consulte a [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)API e o `TrainingInputMode` in [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html).

# Configure o canal de entrada de dados para usar o Amazon FSx for Lustre
<a name="model-access-training-data-fsx"></a>

Aprenda a usar o Amazon FSx for Lustre como sua fonte de dados para maior produtividade e treinamento mais rápido, reduzindo o tempo de carregamento de dados.

**nota**  
Ao usar instâncias habilitadas para EFA, como P4d e P3dn, certifique-se de definir as regras de entrada e saída apropriadas no grupo de segurança. Especialmente, a abertura dessas portas é necessária para que a SageMaker IA acesse o sistema de FSx arquivos da Amazon no trabalho de treinamento. Para saber mais, consulte [Controle de acesso do sistema de arquivos com o Amazon VPC](https://docs.aws.amazon.com/fsx/latest/LustreGuide/limit-access-security-groups.html).

## Sincronize o Amazon S3 e o Amazon for FSx Lustre
<a name="model-access-training-data-fsx-sync-s3"></a>

Para vincular seu Amazon S3 ao Amazon FSx for Lustre e carregar seus conjuntos de dados de treinamento, faça o seguinte.

1. Prepare o conjunto de dados e faça upload para um bucket do Amazon S3. Por exemplo, suponha que os caminhos do Amazon S3 para um conjunto de dados de treino e um conjunto de dados de teste estejam no formato a seguir.

   ```
   s3://amzn-s3-demo-bucket/data/train
   s3://amzn-s3-demo-bucket/data/test
   ```

1. Para criar um FSx sistema de arquivos for Lustre vinculado ao bucket do Amazon S3 com os dados de treinamento, siga as etapas [em Vincular seu sistema de arquivos a um bucket do Amazon S3 no Guia do usuário *do FSx Amazon*](https://docs.aws.amazon.com/fsx/latest/LustreGuide/create-dra-linked-data-repo.html) for Lustre. Certifique-se de adicionar um endpoint à sua VPC permitindo o acesso ao Amazon S3. Para obter mais informações, consulte [Criar um endpoint da VPC para o Amazon S3](train-vpc.md#train-vpc-s3). Quando especificar o **caminho do repositório de dados**, forneça o URI do bucket do Amazon S3 da pasta que contém seus conjuntos de dados. Por exemplo, com base nos exemplos de caminhos do S3 na etapa 1, o caminho do repositório de dados deve ser o seguinte:

   ```
   s3://amzn-s3-demo-bucket/data
   ```

1. Depois que o sistema de arquivos FSx for Lustre for criado, verifique as informações de configuração executando os seguintes comandos.

   ```
   aws fsx describe-file-systems && \
   aws fsx describe-data-repository-association
   ```

   Esses comandos retornam `FileSystemId`, `MountName`, `FileSystemPath` e `DataRepositoryPath`. Por exemplo, os resultados serão semelhantes ao seguinte:

   ```
   # Output of aws fsx describe-file-systems
   "FileSystemId": "fs-0123456789abcdef0"
   "MountName": "1234abcd"
   
   # Output of aws fsx describe-data-repository-association
   "FileSystemPath": "/ns1",
   "DataRepositoryPath": "s3://amzn-s3-demo-bucket/data/"
   ```

   Depois que a sincronização entre o Amazon S3 e a Amazon for FSx concluída, seus conjuntos de dados serão salvos na Amazon FSx nos seguintes diretórios.

   ```
   /ns1/train  # synced with s3://amzn-s3-demo-bucket/data/train
   /ns1/test   # synced with s3://amzn-s3-demo-bucket/data/test
   ```

## Defina o caminho do sistema de FSx arquivos da Amazon como o canal de entrada de dados para SageMaker treinamento
<a name="model-access-training-data-fsx-set-as-input-channel"></a>

Os procedimentos a seguir orientam você no processo de configuração do sistema de FSx arquivos da Amazon como fonte de dados para trabalhos de SageMaker treinamento.

------
#### [ Using the SageMaker Python SDK ]

Para definir adequadamente o sistema de FSx arquivos da Amazon como fonte de dados, configure as classes do estimador de SageMaker IA `FileSystemInput` usando as instruções a seguir.

1. Configure um objeto FileSystemInput de classe.

   ```
   from sagemaker.inputs import FileSystemInput
   
   train_fs = FileSystemInput(
       file_system_id="fs-0123456789abcdef0",
       file_system_type="FSxLustre",
       directory_path="/1234abcd/ns1/",
       file_system_access_mode="ro",
   )
   ```
**dica**  
Ao especificar`directory_path`, certifique-se de fornecer o caminho do sistema de FSx arquivos da Amazon começando com`MountName`.

1. Configure um estimador de SageMaker IA com a configuração de VPC usada para o sistema de arquivos da Amazon. FSx 

   ```
   from sagemaker.estimator import Estimator
   
   estimator = Estimator(
       ...
       role="your-iam-role-with-access-to-your-fsx",
       subnets=["subnet-id"],  # Should be the same as the subnet used for Amazon FSx
       security_group_ids="security-group-id"
   )
   ```

   Certifique-se de que a função do IAM para o trabalho de SageMaker treinamento tenha as permissões para acessar e ler na Amazon FSx.

1. Inicie o trabalho de treinamento executando o método estimator.fit com o sistema de arquivos da Amazon. FSx

   ```
   estimator.fit(train_fs)
   ```

Para encontrar mais exemplos de código, consulte [Usar sistemas de arquivos como entradas de treinamento na documentação](https://sagemaker.readthedocs.io/en/stable/overview.html#use-file-systems-as-training-inputs) do SDK do *SageMaker Python*.

------
#### [ Using the SageMaker AI CreateTrainingJob API ]

Como parte da [CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)solicitação JSON, configure da `InputDataConfig` seguinte maneira.

```
"InputDataConfig": [ 
    { 
        "ChannelName": "string",
        "DataSource": { 
            "FileSystemDataSource": { 
                "DirectoryPath": "/1234abcd/ns1/",
                "FileSystemAccessMode": "ro",
                "FileSystemId": "fs-0123456789abcdef0",
                "FileSystemType": "FSxLustre"
            }
        }
    }
],
```

**dica**  
Ao especificar`DirectoryPath`, certifique-se de fornecer o caminho do sistema de FSx arquivos da Amazon começando com`MountName`.

------

# Escolher um modo de entrada e uma unidade de armazenamento
<a name="model-access-training-data-best-practices"></a>

A melhor fonte de dados para seu trabalho de treinamento depende das características da workload, como o tamanho do conjunto de dados, o formato do arquivo, o tamanho médio dos arquivos, a duração do treinamento, um padrão de leitura sequencial ou randomizado do carregador de dados e a rapidez com que seu modelo pode consumir os dados de treinamento. As práticas recomendadas a seguir fornecem diretrizes para começar a usar o modo de entrada e o serviço de armazenamento de dados mais adequados para seu caso de uso.

![\[Fluxograma que resume as melhores práticas de escolha do melhor armazenamento como fonte de dados e modo de arquivo de entrada.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/sagemaker-training-choose-mode-and-storage.png)


## Quando usar o Amazon EFS
<a name="model-access-training-data-best-practices-efs"></a>

Se o seu conjunto de dados estiver armazenado no Amazon Elastic File System, você pode ter uma aplicação de pré-processamento ou anotações que usa o Amazon EFS para armazenamento. Você pode executar um trabalho de treinamento configurado com um canal de dados que aponta para o sistema de arquivos do Amazon EFS. Para obter mais informações, consulte [Acelere o treinamento na Amazon SageMaker AI usando os sistemas de arquivos Amazon FSx for Lustre e Amazon EFS](https://aws.amazon.com/blogs/machine-learning/speed-up-training-on-amazon-sagemaker-using-amazon-efs-or-amazon-fsx-for-lustre-file-systems/). Se você não conseguir obter um desempenho melhor, verifique suas opções de otimização seguindo o [guia de desempenho do Amazon Elastic File System](https://docs.aws.amazon.com/efs/latest/ug/performance.html#performance-overview) ou considere usar diferentes modos de entrada ou armazenamento de dados.

## Use o modo de arquivo para pequenos conjuntos de dados
<a name="model-access-training-data-best-practices-file-mode"></a>

Se o conjunto de dados estiver armazenado no Amazon Simple Storage Service e seu volume geral for relativamente pequeno (por exemplo, menos de 50 a 100 GB), tente usar o modo de arquivo. A sobrecarga do download de um conjunto de dados de 50 GB pode variar com base no número total de arquivos. Por exemplo, leva cerca de 5 minutos se um conjunto de dados for dividido em fragmentos de 100 MB. Se essa sobrecarga inicial é aceitável depende principalmente da duração geral do seu trabalho de treinamento, porque uma fase de treinamento mais longa significa uma fase de download proporcionalmente menor.

## Serializar muitos arquivos pequenos
<a name="model-access-training-data-best-practices-serialize"></a>

Se o tamanho do seu conjunto de dados for pequeno (menos de 50 a 100 GB), mas for composto por muitos arquivos pequenos (menos de 50 MB por arquivo), a sobrecarga de download do modo de arquivo aumentará, pois cada arquivo precisa ser baixado individualmente do Amazon Simple Storage Service para o volume da instância de treinamento. [Para reduzir essa sobrecarga e o tempo de passagem de dados em geral, considere serializar grupos desses arquivos pequenos em menos contêineres maiores (como 150 MB por arquivo) usando formatos de arquivo, como [TFRecord](https://www.tensorflow.org/tutorials/load_data/tfrecord)for TensorFlow [ WebDataset](https://webdataset.github.io/webdataset/), for PyTorch e Recordio for.](https://mxnet.apache.org/versions/1.8.0/api/faq/recordio) MXNet

## Quando usar o modo de arquivo rápido
<a name="model-access-training-data-best-practices-fastfile"></a>

Para conjuntos de dados maiores com arquivos maiores (mais de 50 MB por arquivo), a primeira opção é experimentar o modo de arquivo rápido, que é mais simples de usar do FSx que o Lustre, pois não requer a criação de um sistema de arquivos ou a conexão com uma VPC. O modo de arquivo rápido é ideal para contêineres de arquivos grandes (mais de 150 MB) e também pode funcionar bem com arquivos com mais de 50 MB. Como o modo de arquivo rápido fornece uma interface POSIX, ele é compatível com leituras randomizadas (leitura de intervalos de bytes não sequenciais). No entanto, esse não é o caso de uso ideal e seu throughput pode ser menor do que com as leituras sequenciais. No entanto, se você tiver um modelo de ML relativamente grande e computacionalmente intensivo, o modo de arquivo rápido ainda poderá saturar a largura de banda efetiva do pipeline de treinamento e não resultar em um gargalo de E/S. Você precisará experimentar e ver. Para alternar do modo de arquivo para o modo de arquivo rápido (e vice-versa), basta adicionar (ou remover) o `input_mode='FastFile'` parâmetro ao definir seu canal de entrada usando o SDK do SageMaker Python:

```
sagemaker.inputs.TrainingInput(S3_INPUT_FOLDER,  input_mode = 'FastFile')
```

## Quando usar o Amazon FSx for Lustre
<a name="model-access-training-data-best-practices-fsx"></a>

Se seu conjunto de dados for muito grande para o modo de arquivo, tiver muitos arquivos pequenos que você não pode serializar facilmente ou usar um padrão de acesso de leitura aleatória, FSx o Lustre é uma boa opção a ser considerada. Seu sistema de arquivos é escalável para centenas de gigabytes por segundo (GB/s) de throughput e milhões de IOPS, o que é ideal quando você tem muitos arquivos pequenos. No entanto, observe que pode haver um problema de inicialização a frio devido ao carregamento lento e à sobrecarga de configurar e inicializar o sistema de arquivos do FSx Lustre.

**dica**  
Para saber mais, consulte [Escolha a melhor fonte de dados para seu trabalho de SageMaker treinamento na Amazon](https://aws.amazon.com/blogs/machine-learning/choose-the-best-data-source-for-your-amazon-sagemaker-training-job/). Este blog sobre aprendizado AWS de máquina discute ainda mais os estudos de caso e o benchmark de desempenho de fontes de dados e modos de entrada.

# Usar controle de acesso por atributo (ABAC) para treinamento de multilocação
<a name="model-access-training-data-abac"></a>

Em um ambiente multilocatário, é crucial garantir que os dados de cada locatário sejam isolados e acessíveis somente a entidades autorizadas. SageMaker A IA suporta o uso do [controle de acesso baseado em atributos (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) para obter esse isolamento para trabalhos de treinamento. Em vez de criar várias funções do IAM para cada inquilino, você pode usar a mesma função do IAM para todos os inquilinos configurando uma configuração de encadeamento de sessões que usa tags de sessão AWS Security Token Service (AWS STS) para solicitar credenciais temporárias com privilégios limitados para que seu trabalho de treinamento acesse locatários específicos. Para obter mais informações sobre o envio de tags de sessão, consulte [Enviar tags de sessão, no AWS STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html).

Ao criar um trabalho de treinamento, sua configuração de encadeamento de sessões é usada AWS STS para solicitar credenciais de segurança temporárias. Essa solicitação gera uma sessão, que é marcada. Cada trabalho SageMaker de treinamento só pode acessar um inquilino específico usando uma única função compartilhada por todos os trabalhos de treinamento. Ao implementar o ABAC com o encadeamento de sessões, você garante que cada trabalho de treinamento tenha acesso somente ao locatário determinado pela tag da sessão, realmente isolando e protegendo cada locatário. A seção a seguir orienta você pelas etapas de configuração e uso do ABAC para isolamento de trabalhos de treinamento multilocatário usando o SDK do Python SageMaker . 

## Pré-requisitos
<a name="model-access-training-data-abac-prerequisites"></a>

Para começar a usar o ABAC para isolamento de trabalho de treinamento multilocatário, você precisa fazer o seguinte:
+ Locatários com nomenclatura consistente em todos os locais. Por exemplo, se um URI do Amazon S3 de dados de entrada para um locatário for, `s3://your-input-s3-bucket/example-tenant` o FSx diretório da Amazon desse mesmo inquilino deve ser `/fsx-train/train/example-tenant` e os dados de saída o URI do Amazon S3 devem ser. `s3://your-output-s3-bucket/example-tenant`
+ Uma função de criação de empregos de SageMaker IA. Você pode criar uma função de criação de empregos de SageMaker IA usando o Amazon SageMaker AI Role Manager. Para obter informações, consulte [Usar o gerenciador de perfis](https://docs.aws.amazon.com/sagemaker/latest/dg/role-manager-tutorial.html).
+ Uma função de execução de SageMaker IA que tem `sts:AssumeRole` e `sts:TagSession` permissões em sua política de confiança. Para obter mais informações sobre funções de execução de SageMaker IA, consulte [Funções de SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html). 

  O perfil de execução também deve ter uma política que permita que os locatários, em qualquer arquitetura de multilocação baseada em atributos, leiam o prefixo anexo a uma tag de entidade principal. Veja a seguir um exemplo de política que limita a função de execução da SageMaker IA a ter acesso ao valor associado à `tenant-id` chave. Para obter mais informações sobre a nomenclatura de chaves de tag, consulte [Regras para etiquetar no IAM e no STS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html#id_tags_rules).

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Action": [
                  "s3:GetObject",
                  "s3:PutObject"
              ],
              "Resource": [
                  "arn:aws:s3:::your-input-s3-bucket/${aws:PrincipalTag/tenant-id}/*"
              ],
              "Effect": "Allow"
          },
          {
              "Action": [
                  "s3:PutObject"
              ],
              "Resource": "arn:aws:s3:::your-output-s3-bucket/${aws:PrincipalTag/tenant-id}/*",
              "Effect": "Allow"
          },
          {
              "Action": "s3:ListBucket",
              "Resource": "*",
              "Effect": "Allow"
          }
      ]
  }
  ```

------

## Criar um trabalho de treinamento com o encadeamento de tags de sessão ativado
<a name="model-access-training-data-abac-create-training-job"></a>

O procedimento a seguir mostra como criar um trabalho de treinamento com o encadeamento de tags de sessão usando o SDK do SageMaker Python para treinamento multilocatário habilitado para ABAC.

**nota**  
Além do armazenamento de dados multilocatário, você também pode usar o fluxo de trabalho ABAC para passar tags de sessão para sua função de execução para Amazon VPC e quaisquer outros serviços que você permita AWS Key Management Service que a IA chame. SageMaker 

**Habilitar o encadeamento de tags de sessão para o ABAC**

1. Importação `boto3` e o SageMaker SDK do Python. O isolamento de tarefas de treinamento habilitado para ABAC só está disponível na versão [2.217](https://pypi.org/project/sagemaker/2.217.0/) ou posterior do SDK AI SageMaker Python. 

   ```
   import boto3
   import sagemaker
   
   from sagemaker.estimator import Estimator
   from sagemaker.inputs import TrainingInput
   ```

1. Configure um cliente AWS STS e SageMaker AI para usar as tags de sessão rotuladas como inquilino. Você pode alterar o valor da tag para especificar um locatário diferente.

   ```
   # Start an AWS STS client
   sts_client = boto3.client('sts')
   
   # Define your tenants using tags
   # The session tag key must match the principal tag key in your execution role policy
   tags = []
   tag = {}
   tag['Key'] = "tenant-id"
   tag['Value'] = "example-tenant"
   tags.append(tag)
   
   # Have AWS STS assume your ABAC-enabled job creation role
   response = sts_client.assume_role(
       RoleArn="arn:aws:iam::<account-id>:role/<your-training-job-creation-role>",
       RoleSessionName="SessionName",
       Tags=tags)
   credentials = response['Credentials']
   
   # Create a client with your job creation role (which was assumed with tags)
   sagemaker_client = boto3.client(
       'sagemaker',
       aws_access_key_id=credentials['AccessKeyId'],
       aws_secret_access_key=credentials['SecretAccessKey'],
       aws_session_token=credentials['SessionToken']
   )
   sagemaker_session = sagemaker.Session(sagemaker_client=sagemaker_client)
   ```

    Ao incluir as tags `"tenant-id=example-tenant"` ao perfil de criação de tarefas, essas tags são extraídas pelo perfil de execução para usar a seguinte política: 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "s3:GetObject",
                   "s3:PutObject"
               ],
               "Resource": [
                   "arn:aws:s3:::your-input-s3-bucket/example-tenant/*"
               ],
               "Effect": "Allow"
           },
           {
               "Action": [
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::your-output-s3-bucket/example-tenant/*",
               "Effect": "Allow"
           },
           {
               "Action": "s3:ListBucket",
               "Resource": "*",
               "Effect": "Allow"
           }
       ]
   }
   ```

------

1. Defina um estimador para criar um trabalho de treinamento usando o SDK do Python SageMaker . `enable_session_tag_chaining`Defina como `True` para permitir que sua função de execução de treinamento de SageMaker IA recupere as tags da sua função de criação de empregos.

   ```
   # Specify your training input
   trainingInput = TrainingInput(
       s3_data='s3://<your-input-bucket>/example-tenant',
       distribution='ShardedByS3Key',
       s3_data_type='S3Prefix'
   )
   
   # Specify your training job execution role 
   execution_role_arn = "arn:aws:iam::<account-id>:role/<your-training-job-execution-role>"
   
   # Define your esimator with session tag chaining enabled
   estimator = Estimator(
       image_uri="<your-training-image-uri>",
       role=execution_role_arn,
       instance_count=1,
       instance_type='ml.m4.xlarge',
       volume_size=20,
       max_run=3600,
       sagemaker_session=sagemaker_session,
       output_path="s3://<your-output-bucket>/example-tenant",
       enable_session_tag_chaining=True
   )
   
   estimator.fit(inputs=trainingInput, job_name="abac-demo")
   ```

SageMaker A IA só pode ler as tags fornecidas na solicitação de trabalho de treinamento e não adiciona nenhuma tag aos recursos em seu nome.

O ABAC para SageMaker treinamento é compatível com piscinas quentes gerenciadas por SageMaker IA. Para usar o ABAC com grupos de aquecimento, os trabalhos de treinamento correspondentes devem ter tags de sessão idênticas. Para obter mais informações, consulte [Combinar os trabalhos de treinamento](train-warm-pools.md#train-warm-pools-matching-criteria).