Ordre de Précédence des Variables d’Environnement dans NeMo RL
Ordre de Précédence des Variables d’Environnement dans NeMo RL
Il existe plusieurs façons de transmettre des variables d’environnement aux workers Ray dans NeMo RL. Ce document explique chacune des méthodes et pourquoi elles sont utiles.
Ordre de Précédence
1. Variables d’Environnement du Runtime Ray (le plus bas)
- Définies via les décorateurs
ray.remote(runtime_env={'env_vars': {...}}). - Appliquées à toutes les instances de classes de workers spécifiques. Elles définissent les variables d’environnement par défaut pour la classe si elles ne sont pas remplacées par une méthode de plus haute priorité.
- Exemple :
@ray.remote(runtime_env=get_runtime_env_for_policy_worker("megatron_policy_worker")). Voir ici oùget_runtime_env_for_policy_workersera appliqué à toutes les instances deMegatronPolicyWorker.
2. Variables d’Environnement au Niveau Système (moyen)
- Définies via
exportdans le shell ouos.environen Python. - Utiles pour contrôler les variables d’environnement à un niveau élevé. Si elles ne sont pas remplacées par des méthodes de plus haute priorité, tous les workers hériteront de ces variables d’environnement.
- Exemple :
export HF_TOKEN=<votre_token>
3. env_vars de Configuration YAML (élevé)
- Définies dans les fichiers de configuration YAML sous
policy.megatron_cfg.env_varsoupolicy.dtensor_cfg.env_vars. - Utiles pour contrôler les variables d’environnement au niveau d’une expérience.
- Exemple :
4. Méthode configure_worker Spécifique au Worker (le plus élevé)
- Définies via la méthode statique
configure_workerdans les classes de workers. - Appliquées à des instances de workers spécifiques en fonction de la configuration.
- Voir un exemple dans
VllmGenerationWorkerici.