Vue d'ensemble
Ray 1.6, publie le 2 aout 2021, introduit les environnements d'execution et un moteur de workflows pour orchestrer des taches distribuees.
Fonctionnalites principales
Environnements d'execution
Les RuntimeEnv permettent de specifier les dependances Python, les variables d'environnement et les fichiers necessaires pour chaque tache ou acteur Ray, sans configuration prealable du cluster.
python
import ray
# Environnement d'execution avec dependances
runtime_env = {
'pip': ['scikit-learn==1.0', 'pandas==1.3'],
'env_vars': {'MODE': 'production'},
}
ray.init(runtime_env=runtime_env)
@ray.remote
def entrainer_modele(donnees):
from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier(n_estimators=100)
# clf.fit(donnees)
return 'Modele entraine'
resultat = ray.get(entrainer_modele.remote([1, 2, 3]))
print(resultat)
Moteur de workflows
Ray Workflows permet de definir des pipelines de taches durables avec reprise automatique en cas d'echec, persistance de l'etat et execution conditionnelle.
python
from ray import workflow
@ray.remote
def extraire(source):
return {'donnees': [1, 2, 3], 'source': source}
@ray.remote
def transformer(donnees_brutes):
return [x * 2 for x in donnees_brutes['donnees']]
@ray.remote
def charger(donnees):
return f'{len(donnees)} elements charges'
# Pipeline ETL durable
# etl = charger.bind(transformer.bind(extraire.bind('api')))
# resultat = workflow.run(etl, workflow_id='etl_001')
