助你玩转机器学习技术的十三套框架

简介: 在今天的文章中,我们将共同了解十三款机器学习框架,这些框架中最值得关注的特性,在于它们正致力于通过简单而新颖的方式应对与机器学习相关的种种挑战。过去几年以来,机器学习已经开始以前所未有的方式步入主流层面。

在今天的文章中,我们将共同了解十三款机器学习框架,这些框架中最值得关注的特性,在于它们正致力于通过简单而新颖的方式应对与机器学习相关的种种挑战。

过去几年以来,机器学习已经开始以前所未有的方式步入主流层面。这种趋势并非单纯由低成本云环境乃至极为强大的GPU硬件所推动; 除此之外,面向机器学习的可用框架也迎来了爆发式增长。此类框架全部为开源成果,但更重要的是它们在设计方面将最为复杂的部分从机器学习中抽象了出来,从而保证相关技术方案能够为更多开发人员服务。

十三套框架助你玩转机器学习技术

在今天的文章中,我们将共同了解十三款机器学习框架,一部分去年刚刚发布、另一部分则在不久前进行了全部升级。而这些框架中最值得关注的特性,在于它们正致力于通过简单而新颖的方式应对与机器学习相关的种种挑战。

Apache Spark MLlib

Apache Spark可能算得上当前Hadoop家族当中最为耀眼的成员,但这套内存内数据处理框架在诞生之初实际与Hadoop并无关系,且凭借着自身出色的特性在Hadoop生态系统之外闯出一片天地。Spark目前已经成为一款即时可用的机器学习工具,这主要归功于其能够以高速将算法库应用至内存内数据当中。

Spark仍处于不断发展当中,而Spark当中的可用算法亦在持续增加及改进。去年的1.5版本添加了众多新算法,对现有算法做出改进,同时进一步通过持续流程恢复了MLlib中的Spark ML任务。

Apache Singa

这套“深层学习”框架能够支持多种高强度机器学习功能,具体包括自然语言处理与图像识别。Singa最近被纳入Apache孵化器项目,这套开源框架致力于降低大规模数据的深层学习模型训练难度。

Singa提供一套简单的编程模式,用于跨越一整套设备集群进行深层学习网络训练,同时支持多种常规训练任务类型; 卷积神经网络、受限玻尔兹曼机与复发性神经网络。各模型能够进行同步(一一)或者异步(并行)训练,具体取决于实际问题的具体需求。Singa还利用Apache Zookeeper对集群设置进行了简化。

Caffe

深层学习框架Caffe是一套“立足于表达、速度与模块化”的解决方案。其最初诞生于2013年,主要用于机器视觉项目。Caffe自出现之后就一直将多种其它应用囊括入自身,包括语音与多媒体。

由于优先考量速度需求,因此Caffe全部利用C++编写而成,同时支持CUDA加速机制。不过它也能够根据需要在CPU与GPU处理流程间往来切换。其发行版中包含一系列免费与开源参考模型,主要面向各类常规典型任务; 目前Caffe用户社区亦在积极开发其它模型。

微软Azure ML Studio

根据机器学习任务的实际数据规模与计算性能需求,云往往能够成为机器学习应用的一大理想运行环境。微软公司已经立足于Azure发布了其按需计费机器学习服务,即Azure ML Studio,其能够提供按月、按小时以及免费等分层版本。(微软公司的HowOldRobot项目亦利用这套系统创建而成。)

Azure ML Studio允许用户创建并训练模型,而后将其转化为能够由其它服务消费的API。每个用户账户能够为模型数据提供最高10 GB存储容量,不过大家也可以将自己的Azure存储资源连接至服务当中以承载规模更大的模型。目前可用算法已经相当可观,其分别由微软自身以及其它第三方所提供。大家甚至不需要账户即可体验这项服务; 用户可以匿名登录并最多使用八小时Azure ML Studio。

Amazon Machine Learning

Amazon的这套面向云服务的通用型方案遵循既定模式。其提供核心用户最为关注的运行基础,帮助他们立足于此寻求自身最需要的机器学习方案并加以交付。

Amazon Machine Learning同时也是云巨头首次尝试推出机器学习即服务方案。它能够接入被保存在Amazon S3、Redshift或者RDS当中的数据,并能够运行二进制分类、多类分类或者数据递归以创建模型。然而,该服务高度依赖于Amazon本身。除了要求数据必须被存储于Amazon之内之外,其结果模型也无法进行导入与导出,另外训练模型的数据库集亦不可超过100 GB。当然,这只是Amazon Machine Learning的起步成效,其也足以证明机器学习完全具备可行性——而非技术巨头的奢侈玩物。

微软分布式机器学习工具包

我们用于解决机器学习难题的设备数量越多,实际效果就越好——但将大量设备汇聚起来并开发出能够顺利跨越各设备运行的机器学习应用绝非易事。微软的DMTK(即分布式机器学习工具包)框架则能够轻松跨越一整套系统集群解决多种机器学习任务类型的分发难题。

DMTK的计费机制归属于框架而非完整的开箱即用解决方案,因此其中实际涉及的算法数量相对较小。不过DMTK在设计上允许用户进行后续扩展,同时发挥现有集群之内的有限资源。举例来说,集群中的每个节点都拥有一套本地缓存,其能够由中央服务器节点为当前任务提供参数,从而降低实际流量规模。

谷歌TensorFlow

与微软的DMTK类似,谷歌TensorFlow是一套专门面向多节点规模设计而成的机器学习框架。与谷歌的Kubernetes类似,TensorFlow最初也是为谷歌内部需求所量身打造,但谷歌公司最终决定将其以开源产品进行发布。

TensorFlow能够实现所谓数据流图谱,其中批量数据(即‘tensor’,意为张量)可通过一系列由图谱描述的算法进行处理。系统之内往来移动的数据被称为“流”,可由CPU或者GPU负责处理。谷歌公司的长期规划在于通过第三方贡献者推动TensorFlow项目的后续发展。

微软计算网络工具包

趁着DMTK的推出良机,微软公司还发布了另一套机器学习工具包,即计算网络工具包——或者简称CNTK。

CNTK与谷歌TensorFlow非常类似,因为它允许用户通过有向图的方式建立神经网络。另外,微软还将其视为可与Caffe、Theano以及Torch等项目相媲美的技术成果。它的主要亮点在于出色的速度表现,特别是以并行方式利用多CPU与多GPU的能力。微软公司宣称,其利用CNTK与Azure之上的GPU集群共同将Cortana语音识别服务训练的速度提升到了新的数量级。

最初作为微软语音识别项目组成部分开发而成的CNTK,最终于2015年4月以开源项目形式走向公众视野——但其随后以更为宽松的MIT类别许可在GitHub进行了重新发布。

Veles (三星)

Veles是一套面向深层学习应用程序的分布式平台,而且与TensorFlow与DMTK一样,它也由C++编写而成——不过它利用Python在不同节点之间执行自动化与协作任务。相关数据集可在被供给至该集群之前经过分析与自动标准化调整,另外其还具备REST API以允许将各已训练模型立即添加至生产环境当中(假设大家的硬件已经准备就绪)。

Veles并非单纯利用Python作为其粘合代码。IPython(如今已被更名为Jupyter)数据可视化与分析工具能够对来自Veles集群的结果进行可视化处理与发布。三星公司希望能够将该项目以开源形式发布,从而推进其进一步发展——例如面向Windows与Mac OS X。

Brainstorm

作为瑞士卢加诺博士生Klaus Greff于2015年开发的技术成果,Brainstorm项目的目标在于“帮助深层神经网络实现高速、灵活与趣味性。”目前其已经包含有一系列常见神经网络模型,例如LSTM。

Brainstorm采用Python代码以提供两套“hander”,或者称之为数据管理API——其一来自Numpy库以实现CPU计算,其二通过CUDA使用GPU资源。大部分工作由Python脚本完成,所以各位没办法指望其提供丰富的GUI前端——大家需要自己动手接入相关界面。不过从长期规划角度看,其能够使用“源自多种早期开源项目的学习经验”,同时利用“能够与多种平台及计算后端相兼容的新的设计元素。”

mlpack 2

mlpack这套基于C++的机器学习库最初诞生于2011年,其设计倾向为“可扩展性、速度性与易用性,”该库构建者们指出。用户可以通过命令行可执行缓存运行mlpack以实现快速运行、“黑盒”操作或者通过C++ API完成其它更为复杂的任务。

其2.0版本则拥有一系列重构与新特性,其中包括多种新算法,并对现有算法加以修改以提升运行速度或者缩小其体积。举例来说,它能够将Boost库的随机数生成器指向C++ 11的原生随机功能。

mlpack的固有劣势在于其缺乏除C++之外的任何其它语言绑定能力,这意味着从R语言到Python语言的各类其他用户都无法使用mlpack——除非其他开发者推出了自己的对应语言软件包。目前该项目正积极添加对MatLab的支持能力,不过此类项目一般更倾向于直接面向各承载机器学习任务的主流环境。

Marvin

作为另一套刚刚诞生的方案,Marvin神经网络框架为Princeton Vision集团的开发成果。它可谓“为hack而生”,因为项目开发者们在其说明文档当中直接做出这样的描述,且仅仅依赖于C++编写的数个文件及CUDA GPU框架即可运行。尽管其代码本身的体积非常小巧,但其中仍然存在相当一部分能够复用的部分,并可以将pull请求作为项目自身代码进行贡献。

Neon

Nervana公司专门构建自己的深层学习硬件与软件平台,其推出了一套名为Neon的深层学习框架,并将其作为开源项目。该项目利用可插拔模块以支持高强度负载在CPU、GPU或者Nervana自有定制化硬件上运行。

Neon主要由Python语言编写而成,C++为其编写了多条代码片段并带来可观的运行速度。这样的特性让Neon立即成为各Python开发之数据科学场景或者其它绑定Python之框架的理想解决方案。

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
目录
相关文章
|
7月前
|
数据采集 自动驾驶 Java
PAI-TurboX:面向自动驾驶的训练推理加速框架
PAI-TurboX 为自动驾驶场景中的复杂数据预处理、离线大规模模型训练和实时智能驾驶推理,提供了全方位的加速解决方案。PAI-Notebook Gallery 提供PAI-TurboX 一键启动的 Notebook 最佳实践
|
机器学习/深度学习 人工智能 算法
Post-Training on PAI (3):PAI-ChatLearn,PAI 自研高性能强化学习框架
人工智能平台 PAI 推出了高性能一体化强化学习框架 PAI-Chatlearn,从框架层面解决强化学习在计算性能和易用性方面的挑战。
|
8月前
|
机器学习/深度学习 人工智能 算法
PaperCoder:一种利用大型语言模型自动生成机器学习论文代码的框架
PaperCoder是一种基于多智能体LLM框架的工具,可自动将机器学习研究论文转化为代码库。它通过规划、分析和生成三个阶段,系统性地实现从论文到代码的转化,解决当前研究中代码缺失导致的可复现性问题。实验表明,PaperCoder在自动生成高质量代码方面显著优于基线方法,并获得专家高度认可。这一工具降低了验证研究成果的门槛,推动科研透明与高效。
689 19
PaperCoder:一种利用大型语言模型自动生成机器学习论文代码的框架
|
7月前
|
机器学习/深度学习 人工智能 分布式计算
Post-Training on PAI (1):一文览尽开源强化学习框架在PAI平台的应用
Post-Training(即模型后训练)作为大模型落地的重要一环,能显著优化模型性能,适配特定领域需求。相比于 Pre-Training(即模型预训练),Post-Training 阶段对计算资源和数据资源需求更小,更易迭代,因此备受推崇。近期,我们将体系化地分享基于阿里云人工智能平台 PAI 在强化学习、模型蒸馏、数据预处理、SFT等方向的技术实践,旨在清晰地展现 PAI 在 Post-Training 各个环节的产品能力和使用方法,欢迎大家随时交流探讨。
|
9月前
|
机器学习/深度学习 算法 数据挖掘
PyTabKit:比sklearn更强大的表格数据机器学习框架
PyTabKit是一个专为表格数据设计的新兴机器学习框架,集成了RealMLP等先进深度学习技术与优化的GBDT超参数配置。相比传统Scikit-Learn,PyTabKit通过元级调优的默认参数设置,在无需复杂超参调整的情况下,显著提升中大型数据集的性能表现。其简化API设计、高效训练速度和多模型集成能力,使其成为企业决策与竞赛建模的理想工具。
328 12
PyTabKit:比sklearn更强大的表格数据机器学习框架
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
阿里云人工智能平台 PAI 开源 EasyDistill 框架助力大语言模型轻松瘦身
本文介绍了阿里云人工智能平台 PAI 推出的开源工具包 EasyDistill。随着大语言模型的复杂性和规模增长,它们面临计算需求和训练成本的障碍。知识蒸馏旨在不显著降低性能的前提下,将大模型转化为更小、更高效的版本以降低训练和推理成本。EasyDistill 框架简化了知识蒸馏过程,其具备多种功能模块,包括数据合成、基础和进阶蒸馏训练。通过数据合成,丰富训练集的多样性;基础和进阶蒸馏训练则涵盖黑盒和白盒知识转移策略、强化学习及偏好优化,从而提升小模型的性能。
|
机器学习/深度学习 人工智能 自然语言处理
人工智能与机器学习:探索未来的技术边界
【10月更文挑战第18天】 在这篇文章中,我们将深入探讨人工智能(AI)和机器学习(ML)的基础知识、应用领域以及未来趋势。通过对比分析,我们将揭示这些技术如何改变我们的生活和工作方式,并预测它们在未来可能带来的影响。文章旨在为读者提供一个全面而深入的理解,帮助他们更好地把握这一领域的发展趋势。
|
10月前
|
人工智能 自然语言处理 算法
MT-MegatronLM:国产训练框架逆袭!三合一并行+FP8黑科技,大模型训练效率暴涨200%
MT-MegatronLM 是摩尔线程推出的面向全功能 GPU 的开源混合并行训练框架,支持多种模型架构和高效混合并行训练,显著提升 GPU 集群的算力利用率。
773 18
|
10月前
|
机器学习/深度学习 人工智能 Java
Java机器学习实战:基于DJL框架的手写数字识别全解析
在人工智能蓬勃发展的今天,Python凭借丰富的生态库(如TensorFlow、PyTorch)成为AI开发的首选语言。但Java作为企业级应用的基石,其在生产环境部署、性能优化和工程化方面的优势不容忽视。DJL(Deep Java Library)的出现完美填补了Java在深度学习领域的空白,它提供了一套统一的API,允许开发者无缝对接主流深度学习框架,将AI模型高效部署到Java生态中。本文将通过手写数字识别的完整流程,深入解析DJL框架的核心机制与应用实践。
641 3
|
10月前
|
数据采集 人工智能 API
生物医药蛋白分子数据采集:支撑大模型训练的技术实践分享
作为生物信息学领域的数据工程师,近期在为蛋白质相互作用预测AI大模型构建训练集时,我面临着从PDB、UniProt等学术数据库获取高质量三维结构、序列及功能注释数据的核心挑战。通过综合运用反爬对抗技术,成功突破了数据库的速率限制、验证码验证等反爬机制,将数据采集效率提升4倍,为蛋白质-配体结合预测模型训练提供了包含10万+条有效数据的基础数据集,提高了该模型预测的准确性。
352 1

热门文章

最新文章