J'ai récemment commencé à utiliser Metaflow pour mes recherches d'hyperparamètres. J'utilise un foreach pour tous mes paramètres comme suit :

from metaflow import FlowSpec, step

@step
def start_hpo(self):
    self.next(self.train_model, foreach='hpo_parameters')

@step
def train_model(self):
    # Trains model...

Cela fonctionne car il démarre l'étape train_model comme prévu, mais malheureusement, il souhaite paralléliser toutes les étapes à la fois. Cela fait que mon gpu/cpu manque de mémoire instantanément, échouant à l'étape.

Existe-t-il un moyen de dire à metaflow d'effectuer ces étapes de manière linéaire / une à la fois ou une autre solution de contournement ?

Merci

1
BBQuercus 4 févr. 2020 à 11:06

1 réponse

Meilleure réponse

@BBQuercus Vous pouvez limiter la parallélisation en utilisant le drapeau --max-workers.

Actuellement, nous n'exécutons pas plus de 16 tâches en parallèle et vous pouvez le remplacer par python myflow.py run --max-workers 32 par exemple.

2
Savin 11 févr. 2020 à 20:08