{"id":701041,"date":"2021-02-06T16:45:33","date_gmt":"2021-02-07T00:45:33","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/?post_type=msr-blog-post&#038;p=701041"},"modified":"2021-08-30T09:24:46","modified_gmt":"2021-08-30T16:24:46","slug":"flaml-a-fast-and-lightweight-automl-library","status":"publish","type":"msr-blog-post","link":"https:\/\/www.microsoft.com\/en-us\/research\/articles\/flaml-a-fast-and-lightweight-automl-library\/","title":{"rendered":"FLAML: A Fast and Lightweight AutoML Library"},"content":{"rendered":"<p><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/aka.ms\/FLAML\"><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">FLAML<\/span><\/span><span class=\"sr-only\"> (opens in new tab)<\/span><\/a><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\"> is a Python package to automatically find accurate machine learning models at low computational cost. <\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">It\u00a0<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">free<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">s data scientists\u00a0<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">from\u00a0<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">worrying about<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">\u00a0hyperparameter<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">\u00a0tuning<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">\u00a0<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">and model selection<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">.<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">\u00a0<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">It<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">\u00a0enables developers to build self-tuning software\u00a0<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">which adjusts itself with new<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">\u00a0training data.<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">\u00a0<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">It is<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">\u00a0<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">fast,\u00a0<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">economical<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">, and\u00a0<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">easy to use<\/span><\/span><span class=\"TextRun SCXW86268641 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW86268641 BCX9\">.<\/span><\/span> <span class=\"EOP SCXW86268641 BCX9\" data-ccp-props=\"{\"201341983\":0,\"335559739\":160,\"335559740\":259}\">\u00a0<\/span><\/p>\n<h3>Problem<\/h3>\n<p><span class=\"TextRun SCXW116300756 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW116300756 BCX9\">More and more\u00a0<\/span><\/span><span class=\"TextRun SCXW116300756 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW116300756 BCX9\">businesses<\/span><\/span><span class=\"TextRun SCXW116300756 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW116300756 BCX9\">\u00a0start building millions of ML-embedded applications. It adds up to a large cost to manually choose the right training algorithm and tune the hyperparameters for every task and every dataset.\u00a0<\/span><\/span><span class=\"TextRun SCXW116300756 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW116300756 BCX9\">M<\/span><\/span><span class=\"TextRun SCXW116300756 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW116300756 BCX9\">assive consumption of computation resources in tuning machine learning models\u00a0<\/span><\/span><span class=\"TextRun SCXW116300756 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW116300756 BCX9\">also\u00a0<\/span><\/span><span class=\"TextRun SCXW116300756 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW116300756 BCX9\">brings a tremendous burden to the environment.\u00a0<\/span><\/span><span class=\"EOP SCXW116300756 BCX9\" data-ccp-props=\"{\"201341983\":0,\"335559739\":160,\"335559740\":259}\">\u00a0<\/span><\/p>\n<h3>Solution<\/h3>\n<p><span class=\"TextRun SCXW57174385 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW57174385 BCX9\">We build an economical\u00a0<\/span><\/span><span class=\"TextRun SCXW57174385 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SpellingErrorV2 SCXW57174385 BCX9\">AutoML<\/span><\/span><span class=\"TextRun SCXW57174385 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW57174385 BCX9\">\u00a0<\/span><\/span><span class=\"TextRun SCXW57174385 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW57174385 BCX9\">system that handles\u00a0<\/span><\/span><span class=\"TextRun SCXW57174385 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW57174385 BCX9\">tuning<\/span><\/span><span class=\"TextRun SCXW57174385 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW57174385 BCX9\">\u00a0tasks robustly and efficiently. FLAML leverages the structure of the search space to choose a search order optimized for both cost and\u00a0<\/span><\/span><span class=\"TextRun SCXW57174385 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW57174385 BCX9\">model\u00a0<\/span><\/span><span class=\"TextRun SCXW57174385 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW57174385 BCX9\">quality<\/span><\/span><span class=\"TextRun SCXW57174385 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW57174385 BCX9\">. Overall, the search tends to gradually move\u00a0<\/span><\/span><span class=\"TextRun SCXW57174385 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW57174385 BCX9\">from cheap trials to expensive trials\u00a0<\/span><\/span><span class=\"TextRun SCXW57174385 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW57174385 BCX9\">while i<\/span><\/span><span class=\"TextRun SCXW57174385 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW57174385 BCX9\">mproving model accuracy<\/span><\/span><span class=\"TextRun SCXW57174385 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW57174385 BCX9\">.<\/span><\/span><\/p>\n\t\t\t<div class=\"ms-grid \">\n\t\t\t<div class=\"ms-row\">\n\t\t\t\t\t<div  class=\"m-col-12-24\" >\n\t\t<div id=\"attachment_723877\" style=\"width: 392px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-723877\" class=\"wp-image-723877\" src=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2021\/02\/opttime_cost.png\" alt=\"\" width=\"382\" height=\"223\" srcset=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2021\/02\/opttime_cost.png 404w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2021\/02\/opttime_cost-300x175.png 300w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2021\/02\/opttime_cost-16x9.png 16w\" sizes=\"auto, (max-width: 382px) 100vw, 382px\" \/><p id=\"caption-attachment-723877\" class=\"wp-caption-text\">Trial cost vs. total time spent in automl. Each marker corresponds to one trial of configuration evaluation. Triangles mark FLAML; circles mark a typical existing AutoML library.<\/p><\/div><p>\t<\/div>\n\t \t<div  class=\"m-col-12-24\" >\n\t\t<\/p><div id=\"attachment_723865\" style=\"width: 392px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-723865\" class=\"wp-image-723865 size-full\" src=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2021\/02\/opttime_loss.png\" alt=\"diagram\" width=\"382\" height=\"223\" srcset=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2021\/02\/opttime_loss.png 382w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2021\/02\/opttime_loss-300x175.png 300w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2021\/02\/opttime_loss-16x9.png 16w\" sizes=\"auto, (max-width: 382px) 100vw, 382px\" \/><p id=\"caption-attachment-723865\" class=\"wp-caption-text\">Model auc regret vs. total time spent in automl. Each marker corresponds to one trial of configuration evaluation. Triangles mark FLAML; circles mark a typical existing AutoML library.<\/p><\/div><p>\t<\/div>\n\t<\/p>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\n<p><span class=\"TextRun SCXW65865978 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW65865978 BCX9\">Our<\/span><\/span><span class=\"TextRun SCXW65865978 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW65865978 BCX9\">\u00a0<\/span><\/span><span class=\"TextRun SCXW65865978 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW65865978 BCX9\">design<\/span><\/span><span class=\"TextRun SCXW65865978 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW65865978 BCX9\">\u00a0<\/span><\/span><span class=\"TextRun SCXW65865978 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW65865978 BCX9\">enables it<\/span><\/span><span class=\"TextRun SCXW65865978 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW65865978 BCX9\">\u00a0robustly\u00a0<\/span><span class=\"NormalTextRun ContextualSpellingAndGrammarErrorV2 SCXW65865978 BCX9\">adapting<\/span><span class=\"NormalTextRun SCXW65865978 BCX9\">\u00a0to an ad-hoc dataset out of the box.<\/span><\/span><span class=\"EOP SCXW65865978 BCX9\" data-ccp-props=\"{\"201341983\":0,\"335559739\":160,\"335559740\":259}\">\u00a0<\/span><\/p>\n<div id=\"attachment_723868\" style=\"width: 2326px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-723868\" class=\"size-full wp-image-723868\" src=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2021\/02\/box_equal.png\" alt=\"chart, box and whisker chart\" width=\"2316\" height=\"417\" srcset=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2021\/02\/box_equal.png 2316w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2021\/02\/box_equal-300x54.png 300w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2021\/02\/box_equal-1024x184.png 1024w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2021\/02\/box_equal-768x138.png 768w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2021\/02\/box_equal-1536x277.png 1536w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2021\/02\/box_equal-2048x369.png 2048w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2021\/02\/box_equal-16x3.png 16w\" sizes=\"auto, (max-width: 2316px) 100vw, 2316px\" \/><p id=\"caption-attachment-723868\" class=\"wp-caption-text\">Box plot of normalized score difference between FLAML and (1) Auto-sklearn, (2) a cloud-based AutoML service, (3) HpBandSter, (4) H2O AutoML, and (5) TPOT when using equal budget, tested on 53 AutoML benchmark datasets including classification and regression tasks of a large variety of scales. Positive means FLAML is better.<\/p><\/div>\n<h3>How to get started<\/h3>\n<p>FLAML <span class=\"TextRun SCXW211881175 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW211881175 BCX9\">can be easily installed by <code>pip\u00a0install\u00a0flaml<\/code><\/span><\/span><span class=\"TextRun SCXW211881175 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW211881175 BCX9\">.<\/span><\/span><\/p>\n<ul>\n<li><span class=\"TextRun SCXW87213019 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW87213019 BCX9\">With three lines of code, you can start using this economical and fast <\/span><\/span><span class=\"TextRun SCXW87213019 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SpellingErrorV2 SCXW87213019 BCX9\">AutoML<\/span><\/span><span class=\"TextRun SCXW87213019 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW87213019 BCX9\">\u00a0engine as a scikit-learn style estimator.<\/span><\/span><span class=\"EOP SCXW87213019 BCX9\" data-ccp-props=\"{\"134233279\":true,\"201341983\":0,\"335559739\":160,\"335559740\":259}\">\u00a0<\/span><\/li>\n<\/ul>\n<p style=\"padding-left: 40px;\"><code><span style=\"color: #800000;\">from<\/span> flaml <span style=\"color: #800000;\">import<\/span> AutoML<\/code><code><br \/>\nautoml = AutoML()<br \/>\nautoml.fit(X_train, y_train, <span style=\"color: #3366ff;\">task<\/span>=\"<span style=\"color: #993300;\">classification<\/span>\")<\/code><\/p>\n<ul>\n<li><span class=\"TextRun SCXW113997697 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW113997697 BCX9\">You can restrict the learners and use FLAML as a fast hyperparameter tuning tool for <\/span><\/span><span class=\"TextRun SCXW113997697 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SpellingErrorV2 SCXW113997697 BCX9\">XGBoost<\/span><\/span><span class=\"TextRun SCXW113997697 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW113997697 BCX9\">,\u00a0<\/span><\/span><span class=\"TextRun SCXW113997697 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SpellingErrorV2 SCXW113997697 BCX9\">LightGBM<\/span><\/span><span class=\"TextRun SCXW113997697 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW113997697 BCX9\">, Random Forest etc. or a custom learner.<\/span><\/span><span class=\"EOP SCXW113997697 BCX9\" data-ccp-props=\"{\"134233279\":true,\"201341983\":0,\"335559739\":160,\"335559740\":259}\">\u00a0<\/span><\/li>\n<\/ul>\n<p style=\"padding-left: 40px;\"><code>automl.fit(X_train, y_train, <span style=\"color: #3366ff;\">task<\/span>=\"<span style=\"color: #993300;\">regression<\/span>\", <span style=\"color: #3366ff;\">estimator_list<\/span>=[\"<span style=\"color: #993300;\">lgbm<\/span>\"])<\/code><\/p>\n<ul>\n<li><span class=\"TextRun SCXW249506941 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW249506941 BCX9\">You can also run generic model tuning beyond the scikit-learn style <code>fit()<\/code>.<\/span><\/span><span class=\"EOP SCXW249506941 BCX9\" data-ccp-props=\"{\"134233279\":true,\"201341983\":0,\"335559739\":160,\"335559740\":259}\">\u00a0<\/span><\/li>\n<\/ul>\n<p style=\"padding-left: 40px;\"><code><span style=\"color: #800000;\">from<\/span> flaml <span style=\"color: #800000;\">import<\/span> tune<br \/>\ntune.run(training_function, <span style=\"color: #3366ff;\">config<\/span>={\"<span style=\"color: #993300;\">learning_rate<\/span>\": tune.loguniform(<span style=\"color: #3366ff;\">lower<\/span>=<span style=\"color: #0000ff;\">1e-5<\/span>, <span style=\"color: #3366ff;\">upper<\/span>=<span style=\"color: #0000ff;\">1.0<\/span>), \"<span style=\"color: #993300;\">num_epochs<\/span>\": tune.loguniform(<span style=\"color: #3366ff;\">lower<\/span>=<span style=\"color: #0000ff;\">1<\/span>, <span style=\"color: #3366ff;\">upper<\/span>=<span style=\"color: #0000ff;\">100<\/span>)}, <span style=\"color: #3366ff;\">init_config<\/span>={\"<span style=\"color: #993300;\">num_epochs<\/span>\": 1}, <span style=\"color: #3366ff;\">time_budget_s<\/span>=<span style=\"color: #0000ff;\">3600<\/span>)<br \/>\n<\/code><\/p>\n<h3>Customer quote<\/h3>\n<blockquote><p><em><span class=\"TextRun BCX9 SCXW264001626\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX9 SCXW264001626\">T<\/span><\/span><span class=\"TextRun BCX9 SCXW264001626\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun BCX9 SCXW264001626\">he package has become an indispensable tool for our GBM model builds. I highly recommend it to all statistical modelers and data scientists<\/span><\/span>.\u00a0<\/em><\/p>\n<p style=\"text-align: right;\">\u2014 Bingyi Yang, VP. Decisions Science at Global Lending Services LLC.<\/p>\n<\/blockquote>\n<p><span class=\"TextRun SCXW238235391 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW238235391 BCX9\">To learn more about FLAML, please check out\u202f\u00a0<\/span><\/span><span class=\"TextRun SCXW238235391 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW238235391 BCX9\">our\u00a0<\/span><\/span><a class=\"Hyperlink SCXW238235391 BCX9\" href=\"https:\/\/github.com\/microsoft\/FLAML\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun SCXW238235391 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW238235391 BCX9\">GitHub repo<\/span><\/span><\/a><span class=\"TextRun SCXW238235391 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW238235391 BCX9\">\u00a0and<\/span><\/span><span class=\"TextRun SCXW238235391 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW238235391 BCX9\">\u00a0<\/span><\/span><span class=\"TextRun SCXW238235391 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW238235391 BCX9\">the\u00a0<\/span><\/span><a class=\"Hyperlink SCXW238235391 BCX9\" href=\"https:\/\/github.com\/microsoft\/FLAML\/tree\/main\/notebook\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW238235391 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW238235391 BCX9\" data-ccp-charstyle=\"Hyperlink\">n<\/span><\/span><span class=\"TextRun Underlined SCXW238235391 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW238235391 BCX9\" data-ccp-charstyle=\"Hyperlink\">otebook<\/span><\/span><\/a><span class=\"TextRun SCXW238235391 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW238235391 BCX9\">\u00a0example<\/span><\/span><span class=\"TextRun SCXW238235391 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW238235391 BCX9\">s<\/span><\/span><span class=\"TextRun SCXW238235391 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW238235391 BCX9\">.\u00a0<\/span><\/span><span class=\"TextRun SCXW238235391 BCX9\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW238235391 BCX9\">We look forward to hearing your feedback, questions, and stories, and welcome all contributions.<\/span><\/span><span class=\"EOP SCXW238235391 BCX9\" data-ccp-props=\"{\"201341983\":0,\"335559739\":160,\"335559740\":259}\">\u00a0\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Accelerate development of machine learning applications for engineers and data scientists<\/p>\n","protected":false},"author":31406,"featured_media":0,"template":"","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","msr-content-parent":620280,"msr_hide_image_in_river":0,"footnotes":""},"research-area":[],"msr-locale":[268875],"msr-post-option":[],"class_list":["post-701041","msr-blog-post","type-msr-blog-post","status-publish","hentry","msr-locale-en_us"],"msr_assoc_parent":{"id":620280,"type":"project"},"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-blog-post\/701041","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-blog-post"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/msr-blog-post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/users\/31406"}],"version-history":[{"count":20,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-blog-post\/701041\/revisions"}],"predecessor-version":[{"id":770518,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-blog-post\/701041\/revisions\/770518"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=701041"}],"wp:term":[{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=701041"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=701041"},{"taxonomy":"msr-post-option","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-post-option?post=701041"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}