Evalml: рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдЯрд╛рдЗрдордЖрдЙрдЯ (рдбрд╕реНрдХ рдЕрд╕реНрдерд┐рд░рддрд╛)

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рдЬреВрди 2021  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: alteryx/evalml

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдо рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг 6 рдШрдВрдЯреЗ рдХреА GH рдХреНрд░рд┐рдпрд╛рдПрдБ рд╕реАрдорд╛ рддрдХ рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред

3.8 рдХреЛрд░ рдбрд┐рдкреНрд╕ 6 рдШрдВрдЯреЗ рдХрд╛ рд╕рдордп рд╕рдорд╛рдкреНрдд (рдкреНрд░рдЧрддрд┐ рдореЗрдВ)
build_conda_pkg, 3.8 рдХреЛрд░ рдбрд┐рдкреНрд╕, 3.7 рдиреЙрди-рдХреЛрд░ рдбрд┐рдкреНрд╕ 6 рдШрдВрдЯрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ (рдкреНрд░рдЧрддрд┐ рдореЗрдВ)
3.7 рдиреЙрди-рдХреЛрд░ рдбрд┐рдкреНрд╕ 6 рдШрдВрдЯрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ
рей.рео рдиреЙрди-рдХреЛрд░ рдбрд┐рдкреНрд╕ рем рдШрдВрдЯрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ
3.7 рдиреЙрди-рдХреЛрд░ рдбрд┐рдкреНрд╕ 1.5 рдШрдВрдЯреЗ
рдмрд┐рд▓реНрдб_рдХреЛрдВрдбрд╛_рдкреАрдХреЗрдЬреА
3.7 рдиреЙрди-рдХреЛрд░ рдбрд┐рдкреНрд╕
3.8

blocker bug testing

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЕрдм рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдЯреИрдХрдЯреНрд░реЗрд╕ рдХреЛ build_conda_pkg . рдореЗрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ

[gw3] linux -- Python 3.7.10 $PREFIX/bin/python

X_y_binary_cls = (          0         1         2   ...        17        18        19
0  -0.039268  0.131912 -0.211206  ...  1.976989  ...ns], 0     0
1     0
2     1
3     1
4     1
     ..
95    1
96    1
97    1
98    1
99    0
Length: 100, dtype: int64)
cluster = LocalCluster(15c4b3ad, 'tcp://127.0.0.1:45201', workers=0, threads=0, memory=0 B)

    def test_submit_training_jobs_multiple(X_y_binary_cls, cluster):
        """Test that training multiple pipelines using the parallel engine produces the
        same results as the sequential engine."""
        X, y = X_y_binary_cls
        with Client(cluster) as client:
            pipelines = [
                BinaryClassificationPipeline(
                    component_graph=["Logistic Regression Classifier"],
                    parameters={"Logistic Regression Classifier": {"n_jobs": 1}},
                ),
                BinaryClassificationPipeline(component_graph=["Baseline Classifier"]),
                BinaryClassificationPipeline(component_graph=["SVM Classifier"]),
            ]

            def fit_pipelines(pipelines, engine):
                futures = []
                for pipeline in pipelines:
                    futures.append(
                        engine.submit_training_job(
                            X=X, y=y, automl_config=automl_data, pipeline=pipeline
                        )
                    )
                results = [f.get_result() for f in futures]
                return results

            # Verify all pipelines are trained and fitted.
            seq_pipelines = fit_pipelines(pipelines, SequentialEngine())
            for pipeline in seq_pipelines:
                assert pipeline._is_fitted

            # Verify all pipelines are trained and fitted.
>           par_pipelines = fit_pipelines(pipelines, DaskEngine(client=client))

evalml/tests/automl_tests/dask_tests/test_dask_engine.py:103: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
evalml/tests/automl_tests/dask_tests/test_dask_engine.py:94: in fit_pipelines
    results = [f.get_result() for f in futures]
evalml/tests/automl_tests/dask_tests/test_dask_engine.py:94: in <listcomp>
    results = [f.get_result() for f in futures]
evalml/automl/engine/dask_engine.py:30: in get_result
    return self.work.result()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Future: cancelled, key: train_pipeline-4bd4a99325cd3cc91144f86b64d6503c>
timeout = None

    def result(self, timeout=None):
        """Wait until computation completes, gather result to local process.

        If *timeout* seconds are elapsed before returning, a
        ``dask.distributed.TimeoutError`` is raised.
        """
        if self.client.asynchronous:
            return self.client.sync(self._result, callback_timeout=timeout)

        # shorten error traceback
        result = self.client.sync(self._result, callback_timeout=timeout, raiseit=False)
        if self.status == "error":
            typ, exc, tb = result
            raise exc.with_traceback(tb)
        elif self.status == "cancelled":
