

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Cómo proporciona Amazon SageMaker AI la información de formación
<a name="your-algorithms-training-algo-running-container"></a>

En esta sección, se explica cómo la SageMaker IA hace que la información de entrenamiento, como los datos de entrenamiento, los hiperparámetros y otra información de configuración, esté disponible en su contenedor de Docker. 

Cuando envías una [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)solicitud a SageMaker AI para iniciar el entrenamiento con modelos, especificas la ruta de Amazon Elastic Container Registry (Amazon ECR) de la imagen de Docker que contiene el algoritmo de entrenamiento. También especificas la ubicación de Amazon Simple Storage Service (Amazon S3) en la que se almacenan los datos de entrenamiento y los parámetros específicos del algoritmo. SageMaker La IA pone esta información a disposición del contenedor de Docker para que tu algoritmo de entrenamiento pueda utilizarla. Esta sección explica cómo hacemos que esta información esté disponible para su contenedor de Docker. Para obtener información sobre un trabajo de entrenamiento, consulte `CreateTrainingJob`. Para obtener más información sobre la forma en que los contenedores de SageMaker IA organizan la información, consulte[SageMaker Kits de herramientas de formación e inferencia](amazon-sagemaker-toolkits.md).

**Topics**
+ [Hiperparámetros](#your-algorithms-training-algo-running-container-hyperparameters)
+ [Variables de entorno](#your-algorithms-training-algo-running-container-environment-variables)
+ [Configuración de datos de entrada](#your-algorithms-training-algo-running-container-inputdataconfig)
+ [Datos de capacitación](#your-algorithms-training-algo-running-container-trainingdata)
+ [Configuración de entrenamiento distribuido](#your-algorithms-training-algo-running-container-dist-training)

## Hiperparámetros
<a name="your-algorithms-training-algo-running-container-hyperparameters"></a>

 SageMaker La IA hace que los hiperparámetros de una `CreateTrainingJob` solicitud estén disponibles en el contenedor Docker del `/opt/ml/input/config/hyperparameters.json` archivo.

A continuación se muestra un ejemplo de una configuración de hiperparámetros `hyperparameters.json` para especificar los hiperparámetros `num_round` y los `eta` hiperparámetros de la operación. `CreateTrainingJob` [XGBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html) 

```
{
    "num_round": "128",
    "eta": "0.001"
}
```

[Para obtener una lista completa de los hiperparámetros que se pueden utilizar para el XGBoost algoritmo integrado de SageMaker IA, consulte Hiperparámetros. XGBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost_hyperparameters.html)

Los hiperparámetros que puede ajustar dependen del algoritmo que esté entrenando. Para ver una lista de los hiperparámetros disponibles para un algoritmo integrado de SageMaker IA, búsquelos en la sección **Hiperparámetros**, en el enlace del algoritmo, en Use [Amazon SageMaker AI Builted Algorithms or Pre-Training](https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html) Models.

## Variables de entorno
<a name="your-algorithms-training-algo-running-container-environment-variables"></a>

SageMaker La IA establece las siguientes variables de entorno en su contenedor:
+ TRAINING\$1JOB\$1NAME: se especifica en el parámetro `TrainingJobName` de la solicitud `CreateTrainingJob`.
+ TRAINING\$1JOB\$1ARN: es el nombre de recurso de Amazon (ARN) del trabajo de entrenamiento devuelto como `TrainingJobArn` en la respuesta `CreateTrainingJob`.
+ Todas las variables de entorno especificadas en el parámetro [Environment](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html#sagemaker-CreateTrainingJob-request-Environment) de la solicitud `CreateTrainingJob`.

## Configuración de datos de entrada
<a name="your-algorithms-training-algo-running-container-inputdataconfig"></a>

SageMaker La IA hace que la información del canal de datos del `InputDataConfig` parámetro de tu `CreateTrainingJob` solicitud esté disponible en el `/opt/ml/input/config/inputdataconfig.json` archivo de tu contenedor de Docker.

Por ejemplo, supongamos que especificas tres canales de datos (`train``evaluation`, y`validation`) en tu solicitud. SageMaker AI proporciona el siguiente JSON:

```
{
  "train" : {"ContentType":  "trainingContentType",
             "TrainingInputMode": "File",
             "S3DistributionType": "FullyReplicated",
             "RecordWrapperType": "None"},
  "evaluation" : {"ContentType":  "evalContentType",
                  "TrainingInputMode": "File",
                  "S3DistributionType": "FullyReplicated",
                  "RecordWrapperType": "None"},
  "validation" : {"TrainingInputMode": "File",
                  "S3DistributionType": "FullyReplicated",
                  "RecordWrapperType": "None"}
}
```

**nota**  
SageMaker La IA solo proporciona al contenedor información relevante sobre cada canal de datos (por ejemplo, el nombre del canal y el tipo de contenido), como se muestra en el ejemplo anterior. `S3DistributionType`se configurará como `FullyReplicated` si especificara EFS o FSx Lustre como fuentes de datos de entrada.

## Datos de capacitación
<a name="your-algorithms-training-algo-running-container-trainingdata"></a>

El parámetro `TrainingInputMode` en la `AlgorithmSpecification` de la solicitud [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) especifica cómo se pone a disposición del contenedor el conjunto de datos de entrenamiento. Están disponibles los siguientes modos de entrada.
+ **Modo `File`**

  Si usa el `File` modo como `TrainingInputMode` valor, SageMaker AI establece los siguientes parámetros en su contenedor.
  + El parámetro `TrainingInputMode` se escribe en `inputdataconfig.json` como “File”.
  + Su directorio de canales de datos e escribe en `/opt/ml/input/data/channel_name`.

  Si utilizas el `File` modo, SageMaker AI crea un directorio para cada canal. Por ejemplo, si tienes tres canales con el nombre `training``validation`, y`testing`, SageMaker AI crea los tres directorios siguientes en tu contenedor de Docker: 
  + `/opt/ml/input/data/training`
  + `/opt/ml/input/data/validation`
  + `/opt/ml/input/data/testing`

  El modo `File` también admite los siguientes orígenes de datos:
  + Amazon Simple Storage Service (Amazon S3)
  + Amazon Elastic File System (Amazon EFS)
  + Amazon FSx para Lustre
**nota**  
Los canales que utilizan fuentes de datos del sistema de archivos, como Amazon EFS y Amazon, FSx deben usar `File` el modo. En este caso, la ruta del directorio proporcionada en el canal se monta en`/opt/ml/input/data/channel_name`.
+ **Modo `FastFile`**

  Si utilizas el `FastFile` modo como tuyo`TrainingInputNodeParameter`, SageMaker AI establece los siguientes parámetros en tu contenedor.
  + Al igual que en modo `File`, en el modo `FastFile`, el parámetro `TrainingInputMode` se escribe en `inputdataconfig.json` como “File”.
  + Su directorio de canales de datos e escribe en `/opt/ml/input/data/channel_name`.

  El modo `FastFile` admite los siguientes orígenes de datos:
  + Amazon S3

  Si utiliza el modo `FastFile`, el directorio de canales se monta con permiso de solo lectura.

  Históricamente, el modo `File` precedía al modo `FastFile`. Para garantizar la compatibilidad con versiones anteriores, los algoritmos que admiten el modo `File` también pueden funcionar sin problemas con el modo `FastFile` siempre que el parámetro `TrainingInputMode` esté configurado en `File` en `inputdataconfig.json.`.
**nota**  
Los canales que utilizan el modo `FastFile` deben utilizar un `S3DataType` “S3Prefix”.  
El modo `FastFile` presenta una vista de carpetas que utiliza la barra diagonal (`/`) como delimitador para agrupar los objetos de Amazon S3 en carpetas. Los prefijos `S3Uri` no deben corresponder a un nombre de carpeta parcial. Por ejemplo, si un conjunto de datos de Amazon S3 contiene `s3://amzn-s3-demo-bucket/train-01/data.csv`, ni `s3://amzn-s3-demo-bucket/train` ni `s3://amzn-s3-demo-bucket/train-01` están permitidos como prefijos `S3Uri`.  
Se recomienda usar una barra diagonal final para definir el canal correspondiente a una carpeta. Por ejemplo, el canal `s3://amzn-s3-demo-bucket/train-01/` para la carpeta `train-01`. Sin la barra diagonal final, el canal sería ambiguo si existiera otra carpeta `s3://amzn-s3-demo-bucket/train-011/` o archivo `s3://amzn-s3-demo-bucket/train-01.txt/`.
+ **Modo `Pipe`**
  + Parámetro `TrainingInputMode` escrito en `inputdataconfig.json`: “Pipe”
  + Directorio de canales de datos en el contenedor de Docker: `/opt/ml/input/data/channel_name_epoch_number`
  + Fuentes de datos compatibles: Amazon S3

  Debe leer desde una canalización independiente para cada canal. Por ejemplo, si dispone de tres canales denominados `training`, `validation` y `testing`, tienes que realizar la lectura desde las siguientes canalizaciones:
  + `/opt/ml/input/data/training_0, /opt/ml/input/data/training_1, ...`
  + `/opt/ml/input/data/validation_0, /opt/ml/input/data/validation_1, ...`
  + `/opt/ml/input/data/testing_0, /opt/ml/input/data/testing_1, ...`

  Lea las canalizaciones de forma secuencial. Por ejemplo, si dispone de un canal denominado `training`, lea las canalizaciones en este orden: 

  1. Ábrelo `/opt/ml/input/data/training_0` en modo lectura y léelo hasta end-of-file (EOF) o, si has terminado con la primera época, cierra el archivo canalizado antes de tiempo. 

  1. Después de cerrar el primer archivo de canalización, busque `/opt/ml/input/data/training_1` y léalo hasta que haya completado la segunda fecha de inicio y así sucesivamente.

  Si el archivo de una fecha de inicio determinada no existe aún, es posible que tenga que volver a intentarlo con el código hasta que se cree la canalización. No hay restricción de secuenciación entre tipos de canales. Por ejemplo, puede leer varias fechas de inicio para el canal `training`, por ejemplo, y solo comenzar a leer el canal `validation` cuando esté preparado. También puede leerlos simultáneamente si su algoritmo lo requiere.

  Para ver un ejemplo de una libreta de Jupyter que muestra cómo usar el modo Pipe al traer su propio contenedor, consulte [Bring your own Pipe-mode algorithm](https://github.com/aws/amazon-sagemaker-examples/blob/main/advanced_functionality/pipe_bring_your_own/pipe_bring_your_own.ipynb) to Amazon AI. SageMaker 

  

SageMaker El entrenamiento con modelos de IA admite depósitos de directorio S3 Express One Zone de alto rendimiento como ubicación de entrada de datos para el modo archivo, el modo rápido y el modo canalizado. Para utilizar S3 Express One Zone, introduzca la ubicación del bucket del directorio de S3 Express One Zone en lugar de un bucket de uso general de Amazon S3. Proporcione el ARN del rol de IAM con la política pertinente de permisos y control de acceso. Consulte [AmazonSageMakerFullAccesspolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html) para obtener más información. Solo puede cifrar los datos de salida de SageMaker IA en depósitos de directorio con cifrado del lado del servidor con claves administradas de Amazon S3 (SSE-S3). Actualmente, no se admite el cifrado con AWS KMS claves del lado del servidor (SSE-KMS) para almacenar los datos de salida de la IA en depósitos de directorio. SageMaker Para obtener más información, consulte [S3 Express One Zone](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-one-zone.html).

## Configuración de entrenamiento distribuido
<a name="your-algorithms-training-algo-running-container-dist-training"></a>

Si realiza un entrenamiento distribuido con varios contenedores, la SageMaker IA pone a disposición del archivo la información sobre todos los contenedores. `/opt/ml/input/config/resourceconfig.json`

Para permitir la comunicación entre contenedores, este archivo JSON contiene información de todos los contenedores. SageMaker AI hace que este archivo esté disponible tanto `File` para los algoritmos de `Pipe` modo como para los algoritmos. El archivo proporciona la siguiente información:
+ `current_host`: el nombre del contenedor actual en la red del contenedor. Por ejemplo, `algo-1`. Los valores de host pueden cambiar en cualquier momento. No escriba código con valores específicos para esta variable.
+ `hosts`: la lista de nombres de todos los contenedores en la red de contenedores ordenada lexicográficamente. Por ejemplo, `["algo-1", "algo-2", "algo-3"]` para un clúster de tres nodos. Los contenedores pueden utilizar estos nombres para dirigirse a otros contenedores en la red de contenedores. Los valores de host pueden cambiar en cualquier momento. No escriba código con valores específicos para estas variables.
+ `network_interface_name`: el nombre de la interfaz de red que se expone al contenedor. Por ejemplo, los contenedores que ejecuten Message Passing Interface (MPI) pueden usar esta información para establecer el nombre de la interfaz de red.
+ No utilice la información en `/etc/hostname` o `/etc/hosts` porque puede ser inexacta.
+ La información del nombre de host podría no estar disponible de inmediato en el contenedor de algoritmos. Recomendamos agregar una política de reintentos en las operaciones de resolución de nombres de host a medida que los nodos estén disponibles en el clúster.

A continuación se muestra un archivo de ejemplo en el nodo 1 en un clúster de tres nodos:

```
{
    "current_host": "algo-1",
    "hosts": ["algo-1","algo-2","algo-3"],
    "network_interface_name":"eth1"
}
```