本文由Anaconda软件工程师Anthony DiPietro和Intel机器学习工程师Kirill Petrov共同撰写。
Anaconda和Intel正在合作构建针对英特尔硬件优化的关键开源数据科学软件包,使机器学习快速且可扩展,适合各地的从业者。
为数据科学从业者提供最佳的用户体验,为其优化的流行数据科学软件包和库Intel®oneAPI数学内核库(oneMKL),包括NumPy和SciPy,现在可以在Anaconda存储库的默认通道中轻松访问。正如大多数人可能知道的那样,这些包是Python生态系统中科学计算的核心。建立在这些库之上的是机器学习模块Scikit-learn,这是数据科学从业者的主要产品。
当涉及到机器学习时,更好的性能可能是模型是否投入生产的区别。通过我们与英特尔的合作,企业现在可以在强大的硬件上利用开源创新,从而加快实现业务价值的时间。
Intel®扩展Scikit-learn提供嵌入式替换补丁功能,以无缝的方式加快您的Scikit-learn应用程序。我们通过使用Intel®oneAPI数据分析库(一针)而且很方便Python API daal4py为下面的扩展供电。
在Intel扩展的Scikit-learn之下,用户可访问的daal4py还提供了高度可配置的机器学习内核,其中一些支持流输入数据,并且可以轻松高效地扩展到工作站集群。此外,它还为XGBoost和LightGBM提供了模型转换器,可以在不损失精度的情况下运行快速推断。在内部,它使用一个edal来提供最佳性能。
为了了解使用Intel®Extension for Scikit-learn可以节省多少时间和金钱,我们应该看看补丁的Scikit-learn和原始Scikit-learn之间的时间基准。注:Intel®扩展Scikit-learn*目前支持Scikit-learn的最后四个版本的优化。scikit-learn-intelex-2021.2最新版本。X支持scikit-learn 0.21。0.22 X。0.23 X。X和0.24.X。


这些测试是在c5.24xlarge AWS EC2实例上执行的,使用的是Intel Xeon白金8275CL,带有2个插槽,每个插槽有24个核心,使用Scikit-learn版本0.24.2,Scikit-learn -intelex版本2021.2.3和Python 3.8,运行Ubuntu 18.04.5 LTS,具有192 GB内存。我们可以看到,普通机器学习算法的训练和预测阶段的时间都有了显著提高。这些数字是因特尔®扩展Scikit-learn加快时间的因素。
举个例子,让我们看看使用1000万个样本的逻辑回归训练时间,类大小为2和20个特征/列。最初的Scikit-learn运行时间为90.44秒,相同性能的Intel®扩展Scikit-learn运行时间为2.35秒。要得到时差因子,只需将90.44 / 2.35 = 38.5倍快!
要重新生成数字,可以使用运行以下命令scikit-learn_bench:
Intel®扩展Scikit-learn启用:
Python runner.py——configs configs/blogs/skl_conda_config. pyJson——输出文件结果。json报告
最初的Scikit-learn:
Python runner.py——configs configs/blogs/skl_conda_config. pyJson——输出文件结果。json报告--no-intel-optimized
在Anaconda,我们也想在硬件上查看这些基准测试。它不是最新的最优机器,但是,在一个普通系统上运行这些相同的测试会产生一些令人印象深刻的性能结果。以下结果来自Intel®Core™i7 10710U,每个插座有1个插座和6个核心,使用Scikit-learn版本0.24.2,Scikit-learn -intelex版本2021.2.2,以及Windows 10 Pro上的Python 3.8,内存为32 GB。


虽然覆盖的案例范围在几个方面有所不同,但我们看到,用于Scikit-learn的Intel®扩展在训练中平均快了27倍,在推断中快了36倍。数据清楚地表明,只需安装conda,就可以在这些工作负载上实现显著的性能节省。
用户可以直接从Anaconda存储库中的默认通道访问Intel®扩展Scikit-learn的速度改进和Intel®oneAPI数据分析库的底层功能。随着开源社区发布新版本,它将定期更新。
要在Windows、Mac和Linux x86_64上安装这些用于scikit-learn的英特尔优化包,只需:
Conda安装scikit-learn-intelex
安装完成后,有两种方式可以启用scikit-learn的替换补丁功能。你可以在运行应用程序时启用它:
Python -m sklearnex my_application.py
或者你可以显式地在你的代码中启用补丁:
从sklearnex导入patch_sklearn
patch_sklearn ()
下载Miniconda、Anaconda个人版¹或Anaconda商业版,从今天开始使用英特尔优化的软件包。德赢app官网下载此外,请密切关注英特尔和Anaconda合作的进一步方式,以加速和扩展您的数据科学工具包的更多方面。
欲了解更多信息,请访问我们的文档。
Intel扩展Scikit-learn文档
Intel Extension for Scikit-learn GitHub页面
[1]受制于Anaconda的服务条款
公告及免责声明
性能因用途、配置和其他因素而异。性能结果基于配置中显示日期的Anaconda测试,可能无法反映所有公开可用的更新。过去的表现并不一定代表未来的结果。结果可能有所不同。