整理 | Jane
出品 | AI科技大本营(ID:rgznai100)
一个好工具,能提高开发效率,优化项目研发过程,无论是企业还是开发者个人都在寻求适合自己的开发工具。但是,选择正确的工具并不容易,有时这甚至是一项艰巨的任务。
2018 年底,我们整理了去年备受关注的 Python开源工具与项目 Top100、Github 开源项目总结情况以及最受欢迎开源项目 Top200。今天,AI科技大本营(ID:rgznai100)通过搜集这一年(2018.10--2019.10)国内外新发布的 AI 工具,从中挑选出了 45 个备受欢迎的开源工具,希望你不再错过。
1、Jax【Stars:5.5k】
Jax集合Autograd和XLA的高性能机器学习研究工具,由Google开源贡献。很多人都说Jax是TF的替代品,更简洁易用。
开源地址:
https://github.com/google/jax
2、AdaNet【Stars:2.9k】
AdaNet 是一款基于TensorFlow 的轻量型框架。可以使用最少的专家干预来自动学习高质量模型,AdaNet提供的通用框架,不仅可以用于学习神经网络架构,还可以学习集成,从而获得更好的模型。
开源地址:
https://github.com/tensorflow/adanet
3、TensorFlow Extended (TFX)【Stars:720】
TFX 是面向生产环境的机器学习工具。借助TFX,可以为满足生产应用部署与最佳实践的众多需求,创建一条生产级机器学习流水线。TFX从提取数据开始,然后通过数据验证、特征工程、训练、评估提供服务。
开源地址:
https://github.com/tensorflow/tfx
TensorFlow Federated (TFF)框架可用于去中心化(decentralized)数据的机器学习及运算实验。它实现了联邦学习(Federated Learning,FL)方法,将为开发者提供分布式机器学习,以便在没有数据离开设备的情况下,在多种设备上训练共享的 ML 模型。其中,它通过加密方式提供多一层的隐私保护,并且设备上模型训练的权重与用于连续学习的中心模型共享。
开源地址:
https://github.com/tensorflow/federated
MediaPipe 是一款由 Google Research 开发并开源的多媒体机器学习模型应用框架。谷歌的一系列重要产品如 YouTube、Google Lens、ARCore、Google Home 以及 Nest 都已深度整合了 MediaPipe。
开源地址:
https://github.com/google/mediapipe
谷歌 X 实验室与加拿大 Perimeter 理论物理研究所(Perimeter Institute for Theoretical Physics )的研究人员合作开发了张量网络 TensorNetwork,以 TensorFlow 作为后端,针对 GPU 处理进行了优化。与在 CPU 上计算工作相比,可以实现高达 100 倍的加速。这是一个全新的开源库,旨在提高张量计算效率。
开源地址:
https://github.com/google/tensornetwork
GPipe 是一个分布式机器学习库,使用同步随机梯度下降和流水线并行技术进行训练,适用于任何由多个序列层组成的 DNN。重要的是,GPipe 让研究人员无需调整超参数,即可轻松部署更多加速器,从而训练更大的模型并扩展性能。
开源地址:
https://github.com/tensorflow/lingvo/blob/master/lingvo/core/gpipe.py
MLIR 通过定义一个通用的中间表示,将在TensorFlow和类似的ML框架中执行高性能机器学习模型所需的基础设施进行统一,包括高性能计算技术应用或强化学习这类搜索算法的集成。MLIR旨在降低开发新硬件的成本,并提高现有TensorFlow用户的可用性。
开源地址:
https://github.com/tensorflow/mlir
OpenSpiel 是一系列环境和算法,用于研究一般强化学习和游戏中的搜索/规划。OpenSpiel 的目的是通过与一般游戏类似的方式促进跨多种不同游戏类型的一般多智能体强化学习,但重点是强调学习而不是竞争形式。当前版本的 OpenSpiel 包含 20 多种游戏的不同类型实现(完美信息、同步移动、不完美信息、网格世界游戏、博弈游戏和某些普通形式/矩阵游戏)。
核心的 OpenSpiel 实现基于 C ++ 和 Python 绑定,这有助于在不同的深度学习框架中采用。该框架包含一系列游戏,允许 DRL agent 学会合作和竞争行为。同时,OpenSpiel 还包括搜索、优化和单一 agent 等多种 DRL 算法组合。
开源地址:
https://github.com/deepmind/open_spiel
Spriteworld 是一个基于 python 的强化学习环境,由一个可以自由移动的形状简单的二维竞技场组成。更具体地说,SpriteWorld 是一个二维方形竞技场,周围可随机放置数量可变的彩色精灵,但不会发生碰撞。
开源地址:
https://github.com/deepmind/spriteworld
强化学习行为套件(bsuite,The Behaviour Suite for Reinforcement Learning )的目标是成为强化学习领域的 MNIST。具体来说,bsuite 是一系列用来突出 agent 可扩展性关键点的实验。这些实验易于测试和迭代,对基本问题,例如“探索”或“记忆”进行试验。
开源地址:
https://github.com/deepmind/bsuite
全部开源:
https://ai.facebook.com/results/open-source/?content_types%5B0%5D=blog
增强版的 LASER是首个能够成功探索大型多语种句子表征的工具包,共包含 90 多种语言,由 28 种不同的字母表编写。这项庞大的工作也引发了整个 NLP 社区的广泛关注。该工具包将所有语言联合嵌入到单个共享空间,而不是为每个语言单独建立模型。
开源地址:
https://github.com/facebookresearch/LASER
10月11日,Facebook发布了Detectron2,这是基于PyTorch框架,以maskrcnn-benchmark为起点对Detectron的彻底重写。通过全新的模块化设计,Detectron2灵活且可扩展,能够在单个或多个GPU服务器上提供更加快速的训练。
Detectron2已经包含了众多保质量实现的目标检测算法,包括:DensePose, panoptic feature pyramid networks和Mask RCNN的各种变种。,其模块化特性也使其能够有效帮助研究人员探索最先进的算法设计。
开源地址:
https://github.com/facebookresearch/detectron2
Habitat-Sim 是一个仿真的、灵活、高性能的3D模拟器,可配置代理、多个传感器和通用3D数据集处理,让我们可以在其中训练和评估 AI智能体。
开源地址:
https://github.com/facebookresearch/habitat-sim
PyText 是一个基于 PyTorch 构建的 NLP 建模(基于深度学习)框架,核心功能可以支持文本分类、序列标注等神经网络模型。PyText 可以简化工作流程,加速试验,同时还能促进大规模部署。
开源地址:
https://github.com/facebookresearch/pytext
Nevergrad 是Facebook 内部也在使用的一个无梯度优化 Python工具箱。除了内部项目中使用,还可以广泛运用在机器学习的多种问题中,比如多模态问题、可分离或旋转问题、部分可分离问题、离散、连续或混合等问题。
开源地址:
https://github.com/facebookresearch/nevergrad
QNNPACK(量化神经网络包)是一个针对低精度高性能神经网络推理的移动端优化库。据官方公布,QNNPACK可以成倍提升神经网络的推理效率,已经成为 PyTorch 1.0 的一部分, 也已经被集成到 Facebook 的应用程序中,部署到数十亿台设备上。
开源地址:
https://github.com/pytorch/QNNPACK
PBG 是一个用于学习大规模图嵌入的分布式系统,特别适用于处理具有多达数十亿实体和数万亿条边的大型网络交互图。它在 2019 年的 SysML 会议上发表的大规模图嵌入框架论文中提出。
PBG 比常用的嵌入软件更快,并在标准基准上生成与最先进模型质量相当的嵌入。有了这个新工具,任何人都可以用一台机器或多台机器并行地读取一个大图并快速生成高质量的嵌入。
开源地址:
https://github.com/facebookresearch/PyTorch-BigGraph
CrypTen是一个基于PyTorch的隐私保护机器学习框架 。它的目标是让机器学习的实践者能够使用安全地进行计算。
开源地址:
https://github.com/facebookresearch/crypten
Captum是一个基于 Pytorch 的一个模型解释库,其功能强大、灵活且易于使用。该库为所有最新的算法提供了解释性,帮助研究人员及开发者更好地理解对模型预测结果产生作用的具体特征、神经元及神经网络层。
开源地址:
https://www.captum.ai/
Facebook 开源的深度学习推荐模型DLRM 是基于 PyTorch 和 Caffe2 平台实现。这也是一个在生产环境中提供个性化结果的模型,通过结合协同过滤算法和预测分析方法,使模型获得进一步效果的提升。
开源地址:
https://github.com/facebookresearch/dlrm
Pythia 是一个模块化的深度学习框架。它可以支持视觉和语言领域的多任务处理,内置各种数据集,同时还支持数据并行和分布式数据并行的分布式训练,满足用户对损失、度量、调度和优化器的定制需求。
开源地址:
https://github.com/facebookresearch/pythia
与传统基于张量(Tensor)的神经网络相比,图神经网络将图 (Graph) 作为输入,从图结构中学习潜在知识,该方法在近些年已被证明在许多场景可以取得很好的效果。然而,使用传统的深度学习框架(比如 TensorFlow、Pytorch、MXNet)并不能方便地进行图神经网络的开发和训练,而 DGL作为专门面向图神经网络的框架,可以很好地弥补这一缺陷。该框架在开源后于国内外引起了强烈的反响。
开源地址:
http://dgl.ai
https://github.com/dmlc/dgl
Neo-AI 是 AWS 开源一个AI模型优化框架,包含了对 TVM、Treelite、DLR 所做多一些改进与创新。Neo-AI 运行时占用的空间并不大,转换模型的速度可以加快2 倍,但精度并不会受到损失,在目标硬件上运行时并不依赖于框架。
开源地址:
https://github.com/neo-ai
1、NNI (Neural Network Intelligence) 【Stars:3.5k】
NNI 是自动机器学习(AutoML)的工具包。它通过多种调优的算法来搜索最好的神经网络结构和(或)超参,并支持单机、本地多机、云等不同的运行环境。
开源地址:
https://github.com/microsoft/nni/blob/master/README_zh_CN.md
微软开源的 AI 计算平台,帮助加速机器学习的模型训练过程。提供了完整的 AI 模型训练和资源管理能力,能轻松扩展,并支持各种规模的私有部署、云和混合环境。
开源地址:
https://github.com/microsoft/pai/blob/master/README.md
微软开源的可解释机器学习工具包 lnterpretML。它不仅能执行很多可理解的模型,也希望帮助开发人员能尝试各种方法解释模型和系统。
开源地址:
https://github.com/interpretml/interpret
几个月以前,微软研究院宣布了Fiddle项目的创立,其包括了一系列的旨在简化分布式深度学习的研究项目。PipeDreams是Fiddle发布的第一个侧重于深度学习模型并行训练的项目之一。PipeDream采用一种有别于其它方法的方式,利用称为“流水线并行”的技术来扩展深度学习模型的训练。
开源地址:
https://github.com/msr-fiddle/pipedream
一个基于TensorFlow的工具箱,不用写代码就能够训练和测试深度学习模型。可以帮助开发者更好地理解深度学习方面的能力,并能够推进模型快速迭代。对AI专家来说,Ludwig可以简化原型设计和数据处理过程,从而让他们能够专注于开发深度学习模型架构。
开源地址:
https://github.com/uber/ludwig
OpenVINO 是一个模型训练框架,提供了大量的预训练模型,同时提供模型重新训练与部署的拓展通道。
开源地址:
https://github.com/opencv/dldt
一个基于 .NET 的机器学习生态,提供一个和 Python 生态体验一致的工具库,让模型迁移更容易、学习曲线最低。SciSharp 从最基本的张量计算库 NumSharp 开始构建,到 TensorFlow Binding,再到吸纳其它深度学习库 SiaNet 做 ArrayFire.NET,最后到开发ICSharpCore以支持Jupyter Notebook调试。
TensorFlow.NET保持和 Python 代码几乎一样的语法和接口,让目前流行的模型能够快速移植到 TF.NET。开发者可以很容易地在 .NET 上运行用 Tensorflow 开发的模型,使用 Jupyter Notebook 一样可以在线开发和调试 C# 语言程序和 TensorFlow.NET,并可以实时呈现绘图的效果。
开源地址:
https://github.com/SciSharp/TensorFlow.NET
NumSharp 是 Python 流行库 numpy 的纯 C# 端口,目的是提供快速、零拷贝和 n 维计算。目前,它是唯一一个为 .NET 编写的稳定库,能够在 n 维之间执行数学运算,如矩阵乘法、换位、加法等。
开源地址:
https://github.com/SciSharp/Numpy.NET
Euler是大规模分布式的图学习框架,配合TensorFlow或者阿里开源的XDL等深度学习工具。Euler 采用分层灵活可扩展设计、大规模高性能异构图学习、灵活多样的图算法支持、通用 GNN 训练加速的设计理念,支持图分割和高效稳定的分布式训练,可以轻松支撑数十亿点、数百亿边的计算规模。
开源地址:
https://github.com/alibaba/euler/wiki
X-DeepLearning(简称XDL)是面向高维稀疏数据场景(如广告/推荐/搜索等)深度优化的一整套解决方案。新框架 XDL 针对阿里妈妈业务数据高维稀疏的场景特点进行了优化。
开源地址:
https://github.com/alibaba/x-deeplearning
MNN是一个轻量级的深度神经网络推理引擎,在端侧加载深度神经网络模型进行推理预测。目前,MNN已经在阿里巴巴的手机淘宝、手机天猫、优酷等20多个App中使用,覆盖直播、短视频、搜索推荐、商品图像搜索、互动营销、权益发放、安全风控等场景。此外,IoT等场景下也有若干应用。
开源地址:
https://github.com/alibaba/MNN/blob/master/README_CN.md
腾讯Angel 3.0尝试打造一个全栈的机器学习平台,功能特性涵盖了机器学习的各个阶段:特征工程、模型训练、超参数调节和模型服务。
开源地址:
https://github.com/Angel-ML/angel
BytePS 是今年字节跳动发布的一款高性能的通用分布式训练框架。它支持TensorFlow、Keras、PyTorch 和 MXNet,可以在TCP或RDMA网络上运行。BytePS在很大程度上优于现有的开源分布式培训框架。
开源地址:
https://github.com/bytedance/byteps
香港中文大学-商汤联合实验室开源了基于 PyTorch 的检测库——mmdetection。这个开源库提供了已公开发表的多种视觉检测核心模块。通过这些模块的组合,可以迅速搭建出各种著名的检测框架,比如 Faster RCNN,Mask RCNN,和 R-FCN 等各种新型框架,从而大大加快检测技术研究的效率。
开源地址:
https://github.com/open-mmlab/mmdetection
PySOT 目标跟踪库实现了目前 SOTA 的多个单目标跟踪算法,包括SiamRPN和SiamMask。PySOT 是用 Python 编写,基于 PyTorch 框架实现,同时该项目还包含一个评估跟踪器的Python 接口。
开源地址:
https://github.com/STVIR/pysot
SMRC(Sogou machine Reading Comprehension)目前业内最全的TensorFlow版本的阅读理解工具集合,从相关数据集的下载到最后模型的训练和测试,一应俱全。
开源地址:
https://github.com/sogou/SMRCToolkit
ElasticDL是一个分布式的智能学习系统,基于TensorFlow2.0构建,通过SQLFlow被调用的模型,会基于基础架构来进行分布式执行。它的容错和弹性调度机制,能让集群的利用效率更高。
开源地址:
https://github.com/sql-machine-learning/elasticdl/
微众银行AI团队开源的联邦学习框架。联盟学习开源项目FATE(Federated AI Technology Enabler),提供了一种基于数据隐私保护的安全计算框架,为机器学习、深度学习、迁移学习算法提供强有力的安全计算支持。安全底层支持同态加密、秘密共享、哈希散列等多种多方安全计算机制,算法层支持多方安全计算模式下的逻辑回归、Boosting、联邦迁移学习等。
该框架可以帮助学术研究人员快速开发算法原型;为工业界人员快速开发应用提供一种简洁有效的解决方案,支持在多场景下的开拓和应用;借助其灵活的架构,用户可以轻松地将计算工作部署到多种平台(CPU、GPU)和设备(桌面设备、服务器集群、移动设备等)
开源地址:
https://www.fedai.org.cn/cn/
https://github.com/FederatedAI/FATE
DeepCTR 一个易于使用、模块化和可扩展的基于深度学习的 CTR 模型包,带有许多核心组件层,可用于轻松构建自己定制的模型。
开源地址:
https://github.com/shenweichen/DeepCTR
ALiPy是一个基于Python实现的主动学习工具包,内置20余种主动学习算法,并提供包括数据处理、结果可视化等工具。ALiPy根据主动学习框架的不同部件提供了若干独立的工具类,这样一方面可以方便地支持不同主动学习场景,另一方面可以使用户自由地组织自己的项目,用户可以不必继承任何接口来实现自己的算法与替换项目中的部件。此外,ALiPy不仅支持多种不同的主动学习场景,如标注代价敏感,噪声标注者,多标记查询等。
开源地址:
https://github.com/NUAA-AL/ALiPy
4、Real-Time Voice Cloning【Stars:9.1k】
Real-Time Voice Cloning 是论文《Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis(SV2TTS)》的实现。SV2TTS 是一个三阶段深度学习框架,可以在 5 秒的音频中创建一个语音的数字表示,并使用它来调整一个经过训练的文本到语音模型,以推广到新的语音。
开源地址:
https://github.com/CorentinJ/Real-Time-Voice-Cloning
5、Weights and Biases 【Stars:1.3k】
一个在机器学习实验过程中用于可视化和跟踪的工具。它与框架无关,比TensorBoard更轻。每次运行一个装有 wandb 的脚本时,都会保存超参数和输出度量。在训练过程中可视化模型,还能轻松对比模型的版本,还会自动跟踪你的代码、系统指标和配置参数的状态。
开源地址:
https://github.com/wandb/client