PAI-DLC permet de créer rapidement des tâches d'entraînement sur nœud unique ou distribuées. Kubernetes provisionne automatiquement les nœuds de calcul en arrière-plan, évitant ainsi l'achat manuel de machines ou la configuration d'environnements d'exécution. Le service prend en charge TensorFlow, PyTorch et d'autres frameworks populaires de deep learning, tout en offrant des options flexibles de configuration des ressources.
Démarrage rapide
Prenant l'exemple de la reconnaissance de chiffres manuscrits MNIST, ce guide détaille l'entraînement sur un seul nœud avec un seul GPU ainsi que l'entraînement distribué multi-nœuds et multi-GPU avec DLC. Pour plus d'informations, consultez Premiers pas avec Deep Learning Containers (DLC).
Référence des paramètres de la console
Informations de base
Paramètre | Description |
Job Name | Définissez un nom facilement identifiable pour la tâche. |
Tag | Appliquez des tags standardisés à vos tâches. Les tags constituent la base pour archiver les tâches par libellé, analyser leur répartition et suivre la consommation des ressources. Les contraintes suivantes s'appliquent :
Pour obtenir des conseils sur le balisage standardisé, reportez-vous à Standardiser le balisage pour DLC, DSW et EAS. |
Task Description | Utilisez ce champ pour décrire l'objectif, le contexte ou toute autre information pertinente concernant la tâche. |
Informations sur l'environnement
Paramètre | Description |
Image Configuration | Outre l'Alibaba Cloud Image, les types d'images suivants sont pris en charge :
|
Mount dataset | Les jeux de données fournissent les fichiers nécessaires à l'entraînement du modèle. Deux types de jeux de données sont pris en charge :
Mount Path : Chemin où le jeu de données est monté dans le conteneur DLC, par exemple Important Si vous utilisez un jeu de données CPFS, configurez pour DLC un VPC correspondant au VPC du CPFS. Sinon, la tâche soumise risque de rester bloquée longtemps à l'état Preparing environment. |
Mount storage | Vous pouvez également monter directement des chemins de source de données pour lire les données requises ou stocker des fichiers intermédiaires et de résultats.
Pour plus d'informations, consultez Utiliser le stockage cloud. |
Startup Command | Définissez la commande de démarrage de la tâche. Les commandes Shell sont prises en charge. DLC injecte automatiquement des variables d'environnement courantes pour PyTorch et TensorFlow telles que
Important Le chemin de montage configuré pour le code (tel que /mnt/data) correspond à l'emplacement de vos fichiers de code dans le conteneur DLC. Votre commande de démarrage doit référencer les fichiers de code en utilisant ce chemin. Par exemple, si le chemin de montage du code est /mnt/data et que votre fichier de code est train.py, la commande de démarrage doit être : python /mnt/data/train.py |
Informations sur les ressources
Paramètre | Description |
Resource Type | La valeur par défaut est General Computing. Les Lingjun Intelligence Resources sont disponibles dans les régions suivantes : Chine (Ulanqab), Singapour, Chine (Shenzhen), Chine (Pékin), Chine (Shanghai), Chine (Hangzhou), Chine (Guangzhou), Chine (Hong Kong), Malaisie, Allemagne et Atlanta. |
Source |
|
Framework | Les frameworks et outils d'entraînement de deep learning suivants sont pris en charge : TensorFlow, PyTorch, ElasticBatch, XGBoost, OneFlow, MPIJob, Ray, Custom, DataJuicer et MPI. Remarque Lorsque le Resource Quota est défini sur les ressources Lingjun, seules les tâches TensorFlow, PyTorch, ElasticBatch, MPIJob et Ray sont prises en charge. |
Job Resource | Selon le Framework sélectionné, configurez les ressources pour les types de nœuds Worker, PS, Chief, Evaluator et GraphLearn. Avec le framework Ray, cliquez sur Add Role pour personnaliser les rôles Worker, permettant ainsi l'exécution mixte de ressources hétérogènes.
|
Scheduling Policy | Personnalisez la stratégie de planification des ressources du conteneur en fonction de vos scénarios métier et des caractéristiques de la tâche :
|
DLC ne prend pas en charge la modification directe du type d'instance d'une tâche soumise. Pour changer le type d'instance (par exemple, pour passer à une instance prenant en charge le réseau haute performance eRDMA, telle que ecs.ebmgn8v.48xlarge), utilisez la fonctionnalité Clone Job pour créer une nouvelle tâche, sélectionnez le type d'instance cible et soumettez-la. La plateforme active automatiquement le réseau haute performance et configure les paramètres liés à NCCL. Pour modifier le pilote NVIDIA et la version CUDA d'une instance, utilisez la fonctionnalité de configuration d'instance pour changer la version du pilote (par exemple, vers la version 580). La plateforme télécharge automatiquement l'image DLC correspondante en fonction de la nouvelle configuration pour mettre à jour l'environnement d'exécution, complétant ainsi le changement de pilote, la mise à niveau CUDA ou le remplacement du pilote GPU.
Configuration VPC
Si aucun VPC n'est configuré, le réseau public et la passerelle publique sont utilisés. Étant donné que la passerelle publique dispose d'une bande passante limitée, les tâches peuvent subir des ralentissements ou ne pas s'exécuter correctement.
-
Configurer un VPC et sélectionner le vSwitch et le groupe de sécurité correspondants améliore la bande passante réseau, la stabilité et la sécurité. Le cluster exécutant vos tâches peut également accéder directement aux services au sein de ce VPC.
ImportantLors de l'utilisation d'un VPC, assurez-vous que les instances du groupe de ressources de la tâche, le stockage des jeux de données (OSS) et le référentiel de code se trouvent tous dans le même VPC et la même région, et que la connectivité réseau est établie.
Lors de l'utilisation d'un jeu de données CPFS, configurez un VPC correspondant au VPC du CPFS. Sinon, la tâche d'entraînement DLC soumise risque de rester bloquée longtemps à l'état Preparing environment.
Lors de la soumission de tâches DLC utilisant des ressources spot Lingjun, configurez un VPC.
De plus, configurez l'Internet Access Gateway. Les deux options suivantes sont prises en charge :
Public Gateway : La bande passante est limitée. En période de forte concurrence ou lors du téléchargement de fichiers volumineux, la vitesse du réseau peut ne pas répondre à la demande.
Private Gateway : Pour contourner la limitation de bande passante de la passerelle publique, créez une passerelle NAT dans le VPC DLC, associez une EIP et configurez des entrées SNAT. Pour plus de détails, consultez Améliorer l'accès Internet avec une passerelle privée.
Tolérance aux pannes et diagnostics
Paramètre | Description |
Automatic Fault Tolerance | Après avoir activé la fonctionnalité Automatic Fault Tolerance et configuré les paramètres pertinents, le système fournit des capacités de surveillance et de contrôle des tâches. Il détecte les erreurs au niveau algorithmique en temps réel et prend des mesures correctives, améliorant ainsi l'utilisation des GPU. Pour plus de détails, consultez AIMaster : Moteur élastique de tolérance aux pannes automatique. Remarque Lorsque la tolérance aux pannes automatique est activée, le système lance une instance AIMaster parallèlement aux instances de la tâche, ce qui consomme des ressources de calcul supplémentaires. Détails de l'utilisation des ressources de l'instance AIMaster :
|
Sanity Check | Après l'activation de la fonctionnalité Sanity Check, le contrôle de santé inspecte minutieusement les ressources impliquées dans l'entraînement, isole automatiquement les nœuds défectueux et déclenche des opérations automatisées en arrière-plan. Cela réduit efficacement la probabilité de problèmes lors des premières étapes de l'entraînement et améliore le taux de réussite. Pour plus de détails, consultez SanityCheck : Contrôles de santé du calcul. Remarque La fonctionnalité de contrôle de santé n'est prise en charge que pour les tâches d'entraînement PyTorch soumises avec des quotas de ressources Lingjun et lorsque le nombre de GPU est supérieur à 0. |
Rôles et permissions
La configuration du rôle RAM d'instance est décrite ci-dessous. Pour plus de détails, consultez Configurer un rôle RAM pour DLC.
Rôle RAM d'instance | Description |
Default Role of PAI | Fonctionne sur la base du rôle de service AliyunPAIDLCDefaultRole, qui n'a accès qu'à MaxCompute et OSS, avec des permissions plus granulaires. Identifiants temporaires délivrés sur la base du rôle par défaut PAI :
|
Custom Role | Sélectionnez ou spécifiez un rôle RAM personnalisé. Lors de l'accès aux services cloud depuis l'instance à l'aide d'identifiants temporaires STS, les permissions sont cohérentes avec celles du rôle personnalisé. |
Does Not Associate Role | Aucun rôle RAM n'est associé à la tâche DLC. Il s'agit de l'option par défaut. |
Documentation connexe
Consultez les informations de base sur la tâche, les vues des ressources et les journaux d'opérations. Pour plus de détails, reportez-vous à Détails de l'entraînement.
Consultez les détails de facturation pour l'exécution de la tâche. Pour plus de détails, reportez-vous à Détails de facturation.
Pour les problèmes courants liés aux tâches DLC et leurs solutions, consultez FAQ sur DLC.
Pour les cas d'utilisation de DLC, consultez Cas d'utilisation DLC.
FAQ
Q : Que faire si j'obtiens une erreur BadRequest concernant la sélection d'une source de données NAS avec une cible de montage lors de la création d'une tâche d'entraînement ?
Cette erreur survient lorsque la source de données NAS ne possède pas de cible de montage. Créez une nouvelle cible de montage dans la console NAS, puis sélectionnez-la comme source de données dans la configuration Mount dataset ou Mount storage lors de la création de la tâche d'entraînement, et resoumettez la tâche.
Q : Les tâches d'entraînement DLC peuvent-elles exporter des métriques vers Weights & Biases (W&B) ?
Oui, DLC prend en charge l'exportation des métriques d'entraînement vers W&B, mais les conditions préalables suivantes doivent être remplies :
Connectivité réseau : Assurez-vous que les nœuds d'entraînement PAI peuvent accéder à l'endpoint public api.wandb.ai. Si vous utilisez un VPC, configurez une passerelle NAT.
Gestion des clés : Injectez la clé API W&B via des variables d'environnement. Ne la codez pas en dur dans votre code.
Conformité : Téléchargez uniquement des métriques scalaires non sensibles. Ne téléchargez pas de données brutes ou de détails sensibles sur le modèle.
Q : Une tâche DLC ayant échoué apparaît-elle toujours dans la liste des tâches ?
Son apparition dépend de la raison de l'échec :
Les tâches qui échouent en raison de ressources insuffisantes apparaissent temporairement dans la liste des tâches de la console DLC et sont supprimées après effacement.
Lorsque l'API renvoie directement une erreur (avec un RequestID) en raison de paramètres de requête invalides, aucun enregistrement n'est conservé dans la liste des tâches. Le message d'erreur s'affiche uniquement sur la page d'opération.
Q : Que faire si je vois un message « protection de sécurité du compte déclenchée » ou « allocation de ressources suspendue » lors de la création d'une tâche DLC ?
Ce message est généralement déclenché par des politiques de contrôle des risques du compte. Utilisez l'outil de diagnostic en libre-service d'Alibaba Cloud (https://smartservice.console.alibabacloud.com/service/self-service-center/search?questionId=27591) pour diagnostiquer pourquoi le paiement ou l'allocation de ressources ne peut pas se poursuivre, et soumettez une demande de recours. Une fois le recours approuvé, vous pourrez réessayer de créer la tâche.
Annexe
Créer une tâche à l'aide du SDK ou de la CLI
Python SDK
Étape 1 : Installer l'outil Alibaba Cloud Credentials
Lorsque vous appelez OpenAPI à l'aide d'un SDK Alibaba Cloud pour gérer des ressources, installez l'outil Credentials pour configurer vos identifiants. Prérequis :
Version Python >= 3,7.
Utilisez les SDK Alibaba Cloud V2.0.
pip install alibabacloud_credentials
Étape 2 : Obtenir l'AccessKey de votre compte
Cet exemple utilise les informations AccessKey (AK) pour configurer les identifiants d'accès. Pour éviter toute fuite d'identifiants, nous vous recommandons de stocker votre AccessKey dans des variables d'environnement. Les noms des variables d'environnement pour l'ID et le secret sont ALIBABA_CLOUD_ACCESS_KEY_ID et ALIBABA_CLOUD_ACCESS_KEY_SECRET.
Pour savoir comment obtenir un AccessKey, consultez Créer un AccessKey.
Pour savoir comment configurer des variables d'environnement, consultez Configurer des variables d'environnement.
Pour d'autres méthodes de configuration des identifiants, consultez Installer l'outil Credentials.
Étape 3 : Installer le SDK Python
-
Installez le SDK de l'espace de travail.
pip install alibabacloud_aiworkspace20210204==3.0.1 -
Installez le SDK DLC.
pip install alibabacloud_pai_dlc20201203==1.4.17
Étape 4 : Soumettre une tâche
Soumettre une tâche en utilisant des ressources publiques
L'exemple de code suivant montre comment créer et soumettre une tâche :
Soumettre une tâche en utilisant un quota de ressources par abonnement
Connectez-vous à la console PAI.
Consultez l'ID de l'espace de travail : Dans le volet de navigation de gauche, cliquez sur Workspace List. Trouvez l'espace de travail cible, cliquez sur l'icône ⓘ à côté de son nom, puis consultez et copiez l'Workspace ID dans le panneau d'informations qui s'affiche.
Consultez l'ID du quota de ressources de votre groupe de ressources dédié. Dans le volet de navigation de gauche, choisissez AI Computing Resources > Resource Quota. Cliquez sur l'onglet General Computing Resources, et obtenez l'ID du quota de la cible dans la colonne Name/ID de la liste des quotas de ressources.
-
Utilisez le code suivant pour créer et soumettre une tâche. Pour la liste des images publiques utilisables, consultez Étape 2 : Préparer une image.
from alibabacloud_pai_dlc20201203.client import Client from alibabacloud_credentials.client import Client as CredClient from alibabacloud_tea_openapi.models import Config from alibabacloud_pai_dlc20201203.models import ( CreateJobRequest, JobSpec, ResourceConfig, GetJobRequest ) # Initialize a Client to access the DLC API. region = 'cn-hangzhou' # The Alibaba Cloud account AccessKey has access permissions to all APIs. It is recommended to use RAM users for API access or daily operations and maintenance. # It is highly recommended not to save AccessKey ID and AccessKey Secret directly in the project code to prevent leak risks, which could threaten the security of all resources under your account. # This example uses the Credentials SDK to read the AccessKey from environment variables by default for identity authentication. cred = CredClient() client = Client( config=Config( credential=cred, region_id=region, endpoint=f'pai-dlc.{region}.aliyuncs.com', ) ) # Declare the resource configuration for the job. For image selection, refer to the public image list in the documentation, or you can pass in your own image address. spec = JobSpec( type='Worker', image=f'registry-vpc.cn-hangzhou.aliyuncs.com/pai-dlc/tensorflow-training:1.15-cpu-py36-ubuntu18.04', pod_count=1, resource_config=ResourceConfig(cpu='1', memory='2Gi') ) # Declare the execution content of the job. req = CreateJobRequest( resource_id='<Replace with your own resource quota ID>', workspace_id='<Replace with your own WorkspaceID>', display_name='sample-dlc-job', job_type='TFJob', job_specs=[spec], user_command='echo "Hello World"', ) # Submit the job. response = client.create_job(req) # Get the job ID. job_id = response.body.job_id # Query the job status. job = client.get_job(job_id, GetJobRequest()).body print('job status:', job.status) # View the command executed by the job. job.user_command
Soumettre une tâche en utilisant des ressources spot
-
SpotDiscountLimit (Remise Spot)
#!/usr/bin/env python3 from alibabacloud_tea_openapi.models import Config from alibabacloud_credentials.client import Client as CredClient from alibabacloud_pai_dlc20201203.client import Client as DLCClient from alibabacloud_pai_dlc20201203.models import CreateJobRequest region_id = '<region-id>' # The region ID where the DLC job is located, for example, cn-hangzhou for China (Hangzhou). cred = CredClient() workspace_id = '12****' # The workspace ID where the DLC job is located. dlc_client = DLCClient( Config(credential=cred, region_id=region_id, endpoint='pai-dlc.{}.aliyuncs.com'.format(region_id), protocol='http')) create_job_resp = dlc_client.create_job(CreateJobRequest().from_map({ 'WorkspaceId': workspace_id, 'DisplayName': 'sample-spot-job', 'JobType': 'PyTorchJob', 'JobSpecs': [ { "Type": "Worker", "Image": "dsw-registry-vpc.<region-id>.cr.aliyuncs.com/pai/pytorch-training:1.12-cpu-py39-ubuntu20.04", "PodCount": 1, "EcsSpec": 'ecs.g7.xlarge', "SpotSpec": { "SpotStrategy": "SpotWithPriceLimit", "SpotDiscountLimit": 0.4, } }, ], 'UserVpc': { "VpcId": "vpc-0jlq8l7qech3m2ta2****", "SwitchId": "vsw-0jlc46eg4k3pivwpz8****", "SecurityGroupId": "sg-0jl4bd9wwh5auei9****", }, "UserCommand": "echo 'Hello World' && ls -R /mnt/data/ && sleep 30 && echo 'DONE'", })) job_id = create_job_resp.body.job_id print(f'jobId is {job_id}') -
SpotPriceLimit (Prix Spot)
#!/usr/bin/env python3 from alibabacloud_tea_openapi.models import Config from alibabacloud_credentials.client import Client as CredClient from alibabacloud_pai_dlc20201203.client import Client as DLCClient from alibabacloud_pai_dlc20201203.models import CreateJobRequest # The region ID where the DLC job is located, for example, cn-hangzhou. region_id = '<region-id>' # Initialize the credentials client to handle authentication. cred = CredClient() # The workspace ID where the DLC job is located. workspace_id = '12****' # Initialize the DLC client with the required configuration. dlc_client = DLCClient( Config(credential=cred, region_id=region_id, endpoint='pai-dlc.{}.aliyuncs.com'.format(region_id), protocol='http')) # Create a DLC job with spot instance configuration (SpotWithPriceLimit). create_job_resp = dlc_client.create_job(CreateJobRequest().from_map({ 'WorkspaceId': workspace_id, 'DisplayName': 'sample-spot-job', 'JobType': 'PyTorchJob', 'JobSpecs': [ { "Type": "Worker", "Image": "dsw-registry-vpc.<region-id>.cr.aliyuncs.com/pai/pytorch-training:1.12-cpu-py39-ubuntu20.04", "PodCount": 1, "EcsSpec": 'ecs.g7.xlarge', "SpotSpec": { "SpotStrategy": "SpotWithPriceLimit", "SpotPriceLimit": 0.011, } }, ], 'UserVpc': { "VpcId": "vpc-0jlq8l7qech3m2ta2****", "SwitchId": "vsw-0jlc46eg4k3pivwpz8****", "SecurityGroupId": "sg-0jl4bd9wwh5auei9****", }, "UserCommand": "echo 'Hello World' && ls -R /mnt/data/ && sleep 30 && echo 'DONE'", })) # Get and print the created job ID. job_id = create_job_resp.body.job_id print(f'jobId is {job_id}')
Les configurations clés sont décrites ci-dessous :
Paramètre | Description |
SpotStrategy | Stratégie d'enchère. Le type d'enchère ne prend effet que lorsque ce paramètre est défini sur SpotWithPriceLimit. |
SpotDiscountLimit | Utilise la remise spot comme méthode d'enchère. Remarque
|
SpotPriceLimit | Utilise le prix spot comme méthode d'enchère. |
UserVpc | Obligatoire lorsque vous soumettez une tâche en utilisant des ressources spot Lingjun. Configurez le VPC, le vSwitch et l'ID du groupe de sécurité de la région où la tâche s'exécute. |
Lorsque vous créez une tâche DLC en appelant une API ou en utilisant un SDK (createJob), vous ne pouvez pas charger directement des fichiers de code locaux. Chargez d'abord votre code dans l'un des emplacements suivants :
Référentiel Git : Créez une configuration de code dans AI Assets Management et liez-la à l'URL du référentiel Git.
Stockage OSS : Après avoir chargé le code dans OSS, rendez-le disponible pour la tâche en le montant comme un jeu de données.
Image personnalisée : Empaquetez le code dans une image Docker.
Ligne de commande
Étape 1 : Télécharger le client et compléter l'authentification utilisateur
Téléchargez l'outil client Linux 64 bits ou Mac selon votre système d'exploitation, et complétez l'authentification utilisateur. Pour plus de détails, consultez Avant de commencer.
Étape 2 : Soumettre une tâche
Connectez-vous à la console PAI.
-
Suivez ces instructions pour afficher votre ID d'espace de travail (WorkspaceID) sur la page de liste des espaces de travail.
Dans le volet de navigation de gauche, cliquez sur Workspace List. Trouvez l'espace de travail cible, cliquez sur l'icône ⓘ à droite de son nom, et consultez l'Workspace ID dans le panneau d'informations qui s'affiche.
-
Suivez ces instructions pour afficher votre ID de quota de ressources.
Dans le volet de navigation de gauche, choisissez AI Computing Resources > Resource Quota. Sélectionnez l'onglet correspondant à votre type de ressource cible (tel que General Computing Resources), et obtenez l'ID du quota de ressources dans la colonne Name/ID de la liste des quotas de ressources.
-
Préparez un fichier de paramètres basé sur le contenu suivant
tfjob.params. Pour plus d'informations sur la configuration du fichier de paramètres, consultez Commandes utilisées pour soumettre des tâches.name=test_cli_tfjob_001 workers=1 worker_cpu=4 worker_gpu=0 worker_memory=4Gi worker_shared_memory=4Gi worker_image=registry-vpc.cn-beijing.aliyuncs.com/pai-dlc/tensorflow-training:1.12.2PAI-cpu-py27-ubuntu16.04 command=echo good && sleep 120 resource_id=<your_resource_quota_id> workspace_id=<your_workspace_id> -
Utilisez l'exemple de code suivant pour transmettre le paramètre params_file. Cela soumet la tâche DLC à l'espace de travail et au quota de ressources spécifiés.
./dlc submit tfjob --job_file ./tfjob.params -
Utilisez la commande suivante pour afficher la tâche DLC que vous avez soumise.
./dlc get job <jobID>
Liste des paramètres avancés
Paramètre (clé) | Types de frameworks pris en charge | Description | Valeur du paramètre |
| TOUS | Configure une politique de libération des ressources personnalisée. Ce paramètre est facultatif. Si vous ne le configurez pas, toutes les ressources Pod sont libérées à la fin de la tâche. Si vous le configurez, la seule valeur prise en charge est pod-exit, qui libère les ressources d'un Pod lorsque celui-ci se termine. | pod-exit |
| TOUS | Spécifie s'il faut activer les trames jumbo. Ce paramètre n'est pris en charge que par AI Computing Resources - General Computing 2.0. La valeur par défaut est false, ce qui signifie désactivé. |
|
| TOUS | Spécifie s'il faut activer IBGDA lorsque le pilote GPU est chargé. |
|
| TOUS | Spécifie s'il faut installer le module noyau GDRCopy. La version actuellement installée est la 2.4.4. |
|
| TOUS | Spécifie s'il faut activer NUMA. |
|
| TOUS | Lorsque vous soumettez une tâche, ce paramètre vérifie si les ressources totales (spécifications de nœud) dans le quota correspondent aux spécifications de tous les rôles de la tâche. |
|
| PyTorch | Spécifie s'il faut autoriser la connectivité réseau entre les workers.
Une fois cette option activée, le nom de domaine de chaque worker correspond au nom du worker, tel que |
|
| PyTorch | Vous permet de définir les ports réseau exposés sur chaque worker. Vous pouvez utiliser ce paramètre conjointement avec Si non configuré, seul le port 23456 est exposé sur le maître par défaut. Assurez-vous de ne pas inclure le port 23456 dans cette liste de ports personnalisés. Important Ce paramètre est mutuellement exclusif avec | Un ensemble de chaînes séparées par des points-virgules, où chaque chaîne est un numéro de port unique ou une plage de ports reliée par un trait d'union, tel que |
| PyTorch | Vous permet de demander un nombre de ports réseau à exposer sur chaque worker. Vous pouvez utiliser ce paramètre conjointement avec Si non configuré, seul le port 23456 est exposé sur le maître par défaut. DLC attribue aléatoirement des ports aux workers en fonction du nombre de ports défini dans le paramètre. Les numéros de port attribués sont transmis au worker via la variable d'environnement Important
| Entier (maximum : 65536) |
| Ray | Lorsque le framework est Ray, vous pouvez configurer manuellement RayRuntimeEnv pour définir l'environnement d'exécution. Important Les variables d'environnement et les configurations de bibliothèques tierces sont remplacées par cette configuration. | Configurer les variables d'environnement et les bibliothèques tierces ( |
| Ray | Adresse Redis GCS externe. | Chaîne |
| Ray | Nom d'utilisateur Redis GCS externe. | Chaîne |
| Ray | Mot de passe Redis GCS externe. | Chaîne |
| Ray | Nombre de tentatives pour le soumetteur. | Entier positif (int) |
| Ray | Configure la mémoire partagée pour un nœud. Par exemple, pour configurer 1 GiB de mémoire partagée pour chaque nœud, utilisez la configuration suivante : | Entier positif (int) |
pour sélectionner une méthode d'enchère :