

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Transformation de modèle à l'aide de la commande `modeltransform`
<a name="machine-learning-api-modeltransform"></a>

Vous utilisez la commande Neptune ML `modeltransform` pour créer une tâche de transformation de modèle, vérifier son statut, l'arrêter ou répertorier toutes les tâches de transformation de modèle actives.

## Création d'une tâche de transformation de modèle à l'aide de la commande Neptune ML `modeltransform`
<a name="machine-learning-api-modeltransform-create-job"></a>

Une commande Neptune ML `modeltransform` permettant de créer une tâche de transformation incrémentielle, sans réentraînement de modèle, ressemble à ceci :

------
#### [ AWS CLI ]

```
aws neptunedata start-ml-model-transform-job \
  --endpoint-url https://your-neptune-endpoint:port \
  --id "(a unique model-transform job ID)" \
  --data-processing-job-id "(the job-id of a completed data-processing job)" \
  --ml-model-training-job-id "(the job-id of a completed model-training job)" \
  --model-transform-output-s3-location "s3://(your S3 bucket)/neptune-model-transform"
```

Pour plus d'informations, consultez [start-ml-model-transform-job](https://docs.aws.amazon.com/cli/latest/reference/neptunedata/start-ml-model-transform-job.html) dans le manuel de référence des AWS CLI commandes.

------
#### [ SDK ]

```
import boto3
from botocore.config import Config

client = boto3.client(
    'neptunedata',
    endpoint_url='https://your-neptune-endpoint:port',
    config=Config(read_timeout=None, retries={'total_max_attempts': 1})
)

response = client.start_ml_model_transform_job(
    id='(a unique model-transform job ID)',
    dataProcessingJobId='(the job-id of a completed data-processing job)',
    mlModelTrainingJobId='(the job-id of a completed model-training job)',
    modelTransformOutputS3Location='s3://(your S3 bucket)/neptune-model-transform'
)

print(response)
```

------
#### [ awscurl ]

```
awscurl https://your-neptune-endpoint:port/ml/modeltransform \
  --region us-east-1 \
  --service neptune-db \
  -X POST \
  -H 'Content-Type: application/json' \
  -d '{
        "id" : "(a unique model-transform job ID)",
        "dataProcessingJobId" : "(the job-id of a completed data-processing job)",
        "mlModelTrainingJobId" : "(the job-id of a completed model-training job)",
        "modelTransformOutputS3Location" : "s3://(your S3 bucket)/neptune-model-transform"
      }'
```

**Note**  
Cet exemple suppose que vos AWS informations d'identification sont configurées dans votre environnement. Remplacez *us-east-1* par la région de votre cluster Neptune.

------
#### [ curl ]

```
curl \
  -X POST https://your-neptune-endpoint:port/ml/modeltransform \
  -H 'Content-Type: application/json' \
  -d '{
        "id" : "(a unique model-transform job ID)",
        "dataProcessingJobId" : "(the job-id of a completed data-processing job)",
        "mlModelTrainingJobId" : "(the job-id of a completed model-training job)",
        "modelTransformOutputS3Location" : "s3://(your S3 bucket)/neptune-model-transform"
      }'
```

------

Voici une `modeltransform` commande Neptune ML permettant de créer une tâche à partir d'une tâche de formation à l' SageMaker IA terminée :

------
#### [ AWS CLI ]

```
aws neptunedata start-ml-model-transform-job \
  --endpoint-url https://your-neptune-endpoint:port \
  --id "(a unique model-transform job ID)" \
  --training-job-name "(name of a completed SageMaker training job)" \
  --model-transform-output-s3-location "s3://(your S3 bucket)/neptune-model-transform"
```

Pour plus d'informations, consultez [start-ml-model-transform-job](https://docs.aws.amazon.com/cli/latest/reference/neptunedata/start-ml-model-transform-job.html) dans le manuel de référence des AWS CLI commandes.

------
#### [ SDK ]

```
import boto3
from botocore.config import Config

client = boto3.client(
    'neptunedata',
    endpoint_url='https://your-neptune-endpoint:port',
    config=Config(read_timeout=None, retries={'total_max_attempts': 1})
)

response = client.start_ml_model_transform_job(
    id='(a unique model-transform job ID)',
    trainingJobName='(name of a completed SageMaker training job)',
    modelTransformOutputS3Location='s3://(your S3 bucket)/neptune-model-transform'
)

print(response)
```

