Platform for AI (PAI) met à disposition le framework de deep learning PAI-TensorFlow, qui prend en charge l'entraînement sur nœud unique et distribué. Cette rubrique détaille les paramètres de commande et d'E/S pour l'exécution des tâches PAI-TensorFlow.
Les serveurs accélérés par GPU seront progressivement retirés. Soumettez les tâches TensorFlow uniquement sur des serveurs CPU. Pour entraîner des modèles sur des instances GPU, utilisez Deep Learning Containers (DLC). Consultez la page Soumettre des tâches d'entraînement.
Commandes et paramètres
Exécutez les tâches PAI-TensorFlow via l'une des interfaces suivantes :
Le client MaxCompute
Un nœud SQL dans la console DataWorks
La page Machine Learning Designer dans la console PAI
Les composants TensorFlow dans Machine Learning Designer
Toutes les tâches utilisent la même syntaxe de commande PAI :
pai -name tensorflow1120_ext
-project algo_public
-Dscript= 'oss://<bucket_name>.<oss_host>.aliyuncs.com/*.tar.gz'
-DentryFile='entry_file.py'
-Dbuckets='oss://<bucket_name>.<oss_host>.aliyuncs.com/<path>'
-Dtables='odps://prj_name/tables/table_name'
-Doutputs='odps://prj_name/tables/table_name'
-DcheckpointDir='oss://<bucket_name>.<oss_host>.aliyuncs.com/<path>'
-Dcluster="{\"ps\":{\"count\":1},\"worker\":{\"count\":2,\"gpu\":100}}"
-Darn="acs:ram::******:role/aliyunodpspaidefaultrole"
-DossHost="oss-cn-beijing-internal.aliyuncs.com"
Les paramètres name et project ont des valeurs fixes (tensorflow1120_ext et algo_public) et ne peuvent pas être modifiés.
Le tableau suivant décrit tous les paramètres de commande.
| Paramètre | Description | Exemple | Par défaut | Obligatoire |
|---|---|---|---|---|
script |
Le script d'algorithme TensorFlow pour la tâche. Formats acceptés : file:///path/to/file (chemin local absolu), project_name/resources/resource_name, oss://..aliyuncs.com/.tar.gz ou oss://..aliyuncs.com/*.py. Le script peut être un fichier local, une archive TAR locale (.tar.gz, compressée avec gzip) ou un fichier Python. |
oss://demo-yuze.oss-cn-beijing-internal.aliyuncs.com/deepfm/deepfm.tar.gz |
Aucun | Oui |
entryFile |
Le script d'entrée. Obligatoire lorsque script pointe vers une archive TAR. Si script est un fichier unique, ce paramètre n'est pas nécessaire. |
main.py |
Non requis pour les scripts à fichier unique | Oui |
buckets |
Les buckets OSS d'entrée. Séparez plusieurs buckets par des virgules. Chaque chemin de bucket doit se terminer par une barre oblique (/). |
oss://..aliyuncs.com/ |
Aucun | Non |
tables |
Les tables MaxCompute d'entrée. Séparez plusieurs tables par des virgules. | odps:///tables/ |
Aucun | Non |
outputs |
Les tables MaxCompute de sortie. Séparez plusieurs tables par des virgules. | odps:///tables/ |
Aucun | Non |
gpuRequired |
Le nombre de GPU pour l'entraînement autonome. 100 = 1 GPU, 200 = 2 GPU. Définissez la valeur sur 0 pour utiliser uniquement le CPU. Pour l'entraînement distribué, configurez les GPU via le paramètre cluster à la place. Disponible uniquement pour TensorFlow 1120. |
100 |
Aucun | Non |
checkpointDir |
Le chemin OSS pour stocker les checkpoints TensorFlow. | oss://..aliyuncs.com/ |
Aucun | Non |
cluster |
La configuration de l'entraînement distribué, sous forme de chaîne JSON échappée. Consultez la section Paramètres du cluster pour plus de détails. | {\"ps\":{\"count\":1},\"worker\":{\"count\":2,\"gpu\":100}} |
Aucun | Non |
enableDynamicCluster |
Indique s'il faut activer le basculement pour les nœuds worker individuels. Lorsque la valeur est définie sur true, un nœud worker défaillant redémarre automatiquement afin que la tâche puisse se poursuivre. Valeurs valides : true, false. |
false |
false |
Non |
jobName |
Le nom de l'expérience. Utilisez un nom descriptif (et non test) pour rendre les données historiques consultables et l'analyse des performances pertinente. |
jk_wdl_online_job |
Aucun | Oui |
maxHungTimeBeforeGCInSeconds |
La durée maximale (en secondes) pendant laquelle un GPU peut rester suspendu avant sa récupération automatique. Définissez la valeur sur 0 pour désactiver la récupération automatique. |
3600 |
3600 |
Non |
ossHost |
L'endpoint OSS. Consultez la page Régions et endpoints pour connaître les valeurs valides. | oss-cn-beijing-internal.aliyuncs.com |
Aucun | Non |
Paramètres du cluster
Utilisez le paramètre cluster pour configurer l'entraînement distribué sur les serveurs de paramètres (PS) et les workers. La valeur doit être un objet JSON avec des guillemets échappés. Exemple :
{
"ps": {
"count": 2
},
"worker": {
"count": 4
}
}
L'objet JSON prend en charge deux clés : ps (serveur de paramètres) et worker. Chaque clé accepte les sous-paramètres suivants.
| Paramètre | Description | Par défaut | Obligatoire |
|---|---|---|---|
count |
Le nombre de PS ou de workers. | Aucun | Oui |
gpu |
Le nombre de GPU par PS ou worker. 100 = 1 GPU. Définissez la valeur sur 0 sous worker pour utiliser des clusters CPU sans consommation de GPU. |
0 pour PS ; 100 pour worker |
Non |
cpu |
Le nombre de cœurs CPU par PS ou worker. 100 = 1 cœur CPU. |
600 |
Non |
memory |
La mémoire par PS ou worker, en Mo. 100 = 100 Mo. |
30000 |
Non |
Paramètres d'E/S
Le tableau suivant décrit les paramètres d'E/S pour les tâches PAI-TensorFlow.
| Paramètre | Description |
|---|---|
tables |
Le chemin de la table MaxCompute à partir de laquelle lire les données. |
outputs |
Le chemin de la table MaxCompute vers lequel écrire les données. Séparez plusieurs chemins par des virgules. Formats de chemin : <br>- Table non partitionnée : odps://<prj_name>/tables/<table_name> <br>- Table partitionnée : odps://<proj_name>/tables/<table_name>/<pt_key1=v1> <br>- Table à partitions multiples : odps://<prj_name>/tables/<table_name>/<pt_key1=v1>/<pt_key2=v2> |
buckets |
Le bucket OSS qui stocke les objets à lire par l'algorithme. La lecture depuis OSS nécessite les paramètres role_arn et host. Pour obtenir la valeur role_arn, accédez à la console PAI, accédez à Dependent Services, recherchez OSS dans la section Designer et cliquez sur View authorization. Consultez la page [Accorder les autorisations requises pour utiliser Machine Learning Designer](t1895691.dita#section_o9g_1pf_vnp) pour plus de détails. |
checkpointDir |
Le chemin du bucket OSS vers lequel écrire les données de sortie. |