跳转到主要内容

自动机器学习和调优的快速库

项目描述

PyPI version Conda version Build PyPI - Python Version Downloads

快速自动机器学习和调优库


:fire: FLAML支持在微软Fabric数据科学中进行AutoML和超参数调优。此外,我们还引入了对Python 3.11的支持,以及一系列新的估计器,并与MLflow进行了全面集成——这得益于微软Fabric产品团队的贡献。

:fire: 注意:我们将AutoGen迁移到了专门的github仓库。与此同时,我们还启动了一个专门的Discord服务器和网站,以提供全面的文档。

:fire: AutoGen中的自动多代理聊天框架从v2.0.0版开始处于预览状态。

🔥 FLAML 在 OpenAI 的 食谱 中被突出显示。

🔥 支持ChatGPT 和 GPT-4 的 autogen 已发布,基于 用于大型语言模型生成推理的成本效益超参数优化

什么是 FLAML

FLAML 是一个轻量级的 Python 库,用于高效自动化机器学习和 AI 操作。它基于大型语言模型、机器学习模型等自动化工作流程,并优化其性能。

  • FLAML 使人们能够以最小的努力构建基于多智能体对话的下一代 GPT-X 应用程序。它简化了复杂 GPT-X 工作流程的编排、自动化和优化。它最大化 GPT-X 模型的性能并增强其弱点。
  • 对于分类和回归等常见的机器学习任务,它可以在低计算资源的情况下快速找到为用户提供的数据的高质量模型。它很容易自定义或扩展。用户可以从平滑的范围内找到他们期望的自定义能力。
  • 它支持快速且经济的自动调优(例如,基础模型的推理超参数、MLOps/LMOps 工作流程中的配置、管道、数学/统计模型、算法、计算实验、软件配置),能够处理具有异构评估成本和复杂约束/指导/早期停止的大搜索空间。

FLAML 由微软研究以及宾夕法尼亚州立大学、史蒂文斯理工学院、华盛顿大学和滑铁卢大学等合作者的系列研究驱动。

FLAML 在 ML.NET 中有 .NET 实现,ML.NET 是一个开源、跨平台的 .NET 机器学习框架。

安装

FLAML 需要 Python 版本 >= 3.8。它可以从 pip 安装。

pip install flaml

没有额外选项的情况下,安装了最小依赖项。您可以根据所需功能安装额外选项。例如,使用以下命令安装 autogen 包所需的依赖项。

pip install "flaml[autogen]"

更多信息请参见 安装。每个 notebook 示例 可能需要安装特定的选项。

快速入门

  • (新) autogen 包通过通用的多智能体对话框架启用下一代 GPT-X 应用程序。它提供可自定义和可交谈的智能体,这些智能体集成了 LLM、工具和人。通过自动化多个能干的智能体之间的聊天,人们可以轻松地让他们自动执行任务,包括需要通过代码使用工具的任务,或者与人类反馈一起执行任务。例如,
from flaml import autogen

assistant = autogen.AssistantAgent("assistant")
user_proxy = autogen.UserProxyAgent("user_proxy")
user_proxy.initiate_chat(
    assistant,
    message="Show me the YTD gain of 10 largest technology companies as of today.",
)
# This initiates an automated chat between the two agents to solve the task

Autogen 还有助于最大限度地发挥昂贵 LLM(如 ChatGPT 和 GPT-4)的效用。它提供了 openai.Completionopenai.ChatCompletion 的替代品,具有强大的功能,如调优、缓存、模板、过滤。例如,您可以使用自己的调优数据、成功指标和预算来优化 LLM 生成。

# perform tuning
config, analysis = autogen.Completion.tune(
    data=tune_data,
    metric="success",
    mode="max",
    eval_func=eval_func,
    inference_budget=0.05,
    optimization_budget=3,
    num_samples=-1,
)
# perform inference for a test instance
response = autogen.Completion.create(context=test_instance, **config)
from flaml import AutoML

automl = AutoML()
automl.fit(X_train, y_train, task="classification")
  • 您可以限制学习器并使用 FLAML 作为 XGBoost、LightGBM、随机森林等快速超参数调优工具,或者作为一个 自定义学习器
automl.fit(X_train, y_train, task="classification", estimator_list=["lgbm"])
from flaml import tune
tune.run(evaluation_function, config={}, low_cost_partial_config={}, time_budget_s=3600)
  • 零样本 AutoML 允许使用来自 lightgbm、xgboost 等 的现有训练 API,同时获得每个任务选择高性能超参数配置的 AutoML 的好处。
from flaml.default import LGBMRegressor

# Use LGBMRegressor in the same way as you use lightgbm.LGBMRegressor.
estimator = LGBMRegressor()
# The hyperparameters are automatically set according to the training data.
estimator.fit(X_train, y_train)

文档

您可以在此处找到关于FLAML的详细文档。

此外,您还可以找到

贡献

本项目欢迎贡献和建议。大多数贡献需要您同意一份贡献者许可协议(CLA),声明您有权利,并且实际上确实授予我们使用您贡献的权利。有关详情,请访问https://cla.opensource.microsoft.com

如果您是GitHub的新手,此处是有关参与GitHub开发的详细帮助资源。

当您提交拉取请求时,CLA机器人将自动确定您是否需要提供CLA,并相应地装饰PR(例如,状态检查、注释)。只需遵循机器人提供的说明即可。您只需在整个使用我们CLA的所有存储库中这样做一次。

本项目已采用Microsoft开源行为准则。有关更多信息,请参阅行为准则常见问题解答或通过opencode@microsoft.com联系以提出任何额外的问题或评论。

贡献者墙

项目详情


发布历史 发布通知 | RSS源

下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

flaml-2.3.1.tar.gz (284.7 kB 查看哈希值)

上传时间

构建分布

FLAML-2.3.1-py3-none-any.whl (313.3 kB 查看哈希值)

上传时间 Python 3

由以下机构支持: