FLAML 2.3.6__tar.gz → 2.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {FLAML-2.3.6 → flaml-2.4.0}/FLAML.egg-info/PKG-INFO +119 -56
- {FLAML-2.3.6 → flaml-2.4.0}/FLAML.egg-info/requires.txt +36 -61
- {FLAML-2.3.6 → flaml-2.4.0}/PKG-INFO +119 -56
- {FLAML-2.3.6 → flaml-2.4.0}/README.md +9 -45
- flaml-2.4.0/flaml/autogen/__init__.py +12 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/automl.py +31 -7
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/data.py +21 -5
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/ml.py +19 -2
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/model.py +9 -6
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/nlp/huggingface/training_args.py +8 -0
- flaml-2.4.0/flaml/automl/spark/__init__.py +94 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/spark/utils.py +22 -10
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/task/time_series_task.py +1 -1
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/time_series/tcn.py +2 -1
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/time_series/tft.py +37 -6
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/time_series/ts_data.py +10 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/time_series/ts_model.py +30 -3
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/greedy.py +1 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/portfolio.py +1 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/fabric/mlflow.py +39 -21
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/searcher/blendsearch.py +26 -7
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/searcher/suggestion.py +84 -14
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/space.py +1 -1
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/tune.py +12 -4
- flaml-2.4.0/flaml/version.py +1 -0
- {FLAML-2.3.6 → flaml-2.4.0}/pyproject.toml +0 -1
- {FLAML-2.3.6 → flaml-2.4.0}/setup.py +33 -46
- {FLAML-2.3.6 → flaml-2.4.0}/test/test_autovw.py +24 -8
- FLAML-2.3.6/flaml/autogen/__init__.py +0 -3
- FLAML-2.3.6/flaml/automl/spark/__init__.py +0 -34
- FLAML-2.3.6/flaml/version.py +0 -1
- {FLAML-2.3.6 → flaml-2.4.0}/FLAML.egg-info/SOURCES.txt +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/FLAML.egg-info/dependency_links.txt +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/FLAML.egg-info/top_level.txt +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/LICENSE +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/NOTICE.md +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/__init__.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/autogen/agentchat/__init__.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/autogen/agentchat/agent.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/autogen/agentchat/assistant_agent.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/autogen/agentchat/conversable_agent.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/autogen/agentchat/groupchat.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/autogen/agentchat/user_proxy_agent.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/autogen/code_utils.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/autogen/extensions/__init__.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/autogen/math_utils.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/autogen/oai/__init__.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/autogen/oai/completion.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/autogen/oai/openai_utils.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/autogen/retrieve_utils.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/__init__.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/contrib/__init__.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/contrib/histgb.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/logger.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/nlp/__init__.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/nlp/huggingface/__init__.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/nlp/huggingface/data_collator.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/nlp/huggingface/trainer.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/nlp/huggingface/utils.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/nlp/utils.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/spark/metrics.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/state.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/task/__init__.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/task/factory.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/task/generic_task.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/task/task.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/time_series/__init__.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/time_series/feature.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/time_series/sklearn.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/automl/training_log.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/config.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/__init__.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/all/binary.json +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/all/multiclass.json +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/all/regression.json +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/estimator.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/extra_tree/binary.json +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/extra_tree/multiclass.json +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/extra_tree/regression.json +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/lgbm/binary.json +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/lgbm/multiclass.json +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/lgbm/regression.json +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/regret.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/rf/binary.json +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/rf/multiclass.json +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/rf/regression.json +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/suggest.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/xgb_limitdepth/binary.json +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/xgb_limitdepth/multiclass.json +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/xgb_limitdepth/regression.json +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/xgboost/binary.json +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/xgboost/multiclass.json +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/default/xgboost/regression.json +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/fabric/__init__.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/ml.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/onlineml/__init__.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/onlineml/autovw.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/onlineml/trial.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/onlineml/trial_runner.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/__init__.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/analysis.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/logger.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/result.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/sample.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/scheduler/__init__.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/scheduler/online_scheduler.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/scheduler/trial_scheduler.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/searcher/__init__.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/searcher/cfo_cat.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/searcher/flow2.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/searcher/online_searcher.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/searcher/search_thread.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/searcher/variant_generator.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/spark/__init__.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/spark/utils.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/trial.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/trial_runner.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/flaml/tune/utils.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/setup.cfg +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/test/test_conda_distribution.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/test/test_gpu.py +0 -0
- {FLAML-2.3.6 → flaml-2.4.0}/test/test_version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: FLAML
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.4.0
|
|
4
4
|
Summary: A fast library for automated machine learning and tuning
|
|
5
5
|
Home-page: https://github.com/microsoft/FLAML
|
|
6
6
|
Author: Microsoft Corporation
|
|
@@ -8,34 +8,133 @@ Author-email: hpo@microsoft.com
|
|
|
8
8
|
Classifier: License :: OSI Approved :: MIT License
|
|
9
9
|
Classifier: Operating System :: OS Independent
|
|
10
10
|
Classifier: Programming Language :: Python :: 3
|
|
11
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
12
11
|
Classifier: Programming Language :: Python :: 3.10
|
|
13
12
|
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
-
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Requires-Python: >=3.10
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
License-File: NOTICE.md
|
|
18
|
+
Requires-Dist: NumPy>=1.17
|
|
16
19
|
Provides-Extra: automl
|
|
20
|
+
Requires-Dist: lightgbm>=2.3.1; extra == "automl"
|
|
21
|
+
Requires-Dist: xgboost<3.0.0,>=0.90; extra == "automl"
|
|
22
|
+
Requires-Dist: scipy>=1.4.1; extra == "automl"
|
|
23
|
+
Requires-Dist: pandas>=1.1.4; extra == "automl"
|
|
24
|
+
Requires-Dist: scikit-learn>=1.0.0; extra == "automl"
|
|
17
25
|
Provides-Extra: notebook
|
|
26
|
+
Requires-Dist: jupyter; extra == "notebook"
|
|
18
27
|
Provides-Extra: spark
|
|
28
|
+
Requires-Dist: pyspark>=3.2.0; extra == "spark"
|
|
29
|
+
Requires-Dist: joblibspark>=0.5.0; extra == "spark"
|
|
30
|
+
Requires-Dist: joblib<=1.3.2; extra == "spark"
|
|
19
31
|
Provides-Extra: test
|
|
32
|
+
Requires-Dist: numpy<2.0.0,>=1.17; python_version < "3.13" and extra == "test"
|
|
33
|
+
Requires-Dist: numpy>2.0.0; python_version >= "3.13" and extra == "test"
|
|
34
|
+
Requires-Dist: jupyter; python_version < "3.13" and extra == "test"
|
|
35
|
+
Requires-Dist: lightgbm>=2.3.1; extra == "test"
|
|
36
|
+
Requires-Dist: xgboost<2.0.0,>=0.90; python_version < "3.11" and extra == "test"
|
|
37
|
+
Requires-Dist: xgboost>=2.0.0; python_version >= "3.11" and extra == "test"
|
|
38
|
+
Requires-Dist: scipy>=1.4.1; extra == "test"
|
|
39
|
+
Requires-Dist: pandas<2.0.0,>=1.1.4; python_version < "3.10" and extra == "test"
|
|
40
|
+
Requires-Dist: pandas>=1.1.4; python_version >= "3.10" and extra == "test"
|
|
41
|
+
Requires-Dist: scikit-learn>=1.2.0; extra == "test"
|
|
42
|
+
Requires-Dist: thop; extra == "test"
|
|
43
|
+
Requires-Dist: pytest>=6.1.1; extra == "test"
|
|
44
|
+
Requires-Dist: pytest-rerunfailures>=13.0; extra == "test"
|
|
45
|
+
Requires-Dist: coverage>=5.3; extra == "test"
|
|
46
|
+
Requires-Dist: pre-commit; extra == "test"
|
|
47
|
+
Requires-Dist: torch; extra == "test"
|
|
48
|
+
Requires-Dist: torchvision; extra == "test"
|
|
49
|
+
Requires-Dist: catboost>=0.26; python_version < "3.13" and extra == "test"
|
|
50
|
+
Requires-Dist: rgf-python; extra == "test"
|
|
51
|
+
Requires-Dist: optuna<=3.6.1,>=2.8.0; extra == "test"
|
|
52
|
+
Requires-Dist: openml; python_version < "3.13" and extra == "test"
|
|
53
|
+
Requires-Dist: statsmodels>=0.12.2; extra == "test"
|
|
54
|
+
Requires-Dist: psutil; extra == "test"
|
|
55
|
+
Requires-Dist: dataclasses; extra == "test"
|
|
56
|
+
Requires-Dist: transformers[torch]; extra == "test"
|
|
57
|
+
Requires-Dist: datasets; extra == "test"
|
|
58
|
+
Requires-Dist: evaluate; extra == "test"
|
|
59
|
+
Requires-Dist: nltk!=3.8.2; extra == "test"
|
|
60
|
+
Requires-Dist: rouge_score; extra == "test"
|
|
61
|
+
Requires-Dist: hcrystalball; extra == "test"
|
|
62
|
+
Requires-Dist: seqeval; extra == "test"
|
|
63
|
+
Requires-Dist: pytorch-forecasting; python_version < "3.13" and extra == "test"
|
|
64
|
+
Requires-Dist: mlflow-skinny<=2.22.1; extra == "test"
|
|
65
|
+
Requires-Dist: joblibspark>=0.5.0; extra == "test"
|
|
66
|
+
Requires-Dist: joblib<=1.3.2; extra == "test"
|
|
67
|
+
Requires-Dist: nbconvert; extra == "test"
|
|
68
|
+
Requires-Dist: nbformat; extra == "test"
|
|
69
|
+
Requires-Dist: ipykernel; extra == "test"
|
|
70
|
+
Requires-Dist: pytorch-lightning; extra == "test"
|
|
71
|
+
Requires-Dist: tensorboardX; extra == "test"
|
|
72
|
+
Requires-Dist: requests; extra == "test"
|
|
73
|
+
Requires-Dist: packaging; extra == "test"
|
|
74
|
+
Requires-Dist: dill; extra == "test"
|
|
20
75
|
Provides-Extra: catboost
|
|
76
|
+
Requires-Dist: catboost>=0.26; extra == "catboost"
|
|
21
77
|
Provides-Extra: blendsearch
|
|
78
|
+
Requires-Dist: optuna<=3.6.1,>=2.8.0; extra == "blendsearch"
|
|
79
|
+
Requires-Dist: packaging; extra == "blendsearch"
|
|
22
80
|
Provides-Extra: ray
|
|
81
|
+
Requires-Dist: ray[tune]<2.5.0,>=1.13; extra == "ray"
|
|
23
82
|
Provides-Extra: azureml
|
|
83
|
+
Requires-Dist: azureml-mlflow; extra == "azureml"
|
|
24
84
|
Provides-Extra: nni
|
|
85
|
+
Requires-Dist: nni; extra == "nni"
|
|
25
86
|
Provides-Extra: vw
|
|
87
|
+
Requires-Dist: vowpalwabbit<9.0.0,>=8.10.0; extra == "vw"
|
|
88
|
+
Requires-Dist: scikit-learn; extra == "vw"
|
|
26
89
|
Provides-Extra: hf
|
|
90
|
+
Requires-Dist: transformers[torch]==4.26; extra == "hf"
|
|
91
|
+
Requires-Dist: datasets; extra == "hf"
|
|
92
|
+
Requires-Dist: nltk<=3.8.1; extra == "hf"
|
|
93
|
+
Requires-Dist: rouge_score; extra == "hf"
|
|
94
|
+
Requires-Dist: seqeval; extra == "hf"
|
|
27
95
|
Provides-Extra: nlp
|
|
28
|
-
|
|
96
|
+
Requires-Dist: transformers[torch]==4.26; extra == "nlp"
|
|
97
|
+
Requires-Dist: datasets; extra == "nlp"
|
|
98
|
+
Requires-Dist: nltk<=3.8.1; extra == "nlp"
|
|
99
|
+
Requires-Dist: rouge_score; extra == "nlp"
|
|
100
|
+
Requires-Dist: seqeval; extra == "nlp"
|
|
101
|
+
Provides-Extra: ts-forecast
|
|
102
|
+
Requires-Dist: holidays; extra == "ts-forecast"
|
|
103
|
+
Requires-Dist: prophet>=1.1.5; extra == "ts-forecast"
|
|
104
|
+
Requires-Dist: statsmodels>=0.12.2; extra == "ts-forecast"
|
|
105
|
+
Requires-Dist: hcrystalball>=0.1.10; extra == "ts-forecast"
|
|
29
106
|
Provides-Extra: forecast
|
|
107
|
+
Requires-Dist: holidays; extra == "forecast"
|
|
108
|
+
Requires-Dist: prophet>=1.1.5; extra == "forecast"
|
|
109
|
+
Requires-Dist: statsmodels>=0.12.2; extra == "forecast"
|
|
110
|
+
Requires-Dist: hcrystalball>=0.1.10; extra == "forecast"
|
|
111
|
+
Requires-Dist: pytorch-forecasting>=0.10.4; python_version < "3.13" and extra == "forecast"
|
|
112
|
+
Requires-Dist: pytorch-lightning>=1.9.0; extra == "forecast"
|
|
113
|
+
Requires-Dist: tensorboardX>=2.6; extra == "forecast"
|
|
30
114
|
Provides-Extra: benchmark
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
115
|
+
Requires-Dist: catboost>=0.26; extra == "benchmark"
|
|
116
|
+
Requires-Dist: psutil==5.8.0; extra == "benchmark"
|
|
117
|
+
Requires-Dist: xgboost==1.3.3; extra == "benchmark"
|
|
118
|
+
Requires-Dist: pandas==1.1.4; extra == "benchmark"
|
|
35
119
|
Provides-Extra: synapse
|
|
120
|
+
Requires-Dist: joblibspark>=0.5.0; extra == "synapse"
|
|
121
|
+
Requires-Dist: optuna<=3.6.1,>=2.8.0; extra == "synapse"
|
|
122
|
+
Requires-Dist: pyspark>=3.2.0; extra == "synapse"
|
|
36
123
|
Provides-Extra: autozero
|
|
37
|
-
|
|
38
|
-
|
|
124
|
+
Requires-Dist: scikit-learn; extra == "autozero"
|
|
125
|
+
Requires-Dist: pandas; extra == "autozero"
|
|
126
|
+
Requires-Dist: packaging; extra == "autozero"
|
|
127
|
+
Dynamic: author
|
|
128
|
+
Dynamic: author-email
|
|
129
|
+
Dynamic: classifier
|
|
130
|
+
Dynamic: description
|
|
131
|
+
Dynamic: description-content-type
|
|
132
|
+
Dynamic: home-page
|
|
133
|
+
Dynamic: license-file
|
|
134
|
+
Dynamic: provides-extra
|
|
135
|
+
Dynamic: requires-dist
|
|
136
|
+
Dynamic: requires-python
|
|
137
|
+
Dynamic: summary
|
|
39
138
|
|
|
40
139
|
[](https://badge.fury.io/py/FLAML)
|
|
41
140
|

|
|
@@ -53,15 +152,9 @@ License-File: NOTICE.md
|
|
|
53
152
|
<br>
|
|
54
153
|
</p>
|
|
55
154
|
|
|
56
|
-
:fire: FLAML supports AutoML and Hyperparameter Tuning in [Microsoft Fabric Data Science](https://learn.microsoft.com/en-us/fabric/data-science/automated-machine-learning-fabric). In addition, we've introduced Python 3.11 support, along with a range of new estimators, and comprehensive integration with MLflow—thanks to contributions from the Microsoft Fabric product team.
|
|
57
|
-
|
|
58
|
-
:fire: Heads-up: We have migrated [AutoGen](https://microsoft.github.io/autogen/) into a dedicated [github repository](https://github.com/microsoft/autogen). Alongside this move, we have also launched a dedicated [Discord](https://discord.gg/pAbnFJrkgZ) server and a [website](https://microsoft.github.io/autogen/) for comprehensive documentation.
|
|
155
|
+
:fire: FLAML supports AutoML and Hyperparameter Tuning in [Microsoft Fabric Data Science](https://learn.microsoft.com/en-us/fabric/data-science/automated-machine-learning-fabric). In addition, we've introduced Python 3.11 and 3.12 support, along with a range of new estimators, and comprehensive integration with MLflow—thanks to contributions from the Microsoft Fabric product team.
|
|
59
156
|
|
|
60
|
-
:fire:
|
|
61
|
-
|
|
62
|
-
:fire: FLAML is highlighted in OpenAI's [cookbook](https://github.com/openai/openai-cookbook#related-resources-from-around-the-web).
|
|
63
|
-
|
|
64
|
-
:fire: [autogen](https://microsoft.github.io/autogen/) is released with support for ChatGPT and GPT-4, based on [Cost-Effective Hyperparameter Optimization for Large Language Model Generation Inference](https://arxiv.org/abs/2303.04673).
|
|
157
|
+
:fire: Heads-up: [AutoGen](https://microsoft.github.io/autogen/) has moved to a dedicated [GitHub repository](https://github.com/microsoft/autogen). FLAML no longer includes the `autogen` module—please use AutoGen directly.
|
|
65
158
|
|
|
66
159
|
## What is FLAML
|
|
67
160
|
|
|
@@ -69,7 +162,7 @@ FLAML is a lightweight Python library for efficient automation of machine
|
|
|
69
162
|
learning and AI operations. It automates workflow based on large language models, machine learning models, etc.
|
|
70
163
|
and optimizes their performance.
|
|
71
164
|
|
|
72
|
-
- FLAML enables
|
|
165
|
+
- FLAML enables economical automation and tuning for ML/AI workflows, including model selection and hyperparameter optimization under resource constraints.
|
|
73
166
|
- For common machine learning tasks like classification and regression, it quickly finds quality models for user-provided data with low computational resources. It is easy to customize or extend. Users can find their desired customizability from a smooth range.
|
|
74
167
|
- It supports fast and economical automatic tuning (e.g., inference hyperparameters for foundation models, configurations in MLOps/LMOps workflows, pipelines, mathematical/statistical models, algorithms, computing experiments, software configurations), capable of handling large search space with heterogeneous evaluation cost and complex constraints/guidance/early stopping.
|
|
75
168
|
|
|
@@ -85,10 +178,10 @@ FLAML requires **Python version >= 3.9**. It can be installed from pip:
|
|
|
85
178
|
pip install flaml
|
|
86
179
|
```
|
|
87
180
|
|
|
88
|
-
Minimal dependencies are installed without extra options. You can install extra options based on the feature you need. For example, use the following to install the dependencies needed by the [`
|
|
181
|
+
Minimal dependencies are installed without extra options. You can install extra options based on the feature you need. For example, use the following to install the dependencies needed by the [`automl`](https://microsoft.github.io/FLAML/docs/Use-Cases/Task-Oriented-AutoML) module.
|
|
89
182
|
|
|
90
183
|
```bash
|
|
91
|
-
pip install "flaml[
|
|
184
|
+
pip install "flaml[automl]"
|
|
92
185
|
```
|
|
93
186
|
|
|
94
187
|
Find more options in [Installation](https://microsoft.github.io/FLAML/docs/Installation).
|
|
@@ -96,39 +189,6 @@ Each of the [`notebook examples`](https://github.com/microsoft/FLAML/tree/main/n
|
|
|
96
189
|
|
|
97
190
|
## Quickstart
|
|
98
191
|
|
|
99
|
-
- (New) The [autogen](https://microsoft.github.io/autogen/) package enables the next-gen GPT-X applications with a generic multi-agent conversation framework.
|
|
100
|
-
It offers customizable and conversable agents which integrate LLMs, tools and human.
|
|
101
|
-
By automating chat among multiple capable agents, one can easily make them collectively perform tasks autonomously or with human feedback, including tasks that require using tools via code. For example,
|
|
102
|
-
|
|
103
|
-
```python
|
|
104
|
-
from flaml import autogen
|
|
105
|
-
|
|
106
|
-
assistant = autogen.AssistantAgent("assistant")
|
|
107
|
-
user_proxy = autogen.UserProxyAgent("user_proxy")
|
|
108
|
-
user_proxy.initiate_chat(
|
|
109
|
-
assistant,
|
|
110
|
-
message="Show me the YTD gain of 10 largest technology companies as of today.",
|
|
111
|
-
)
|
|
112
|
-
# This initiates an automated chat between the two agents to solve the task
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
Autogen also helps maximize the utility out of the expensive LLMs such as ChatGPT and GPT-4. It offers a drop-in replacement of `openai.Completion` or `openai.ChatCompletion` with powerful functionalites like tuning, caching, templating, filtering. For example, you can optimize generations by LLM with your own tuning data, success metrics and budgets.
|
|
116
|
-
|
|
117
|
-
```python
|
|
118
|
-
# perform tuning
|
|
119
|
-
config, analysis = autogen.Completion.tune(
|
|
120
|
-
data=tune_data,
|
|
121
|
-
metric="success",
|
|
122
|
-
mode="max",
|
|
123
|
-
eval_func=eval_func,
|
|
124
|
-
inference_budget=0.05,
|
|
125
|
-
optimization_budget=3,
|
|
126
|
-
num_samples=-1,
|
|
127
|
-
)
|
|
128
|
-
# perform inference for a test instance
|
|
129
|
-
response = autogen.Completion.create(context=test_instance, **config)
|
|
130
|
-
```
|
|
131
|
-
|
|
132
192
|
- With three lines of code, you can start using this economical and fast
|
|
133
193
|
AutoML engine as a [scikit-learn style estimator](https://microsoft.github.io/FLAML/docs/Use-Cases/Task-Oriented-AutoML).
|
|
134
194
|
|
|
@@ -150,7 +210,10 @@ automl.fit(X_train, y_train, task="classification", estimator_list=["lgbm"])
|
|
|
150
210
|
|
|
151
211
|
```python
|
|
152
212
|
from flaml import tune
|
|
153
|
-
|
|
213
|
+
|
|
214
|
+
tune.run(
|
|
215
|
+
evaluation_function, config={…}, low_cost_partial_config={…}, time_budget_s=3600
|
|
216
|
+
)
|
|
154
217
|
```
|
|
155
218
|
|
|
156
219
|
- [Zero-shot AutoML](https://microsoft.github.io/FLAML/docs/Use-Cases/Zero-Shot-AutoML) allows using the existing training API from lightgbm, xgboost etc. while getting the benefit of AutoML in choosing high-performance hyperparameter configurations per task.
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
NumPy>=1.17
|
|
2
2
|
|
|
3
|
-
[autogen]
|
|
4
|
-
openai==0.27.8
|
|
5
|
-
diskcache
|
|
6
|
-
termcolor
|
|
7
|
-
|
|
8
3
|
[automl]
|
|
9
4
|
lightgbm>=2.3.1
|
|
10
5
|
xgboost<3.0.0,>=0.90
|
|
@@ -31,23 +26,18 @@ optuna<=3.6.1,>=2.8.0
|
|
|
31
26
|
packaging
|
|
32
27
|
|
|
33
28
|
[catboost]
|
|
34
|
-
|
|
35
|
-
[catboost:python_version < "3.11"]
|
|
36
|
-
catboost<1.2,>=0.26
|
|
37
|
-
|
|
38
|
-
[catboost:python_version >= "3.11"]
|
|
39
|
-
catboost<=1.2.5,>=0.26
|
|
29
|
+
catboost>=0.26
|
|
40
30
|
|
|
41
31
|
[forecast]
|
|
42
|
-
holidays
|
|
43
|
-
prophet>=1.
|
|
32
|
+
holidays
|
|
33
|
+
prophet>=1.1.5
|
|
44
34
|
statsmodels>=0.12.2
|
|
45
|
-
hcrystalball
|
|
46
|
-
pytorch-lightning
|
|
47
|
-
tensorboardX
|
|
35
|
+
hcrystalball>=0.1.10
|
|
36
|
+
pytorch-lightning>=1.9.0
|
|
37
|
+
tensorboardX>=2.6
|
|
48
38
|
|
|
49
|
-
[forecast:python_version < "3.
|
|
50
|
-
pytorch-forecasting>=0.
|
|
39
|
+
[forecast:python_version < "3.13"]
|
|
40
|
+
pytorch-forecasting>=0.10.4
|
|
51
41
|
|
|
52
42
|
[hf]
|
|
53
43
|
transformers[torch]==4.26
|
|
@@ -56,14 +46,6 @@ nltk<=3.8.1
|
|
|
56
46
|
rouge_score
|
|
57
47
|
seqeval
|
|
58
48
|
|
|
59
|
-
[mathchat]
|
|
60
|
-
openai==0.27.8
|
|
61
|
-
diskcache
|
|
62
|
-
termcolor
|
|
63
|
-
sympy
|
|
64
|
-
pydantic==1.10.9
|
|
65
|
-
wolframalpha
|
|
66
|
-
|
|
67
49
|
[nlp]
|
|
68
50
|
transformers[torch]==4.26
|
|
69
51
|
datasets
|
|
@@ -77,20 +59,8 @@ nni
|
|
|
77
59
|
[notebook]
|
|
78
60
|
jupyter
|
|
79
61
|
|
|
80
|
-
[openai]
|
|
81
|
-
openai==0.27.8
|
|
82
|
-
diskcache
|
|
83
|
-
|
|
84
62
|
[ray]
|
|
85
|
-
ray[tune]
|
|
86
|
-
|
|
87
|
-
[retrievechat]
|
|
88
|
-
openai==0.27.8
|
|
89
|
-
diskcache
|
|
90
|
-
termcolor
|
|
91
|
-
chromadb
|
|
92
|
-
tiktoken
|
|
93
|
-
sentence_transformers
|
|
63
|
+
ray[tune]<2.5.0,>=1.13
|
|
94
64
|
|
|
95
65
|
[spark]
|
|
96
66
|
pyspark>=3.2.0
|
|
@@ -103,62 +73,67 @@ optuna<=3.6.1,>=2.8.0
|
|
|
103
73
|
pyspark>=3.2.0
|
|
104
74
|
|
|
105
75
|
[test]
|
|
106
|
-
jupyter
|
|
107
76
|
lightgbm>=2.3.1
|
|
108
|
-
xgboost<2.0.0,>=0.90
|
|
109
77
|
scipy>=1.4.1
|
|
110
|
-
scikit-learn>=1.
|
|
78
|
+
scikit-learn>=1.2.0
|
|
111
79
|
thop
|
|
112
80
|
pytest>=6.1.1
|
|
81
|
+
pytest-rerunfailures>=13.0
|
|
113
82
|
coverage>=5.3
|
|
114
83
|
pre-commit
|
|
115
84
|
torch
|
|
116
85
|
torchvision
|
|
117
86
|
rgf-python
|
|
118
87
|
optuna<=3.6.1,>=2.8.0
|
|
119
|
-
openml
|
|
120
88
|
statsmodels>=0.12.2
|
|
121
|
-
psutil
|
|
89
|
+
psutil
|
|
122
90
|
dataclasses
|
|
123
|
-
transformers[torch]
|
|
124
|
-
datasets
|
|
125
|
-
|
|
91
|
+
transformers[torch]
|
|
92
|
+
datasets
|
|
93
|
+
evaluate
|
|
94
|
+
nltk!=3.8.2
|
|
126
95
|
rouge_score
|
|
127
|
-
hcrystalball
|
|
96
|
+
hcrystalball
|
|
128
97
|
seqeval
|
|
129
|
-
mlflow
|
|
98
|
+
mlflow-skinny<=2.22.1
|
|
130
99
|
joblibspark>=0.5.0
|
|
131
100
|
joblib<=1.3.2
|
|
132
101
|
nbconvert
|
|
133
102
|
nbformat
|
|
134
103
|
ipykernel
|
|
135
|
-
pytorch-lightning
|
|
136
|
-
tensorboardX
|
|
137
|
-
requests
|
|
104
|
+
pytorch-lightning
|
|
105
|
+
tensorboardX
|
|
106
|
+
requests
|
|
138
107
|
packaging
|
|
139
|
-
pydantic==1.10.9
|
|
140
|
-
sympy
|
|
141
|
-
wolframalpha
|
|
142
108
|
dill
|
|
143
109
|
|
|
144
110
|
[test:python_version < "3.10"]
|
|
145
111
|
pandas<2.0.0,>=1.1.4
|
|
146
112
|
|
|
147
113
|
[test:python_version < "3.11"]
|
|
148
|
-
|
|
149
|
-
|
|
114
|
+
xgboost<2.0.0,>=0.90
|
|
115
|
+
|
|
116
|
+
[test:python_version < "3.13"]
|
|
117
|
+
numpy<2.0.0,>=1.17
|
|
118
|
+
jupyter
|
|
119
|
+
catboost>=0.26
|
|
120
|
+
openml
|
|
121
|
+
pytorch-forecasting
|
|
150
122
|
|
|
151
123
|
[test:python_version >= "3.10"]
|
|
152
124
|
pandas>=1.1.4
|
|
153
125
|
|
|
154
126
|
[test:python_version >= "3.11"]
|
|
155
|
-
|
|
127
|
+
xgboost>=2.0.0
|
|
128
|
+
|
|
129
|
+
[test:python_version >= "3.13"]
|
|
130
|
+
numpy>2.0.0
|
|
156
131
|
|
|
157
132
|
[ts_forecast]
|
|
158
|
-
holidays
|
|
159
|
-
prophet>=1.
|
|
133
|
+
holidays
|
|
134
|
+
prophet>=1.1.5
|
|
160
135
|
statsmodels>=0.12.2
|
|
161
|
-
hcrystalball
|
|
136
|
+
hcrystalball>=0.1.10
|
|
162
137
|
|
|
163
138
|
[vw]
|
|
164
139
|
vowpalwabbit<9.0.0,>=8.10.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: FLAML
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.4.0
|
|
4
4
|
Summary: A fast library for automated machine learning and tuning
|
|
5
5
|
Home-page: https://github.com/microsoft/FLAML
|
|
6
6
|
Author: Microsoft Corporation
|
|
@@ -8,34 +8,133 @@ Author-email: hpo@microsoft.com
|
|
|
8
8
|
Classifier: License :: OSI Approved :: MIT License
|
|
9
9
|
Classifier: Operating System :: OS Independent
|
|
10
10
|
Classifier: Programming Language :: Python :: 3
|
|
11
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
12
11
|
Classifier: Programming Language :: Python :: 3.10
|
|
13
12
|
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
-
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Requires-Python: >=3.10
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
License-File: NOTICE.md
|
|
18
|
+
Requires-Dist: NumPy>=1.17
|
|
16
19
|
Provides-Extra: automl
|
|
20
|
+
Requires-Dist: lightgbm>=2.3.1; extra == "automl"
|
|
21
|
+
Requires-Dist: xgboost<3.0.0,>=0.90; extra == "automl"
|
|
22
|
+
Requires-Dist: scipy>=1.4.1; extra == "automl"
|
|
23
|
+
Requires-Dist: pandas>=1.1.4; extra == "automl"
|
|
24
|
+
Requires-Dist: scikit-learn>=1.0.0; extra == "automl"
|
|
17
25
|
Provides-Extra: notebook
|
|
26
|
+
Requires-Dist: jupyter; extra == "notebook"
|
|
18
27
|
Provides-Extra: spark
|
|
28
|
+
Requires-Dist: pyspark>=3.2.0; extra == "spark"
|
|
29
|
+
Requires-Dist: joblibspark>=0.5.0; extra == "spark"
|
|
30
|
+
Requires-Dist: joblib<=1.3.2; extra == "spark"
|
|
19
31
|
Provides-Extra: test
|
|
32
|
+
Requires-Dist: numpy<2.0.0,>=1.17; python_version < "3.13" and extra == "test"
|
|
33
|
+
Requires-Dist: numpy>2.0.0; python_version >= "3.13" and extra == "test"
|
|
34
|
+
Requires-Dist: jupyter; python_version < "3.13" and extra == "test"
|
|
35
|
+
Requires-Dist: lightgbm>=2.3.1; extra == "test"
|
|
36
|
+
Requires-Dist: xgboost<2.0.0,>=0.90; python_version < "3.11" and extra == "test"
|
|
37
|
+
Requires-Dist: xgboost>=2.0.0; python_version >= "3.11" and extra == "test"
|
|
38
|
+
Requires-Dist: scipy>=1.4.1; extra == "test"
|
|
39
|
+
Requires-Dist: pandas<2.0.0,>=1.1.4; python_version < "3.10" and extra == "test"
|
|
40
|
+
Requires-Dist: pandas>=1.1.4; python_version >= "3.10" and extra == "test"
|
|
41
|
+
Requires-Dist: scikit-learn>=1.2.0; extra == "test"
|
|
42
|
+
Requires-Dist: thop; extra == "test"
|
|
43
|
+
Requires-Dist: pytest>=6.1.1; extra == "test"
|
|
44
|
+
Requires-Dist: pytest-rerunfailures>=13.0; extra == "test"
|
|
45
|
+
Requires-Dist: coverage>=5.3; extra == "test"
|
|
46
|
+
Requires-Dist: pre-commit; extra == "test"
|
|
47
|
+
Requires-Dist: torch; extra == "test"
|
|
48
|
+
Requires-Dist: torchvision; extra == "test"
|
|
49
|
+
Requires-Dist: catboost>=0.26; python_version < "3.13" and extra == "test"
|
|
50
|
+
Requires-Dist: rgf-python; extra == "test"
|
|
51
|
+
Requires-Dist: optuna<=3.6.1,>=2.8.0; extra == "test"
|
|
52
|
+
Requires-Dist: openml; python_version < "3.13" and extra == "test"
|
|
53
|
+
Requires-Dist: statsmodels>=0.12.2; extra == "test"
|
|
54
|
+
Requires-Dist: psutil; extra == "test"
|
|
55
|
+
Requires-Dist: dataclasses; extra == "test"
|
|
56
|
+
Requires-Dist: transformers[torch]; extra == "test"
|
|
57
|
+
Requires-Dist: datasets; extra == "test"
|
|
58
|
+
Requires-Dist: evaluate; extra == "test"
|
|
59
|
+
Requires-Dist: nltk!=3.8.2; extra == "test"
|
|
60
|
+
Requires-Dist: rouge_score; extra == "test"
|
|
61
|
+
Requires-Dist: hcrystalball; extra == "test"
|
|
62
|
+
Requires-Dist: seqeval; extra == "test"
|
|
63
|
+
Requires-Dist: pytorch-forecasting; python_version < "3.13" and extra == "test"
|
|
64
|
+
Requires-Dist: mlflow-skinny<=2.22.1; extra == "test"
|
|
65
|
+
Requires-Dist: joblibspark>=0.5.0; extra == "test"
|
|
66
|
+
Requires-Dist: joblib<=1.3.2; extra == "test"
|
|
67
|
+
Requires-Dist: nbconvert; extra == "test"
|
|
68
|
+
Requires-Dist: nbformat; extra == "test"
|
|
69
|
+
Requires-Dist: ipykernel; extra == "test"
|
|
70
|
+
Requires-Dist: pytorch-lightning; extra == "test"
|
|
71
|
+
Requires-Dist: tensorboardX; extra == "test"
|
|
72
|
+
Requires-Dist: requests; extra == "test"
|
|
73
|
+
Requires-Dist: packaging; extra == "test"
|
|
74
|
+
Requires-Dist: dill; extra == "test"
|
|
20
75
|
Provides-Extra: catboost
|
|
76
|
+
Requires-Dist: catboost>=0.26; extra == "catboost"
|
|
21
77
|
Provides-Extra: blendsearch
|
|
78
|
+
Requires-Dist: optuna<=3.6.1,>=2.8.0; extra == "blendsearch"
|
|
79
|
+
Requires-Dist: packaging; extra == "blendsearch"
|
|
22
80
|
Provides-Extra: ray
|
|
81
|
+
Requires-Dist: ray[tune]<2.5.0,>=1.13; extra == "ray"
|
|
23
82
|
Provides-Extra: azureml
|
|
83
|
+
Requires-Dist: azureml-mlflow; extra == "azureml"
|
|
24
84
|
Provides-Extra: nni
|
|
85
|
+
Requires-Dist: nni; extra == "nni"
|
|
25
86
|
Provides-Extra: vw
|
|
87
|
+
Requires-Dist: vowpalwabbit<9.0.0,>=8.10.0; extra == "vw"
|
|
88
|
+
Requires-Dist: scikit-learn; extra == "vw"
|
|
26
89
|
Provides-Extra: hf
|
|
90
|
+
Requires-Dist: transformers[torch]==4.26; extra == "hf"
|
|
91
|
+
Requires-Dist: datasets; extra == "hf"
|
|
92
|
+
Requires-Dist: nltk<=3.8.1; extra == "hf"
|
|
93
|
+
Requires-Dist: rouge_score; extra == "hf"
|
|
94
|
+
Requires-Dist: seqeval; extra == "hf"
|
|
27
95
|
Provides-Extra: nlp
|
|
28
|
-
|
|
96
|
+
Requires-Dist: transformers[torch]==4.26; extra == "nlp"
|
|
97
|
+
Requires-Dist: datasets; extra == "nlp"
|
|
98
|
+
Requires-Dist: nltk<=3.8.1; extra == "nlp"
|
|
99
|
+
Requires-Dist: rouge_score; extra == "nlp"
|
|
100
|
+
Requires-Dist: seqeval; extra == "nlp"
|
|
101
|
+
Provides-Extra: ts-forecast
|
|
102
|
+
Requires-Dist: holidays; extra == "ts-forecast"
|
|
103
|
+
Requires-Dist: prophet>=1.1.5; extra == "ts-forecast"
|
|
104
|
+
Requires-Dist: statsmodels>=0.12.2; extra == "ts-forecast"
|
|
105
|
+
Requires-Dist: hcrystalball>=0.1.10; extra == "ts-forecast"
|
|
29
106
|
Provides-Extra: forecast
|
|
107
|
+
Requires-Dist: holidays; extra == "forecast"
|
|
108
|
+
Requires-Dist: prophet>=1.1.5; extra == "forecast"
|
|
109
|
+
Requires-Dist: statsmodels>=0.12.2; extra == "forecast"
|
|
110
|
+
Requires-Dist: hcrystalball>=0.1.10; extra == "forecast"
|
|
111
|
+
Requires-Dist: pytorch-forecasting>=0.10.4; python_version < "3.13" and extra == "forecast"
|
|
112
|
+
Requires-Dist: pytorch-lightning>=1.9.0; extra == "forecast"
|
|
113
|
+
Requires-Dist: tensorboardX>=2.6; extra == "forecast"
|
|
30
114
|
Provides-Extra: benchmark
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
115
|
+
Requires-Dist: catboost>=0.26; extra == "benchmark"
|
|
116
|
+
Requires-Dist: psutil==5.8.0; extra == "benchmark"
|
|
117
|
+
Requires-Dist: xgboost==1.3.3; extra == "benchmark"
|
|
118
|
+
Requires-Dist: pandas==1.1.4; extra == "benchmark"
|
|
35
119
|
Provides-Extra: synapse
|
|
120
|
+
Requires-Dist: joblibspark>=0.5.0; extra == "synapse"
|
|
121
|
+
Requires-Dist: optuna<=3.6.1,>=2.8.0; extra == "synapse"
|
|
122
|
+
Requires-Dist: pyspark>=3.2.0; extra == "synapse"
|
|
36
123
|
Provides-Extra: autozero
|
|
37
|
-
|
|
38
|
-
|
|
124
|
+
Requires-Dist: scikit-learn; extra == "autozero"
|
|
125
|
+
Requires-Dist: pandas; extra == "autozero"
|
|
126
|
+
Requires-Dist: packaging; extra == "autozero"
|
|
127
|
+
Dynamic: author
|
|
128
|
+
Dynamic: author-email
|
|
129
|
+
Dynamic: classifier
|
|
130
|
+
Dynamic: description
|
|
131
|
+
Dynamic: description-content-type
|
|
132
|
+
Dynamic: home-page
|
|
133
|
+
Dynamic: license-file
|
|
134
|
+
Dynamic: provides-extra
|
|
135
|
+
Dynamic: requires-dist
|
|
136
|
+
Dynamic: requires-python
|
|
137
|
+
Dynamic: summary
|
|
39
138
|
|
|
40
139
|
[](https://badge.fury.io/py/FLAML)
|
|
41
140
|

|
|
@@ -53,15 +152,9 @@ License-File: NOTICE.md
|
|
|
53
152
|
<br>
|
|
54
153
|
</p>
|
|
55
154
|
|
|
56
|
-
:fire: FLAML supports AutoML and Hyperparameter Tuning in [Microsoft Fabric Data Science](https://learn.microsoft.com/en-us/fabric/data-science/automated-machine-learning-fabric). In addition, we've introduced Python 3.11 support, along with a range of new estimators, and comprehensive integration with MLflow—thanks to contributions from the Microsoft Fabric product team.
|
|
57
|
-
|
|
58
|
-
:fire: Heads-up: We have migrated [AutoGen](https://microsoft.github.io/autogen/) into a dedicated [github repository](https://github.com/microsoft/autogen). Alongside this move, we have also launched a dedicated [Discord](https://discord.gg/pAbnFJrkgZ) server and a [website](https://microsoft.github.io/autogen/) for comprehensive documentation.
|
|
155
|
+
:fire: FLAML supports AutoML and Hyperparameter Tuning in [Microsoft Fabric Data Science](https://learn.microsoft.com/en-us/fabric/data-science/automated-machine-learning-fabric). In addition, we've introduced Python 3.11 and 3.12 support, along with a range of new estimators, and comprehensive integration with MLflow—thanks to contributions from the Microsoft Fabric product team.
|
|
59
156
|
|
|
60
|
-
:fire:
|
|
61
|
-
|
|
62
|
-
:fire: FLAML is highlighted in OpenAI's [cookbook](https://github.com/openai/openai-cookbook#related-resources-from-around-the-web).
|
|
63
|
-
|
|
64
|
-
:fire: [autogen](https://microsoft.github.io/autogen/) is released with support for ChatGPT and GPT-4, based on [Cost-Effective Hyperparameter Optimization for Large Language Model Generation Inference](https://arxiv.org/abs/2303.04673).
|
|
157
|
+
:fire: Heads-up: [AutoGen](https://microsoft.github.io/autogen/) has moved to a dedicated [GitHub repository](https://github.com/microsoft/autogen). FLAML no longer includes the `autogen` module—please use AutoGen directly.
|
|
65
158
|
|
|
66
159
|
## What is FLAML
|
|
67
160
|
|
|
@@ -69,7 +162,7 @@ FLAML is a lightweight Python library for efficient automation of machine
|
|
|
69
162
|
learning and AI operations. It automates workflow based on large language models, machine learning models, etc.
|
|
70
163
|
and optimizes their performance.
|
|
71
164
|
|
|
72
|
-
- FLAML enables
|
|
165
|
+
- FLAML enables economical automation and tuning for ML/AI workflows, including model selection and hyperparameter optimization under resource constraints.
|
|
73
166
|
- For common machine learning tasks like classification and regression, it quickly finds quality models for user-provided data with low computational resources. It is easy to customize or extend. Users can find their desired customizability from a smooth range.
|
|
74
167
|
- It supports fast and economical automatic tuning (e.g., inference hyperparameters for foundation models, configurations in MLOps/LMOps workflows, pipelines, mathematical/statistical models, algorithms, computing experiments, software configurations), capable of handling large search space with heterogeneous evaluation cost and complex constraints/guidance/early stopping.
|
|
75
168
|
|
|
@@ -85,10 +178,10 @@ FLAML requires **Python version >= 3.9**. It can be installed from pip:
|
|
|
85
178
|
pip install flaml
|
|
86
179
|
```
|
|
87
180
|
|
|
88
|
-
Minimal dependencies are installed without extra options. You can install extra options based on the feature you need. For example, use the following to install the dependencies needed by the [`
|
|
181
|
+
Minimal dependencies are installed without extra options. You can install extra options based on the feature you need. For example, use the following to install the dependencies needed by the [`automl`](https://microsoft.github.io/FLAML/docs/Use-Cases/Task-Oriented-AutoML) module.
|
|
89
182
|
|
|
90
183
|
```bash
|
|
91
|
-
pip install "flaml[
|
|
184
|
+
pip install "flaml[automl]"
|
|
92
185
|
```
|
|
93
186
|
|
|
94
187
|
Find more options in [Installation](https://microsoft.github.io/FLAML/docs/Installation).
|
|
@@ -96,39 +189,6 @@ Each of the [`notebook examples`](https://github.com/microsoft/FLAML/tree/main/n
|
|
|
96
189
|
|
|
97
190
|
## Quickstart
|
|
98
191
|
|
|
99
|
-
- (New) The [autogen](https://microsoft.github.io/autogen/) package enables the next-gen GPT-X applications with a generic multi-agent conversation framework.
|
|
100
|
-
It offers customizable and conversable agents which integrate LLMs, tools and human.
|
|
101
|
-
By automating chat among multiple capable agents, one can easily make them collectively perform tasks autonomously or with human feedback, including tasks that require using tools via code. For example,
|
|
102
|
-
|
|
103
|
-
```python
|
|
104
|
-
from flaml import autogen
|
|
105
|
-
|
|
106
|
-
assistant = autogen.AssistantAgent("assistant")
|
|
107
|
-
user_proxy = autogen.UserProxyAgent("user_proxy")
|
|
108
|
-
user_proxy.initiate_chat(
|
|
109
|
-
assistant,
|
|
110
|
-
message="Show me the YTD gain of 10 largest technology companies as of today.",
|
|
111
|
-
)
|
|
112
|
-
# This initiates an automated chat between the two agents to solve the task
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
Autogen also helps maximize the utility out of the expensive LLMs such as ChatGPT and GPT-4. It offers a drop-in replacement of `openai.Completion` or `openai.ChatCompletion` with powerful functionalites like tuning, caching, templating, filtering. For example, you can optimize generations by LLM with your own tuning data, success metrics and budgets.
|
|
116
|
-
|
|
117
|
-
```python
|
|
118
|
-
# perform tuning
|
|
119
|
-
config, analysis = autogen.Completion.tune(
|
|
120
|
-
data=tune_data,
|
|
121
|
-
metric="success",
|
|
122
|
-
mode="max",
|
|
123
|
-
eval_func=eval_func,
|
|
124
|
-
inference_budget=0.05,
|
|
125
|
-
optimization_budget=3,
|
|
126
|
-
num_samples=-1,
|
|
127
|
-
)
|
|
128
|
-
# perform inference for a test instance
|
|
129
|
-
response = autogen.Completion.create(context=test_instance, **config)
|
|
130
|
-
```
|
|
131
|
-
|
|
132
192
|
- With three lines of code, you can start using this economical and fast
|
|
133
193
|
AutoML engine as a [scikit-learn style estimator](https://microsoft.github.io/FLAML/docs/Use-Cases/Task-Oriented-AutoML).
|
|
134
194
|
|
|
@@ -150,7 +210,10 @@ automl.fit(X_train, y_train, task="classification", estimator_list=["lgbm"])
|
|
|
150
210
|
|
|
151
211
|
```python
|
|
152
212
|
from flaml import tune
|
|
153
|
-
|
|
213
|
+
|
|
214
|
+
tune.run(
|
|
215
|
+
evaluation_function, config={…}, low_cost_partial_config={…}, time_budget_s=3600
|
|
216
|
+
)
|
|
154
217
|
```
|
|
155
218
|
|
|
156
219
|
- [Zero-shot AutoML](https://microsoft.github.io/FLAML/docs/Use-Cases/Zero-Shot-AutoML) allows using the existing training API from lightgbm, xgboost etc. while getting the benefit of AutoML in choosing high-performance hyperparameter configurations per task.
|