100 Commits

Author SHA1 Message Date
Mark Harley
44ddf9e104
Refactor into automl subpackage (#809)
* Refactor into automl subpackage

Moved some of the packages into an automl subpackage to tidy before the
task-based refactor. This is in response to discussions with the group
and a comment on the first task-based PR.

Only changes here are moving subpackages and modules into the new
automl, fixing imports to work with this structure and fixing some
dependencies in setup.py.

* Fix doc building post automl subpackage refactor

* Fix broken links in website post automl subpackage refactor

* Fix broken links in website post automl subpackage refactor

* Remove vw from test deps as this is breaking the build

* Move default back to the top-level

I'd moved this to automl as that's where it's used internally, but had
missed that this is actually part of the public interface so makes sense
to live where it was.

* Re-add top level modules with deprecation warnings

flaml.data, flaml.ml and flaml.model are re-added to the top level,
being re-exported from flaml.automl for backwards compatability. Adding
a deprecation warning so that we can have a planned removal later.

* Fix model.py line-endings

* Pin pytorch-lightning to less than 1.8.0

We're seeing strange lightning related bugs from pytorch-forecasting
since the release of lightning 1.8.0. Going to try constraining this to
see if we have a fix.

* Fix the lightning version pin

Was optimistic with setting it in the 1.7.x range, but that isn't
compatible with python 3.6

* Remove lightning version pin

* Revert dependency version changes

* Minor change to retrigger the build

* Fix line endings in ml.py and model.py

Co-authored-by: Qingyun Wu <qingyun.wu@psu.edu>
Co-authored-by: EgorKraevTransferwise <egor.kraev@transferwise.com>
2022-12-06 15:46:08 -05:00
Chi Wang
92b79221b6
make performance test reproducible (#837)
* make performance test reproducible

* fix test error

* Doc update and disable logging

* document random_state and version

* remove hardcoded budget

* fix test error and dependency; close #777

* iloc
2022-12-06 10:13:39 -08:00
Kevin Chen
d213ae8f39
catch TFT logger bugs (#833)
* catch logger bugs

* indentations issues

* fix logger issues

* specify exception

* document reason for exception

* update exceptions

* disable callbacks when `logger=False`

Co-authored-by: Qingyun Wu <qingyun.wu@psu.edu>
2022-12-02 13:56:59 -08:00
Chi Wang
595af7a04f
install editable package in codespace (#826)
* install editable package in codespace

* fix test error in test_forecast

* fix test error in test_space

* openml version

* break tests; pre-commit

* skip on py10+win32

* install mlflow in test

* install mlflow in [test]

* skip test in windows

* import

* handle PermissionError

* skip test in windows

* skip test in windows

* skip test in windows

* skip test in windows

* remove ts_forecast_panel from doc
2022-11-27 14:22:54 -05:00
Nicolas Beltran-Velez
65ad6508ce
Docs (#765)
* Small docstring change for clarity

* Added tentative changes to docs

* Update website/docs/Use-Cases/Task-Oriented-AutoML.md

Co-authored-by: Chi Wang <wang.chi@microsoft.com>

* Update flaml/model.py

Co-authored-by: Chi Wang <wang.chi@microsoft.com>

* Updated model.py to reflect `n_jobs = None` suggestion

* Updated tutorial to reflect `n_jobs=None` suggestion

* Update model.py

Improved string

Co-authored-by: Chi Wang <wang.chi@microsoft.com>
Co-authored-by: Qingyun Wu <qingyun.wu@psu.edu>
2022-11-01 15:14:08 -04:00
Vijaya Lakshmi Venkatraman
0df54ec3f3
Update model.py (#739)
* Update model.py

* Fix review comment
2022-10-01 17:25:53 -07:00
EgorKraevTransferwise
87d9b35d63
Fix SARIMAX seasonal_order parameter (#711) 2022-09-05 19:10:03 -07:00
Chi Wang
dffa802b3e
use_best_model for catboost (#679)
* use_best_model for catboost

* bump version to 1.0.11
2022-08-20 18:38:56 -07:00
Chi Wang
ca9f9054e7
categorical choice can be ordered or unordered (#677)
* categorical choice can be ordered or unordered

* ordered -> order

* move choice into utils

* version comparison

* packaging -> setuptools

* import version

* version_parse

* test order for choice
2022-08-12 13:55:17 -07:00
Kevin Chen
f718d18b5e
time series forecasting with panel datasets (#541)
* time series forecasting with panel datasets
- integrate Temporal Fusion Transformer as a learner based on pytorchforecasting

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update setup.py

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update test_forecast.py

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update setup.py

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update setup.py

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update model.py and test_forecast.py
- remove blank lines

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update model.py to prevent errors

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update automl.py and data.py
- change forecast task name
- update documentation for fit() method

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update test_forecast.py

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update test_forecast.py
- add performance test
- use 'fit_kwargs_by_estimator'

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* add time index function

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update test_forecast.py performance test

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update data.py

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update automl.py

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update data.py to prevent type error

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update setup.py

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update for pytorch forecasting tft on panel datasets

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update automl.py documentations

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* - rename estimator
- add 'gpu_per_trial' for tft estimator

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update test_forecast.py

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* include ts panel forecasting as an example

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update model.py

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update documentations

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update automl_time_series_forecast.ipynb

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update documentations

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* "weights_summary" argument deprecated and removed for pl.Trainer()

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update model.py tft estimator prediction method

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update model.py

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update `fit_kwargs` documentation

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

* update automl.py

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
2022-08-12 08:39:22 -07:00
Xueqing Liu
21fa6c10ec
Fixing the issue that FLAML trial number is significantly smaller than Transformers.hyperparameter_search (#657)
* fix 636

* adding low cost config

* update padding; update tokenization output y type (series -> DF); update low cost init config

* updating todf; updating metric_loss_score
2022-08-03 00:11:29 -04:00
Xueqing Liu
5eb5d43d7f
Fix HPO evaluation bug (#645)
* fix eval automl metric bug on val_loss inconsistency

* updating starting point search space to continuous

* shortening notebok
2022-07-28 23:08:42 -04:00
Zhonghua Zheng
05292c8c74
added "**kwargs" to "predict" (#641)
* added "**kwargs" to "predict" functions
2022-07-26 16:19:37 -04:00
Xueqing Liu
a64956a7c8
updating search space (#633)
* updating search space
2022-07-11 18:20:09 -04:00
Xueqing Liu
8fb1c1a29a
fix NER roberta bug (#632)
* fix NER roberta bug
2022-07-10 23:04:26 -04:00
Chi Wang
e14e909af9
Feature names and importances (#621)
* feature names and importances

* None check

* StackingClassifier has no feature_importances_

* StackingClassifier has no feature_names_in_
2022-07-10 12:25:59 -07:00
Xueqing Liu
214566313c
disable max_len for ner (#629)
* disable max_len for ner
2022-07-10 06:33:02 -04:00
Xueqing Liu
6108493e0b
fix ner bug; refactor post processing of TransformersEstimator prediction (#615)
* fix ner bug; refactor post processing

* fix too many values to unpack

* supporting id/token label for NER
2022-07-05 13:38:21 -04:00
Chi Wang
c45741a67b
support latest xgboost version (#599)
* support latest xgboost version

* Update test_classification.py

* Update 

Exists problems when installing xgb1.6.1 in py3.6

* cleanup

* xgboost version

* remove time_budget_s in test

* remove redundancy

* stop support of python 3.6

Co-authored-by: zsk <shaokunzhang529@gmail.com>
Co-authored-by: Qingyun Wu <qingyun.wu@psu.edu>
2022-06-21 18:59:07 -07:00
Chi Wang
cf1dfd3966
fix resource limit issue (#589) 2022-06-15 13:46:52 -07:00
Chi Wang
0642b6e7bb
init value type match (#575)
* init value type match

* bump version to 1.0.6

* add a note about flaml version in notebook

* add note about mismatched ITER_HP

* catch SSLError when accessing OpenML data

* catch errors in autovw test

Co-authored-by: Qingyun Wu <qingyun.wu@psu.edu>
2022-06-09 08:11:15 -07:00
Chi Wang
49e8f7f028
use zeroshot when no budget is given; custom_hp (#563)
* use zeroshot when no budget is given; custom_hp

* update Getting-Started

* protobuf version

* X_val
2022-05-28 17:22:09 -07:00
Xueqing Liu
2ca9e41e4b
fixing roberta add_prefix_space bug (#546)
* fixing roberta add_prefix_space bug
2022-05-12 10:57:25 -04:00
Xueqing Liu
2a8decdc50
fix the post-processing bug in NER (#534)
* fix conll bug

* update DataCollatorForAuto

* adding label_list comments
2022-05-10 17:22:57 -04:00
Xueqing Liu
ca35fa969f
refactoring TransformersEstimator to support default and custom_hp (#511)
* refactoring TransformersEstimator to support default and custom_hp

* handling starting_points not in search space

* addressing starting point more than max_iter

* fixing upper < lower bug
2022-04-28 14:06:29 -04:00
Jaden Kropp
d03038bfcb
docstr cleanup #523: removed lines 259 to 260 in a1c49ca (#524) 2022-04-27 07:50:38 -07:00
Xueqing Liu
cfed657812
Handling fractional gpu_per_trial for NLP (#513)
* handling fractional gpu_per_trial
2022-04-12 14:46:14 -04:00
Xueqing Liu
72301b8568
fixing a few bugs in nlp (#503)
* fixing bugs in nlp
2022-03-26 14:08:51 -04:00
Xueqing Liu
5f97532986
adding evaluation (#495)
* adding automl.score

* fixing the metric name in train_with_config

* adding pickle after score

* fixing a bug in automl.pickle
2022-03-25 17:00:08 -04:00
Xueqing Liu
af423463c3
fixing bug for ner (#463)
* fixing bug for ner

* removing global var

* adding class for trial counter

* adding notebook

* adding use_ray dict

* updating documentation for nlp
2022-03-20 22:03:02 -04:00
Kevin Chen
f9eda0cc40
update documentation for time series forecasting (#472)
* update automl.py
- documentation update

* update test_forecast.py

* update model.py

* update automl_time_series_forecast.ipynb

* update time series forecast website examples

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
2022-03-08 11:21:18 -08:00
Chi Wang
31ac984c4b
don't init global search with points_to_evaluate unless evaluated_rewards is provided; handle callbacks in fit kwargs (#469) 2022-03-01 18:39:16 -08:00
Chi Wang
df01031cfe
Zero-shot AutoML (#468)
* Prepare for release

Co-authored-by: Moe Kayali <t-moekayali@microsoft.com>

* bug fix

* improve doc and code quality

Co-authored-by: Qingyun Wu
2022-03-01 15:39:09 -08:00
Chi Wang
6960a833ec
Gpu support for xgboost (#442)
* xgboost gpu support

* test xgboost gpu

* test sparse data

* add xgboost test

* remove ray.init to avoid pytest error
2022-01-30 13:02:18 -08:00
Kevin Chen
c75f97b475
Change the upper bound for "lags" hyperparameter for sklearn forecast models (#437)
* update model.py
- change upper bound for "lags" hyperparameter

* update test_forecast.py
- add a test for a large dataset

* update sample.py
- pre-commit changes
2022-01-30 07:30:30 -08:00
Kevin Chen
81f54026c9
Support time series forecasting for discrete target variable (#416)
* support 'ts_forecast_classification' task to forecast discrete values

* update test_forecast.py
- add test for forecasting discrete values

* update test_model.py

* pre-commit changes
2022-01-24 18:39:36 -08:00
Chi Wang
38ad31ea25
remove FLAML sample size from config (#418) 2022-01-22 22:59:44 -08:00
Xueqing Liu
47d2295fb7
Set use_ray to True for logging to databricks (#414)
* fixing use_ray bug
2022-01-18 18:37:35 -08:00
MichaelMarien
1c911da9f8
Sklearn api x (#405)
* changed signature of automl.predict and automl.predict_proba to X

* XGBoostEstimator

* changed signature of Prophet predict to X

* changed signature of ARIMA predict to X

* changed signature of TS_SKLearn_Regressor predict to X
2022-01-16 14:37:56 -08:00
Xueqing Liu
cb9c7b0d16
adding logging of training loss (#406)
* reducing AutoTokenizer load to only once

* fixing early stop bug
2022-01-16 09:07:31 -08:00
Xueqing Liu
dda4ac90a1
moving intermediate_results logging from model.py to huggingface/trainer.py (#403)
* replacing val_loss with automl_metric
2022-01-14 17:26:10 -08:00
Chi Wang
569908fbe6
fix issues in logging, bug in space.py, constraint sign, and improve code coverage (#388)
* console log handler

* version update

* doc

* skippable steps

* notebook update

* constraint sign

* doc for constraints

* bug fix: define-by-run and unflatten_hierarchical

* const

* handle nested space in indexof()

* test grid search

* test suggestion

* model test

* >1 ckpts

* always increase iter count

* log total # iterations

* security patch

* make iter_per_learner consistent
2022-01-14 13:39:09 -08:00
Xueqing Liu
c1b5cb5348
fixing default metric for regression + change verbosity for transformers (#397)
* fixing default metric for regression + change verbosity for transformers

* fixing per_device_train_batch_size

* Update flaml/automl.py for gpu_per_trial
2022-01-13 21:08:51 -08:00
Xueqing Liu
f41f1c2198
Logging multiple checkpoints (#394) 2022-01-12 19:50:39 -08:00
liususan091219
303d40c76c set verbose for transformers 2022-01-11 21:42:27 -08:00
Xueqing Liu
bd66e40296
fixing load best model at the end (#389) 2022-01-11 10:47:53 -08:00
Xueqing Liu
c54c1246c6
fixing auto metric bug (#387) 2022-01-07 16:25:58 -08:00
Kevin Chen
d4273669e6
Time series forecasting with sklearn regressors (#362)
* add sklearn regressors as learners for ts_forecast task

* add direct forecasting strategy
warnings and errors for duplicate rows and missing values

- add preprocess for sklearn time series forecast
 update automl.py
 update test/test_forecast.py

* update model.py and test_forecast.py for cv eval_method

* add "hcrystalball" dependency in setup.py

* update automl.py
- add _validate_ts_data function for abstraction
- include xgb_limitdepth as a learner

* update model.py
- update search space for sklearn ts regressors

* update automl.py and test_forecast.py for numpy array inputs

* add documentations to model.py

* add documentation for removing catboost regressor

* update automl.py
- _validate_ts_data() function

Signed-off-by: Kevin Chen <chenkevin.8787@gmail.com>
2022-01-06 23:12:38 -08:00
Chi Wang
612668e8ed
serialize TransformerEstimator (#381)
* serialize TransformerEstimator

* check has_attr

* custom metric needs trainer

* skip test on mac
2022-01-06 10:28:19 -08:00
Chi Wang
cd9740f022
Fix several issues for nlp tasks (#380)
* num cpu issue #378;
* temp fix for ray issue #379;
* transformers version.
2022-01-05 13:49:12 -08:00