FLAML
microsoft/FLAML加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
机器学习项目中,"调参"可能是最让工程师头疼的环节之一。面对 XGBoost、LightGBM、CatBoost、随机森林等十几种算法,每种算法又有十几个乃至几十个超参数,手工调参往往意味着在算力与时间之间痛苦地权衡。传统 AutoML 框架虽然能自动化这一过程,但运行时间常常以小时计,资源消耗也相当可观。
FLAML(Fast and Lightweight AutoML)正是为解决这个痛点而生——由微软研究院开发,用更少的时间与算力,找到比肩甚至超越主流 AutoML 框架的模型效果。
FLAML 起源于微软研究院的多项研究成果,2020 年正式开源。其核心创新在于将成本感知的超参数优化(CFO、BlendSearch 等算法)与自动模型选择整合为一个自适应系统。与 Auto-sklearn、H2O AutoML 等框架相比,FLAML 在同等或更少的时间预算下,往往能获得更优的结果。
该项目最初由微软研究院主导开发,后逐步扩展到 Microsoft Fabric 数据科学平台的原生集成。2023 年,AutoGen 模块(用于构建 LLM 多智能体系统)从 FLAML 中独立出来,成为独立的 AutoGen 项目,FLAML 本身则聚焦于 AutoML 与通用超参数调优两大核心能力。
对于分类、回归、时序预测等常见任务,只需几行代码即可启动自动建模:
from flaml import AutoML
automl = AutoML()
automl.fit(X_train, y_train, task="classification")
predictions = automl.predict(X_test)
FLAML 会自动尝试 LightGBM、XGBoost、CatBoost、随机森林、ExtraTree、逻辑回归等十几种算法,并优化各自的超参数,找到当前数据集上的最优组合。用户也可以通过 estimator_list 参数指定感兴趣的算法子集。
FLAML 的 tune 模块不局限于机器学习,任何可以通过 Python 函数评估的目标都可以调优:
from flaml import tune
def objective(config):
# 自定义评估逻辑
return {"loss": compute_loss(config)}
result = tune.run(objective, space=search_space, num_samples=100)
支持的搜索策略包括:基于低成本先验的 CFO(Cost-Frugal Optimization)、BlendSearch(混合搜索)、RandomSearch 等。
FLAML 已原生集成进 Microsoft Fabric 数据科学工作区,支持一键自动日志记录(MLflow 集成)、可视化 AutoML 流程、分布式并行训练等高级功能。
FLAML 的代码结构高度模块化:
flaml/automl:AutoML 核心,自动选择算法、交叉验证、超参数搜索flaml/tune:通用调优框架,支持多种搜索策略flaml/fabric:Microsoft Fabric 集成,含 MLflow 日志封装flaml/autogen:多智能体协作框架(已拆分为独立项目)依赖方面,FLAML 本身仅依赖 NumPy,其他算法库(LightGBM、XGBoost、scikit-learn 等)作为可选依赖安装,遵循"按需加载"原则,避免不必要的依赖膨胀。
FLAML 对 Python 版本要求较高(≥3.10),但安装非常简洁:
pip install flaml[automl] # 经典 ML
pip install flaml[spark] # 大规模分布式
pip install flaml[notebook] # Jupyter 支持
上手门槛低,但微调空间大。默认配置下三行代码即可运行自动分类;进阶用户可以精细控制搜索空间、评估指标、训练时间预算、交叉验证折数等参数。
FLAML 在 GitHub 上获得了广泛认可,Star 数持续增长。作为微软研究院的官方开源项目,它享有稳定的维护和活跃的社区支持。随着 Microsoft Fabric 的推广,FLAML 在企业级数据科学场景中的应用前景值得期待。
在学术影响力方面,基于 FLAML 核心算法发表的多篇论文被 MLSys、ICML 等顶级会议接收,其成本感知搜索策略已被工业界广泛借鉴。