2023年6月30日更新
审查和维护人:
桑德拉·梦露,产品管理总监,Anaconda
吉姆·贝德纳,客户服务总监,Anaconda
纳内特·乔治,高级内容营销主管,Anaconda
寻找企业平台
什么是平台?
Python,开源,数据科学和企业
软件包管理与构建环境
协作和部署
管理和保护开源流水线
基本功能
协作和工具
“软件正在吞噬世界。”马克·安德森在2011年8月发表的一篇著名博客中,用这句话作为开篇。他预言,软件开发将颠覆传统行业。事实上,Airbnb、Netflix和Uber等公司只是 “按需 ”经济中众多赢家中的少数,它们以显著而持久的方式颠覆了旅游、娱乐和购物等行业。
大约一年后,在2012年10月,《哈佛商业评论》报道称,数据科学家是 “21 世纪最性感的工作”,那些能够 “从非结构化数据中挖掘宝藏 ”的专业人士大有可为。结构化数据竞赛由此拉开帷幕,企业开始认真研究它们杂乱无章的数据,并想方设法使其更便于机器使用。
时间快进到七年后的2019年10月,麦肯锡全球研究院就 “人工智能春天的到来 ”发表了令人振奋和警示性的言论。他们的研究显示,数百个商业案例加在一起,每年有可能创造3.5万亿至5.8万亿美元的价值。随着企业应用人工智能,他们发现人工智能可以产生巨大的商业价值。数据科学能力是实现高效人工智能的先决条件,因此企业加大了对技术、数据科学团队以及机器学习和深度学习等技术的投资。
2022年8月,通过Python和深度学习,Stable Diffusion公司建立的文本生成图像模型震撼了视觉艺术界。该模型可以根据文本提示生成详细的图像。它引发了全世界对人工智能的兴趣,掀起了下一波浪潮,即生成式人工智能。
最终,三个月后,也就是2022年11月,OpenAI发布了另一个生成模型:ChatGPT是一种大语言模型(LLM),它使用OpenAI的GPT-3和GPT-4大语言模型进行训练,根据用户的提示生成文本。在短时间内,大语言模型就在许多行业掀起了一场风暴,其新产品和新功能使程序员和机器一起编写和调试代码成为可能,使作家和人工智能一起写作成为可能。
有了这些进步,似乎每个组织都应该以某种方式将这些新技术融入其研究、产品和运营中。然而,要充分发挥这些技术的潜能,需要一套功能齐全的工具、无错误的结构化数据、专家团队以及开源软件的力量,还依赖创造者和维护者们的积极互动。
在企业组织中利用开源软件的强大功能,需要具备构建和部署安全Python解决方案的能力。现在,越来越多的工具可用于拼接,使团队能够利用数据科学和机器学习进行协作,并构建强大的应用程序。但是,将各种工具拼接在一起,来将预测模型部署到生产中,并不能最好地创建企业可依赖的平台,实现优秀成果。而且,自行构建平台可能既昂贵又复杂,因为您需要维护所创建的平台。
要找到一个企业平台,既能提供所需的开源软件包,又能提供可管理的环境,让您在生产中复制和扩容模型,还能提供安全工具,保护您的组织免受不良代码和不良被访者的侵害,这可能是一项艰巨的挑战。以上就是本指南的全部内容——探讨在选择企业平台时应考虑哪些因素,以便与Python和开源软件配合使用,实现企业的开发目标。
查马斯·帕里哈皮提亚转述了微软首席执行官比尔·盖茨对平台的著名描述:“平台就是使用它的每个人的经济价值超过创建它的公司的价值。” 在评估平台时,请考虑这些基本特征,它们将为您提供帮助,在团队通过Python开发的开源软件,来开发和部署应用程序时,充分利用社区的创新能力:
跨行业客户: 平台应用的行业越多,平台和支持团队可能遇到的集成、用例和数据类型也就越多。
数据科学彻底改变了企业的运营方式。如今,无论是分析客户行为、建立预测模型还是创建生成模型,似乎每个人都在以某种方式处理数据。随着对数据驱动的洞察的需求不断增长,Python已成为数据科学工作的首选语言。
事实上,Python一直都是数据科学工作的黄金标准,这很大程度上归功于它的简单性和多功能性。与其他语言不同,Python允许用户轻松操作和分析数据,使其成为从数据可视化到机器学习的理想选择。此外,能获取大量开源库和框架,确保了Python一直是数据科学家的热门选择。
开源软件让开发人员能够访问全球代码贡献网络,这些贡献者不断更新和改进代码,使公司能够比以往更快、更高效地创建应用程序。根据新思科技2023开源安全和风险分析报告,绝大多数(96%)的代码库都包含开源软件。
开源软件的广泛应用是有道理的;它不仅能帮助企业节省许可成本,还能让企业利用开源社区的集体知识来创建定制的解决方案,以满足其特定的业务需求。因此,对于希望引领快节奏技术世界的企业来说,开源成为了必不可少的战略工具。
然而,过去几年中,企业组织中的Python开发管理变得更加复杂和困难。部分原因,是Python社区的快速发展,它导致了新工具和技术定期发布。这些工具有些是专有的,有些是开源的。虽然这对处理数据的团队来说终究是积极的进步,但这也会带来挑战,让团队难以跟上最新技术和最佳实践。
尽管存在着这些挑战,但Python仍然是数据科学工作中最强大、最通用的工具之一。随着行业的不断发展,Python仍将是成功的数据科学团队工具箱中重要的组成部分。
在Anaconda,我们与世界各地使用Python的组织进行交流。我们发现,大多数团队都遇到了类似的挑战,他们正试图用类似的方法来解决这些问题。
对于忙碌的企业团队来说,管理软件包和构建环境是一项重大挑战。许多团队手动管理软件包,这样做的好处是可以控制每个软件包,并自定义环境。然而,这样做既费时又容易出错。它还可能导致环境不一致,对数据保护和资源治理缺乏监督。
其他团队则使用专有的第三方软件包管理工具,这些工具可以简化软件包管理并提供现成功能。然而,这些工具并不适合Python工作流。它们提供的定制功能有限,迫使您依赖供应商来构建工具,以满足您的业务需求。
企业团队面临的常见Python挑战包括软件包管理、协作和部署以及治理和安全。
项目合作是构建和扩展优秀模型的重要组成部分,因此可重复性是一项艰巨的挑战,尤其是对于大型团队而言。大多数团队都是分头完成这项工作,将模型放在各自的机器上。这导致数据科学家和数据工程师之间流传这样一句话: “在我的机器上能用。”
说到部署,手动流程能让您对流水线有更多的控制,但就像手动软件包管理一样,手动流程费时费力,还容易出错,出现可扩展性问题。构建自己的部署基础架构可以让您进行定制,也能让您获得更多控制权,但由于开发和维护成本较高,投资回报可能较低。
一些简单易用的机器学习平台具有现成的功能和支持。但相比于开源软件,这些平台可能限制性很高,个性化设置也很有限。它们的价格也可能相当昂贵。
开源包的可信来源空前重要。美国国家标准与技术研究院(NIST)2023年3月发布的《国家网络安全战略和框架》显示,安全的负担正在转移向开发软件的组织和个人。
人工安全审计可以帮助您满足最低的监管要求,并识别一些安全风险。但是,人工审核同样耗费时间和资源,而且会使企业处于被动地位。内部安全培训可以提高意识,推广良好行为,但其效果有限,仅靠培训是不够的。
第三方扫描工具通常容易使用,而且像某些机器学习平台一样,提供现成的功能和一些支持。不过,这些工具并不适合Python工作流程,假阳性很多,而且会误操作编译过的软件包。
企业平台应具有足够的灵活性,以满足您当前的需求,并具有足够强大的功能,以承受未来工作负载和项目的需求。在评估 Python 和开源软件的企业平台时,您可以使用这份清单。
![]() | 其他供应商: | ||
集成是可能的 | 集成是可能的 | 集成是不可能的 | |
代码库(Git、Bitbucket) | ✅ | ||
数据湖支持 | ✅ | ||
文件系统 | ✅ | ||
分布式系统基础架构(Cloudera, Hortonworks, EMR) | ✅ | ||
物联网/传感器数据 | ✅ | ||
监控解决方案(事务日志传送) | ✅ | ||
非关系型数据库 | ✅ | ||
专用数据库(SAS,Teradata) | ✅ | ||
SQL | ✅ | ||
网络数据集成 | ✅ |
![]() | 其他供应商: | |||
支持,可选择物理隔离 | 支持,可选择物理隔离 | 支持,非物理隔离 | 不支持 | |
AWS Sagemaker | ✅ | |||
Azure | ✅ | |||
多米诺数据实验室的机器学习运维 | ✅ | |||
✅ | ||||
Microsoft Azure | ✅ | |||
Oracle Cloud Infrastructure(OCI)服务 | ✅ | |||
Snowpark for Python工具包 | ✅ | |||
本地部署(VSphere) | ✅ | |||
本地部署(裸金属) | ✅ | |||
物理隔离 | ✅ | |||
GPU和CPU支持 | ✅ |
![]() | 其他供应商: | ||
支持 | 支持 | 不支持 | |
分类 & 回归 | ✅ | ||
深度学习 | ✅ | ||
生成对抗网络(GANs) | ✅ | ||
预训练大型语言模型(LLMs) | ✅ | ||
强化学习 | ✅ | ||
支持向量机 (SVMs) | ✅ | ||
测试策略(A/B测试,多臂老虎机,敏感性分析) | ✅ | ||
文本生成图像模型 | ✅ | ||
文本&图像分析和加工 | ✅ | ||
时间序列分析 | ✅ |
![]() | 其他供应商: | ||
可访问 | 可访问 | 不可访问 | |
中心化项目管理中心 | ✅ | ||
一键部署 | ✅ | ||
部署RESTAPI | ✅ | ||
部署网络应用程序 | ✅ | ||
协作与部署的治理控制 | ✅ | ||
工作调度程序/自动化 | ✅ | ||
版本控制 | ✅ | ||
可视化和仪表板 | ✅ |
![]() | 其他供应商: | ||
可访问 | 可访问 | 不可访问 | |
专门的支持联系人 | ✅ | ||
保证正常运行时间服务级别协议 | ✅ | ||
访问令牌 | ✅ | ||
高级的故障排除支持 | ✅ | ||
Anaconda软件包管理协助 | ✅ | ||
自定义conda软件包构建 | ✅ | ||
自定义安装程序 | ✅ | ||
环境管理问题 | ✅ | ||
实时学习与按需学习 | ✅ | ||
高需求期间的存储库访问 | ✅ | ||
严重性响应:1级 | 12小时,标准1小时,高级 | ||
严重性响应:2级 | 24小时,标准12小时,高级 | ||
技术支持: | ✅ |
![]() | 其他供应商: | |||
包括 | 包括 | 可集成 | 无法实现 | |
管理监控(跟踪用户、项目和部署情况) | ✅ | |||
审计日志 | ✅ | |||
云本地安全控制 | ✅ | |||
灾后恢复 | ✅ | |||
端到端加密 | ✅ | |||
软件包签名进行验证 | ✅ | |||
发布权限 | ✅ | |||
基于角色的用户访问控制 | ✅ | |||
通用漏洞披露(CVEs)扫描 | ✅ | |||
安全包存储库 | ✅ | |||
软件材料清单(SBOM) | ✅ |
![]() | 其他供应商: | |||
目标 | 包括 | 包括 | 不包括 | |
Jupyter Notebook | 创建和共享计算文档 | ✅ | ||
JupyterLab | 基于网络的Juypyter界面 | ✅ | ||
PyCharm | 用于Python编程的集成开发环境 | ✅ | ||
RStudio | Python和R的集成开发环境工具 | ✅ | ||
Spyder | 科学编程的Python开发环境 | ✅ | ||
Visual Studio代码(VS Code) | 用于调试、代码片段、代码重构等的源代码编辑器 | ✅ |
![]() | 其他供应商: | ||
支持 | 支持 | 不支持 | |
允许用户选择自己喜欢的绘图库 (例如Bokeh,hvPlot,Matplotlib,Plotly) | ✅ | ||
支持完全交互式可视化 | ✅ | ||
支持超大型(即PB级)数据集的可视化 | ✅ | ||
支持在Jupyter中实现可视化,或作为独立应用程序使用 | ✅ |
Anaconda可让您访问数千个库。我们在下文中列举了几个最常见的库,以帮助您比较您的选择。
![]() | 其他供应商: | |||
目标 | 可访问 | 可访问 | 不可访问 | |
Dask | 并行和分布式计算 | ✅ | ||
Django | 用于设计的Python网络框架 | ✅ | ||
Flask | 模型部署 | ✅ | ||
Keras | 深度学习框架 (TensorFlow的应用程序接口) | ✅ | ||
Kubeflow | Kubernetes上的机器学习工作流 | ✅ | ||
MLflow | 实验跟踪 | ✅ | ||
NumPy | 数组的数学运算 | ✅ | ||
Pandas | 处理数据集——分析、清理、探索和操作数据 | ✅ | ||
Prophet | 用Python进行时间序列预测 | ✅ | ||
PyTorch | 开发和训练深度学习模型 | ✅ | ||
SciPy | (以NumPy为基础的)科技计算 | ✅ | ||
Scikit-learn | 用于分类、回归和聚类算法的机器学习库 | ✅ | ||
TensorFlow | 开发和训练机器学习模型 | ✅ | ||
Theano | (以NumPy为基础的)包含多维数组的数学表达式 | ✅ | ||
XGBoost | 分布式梯度提升算法库 | ✅ |
![]() | 其他供应商: | ||
Yes | 是 | 否 | |
从质量保证进行部署 | ✅ | ||
部署到生产 | ✅ | ||
一键式部署到预先配置好的资源 | ✅ | ||
在生产中完善模型 | ✅ | ||
可重现性——回滚到旧模型 | ✅ | ||
集中管理已部署的应用程序 | ✅ |
十多年来,行业领导者一直在用 Anaconda 平台构建世界上最具创新性的预测、产品和体验。数据科学和机器学习团队依靠我们值得信赖的软件包和功能,来集中管理开源软件的访问,并实现一致、可重复的工作流程。
Anaconda平台的功能可解决企业使用Python时面临的三大挑战。
准备进一步了解Anaconda如何帮助您的团队更快地构建和部署安全的Python解决方案?与我们的专家预约,讨论您所在组织的需求。