推荐 :6个Python数据科学库正在狂飙,你一定要学来提升文化素养
作者:Bex T;翻译:wwl ;校对:张睿毅
本文约3200字,建议阅读8分钟
计算类数据科学库,已经不再局限在Pandas、NumPy、Scikit-learn之内了!
动机
2023年的开始,自然需要探索数据科学和机器学习的新趋势。经典的数据科学库Pandas、NumPy、Matplotlib、Scikit-learn虽然很重要,但是已经不够用了。
相较于2021年,在2022年我观察到更多这样的评论,“我高兴地宣布成为一名机器学习运维工程师”。关于机器学习运维的内容和对机器学习运维工具的需求越来越多。
因此,今年的文章围绕机器学习运维领域中6个”狂飙“的Python库,它们的目的只有一个:用最有效的方式,生成性能最佳的模型,径直对接生产环境。
1、 BentoML
也许你之前听腻了这句话“机器学习模型不应该呆在Jupyter Notebooks里生锈”。避免你还没听腻,我再重复一遍:机器学习模型不应该呆在Jupyter Notebooks里生锈。
机器学习模型应该的是直接在生产环境中发挥它们应有的作用——新数据预测。
去年我就发现了,模型部署中,最好的Python库是BentoML。BentoML可以一键安装,你可以用它维护、打包任何框架的模型,在任何一家云服务商部署,并将模型封装作为API提供服务。
保存/加载模型支持统一格式(建立版本和专属标记),使您能够构建一套结构化模型注册版本管理。构建模型的docker映像,在本地运行,各自用一行代码就可以。
$ bentoml containerize my_classifier:latest
$ docker run -it --rm -p 3000:3000 my_classifier:6otbsmxzq6lwbgxi serve –production
或者,使用一些命令直接将模型部署到任意云提供商,无需离开命令行界面。以下示例使用AWS Sagemaker:
$ pip install bentoctl terraform
$ bentoctl operator install aws-sagemaker
$ export AWS_ACCESS_KEY_ID=REPLACE_WITH_YOUR_ACCESS_KEY
$ export AWS_SECRET_ACCESS_KEY=REPLACE_WITH_YOUR_SECRET_KEY
$ bentoctl init
$ bentoctl build -b model_name:latest -f deployment_config.yaml
$ terraform init
$ terraform apply -var-file=bentoctl.tfvars -auto-approve
数据和链接:
Github链接(4.4k star):
2、 MLFlow
在将最优模型部署到生产环境之前肯定是要实验的。通常,可能需要数十次甚至数百次实验的迭代。随着迭代次数的增加,就越来越难跟踪过去的配置以及哪次过去实验效果好,和好在哪的记录。
为了帮助您完成实验迭代的追踪过程,您需要一个可靠的框架,同时跟踪1、代码,2、数据,3、模型,4、超参数和5、评估指标。
因为有太多的优秀python库已经可以实现这件事,所以,如果你想从零一点点手动搭建框架,或者像原始人一样,用excel的话,你这个想法是最糟糕的。
在优秀的Python库中之一的MLFlow库是我最喜欢的。比如,把下边这行代码加到训练scikit-learn模型的脚本里,MLFlow就可以记录任何事情,包括模型本身、模型的超参数、以及用sklearn.metrics函数计算的各种评估指标:
mlflow.sklearn.autolog()
并且,在完成实验后,终端上运行:mlflow UI,它会弹出一个实验记录的仪表板,其中包含用于对实验结果进行筛选和可视化的控件:
MLFlow 有一个 mlflow.framework.autolog() 功能,适用的框架绝对超过你知道的。它特别简单且有效,你一定要用它。
数据和链接:
Github链接(13.3k star):
https://github.com/mlflow/mlflow
文档:
https://mlflow.org/docs/latest/index.html
3、 DVC
简而言之,DVC 是数据业内的 Git。
DVC(Data Version Control)将成为数据和模型版本控制的首选工具。它可以:
(1) 跟踪千兆字节大小的数据集或模型,就像 Git 跟踪轻量级脚本。
(2) 创建主代码库的分支以进行安全试验,而无需复制大文件。
当你用命令 dvc add directory 来跟踪大文件和目录的时候,会创建轻量的directory.dvc 元数据文件。
然后,DVC将这些轻量级的文件作为原始重文件的占位符进行管理。DVC处理大型数据集和模型组件,git处理directory.dvc中的元数据。他们形成了完美的组合。
DVC的另一个优势是它智能管线式工作流。一个典型的机器学习工作流包括诸如数据采集、数据清洗、特征工程、模型训练等步骤。
DVC 可以从所有这些步骤上创建出一个智能的工作流管线,输入这两个关键词:dvc repo就可以执行所有步骤。
那么这条管线有什么智能的地方呢?——DVC 只需执行流水线上变的步骤就足够了,这样流程的优化能够为您节省数小时计的时间和计算资源。
训练脚本添加MLFlow,用DVC跟踪模型版本,那么你将获得完美组合(Git, DVC, MLFlow)。
相关链接:
https://towardsdatascience.com/how-to-version-gigabyte-sized-datasets-just-like-code-with-dvc-in-python-5197662e85bd
数据和链接:
Github链接(10.8k star):
https://github.com/iterative/dvc
文档:
https://dvc.org/
4、Weights & Biases
另一个实验记录的开源框架是 Weights & Biases库。跟之前库地不同点是,它是一个有超过2亿美金投资的公司开发的,客户有OpenAI, NVIDIA, Lyft, BMW, Samsung等。
它的主要卖点有:
(1)与 ML 生态系统的其他组件完美集成,就像 MLFlow 一样
(2)实验中提供跟踪和比较功能的 UI是最漂亮的(个人观点)
(3) 协作报告和仪表板
(4) 超参数优化(在 MLFlow 中不可行)
最好的部分是,上述所有功能都可以通过Jupyter直接使用。这意味着在Jupyter中即可跟踪实验,而不必放弃自己喜欢的IDE去进入脚本界面。
这样看来,完美的组合可能是Git, DVC和 Weights & Biases。
数据和链接:
Github链接(5.2k star):
https://github.com/wandb/wandb
文档:
https://docs.wandb.ai/
5、 NannyML
部署模型只是故事的一部分。要维护成功搭建的机器学习驱动产品,您必须持续监控模型的效果。
监控的问题在于,当模型失败时,您最开始会收到提示的、醒目的、红色的错误提示。但随着时间的推移,这些错误提示的判断可能会变得越来越糟糕,这种现象称为无声的模型失败(silent model failure)。
比如说,你部署的模型是在图片中识别Nike服装。由于时尚观念地演化,Nike会持续的改变它的设计。由于你的模型训练并不包含这些新的设计,它再图像识别中会越来越多地错过耐克服装。您不会收到错误提示,但您的模型很快就会变无用。
NannyML帮助解决了这个问题。使用他们开发的新颖的基于置信度的效果估计算法(Confidence-Based Performance Estimation,)和其他一些鲁棒的统计实验,他们可以检测生产环境中的效果下降或无声的模型失效。
NannyML 还提供智能警报功能,因此您可以始终了解生产环境中发生的情况。
以下是帮助您入门的实践教程:
https://towardsdatascience.com/data-drift-explainability-interpretable-shift-detection-with-nannyml-83421319d05f
数据和链接:
Github链接(1.3k star):
https://github.com/NannyML/nannyml
文档:
https://nannyml.readthedocs.io/en/stable/index.html
6、 Poetry
你可能已经听过很多Python程序员抱怨pip及其依赖的问题了,在我看到Poetry之前,我就是其中之一。
Poetry 是一个改变游戏规则的开源 Python 打包和依赖管理框架。在最简单的用例中,Poetry 可以在安装库之前检测依赖冲突,以便您可以完全避免依赖冲突。
您还可以用pyproject.toml配置文件配置你的python项目,Poetry将负责虚拟环境,使用简单的命令构建存储库并将其发布到PyPI。
这里有一个Poetry库的全面的 Python教程:
https://realpython.com/dependency-management-python-poetry/
数据和链接:
Github链接(23.1k star):
https://github.com/python-poetry/poetry
文档:
https://python-poetry.org/
总结
数据科学领域在不断扩展,新的工具和工具库正在以惊人的速度进步。跟上最新进度的压力比以往任何时候都更难。在这篇文章中,我尽力聚焦到机器学习的一个领域,因为这个领域有望在 2023 年继续狂飙。感谢您的阅读!
转自:数据派THU;
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
随时掌握互联网精彩
- 1 中国减贫成果激励着许多国家 7952307
- 2 中国对日本等国试行免签 7948314
- 3 网红夫妻车上直播时双双遇难 7822524
- 4 “互联网发展报告”划重点 7737116
- 5 微信或史诗级“瘦身” 内存有救了 7649972
- 6 女生半裸遭男保洁刷卡闯入 酒店回应 7548128
- 7 王楚钦复仇莫雷加德晋级四强 7484059
- 8 胖东来创始人炮轰车企企业家 7347844
- 9 受王宝强资助孩子父亲发声 7255364
- 10 相约乌镇峰会 共话“智能向善” 7138674