>           raise result
E           concurrent.futures._base.CancelledError: train_pipeline-4bd4a99325cd3cc91144f86b64d6503c

рдпрд╣ рджрд╛рд╕ https://github.com/dask/distributed/issues/4612 рдореЗрдВ рдПрдХ рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ

рд╕рднреА 11 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдмрд╕ рдЗрд╕ рей.рео рдХреЛрд░ рдбреАрдкреАрдПрд╕ рд╕реЗ рдХреБрдЫ рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдХрд░ рдЪреЗрдХ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛

github_unittests.txt

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмрд╛рдд рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦреА рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рд╕рднреА 91-93% рдкреВрд░реЗ рд╣реЛрдиреЗ рдХреЗ рдирд┐рд╢рд╛рди рдХреЗ рдЖрд╕рдкрд╛рд╕ рд░реБрдХ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рдореВрд▓реНрдп рд╣реИ рдХрд┐ рд╡реЗ рдХреМрди рд╕реЗ рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рдПрдХ рдорд╛рд░реНрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдВ 3.9 рдЧреИрд░-рдХреЛрд░ рдбрд┐рдкреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╣реИред

github_unittests_2.txt

@chukarsten . рджрд╛рдЦрд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

рд╢реБрдХреНрд░ рд╣реИ рдХрд┐ рд╣рдо рдХреЛрдВрдбрд╛ рдХреЛ рдПрдХ рдХрд╛рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЦрд╛рд░рд┐рдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рд╕рд╛рдорд╛рдиреНрдп рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ рди рдХрд┐ рдХреЗрд╡рд▓ build_conda_pkg

рдХреНрдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдПрдХрддреНрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╣рдореЗрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХреЗ? рдиреАрдЪреЗ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░

  • рд╣рдо рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рдХрд┐рддрдиреА рдордЬрд╝рдмреВрддреА рд╕реЗ рд░рд┐рдкреНрд░реЛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдпрд╣ 50% рд╕рдордп рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЬрдм рд╣рдо рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдЬреЙрдм рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдЕрдзрд┐рдХ, рдХрдо?
  • рдХреМрди рд╕рд╛ рдкрд░реАрдХреНрд╖рдг рдпрд╛ рдкрд░реАрдХреНрд╖рдг рдареАрдХ рд╕реЗ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ? рдпрджрд┐ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдФрд░ рдЕрдВрдд рдХреЛ рд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдЯреЗрд╕реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд▓реЙрдЧ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣реИрдВрдЧ рд╣реЛрдиреЗ рдкрд░ рдХреМрди рд╕рд╛ рдкрд░реАрдХреНрд╖рдг рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рдпрд╣ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд▓рдЧ рд░рд╣рд╛ рдерд╛ред
  • рдХреНрдпрд╛ рд╣рдо рдЕрднреА рднреА рдЗрди рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдпрджрд┐ рд╣рдо рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкрд╛рдЗрд╕реНрдЯреЗрд╕реНрдЯ рд╕рдорд╛рдирд╛рдВрддрд░ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВ?
  • рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдХреВрдмрдбрд╝ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдбрд╕реНрдХ рдЗрдВрдЬрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджреЗрддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЙрдирдХреЗ рд╕рд╛рде рдХреБрдЫ рдЧреБрдЪреНрдЫреЗ рджреЗрдЦреЗ рд╣реИрдВ #2341
  • рдЬрдм рдкрд░реАрдХреНрд╖рдг рдЪрд▓ рд░рд╣реЗ рд╣реЛрдВ рддреЛ CPU рдФрд░ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ?

