Есть ли способ заставить компонент выполняться последним?

Мой текущий конвейер запускает процесс обучения для нескольких пользователей в операции ParallelFor, например:

      def pipeline(run_id):
    setup_step = create_setup_step(run_id)
    
    with dsl.ParallelFor(setup_step.outputs['users']) as user:
        preprocess = create_preprocess_step(run_id, user.user_id)
        train = create_training_step(run_id, 
                                     user.user_id, 
                                     preprocess.outputs['user_data'])

    summary = create_summary_step(run_id)  # this is the component that needs to execute last

Моя цель — добавить шаг «суммирования», который выполняется после завершения работы всех вышеперечисленных компонентов. Этот компонент будет составлять отчет по всем пользователям, поэтому его не должно быть внутри

Результаты каждого компонента регистрируются в базе данных, поэтому компонент сводки получает свои данные, запрашивая базу данных, а не пытаясь «развернуть» оператор ParallelFor.

Я попытался указать запуск после шага поезда, как в но это раскручивает одно резюме на ветвь .

Я добился некоторого успеха, вручную запустив компонент сводки после завершения запуска, как в , но это ограничивает меня от компиляции и загрузки пайплайна в EKS, что является конечной целью.

0 ответов

Другие вопросы по тегам