------
#### [ awscurl ]

```
awscurl https://your-neptune-endpoint:port/ml/modeltransform \
  --region us-east-1 \
  --service neptune-db \
  -X POST \
  -H 'Content-Type: application/json' \
  -d '{
        "id" : "(a unique model-transform job ID)",
        "trainingJobName" : "(name of a completed SageMaker training job)",
        "modelTransformOutputS3Location" : "s3://(your S3 bucket)/neptune-model-transform"
      }'
```

**Note**  
Cet exemple suppose que vos AWS informations d'identification sont configurées dans votre environnement. Remplacez *us-east-1* par la région de votre cluster Neptune.

------
#### [ curl ]

```
curl \
  -X POST https://your-neptune-endpoint:port/ml/modeltransform \
  -H 'Content-Type: application/json' \
  -d '{
        "id" : "(a unique model-transform job ID)",
        "trainingJobName" : "(name of a completed SageMaker training job)",
        "modelTransformOutputS3Location" : "s3://(your S3 bucket)/neptune-model-transform"
      }'
```

------

Une commande Neptune ML `modeltransform` permettant de créer une tâche qui utilise une implémentation de modèle personnalisée ressemble à ceci :

------
#### [ AWS CLI ]

```
aws neptunedata start-ml-model-transform-job \
  --endpoint-url https://your-neptune-endpoint:port \
  --id "(a unique model-transform job ID)" \
  --training-job-name "(name of a completed SageMaker training job)" \
  --model-transform-output-s3-location "s3://(your Amazon S3 bucket)/neptune-model-transform/" \
  --custom-model-transform-parameters '{
    "sourceS3DirectoryPath": "s3://(your Amazon S3 bucket)/(path to your Python module)",
    "transformEntryPointScript": "(your transform script entry-point name in the Python module)"
  }'
```

Pour plus d'informations, consultez [start-ml-model-transform-job](https://docs.aws.amazon.com/cli/latest/reference/neptunedata/start-ml-model-transform-job.html) dans le manuel de référence des AWS CLI commandes.

------
#### [ SDK ]

```
import boto3
from botocore.config import Config

client = boto3.client(
    'neptunedata',
    endpoint_url='https://your-neptune-endpoint:port',
    config=Config(read_timeout=None, retries={'total_max_attempts': 1})
)

response = client.start_ml_model_transform_job(
    id='(a unique model-transform job ID)',
    trainingJobName='(name of a completed SageMaker training job)',
    modelTransformOutputS3Location='s3://(your Amazon S3 bucket)/neptune-model-transform/',
    customModelTransformParameters={
        'sourceS3DirectoryPath': 's3://(your Amazon S3 bucket)/(path to your Python module)',
        'transformEntryPointScript': '(your transform script entry-point name in the Python module)'
    }
)

print(response)
```

------
#### [ awscurl ]

```
awscurl https://your-neptune-endpoint:port/ml/modeltransform \
  --region us-east-1 \
  --service neptune-db \
  -X POST \
  -H 'Content-Type: application/json' \
  -d '{
        "id" : "(a unique model-transform job ID)",
        "trainingJobName" : "(name of a completed SageMaker training job)",
        "modelTransformOutputS3Location" : "s3://(your Amazon S3 bucket)/neptune-model-transform/",
        "customModelTransformParameters" : {
          "sourceS3DirectoryPath": "s3://(your Amazon S3 bucket)/(path to your Python module)",
          "transformEntryPointScript": "(your transform script entry-point name in the Python module)"
        }
      }'
```

**Note**  
Cet exemple suppose que vos AWS informations d'identification sont configurées dans votre environnement. Remplacez *us-east-1* par la région de votre cluster Neptune.

------
#### [ curl ]

```
curl \
  -X POST https://your-neptune-endpoint:port/ml/modeltransform \
  -H 'Content-Type: application/json' \
  -d '{
        "id" : "(a unique model-transform job ID)",
        "trainingJobName" : "(name of a completed SageMaker training job)",
        "modelTransformOutputS3Location" : "s3://(your Amazon S3 bucket)/neptune-model-transform/",
        "customModelTransformParameters" : {
          "sourceS3DirectoryPath": "s3://(your Amazon S3 bucket)/(path to your Python module)",
          "transformEntryPointScript": "(your transform script entry-point name in the Python module)"
        }
      }'
```

------