( @freddyaboulton рдореИрдВрдиреЗ рдЖрдкрдХреЛ рдпрд╣рд╛рдВ рдЬреЛрдбрд╝рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ #2298 рдФрд░ #1815 рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ)

рдкрд╛рдЗрд╕реНрдЯреЗрд╕реНрдЯ рдХреЗ рд╕рд╛рде рд╡рд░реНрдмреЛрдЬрд╝ рд▓реЙрдЧрд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдХрдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЙрдЧ рдорд┐рд▓рддреЗ рд╣реИрдВ
. рдпрд╣ рдЕрдВрддрд┐рдо рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдкрд░реАрдХреНрд╖рдг рдХреЛ "evalml/tuners/random_search_tuner.py::evalml.tuners.random_search_tuner.RandomSearchTuner" рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ

рдЯрд╛рдЗрдордЖрдЙрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рдХрдо рд╕реЗ рдХрдо рддреАрди рдмрд╛рд░ test_dask_sends_woodwork_schema рдкрд░ рдПрдХ рд╣реА рдЯрд╛рдЗрдордЖрдЙрдЯ рджреЗрдЦрд╛ рд╣реИ:

  1. https://github.com/alteryx/evalml/pull/2374/checks?check_run_id=2804775673
  2. https://github.com/alteryx/evalml/pull/2374/checks?check_run_id=2804202831#step :9:92
  3. https://github.com/alteryx/evalml/runs/2804668851?check_suite_focus=true

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @freddyaboulton рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ рдХреБрдЫ рд╣реИ рдФрд░ рд╣рдо рдЗрд╕ рдкреАрдЖрд░ рдХреЛ рдбрд╕реНрдХ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдирдХреЗ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рд╡рд┐рд▓рдп рдХреЛ рд░реЛрдХрдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред рдпрд╣ рдкреАрдЖрд░ test_automl_immediate_quit рдкрд░ рд╡рд┐рдлрд▓ рд░рд╣рд╛, рдЬреЛ рдЕрднреА рднреА dask рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рд╢реНрд░реЗрдгреА рдореЗрдВ рд╣реИред

рдбрд╕реНрдХ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рдореВрд▓ рдХрд╛рд░рдг рдХреЛ рджреЗрдЦрдирд╛ рд╣реИрд░рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рд▓реЙрдЧ рдЗрд╕рдореЗрдВ рд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ:

distributed.worker - WARNING - Could not find data: {'Series-32a3ef2ca4739b46a6acc2ac58638b32': ['tcp://127.0.0.1:45587']} on workers: [] (who_has: {'Series-32a3ef2ca4739b46a6acc2ac58638b32': ['tcp://127.0.0.1:45587']})
distributed.scheduler - WARNING - Communication failed during replication: {'status': 'missing-data', 'keys'

рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИ рдРрд╕рд╛? рд╡реИрд╕реЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрд┐рд╕ рдбреЗрдЯрд╛ рдкрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ, рд╡рд╣ рдЙрд╕ рдбреЗрдЯрд╛ рдХрд╛ рд╕рдВрджрд░реНрдн рдЦреЛ рд░рд╣рд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд 'рд╢реНрд░рдорд┐рдХ: []' рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╢рд╛рдпрдж рдирд╛рдиреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рдорд╛рд░ рд░рд╣реА рд╣реИред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдмрд┐рдЦрд░рд╛ рд╣реБрдЖ рд╣реИ, рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рднреА рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЫрджреНрдо рд╕рдорд╛рдирд╛рдВрддрд░/рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдПрдХ рд╕рд╛рде рдЪрд▓ рд░рд╣реЗ рдЗрди рдЪрд╛рд░ рдиреМрдХрд░рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╡рд░ рдХреЗ рддрд╣рдд рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдпрд╣ рдбрд╕реНрдХ рд╡рд┐рддрд░рд┐рдд рд╕рдорд╕реНрдпрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓реА рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреА рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд╣рдо рдЕрдиреБрдХреВрд▓реА рд╕рдореВрд╣реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдирд┐рдпрдорд┐рдд рд╕реНрдерд╛рдиреАрдп, рд╕реНрдерд┐рд░ рдХреНрд▓рд╕реНрдЯрд░, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рдмрд┐рдЦрд░рдиреЗ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреА рд╣реИ, рдЬрд╣рд╛рдВ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рд╕рдорд╛рди рдХрдиреЗрдХреНрд╢рди рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣реА рд╣реИрдВред

рдбрд╕реНрдХ рдЬреЙрдм рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП #2376 рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдФрд░ DaskEngine рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП broadcast=False рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдореЗрд░реЗ рдкрд╛рд╕ test_automl_immediate_quit рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░рддрджрд╛рд░ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рджрд╕реНрддрд╛рд╡реЗрдЬред

рдЕрдм рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдЯреИрдХрдЯреНрд░реЗрд╕ рдХреЛ build_conda_pkg . рдореЗрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ

[gw3] linux -- Python 3.7.10 $PREFIX/bin/python

X_y_binary_cls = (          0         1         2   ...        17        18        19
0  -0.039268  0.131912 -0.211206  ...  1.976989  ...ns], 0     0
1     0
2     1
3     1
4     1
     ..
95    1
96    1
97    1
98    1
99    0
Length: 100, dtype: int64)
cluster = LocalCluster(15c4b3ad, 'tcp://127.0.0.1:45201', workers=0, threads=0, memory=0 B)

    def test_submit_training_jobs_multiple(X_y_binary_cls, cluster):
        """Test that training multiple pipelines using the parallel engine produces the
        same results as the sequential engine."""
        X, y = X_y_binary_cls
        with Client(cluster) as client:
            pipelines = [
                BinaryClassificationPipeline(
                    component_graph=["Logistic Regression Classifier"],
                    parameters={"Logistic Regression Classifier": {"n_jobs": 1}},
                ),
                BinaryClassificationPipeline(component_graph=["Baseline Classifier"]),
                BinaryClassificationPipeline(component_graph=["SVM Classifier"]),
            ]

            def fit_pipelines(pipelines, engine):
                futures = []
                for pipeline in pipelines:
                    futures.append(
                        engine.submit_training_job(
                            X=X, y=y, automl_config=automl_data, pipeline=pipeline
                        )
                    )
                results = [f.get_result() for f in futures]
                return results

            # Verify all pipelines are trained and fitted.
            seq_pipelines = fit_pipelines(pipelines, SequentialEngine())
            for pipeline in seq_pipelines:
                assert pipeline._is_fitted

            # Verify all pipelines are trained and fitted.
>           par_pipelines = fit_pipelines(pipelines, DaskEngine(client=client))

evalml/tests/automl_tests/dask_tests/test_dask_engine.py:103: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
evalml/tests/automl_tests/dask_tests/test_dask_engine.py:94: in fit_pipelines
    results = [f.get_result() for f in futures]
evalml/tests/automl_tests/dask_tests/test_dask_engine.py:94: in <listcomp>
    results = [f.get_result() for f in futures]
evalml/automl/engine/dask_engine.py:30: in get_result
    return self.work.result()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Future: cancelled, key: train_pipeline-4bd4a99325cd3cc91144f86b64d6503c>
timeout = None

    def result(self, timeout=None):
        """Wait until computation completes, gather result to local process.

        If *timeout* seconds are elapsed before returning, a
        ``dask.distributed.TimeoutError`` is raised.
        """
        if self.client.asynchronous:
            return self.client.sync(self._result, callback_timeout=timeout)

        # shorten error traceback
        result = self.client.sync(self._result, callback_timeout=timeout, raiseit=False)
        if self.status == "error":
            typ, exc, tb = result
            raise exc.with_traceback(tb)
        elif self.status == "cancelled":
>           raise result
E           concurrent.futures._base.CancelledError: train_pipeline-4bd4a99325cd3cc91144f86b64d6503c

рдпрд╣ рджрд╛рд╕ https://github.com/dask/distributed/issues/4612 рдореЗрдВ рдПрдХ рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ

рдореЗрд░реА рдкреБрд░рд╛рдиреА рдкреЛрд╕реНрдЯ рд╣рдЯрд╛ рджреА рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдПрдХ рд▓рд╛рд▓ рд╣реИ: https://github.com/alteryx/evalml/actions/runs/939673304 , рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдКрдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡рд╣реА рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ @freddyaboulton рд╣реИред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЕрдм [рдЗрд╕ рдкреАрдЖрд░] рдХреЗ рд▓рд┐рдП рдбрд╕реНрдХ рдЬреЙрдмреНрд╕ (https://github.com/alteryx/evalml/pull/2376) рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд▓реЙрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдкреАрдЖрд░ рдлреНрд▓реЗрдХреНрд╕ рдореЗрдВ рдХрдЯреМрддреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреИрд╕реНрдХ рдЬреЙрдмреНрд╕ рдХреЛ рд░рд┐рдлреИрдХреНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдФрд░ рдпрд╣ рдкреАрдЖрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбрд╕реНрдХ рдЬреЙрдмреНрд╕ рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд▓реЙрдХ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдФрд░ рдпрд╣ рдкреАрдЖрд░ рдкреИрдереЛрд▓реЙрдЬрд┐рдХрд▓ рдбрд╕реНрдХ рдЯреЗрд╕реНрдЯ рдХреЛ 6 рдШрдВрдЯреЗ рд▓рдЧрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрддрдГ рдЬреАрдПрдЪ рдХреНрд░рд┐рдпрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд░рджреНрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред

рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ dask рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЯрд╛рдЗрдордЖрдЙрдЯ рдЕрдм рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░рдг рдЕрднреА рднреА рдЕрдЬреНрдЮрд╛рдд рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

dsherry picture dsherry  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bchen1116 picture bchen1116  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

angela97lin picture angela97lin  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

chukarsten picture chukarsten  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

freddyaboulton picture freddyaboulton  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