每个人都需要工具。建筑工人、水管工、电工——你能想到的都有。工具是每个工匠工具箱的必要组成部分,包括机器学习从业者。机器学习从业者需要工具来帮助他们快速构建、训练和部署机器学习模型。
每年都会出现大量新的机器学习工具,以帮助简化这一过程并推动该领域的发展。要保持在该领域的前沿,您至少要知道这些工具是什么,它们如何提供帮助,它们的关键特性、优势和劣势,以及一些理想的用例。
在本文中,我们将讨论这些主题,然后比较每个工具,以便您知道如何为您的项目选择最佳工具。
机器学习工具的重要性
想象一下这样一个世界:每次你想要使用机器学习算法,你都必须从头开始编写代码。这是另一个例子:想象一下这样一个世界:每当您完成一个实验时,您都必须将结果写在一张纸上,并且当您部署了模型时,购买新服务器是扩展应用程序的唯一方法。
坦率地说,对于那些生活了很长时间的人来说,其中许多并不难相信,因为这是他们的现实。许多人无法进入这个领域,因为他们不会将数学公式转化为代码——也许数学不是他们的背景。各种工具的引入降低了进入的门槛。
如今,在不完全了解机器算法的内部工作原理或控制它们的数学公式的情况下,实现机器算法是可能的。注意,这并不意味着你不需要知道(你需要知道),它只是意味着你不需要知道如何实现这个算法。
机器学习中的工具很重要的另一个原因是它们加快了流程。例如,由于不再需要从头开始编写整个算法,因此可以在更短的时间内执行许多实验,这意味着您可能会更快地找到可用于生产的最佳模型。
最终,机器学习工具简化了复杂的任务,加快了将模型从研究环境转移到生产环境的过程。
必须了解机器学习工具
1. 微软 Azure 机器学习
网站:Azure Machine Learning - ML as a Service | Microsoft Azure
微软Azure机器学习是一种完全托管的云服务,旨在使数据科学家和开发人员能够更快、更有信心地构建、部署和管理机器学习项目的生命周期。也就是说,该平台寻求通过其机器学习操作(MLOps)、开源互操作性和集成工具加速实现价值的时间。它的设计也考虑到了负责任的人工智能,并非常强调安全性。
关键特性
- 数据准备:使开发人员能够在 Apache Spark 集群上大规模地快速迭代数据准备,并且可以与 Azure Databricks 互操作。
- Notebooks:开发人员可以使用 Jupyter Notebooks?或 Visual Studio Code 进行协作。
- 拖放式机器学习:用户可以使用?Designer(一个拖放式用户界面)来构建机器学习管道。
- 负责任的 AI:借助负责任的 AI,开发人员可以对其模型进行深入调查,并在生产中对其进行监控,以确保始终向最终用户提供最佳结果。
- 托管端点:使开发人员能够将其生产工作负载的接口与为其提供服务的实现分离。
优点
- 内置治理:机器学习工作负载可以通过内置治理、安全性和合规性从任何位置执行。
- 多框架支持:为知名机器学习框架(如 XGBoost、Scikit-learn、PyTorch、TensorFlow、ONNX)提供高抽象接口。
缺点
- 资源限制:存在可能影响机器学习工作负载的资源限制(例如,终结点、部署、计算实例等的数量)。请注意,这些限制因地区而异。
- 更少的控制:机器学习的许多细节和复杂性都被抽象掉了,这意味着你必须遵循Microsoft给你的过程。
2. 亚马逊 SageMaker
网站:?Machine Learning Service - Amazon SageMaker - AWS
Amazon SageMaker 是一项完全托管的服务,旨在构建机器学习模型和生成预测。开发人员可以利用该平台,使用各种工具(如笔记本、调试器、探查器、管道、MLOps 等)在单个集成开发环境 (IDE) 中大规模构建、训练和部署其机器学习模型。SageMaker 还通过简化访问控制和机器学习项目的透明度来支持治理要求。
关键特性
- Canvas:用户可以利用的无代码界面来创建机器学习模型。根据功能页面,用户不需要机器学习或编程经验即可使用 Canvas 构建模型。
- 数据整理器:使用户能够快速聚合和准备用于机器学习的表格或图像数据。
- 澄清:用户可以利用澄清,根据准确性、稳健性、毒性和偏差等指标更深入地了解他们的机器学习模型和数据。其目的是减少机器学习模型中的偏见,以提高其质量,同时支持负责任的人工智能计划。
- 实验:一种托管服务,使用户能够大规模跟踪和分析其机器学习实验。
优点
- ML工具的选择:用户可以在IDE和无代码界面之间做出决定,前者是数据科学家的理想选择,后者是编程技能较少的人的理想选择。
- 多框架支持:可以部署使用第三方框架(如 TensorFlow、PyTorch、XGBoost、Scikit-learn、ONNX 等)训练的模型。
缺点
- 价格:成本可能会迅速飙升——尤其是在使用多个获得相当大流量的模型的情况下。
3. BigML
网址:?BigML.com
BigML 是一个基于云的、可消费的、可编程的、可扩展的机器学习平台。它创建于 2011/12 年,旨在简化机器学习任务的开发、部署和管理,例如分类、回归、时间序列预测、聚类分析、主题建模等。该平台提供各种服务,从数据准备到数据可视化、模型创建以及各种其他服务,这些服务协同工作,使企业和组织能够构建和部署机器学习模型,而无需广泛的技术专业知识。
主要特点
- 全面的机器学习平台:可以解决各种问题,从有监督学习到无监督学习。
- 可解释:所有预测模型都具有交互式可视化和可解释性功能,使其具有可解释性。
- 可导出模型:所有模型都可以导出并用于在任何边缘设备上提供本地离线预测,也可以作为分布式实时生产应用程序的一部分立即部署。
优点
- 易用性:通过连接到BigML的REST API,可以自动执行复杂的机器学习过程并节省成本;使用 BigML 实现流程自动化只需要一行代码。
缺点
- 处理大型数据集速度慢:可以处理最多 100M 行 x 1000 列的数据集,但较大的数据集需要更长的处理时间。
4. TensorFlow
网站:?https://www.tensorflow.org/
TensorFlow 是由 Google 的 Google Brain 团队开发的端到端开源机器学习平台。尽管 TensorFlow 主要关注深度神经网络的训练和推理,但可以连接一系列工具,例如 TensorFlow serving,使用户能够构建、训练和部署机器学习模型。这些资源还包括为自然语言处理、计算机视觉、强化学习和预测机器学习等任务实施解决方案的工具。
关键特性
- 分布式计算:TensorFlow 支持分布式计算,使开发人员能够使用多台机器训练模型
- GPU 和 TPU?支持:可以使用 GPU 或 TPU?加速来加速训练。
- TensorBoard:一种可视化工具,使用户能够可视化他们的模型。
- 预构建模型:为各种用例提供开箱即用的预构建模型。
优点
- 可移植性:TensorFlow 模型可以导出并部署在各种平台上,例如移动设备和 Web 浏览器。
- 社区:?TensorFlow 得到了一个庞大而活跃的开发人员社区的支持,他们为框架的开发做出了贡献并提供支持。
- 可扩展性:支持分布式计算。
缺点
- 陡峭的学习曲线:?由于其复杂的语法,TensorFlow 可能很难学习。
5. PyTorch
网站:?PyTorch
PyTorch 是一个开源的优化张量库,旨在支持使用 CPU 和 GPU 开发深度学习模型。
关键特性
- 分布式训练:开发人员可以通过利用 PyTorch 对集体操作异步执行和点对点通信的支持来优化研究和生产中的性能。
- TorchScript:从 PyTorch?代码创建可序列化和可优化的模型,这意味着它始终可用于生产。
- TorchServe:简化 PyTorch 模型的大规模部署。
- 原生 ONNX 支持:用户可以以标准 ONNX 格式导出模型,以便直接访问与 ONNX 兼容的平台、可视化工具、运行时等。
优点
- 社区:?PyTorch 除了极其详细的文档外,还拥有一个庞大而充满活力的社区
- 灵活性和可控性:?PyTorch 具有动态计算图,这意味着可以动态创建和修改模型,并快速执行。
- Pythonic:遵循 Python 编码风格,使其具有可读性。
缺点
6. Apache Mahout
网站:?Apache Mahout
Apache Mahout 是由 Apache 软件基金会开发的开源分布式线性代数框架和数学表达的?Scala?领域特定语言 (DSL)。该框架在?Apache Hadoop?上实现,旨在使统计学家、数学家和数据科学家能够快速构建可扩展且高效的机器学习算法实现。
关键特性
- 经过验证的算法:?Mahout 利用经过验证的算法来解决各个行业遇到的常见问题。
- 可扩展到大型数据集:该框架旨在分布在Apache Hadoop上运行的大型数据中心集群中。
优点
- 可扩展:提供可扩展的分布式计算框架,能够处理大量数据。
缺点
- 陡峭的学习曲线:要求用户对机器学习有深入的了解,以充分利用它。
7. Weka
网站:?The Data Platform for Cloud & AI | WEKA - WEKA
Weka 由新西兰怀卡托大学开发,是用于数据挖掘任务的机器学习算法的集合。它包含用于数据准备、可视化、分类、回归、聚类和关联规则挖掘的工具。也就是说,Weka 平台帮助组织在云端和本地存储、处理和管理他们的数据。
关键特性
- 多协议支持:支持原生 NVIDIA GPUDirect 存储、POSIX、NFS、SMB 和 S3 同时访问数据。
- 云原生、数据中心就绪:在本地运行、云中运行和位置之间的突发运行之间切换。
优点
- 可移植性:它完全用 Java 实现,这意味着它几乎可以在任何现代计算平台上运行
- 易用性:?Weka 利用图形用户界面,使导航平台变得简单。
缺点
- 分布式计算和大数据处理:?没有对分布式计算或大数据处理的内置支持。
- 高级技术:不包括深度学习和强化学习等最新进展。
8. Vertex AI
网站:?https://cloud.google.com/vertex-ai?hl=en
Verex AI 是由 Google 开发的完全托管、全面的端到端机器学习平台。它使用户能够训练和部署机器学习模型和应用程序,并自定义用户可以在其 AI 驱动的应用程序中利用的大语言模型。该平台无缝结合了数据工程师、数据科学家和机器学习工程师的工作流程,使团队能够使用通用工具集进行协作。
关键特性
- AutoML:在表格、图像或视频数据上训练机器学习算法,而无需编写代码或准备数据拆分。
- 生成式?AI 模型和工具:在 AI 应用程序中快速构建、自定义、集成和部署生成式 AI 模型。
- MLOps 工具:专为数据科学家和机器学习工程师构建的 MLOps 工具,用于自动化、标准化和管理机器学习项目。
优点
- 可扩展性和性能:利用 Google Cloud 的基础架构提供高可扩展性和性能。
- 多框架支持:与 TensorFlow、PyTorch 和 Scikit-learn 等流行的机器学习框架集成——还支持通过自定义容器进行训练和预测的 ML 框架。
缺点
- 定价:定价结构相当复杂,对于预算有限的企业或初创公司来说可能很昂贵。
在选择工具时,最重要的要考虑的是您的需求,例如:
所有工具都不一样。例如,TensorFlow 是由 Google Brain 研究人员开发的,旨在推进机器学习的关键领域,并促进对深度学习的更好理论理解。相比之下,PyTorch 的创建是为了在深度学习模型的开发过程中提供灵活性和速度。
尽管他们试图解决相同的问题(简化构建深度学习模型的过程),但他们处理它的方式是不同的。
这是机器学习中的一个常见主题;因此,最好了解您要实现的目标,然后选择使该过程尽可能简单的机器学习工具。
工具对于各种工匠来说都是必不可少的,包括机器学习从业者。机器学习从业者经常利用它们来快速构建、训练和部署机器学习模型。这些工具的主要目的是加快开发机器学习模型并将其从研究环境转移到生产环境的过程。