Conda 更快的求解器:Libmamba

conda 22.11 更新:libmamba 求解器的实验性标志已移除。要使用新的求解器,请更新您基础环境中的 conda

conda update -n base conda

要安装和设置新的求解器,请运行以下命令

conda install -n base conda-libmamba-solver
conda config --set solver libmamba

在此处了解更多


介绍 conda-libmamba-solver

conda 团队很高兴地宣布推出 'libmamba',它是一个新的、速度更快的 conda 依赖关系求解器!三家不同的公司共同促成了此次发布:QuantStack,开发 mamba 和 libmamba;Quansight,将 libmamba 集成到 conda 中;以及 Anaconda,开发 conda 并管理整体工作。请继续阅读,了解该项目的核心贡献者、我们将 mamba 的功能引入 conda 的原因,以及您今天如何开始加速您的工作流程。

15 秒 vs 91 秒:在同一台 Windows 机器上的新环境中运行 “conda install scipy tensorflow”。

核心贡献者

  • Wolf Vollprecht | QuantStack Wolf 是 QuantStack 的 CTO,QuantStack 是一家开源公司,是 Mamba 和 Jupyter 的核心。他是 conda-forge 社区的核心成员,并帮助维护数百个机器人软件包,作为 RoboStack 项目的一部分。

  • Jaime Rodríguez-Guerra | Quansight Jaime 拥有生物技术博士学位,并认为软件包管理是可重复研究的支柱之一。他在从事分子建模框架和用于药物设计的机器学习管道时成为 conda 爱好者。

  • Filipe Laíns | Quansight Filipe 是 Python Packaging Authority 的成员、pypa/build 工具的作者,以及 Arch Linux 发行版的维护者。他致力于改进 Python 软件包生态系统,并弥合 Python 软件包下游之间的差距。

  • Tania Allard | Quansight Tania 拥有计算建模博士学位,并且是著名的多产 PyData 社区成员。Tania 是 PSF(Python 软件基金会)的院士和董事,并曾作为会议组织者(JupyterCon、SciPy、PyJamas、PyCon UK、PyCon LatAm、JuliaCon 等)、社区建设者(PyLadies、NumFOCUS、RForwards)、Matplotlib 和 Jupyter 的贡献者以及定期演讲者和导师参与其中。

  • Jannis Leidel | Anaconda Jannis 是 Anaconda conda 团队的高级软件工程师,此前共同创立了 Python Packaging Authority,这是一个志愿者团体,十多年来一直维护着 Python 编程语言的基础软件包管理软件。他目前在 Python 软件基金会董事会任职,并认为促进 conda 项目对于帮助不断壮大的数据从业者社区至关重要。

我们为什么将 Mamba 求解器引入 Conda?

mamba 项目 是一个快速的、替代性的 conda 客户端,由于其 libsolv 求解器对 conda 元数据的实现而得到广泛采用。在将 mamba 求解器引入 conda 时,该项目具有以下目标

  • 将 conda 的解析速度提高 50-80%*

  • 最大化向后兼容性,以便不破坏任何当前功能

  • 构建插件基础设施,供其他人创建自定义求解器

  • 加强我们为社区需求服务的工作

*基于在 Linux、MacOS 和 Windows 上执行的集成测试套件

conda 解析环境软件包依赖项的速度是 conda 用户体验和实用性的关键因素。熟悉 conda 的用户知道 conda 有其优点和缺点。一方面,它单独解决了跨平台和软件包依赖性;另一方面,这种依赖关系解析过程可能很慢,尤其是在 conda 生态系统快速增长且软件包依赖关系变得越来越复杂,需要考虑的依赖关系组合也大大增加的情况下。

虽然 mamba 被宣传为 conda 的更快的直接替代求解器,但在功能上存在一些差异,尤其是在 conda 多年来积累的边缘情况下。集成测试中出现的一些问题包括 pip 互操作性、与 conda 的软件包和平台测试套件的兼容性以及标志和更新配置解析。这就是为什么 Anaconda 与 Quansight 合作,将 mamba 的 libsolv 仓库解析器和求解器集成到 conda 中,同时尽可能多地重用 conda 的内容,以弥合在使用 mamba 求解器时观察到的任何功能差异。

以向后兼容性为优先事项,此次 libmamba 集成版本的目的是在不更改现有 conda 工作流程的情况下,显著减少解析 conda 软件包的时间。

如何启用 libmamba

libmamba 的这个实验性版本是我们实现新求解器的概念验证。要使用 libmamba,请将其安装在您的 conda 基础环境中,然后在安装其他软件包时将其指定为求解器

  • 请确保更新到至少 conda 4.12.0
    conda update -n base conda
  • 安装 conda libmamba 求解器插件
    conda install -n base conda-libmamba-solver

要在临时基础上或在不将其设置为默认求解器的情况下尝试使用 libmamba,您可以在命令行上运行以下命令

conda create -n demo --experimental-solver=libmamba --dry-run install <some package>

作为实验性版本,已实施匿名自动调试日志记录(作为本地日志文件存储在您的计算机上),以解决可能在使用常规问题管理系统时出现的任何问题。当前版本将在我们对社区收到的稳定性和反馈感到满意后,被采纳为默认的 conda 求解器,因此强烈鼓励采用并且对于持续改进是必要的!提供的任何反馈都将大大加快 libmamba 作为 conda 默认求解器的采用速度。您可以在此 Github 链接 提交任何问题。

请按照上面详细说明的步骤激活 libmamba 求解器,并使用您现有的工作流程进行实验。Anaconda 和 Quansight 团队将密切监控这些报告,以继续改进求解器的功能。

展望未来

Quansight 和 Anaconda 正在举办一个由三部分组成的网络研讨会系列,内容涵盖 conda 求解器逻辑、集成和测试过程、conda 用户将体验到的重大变化以及如何启用 libmamba。点击此链接在 Anaconda Nucleus 上观看首次网络研讨会,或注册加入 Quansight 和 Anaconda 的 下一次网络研讨会,直播时间为 3 月 23 日下午 2 点(美国东部时间)/上午 11 点(太平洋时间)。

与专家交谈

与我们的专家之一交谈,为您的 AI 之旅寻找解决方案。

与专家交谈