**Paramètres de création d'une tâche `modeltransform`**
+ **`id`** : (*facultatif*) identifiant unique de la nouvelle tâche.

  *Type* : string. *Valeur par défaut* : un UUID généré automatiquement.
+ **`dataProcessingJobId`**   –   ID de tâche d'une tâche de traitement de données terminée.

  *Type* : string.

  *Remarque* : Vous devez inclure `dataProcessingJobId` et `mlModelTrainingJobId`, ou `trainingJobName`.
+ **`mlModelTrainingJobId`**   –   ID de tâche d'une tâche d'entraînement de modèle terminée.

  *Type* : string.

  *Remarque* : Vous devez inclure `dataProcessingJobId` et `mlModelTrainingJobId`, ou `trainingJobName`.
+ **`trainingJobName`**— Le nom d'un poste de formation en SageMaker IA terminé.

  *Type* : string.

  *Remarque* : Vous devez inclure à la fois les paramètres `dataProcessingJobId` et `mlModelTrainingJobId`, ou le paramètre `trainingJobName`.
+ **`sagemakerIamRoleArn`**— (*Facultatif*) L'ARN d'un rôle IAM pour l'exécution de l' SageMaker IA.

  *Type* : string. *Remarque* : Il doit être répertorié dans le groupe de paramètres de votre cluster de bases de données, sinon une erreur se produira.
+ **`neptuneIamRoleArn`**— (*Facultatif*) L'ARN d'un rôle IAM qui permet à Neptune d'accéder SageMaker aux ressources AI et Amazon S3.

  *Type* : string. *Remarque* : Il doit être répertorié dans le groupe de paramètres de votre cluster de bases de données, sinon une erreur se produira.
+ **`customModelTransformParameters `** : (*facultatif*) informations de configuration d'une transformation de modèle à l'aide d'un modèle personnalisé. L'objet `customModelTransformParameters` contient les champs suivants, dont les valeurs doivent être compatibles avec les paramètres de modèle enregistrés lors de la tâche d'entraînement :
  + **`sourceS3DirectoryPath`** : (*obligatoire*) chemin de l'emplacement Amazon S3 où se trouve le module Python implémentant votre modèle. Il doit pointer vers un emplacement Amazon S3 existant valide contenant, au minimum, un script d'entraînement, un script de transformation et un fichier `model-hpo-configuration.json`.
  + **`transformEntryPointScript`** : (*facultatif*) nom du point d'entrée dans le module d'un script qui doit être exécuté une fois que le modèle le plus approprié issu de la recherche par hyperparamètres a été identifié, afin de calculer les artefacts de modèle nécessaires au déploiement du modèle. Il devrait pouvoir s'exécuter sans arguments de ligne de commande.

    *Par défaut* : `transform.py`.
+ **`baseProcessingInstanceType`** : (*facultatif*) type d'instance ML utilisé pour préparer et gérer l'entraînement de modèles ML.

  *Type* : string. *Remarque* : Il s'agit d'une instance de CPU choisie en fonction des besoins en mémoire pour le traitement des données et du modèle de transformation. Consultez [Sélection d'une instance pour l'entraînement de modèle et la transformation de modèle](machine-learning-on-graphs-instance-selection.md#machine-learning-on-graphs-training-transform-instance-size).
+ **`baseProcessingInstanceVolumeSizeInGB`** : (*facultatif*) taille du volume de disque de l'instance d'entraînement. Les données d'entrée et le modèle de sortie étant toutes stockées sur disque, la taille du volume doit être suffisante pour contenir les deux jeux de données.

  *Type* : entier. *Par défaut* : `0`.

  *Remarque* : Si elle n'est pas spécifiée ou si elle est égale à 0, Neptune ML sélectionne une taille de volume de disque en fonction de la recommandation générée lors de l'étape de traitement de données. Consultez [Sélection d'une instance pour l'entraînement de modèle et la transformation de modèle](machine-learning-on-graphs-instance-selection.md#machine-learning-on-graphs-training-transform-instance-size).
+ **`subnets`**— (*Facultatif*) Les IDs sous-réseaux du VPC Neptune.

  *Type* : liste de chaînes. *Valeur par défaut* : *aucune*.
+ **`securityGroupIds`**— (*Facultatif*) Le groupe de sécurité VPC. IDs

  *Type* : liste de chaînes. *Valeur par défaut* : *aucune*.
+ **`volumeEncryptionKMSKey`**— (*Facultatif*) La clé AWS Key Management Service (AWS KMS) utilisée par SageMaker AI pour chiffrer les données sur le volume de stockage attaché aux instances de calcul ML qui exécutent la tâche de transformation.

  *Type* : string. *Valeur par défaut* : *aucune*.
+ **`enableInterContainerTrafficEncryption`** : (*facultatif*) activez ou désactivez le chiffrement du trafic entre conteneurs dans les tâches d'entraînement ou de réglage des hyperparamètres.

  *Type* : booléen. *Valeur par défaut* : *True*.
**Note**  
Le paramètre `enableInterContainerTrafficEncryption` est disponible uniquement dans la [version 1.2.0.2.R3 du moteur](engine-releases-1.2.0.2.R3.md).
+ **`s3OutputEncryptionKMSKey`**— (*Facultatif*) La clé AWS Key Management Service (AWS KMS) utilisée par l' SageMaker IA pour chiffrer le résultat de la tâche de traitement.

  *Type* : string. *Valeur par défaut* : *aucune*.

## Obtention du statut d'une tâche de transformation de modèle à l'aide de la commande Neptune ML `modeltransform`
<a name="machine-learning-api-modeltransform-get-job-status"></a>

Voici un exemple de commande Neptune ML `modeltransform` pour obtenir le statut d'une tâche :

------
#### [ AWS CLI ]

```
aws neptunedata get-ml-model-transform-job \
  --endpoint-url https://your-neptune-endpoint:port \
  --id "(the job ID)"
```

Pour plus d'informations, consultez [get-ml-model-transform-job](https://docs.aws.amazon.com/cli/latest/reference/neptunedata/get-ml-model-transform-job.html) dans le manuel de référence des AWS CLI commandes.

------
#### [ SDK ]

```
import boto3
from botocore.config import Config

client = boto3.client(
    'neptunedata',
    endpoint_url='https://your-neptune-endpoint:port',
    config=Config(read_timeout=None, retries={'total_max_attempts': 1})
)

response = client.get_ml_model_transform_job(
    id='(the job ID)'
)

print(response)
```

------
#### [ awscurl ]

```
awscurl https://your-neptune-endpoint:port/ml/modeltransform/(the job ID) \
  --region us-east-1 \
  --service neptune-db \
  -X GET
```

**Note**  
Cet exemple suppose que vos AWS informations d'identification sont configurées dans votre environnement. Remplacez *us-east-1* par la région de votre cluster Neptune.

------
#### [ curl ]

```
curl -s \
  "https://your-neptune-endpoint:port/ml/modeltransform/(the job ID)" \
  | python -m json.tool
```

------

**Paramètres d'obtention du statut de la tâche `modeltransform`**
+ **`id`** : (*obligatoire*) identifiant unique de la tâche de transformation de modèle.

  *Type* : string.
+ **`neptuneIamRoleArn`**— (*Facultatif*) L'ARN d'un rôle IAM qui permet à Neptune d'accéder SageMaker aux ressources AI et Amazon S3.

  *Type* : string. *Remarque* : Il doit être répertorié dans le groupe de paramètres de votre cluster de bases de données, sinon une erreur se produira.

## Arrêt d'une tâche de transformation de modèle à l'aide de la commande Neptune ML `modeltransform`
<a name="machine-learning-api-modeltransform-stop-job"></a>

Voici un exemple de commande Neptune ML `modeltransform` permettant d'arrêter une tâche :

------
#### [ AWS CLI ]

```
aws neptunedata cancel-ml-model-transform-job \
  --endpoint-url https://your-neptune-endpoint:port \
  --id "(the job ID)"
```

Pour également nettoyer les artefacts Amazon S3 :

```
aws neptunedata cancel-ml-model-transform-job \
  --endpoint-url https://your-neptune-endpoint:port \
  --id "(the job ID)" \
  --clean
```

Pour plus d'informations, consultez [cancel-ml-model-transform-job](https://docs.aws.amazon.com/cli/latest/reference/neptunedata/cancel-ml-model-transform-job.html) dans le manuel de référence des AWS CLI commandes.

------
#### [ SDK ]

```
import boto3
from botocore.config import Config

client = boto3.client(
    'neptunedata',
    endpoint_url='https://your-neptune-endpoint:port',
    config=Config(read_timeout=None, retries={'total_max_attempts': 1})
)

response = client.cancel_ml_model_transform_job(
    id='(the job ID)',
    clean=True
)

print(response)
```

------
#### [ awscurl ]

```
awscurl https://your-neptune-endpoint:port/ml/modeltransform/(the job ID) \
  --region us-east-1 \
  --service neptune-db \
  -X DELETE
```

Pour également nettoyer les artefacts Amazon S3 :

```
awscurl "https://your-neptune-endpoint:port/ml/modeltransform/(the job ID)?clean=true" \
  --region us-east-1 \
  --service neptune-db \
  -X DELETE
```

**Note**  
Cet exemple suppose que vos AWS informations d'identification sont configurées dans votre environnement. Remplacez *us-east-1* par la région de votre cluster Neptune.

------
#### [ curl ]

```
curl -s \
  -X DELETE "https://your-neptune-endpoint:port/ml/modeltransform/(the job ID)"
```

Ou encore :

```
curl -s \
  -X DELETE "https://your-neptune-endpoint:port/ml/modeltransform/(the job ID)?clean=true"
```

------

**Paramètres d'arrêt de la tâche `modeltransform`**
+ **`id`** : (*obligatoire*) identifiant unique de la tâche de transformation de modèle.

  *Type* : string.
+ **`neptuneIamRoleArn`**— (*Facultatif*) L'ARN d'un rôle IAM qui permet à Neptune d'accéder SageMaker aux ressources AI et Amazon S3.

  *Type* : string. *Remarque* : Il doit être répertorié dans le groupe de paramètres de votre cluster de bases de données, sinon une erreur se produira.
+ **`clean`** : (*facultatif*) cet indicateur spécifie que tous les artefacts Amazon S3 doivent être supprimés lorsque la tâche est arrêtée.

  *Type* : booléen. *Par défaut* : `FALSE`.

## Répertorier les tâches de transformation de modèle actives à l'aide de la commande Neptune ML `modeltransform`
<a name="machine-learning-api-modeltransform-list-jobs"></a>

Voici un exemple de commande Neptune ML `modeltransform` permettant de répertorier les tâches actives :

------
#### [ AWS CLI ]

```
aws neptunedata list-ml-model-transform-jobs \
  --endpoint-url https://your-neptune-endpoint:port
```

Pour limiter le nombre de résultats :

```
aws neptunedata list-ml-model-transform-jobs \
  --endpoint-url https://your-neptune-endpoint:port \
  --max-items 3
```

Pour plus d'informations, consultez [list-ml-model-transform-jobs](https://docs.aws.amazon.com/cli/latest/reference/neptunedata/list-ml-model-transform-jobs.html) dans le manuel de référence des AWS CLI commandes.

------
#### [ SDK ]

```
import boto3
from botocore.config import Config

client = boto3.client(
    'neptunedata',
    endpoint_url='https://your-neptune-endpoint:port',
    config=Config(read_timeout=None, retries={'total_max_attempts': 1})
)

response = client.list_ml_model_transform_jobs(
    maxItems=3
)

print(response)
```

------
#### [ awscurl ]

```
awscurl https://your-neptune-endpoint:port/ml/modeltransform \
  --region us-east-1 \
  --service neptune-db \
  -X GET
```

Pour limiter le nombre de résultats :

```
awscurl "https://your-neptune-endpoint:port/ml/modeltransform?maxItems=3" \
  --region us-east-1 \
  --service neptune-db \
  -X GET
```

**Note**  
Cet exemple suppose que vos AWS informations d'identification sont configurées dans votre environnement. Remplacez *us-east-1* par la région de votre cluster Neptune.

------
#### [ curl ]

```
curl -s "https://your-neptune-endpoint:port/ml/modeltransform" | python -m json.tool
```

Ou encore :

```
curl -s "https://your-neptune-endpoint:port/ml/modeltransform?maxItems=3" | python -m json.tool
```

------

**Paramètres pour répertorier les tâches `modeltransform`**
+ **`maxItems`** : (*facultatif*) nombre maximal d'éléments à renvoyer.

  *Type* : entier. *Par défaut* : `10`. *Valeur maximale autorisée* : `1024`.
+ **`neptuneIamRoleArn`**— (*Facultatif*) L'ARN d'un rôle IAM qui permet à Neptune d'accéder SageMaker aux ressources AI et Amazon S3.

  *Type* : string. *Remarque* : Il doit être répertorié dans le groupe de paramètres de votre cluster de bases de données, sinon une erreur se produira.