标签 PyTorch 下的文章

PyTorch 和 Triton 正在打破英伟达 CUDA 的垄断

大部分机器学习软件开发框架严重依赖于英伟达 CUDA,并在英伟达 GPU 上表现最佳。但随着 PyTorch 2.0 和 OpenAI Triton 的到来,英伟达 CUDA 对机器学习的垄断地位正逐渐瓦解。即将到来的 PyTorch 2.0 在英伟达 A100 上的训练性能提升了 86%,在 CPU 上的推理性能提升了 26%。而且这种优势可以扩展到 AMD、英特尔、特斯拉、谷歌、亚马逊、微软等等各个公司生产的 GPU 和 AI 加速器上。而 Triton 能让高级语言达到与使用低级语言相当的性能,提高了可用性。

消息来源:Semi Analysis
老王点评:又一次证明了开源胜过闭源,无论闭源的护城河有多深。

Basecamp 因巨额账单退出云计算

Basecamp 的 CTO,也是 Ruby On Rails 的创建者 DHH 介绍了让该公司退出云计算的巨额账单。其 2022 年的费用为 320 万美元,绝大部分都花在了 AWS 上,其中 S3 花费 90 万美元,RDS 47 万美元,OpenSearch 52 万美元,Elasticache 12 万美元。即便如此,也是经过大量工作才减少到这一费用的,该团队不但运行了成本检查计划,还就作为私人协议就长期使用达成了协议。DHH 还用戴尔服务器的三年均摊成本做了对比。

消息来源:The Register
老王点评:云计算确实有很多好处,但也可能是个让你花钱上瘾的无底洞。

使用了 25 年的笔记本内存规范 SO-DIMM 将被替换

制定内存标准的组织 JEDEC 正在制定新规范,以取代已经使用了 25 年的 SO-DIMM 规范。新的 CAMM 标准将基于戴尔公司的设计,目标是在 2023 年下半年完成 1.0 规范,到明年推出基于 CAMM 的系统。现有的 SO-DIMM 在 DDR5/6400 时已经遇到了“困境”,CAMM 的主要吸引力在于它可以实现更高的内存密度,同时还可以扩展到更高的时钟速度。

消息来源:PC World
老王点评:这是不是代表以后笔记本会需要更多内存?

AMD 声称新的芯片比 M1 Pro 快 30%

AMD 为超薄笔记本推出了新的 AMD Ryzen 7040 系列处理器。该系列芯片基于 4 纳米工艺,AMD 声称该系列最高端的芯片在多处理工作负载中比 M1 Pro 快34%,在 AI 任务中比 M2 快 20%。除了运行效率外,AMD 声称新的芯片将在超薄笔记本中提供 30 多个小时的视频播放。此外,该系列芯片直接内置了 AI 引擎,在执行 AI 任务时比苹果的 M2 芯片快 20%,同时能源效率提高 50%。比较搞笑的一个插曲是,人们发现 AMD 在 CES 演讲中宣传这一系列新芯片时使用的电脑是 MacBook Pro。

消息来源:Mac Rumors
老王点评:看来 AMD 开始努力了。

PyTorch 遭遇依赖混淆攻击,可能是研究人员失误导致

在 12 月 25 日 - 30 日之间下载 PyTorch 框架的隔夜构建版本的用户会安装恶意版本的 torchtriton 依赖,窃取系统数据。PyTorch 项目建议用户卸载旧版本安装最新的隔夜构建版本。使用 PyTorch 稳定版本的用户不受影响。一位自称对此事负责的人士表示,恶意版本的 torchtriton 是一个研究项目的一部分,但不小心出差错了。他们对此表示道歉,称窃取的数据已经全部删除。这是最新一起的依赖混淆攻击。

消息来源:Solidot
老王点评:总是有人有意或无意地在开源项目中做出恶意行为,但更令人警惕的是,开源项目对这些行为的防护形同虚设。

戴尔将在明年底之前清除产品中的中国芯片

据日经亚洲报道,戴尔告诉供应商,要大幅减少其产品中来自中国的部件数量,包括那些由非中国制造商在中国制造的部件。这是将其供应链从中国转移出去的更广泛努力的一部分。戴尔的目标是在 2024 年年底前从其产品中消除所有在中国制造的芯片。

消息来源:The Register
老王点评:戴尔在中国的销量可不低啊。

Stack Overflow 临时封杀 ChatGPT

OpenAI 的新通用聊天机器人原型 ChatGPT 过去几天风靡互联网,它在解决各种问题上的能力使其可以部分替代谷歌等搜索引擎和 Stack Overflow 等编程问答社区。Stack Overflow 上也涌入了数以千计的用 ChatGPT 回答的问题,但由于 ChatGPT 给出的答案正确性太低,发布的人也缺乏专业性,甚至也不愿意验证正确性,对寻求正确答案的用户来说是有害的。Stack Overflow 因而发表声明,宣布临时封杀 ChatGPT。如果用户被发现使用 ChatGPT 回答问题,他们可能会受到禁止继续发帖的惩罚。

消息来源:Stack Overflow
老王点评:虽然 ChatGPT 能做到一些令人惊讶的对话,但是本质上并不是有效的知识和思考,因此,这些似是而非的回答确实可能会毁了寻求答案者的信任。但是,有个问题是,Stack Overflow 如何识别这些以假乱真的回答?

开源软件托管商 Fosshost 关闭,CEO 失联

非盈利托管商和云计算服务商 Fosshost 免费托管了多个知名的开源项目,其中包括 GNOME、Armbian、Debian 等项目的部分内容,不过,GNOME 和 Debian 的核心基础设施并不依赖 Fosshost。Fosshost 发布了即将下线的公告称,由于情况超出了志愿者的控制,服务器无法保证能继续上线,他们预计将会很快下线。据称下线原因是控制着银行账号和资金的 CEO 已经失联了六个月,以至于无法支付服务器托管费用。

消息来源:Solidot
老王点评:本来很好的开源项目,却由于不良的管理而导致结束。希望有开源基金会或科技企业可以伸出援手。

PyTorch 终于进入 2.0,性能大幅提升

在 2021 年,开发者们对 PyTorch 1.10 是否应该被标记为 2.0 版本进行过简短讨论。当时认为 PyTorch 1.10 与 1.9 相比没有足够的根本性变化,不值得将其升级到 2.0 的主要版本号。但现在,开发者们认为是 PyTorch 2.0 的正确时机,因为该项目引入了一个新模式,称为 torch.compile,大幅提升了速度。经验证,在 2.0 试验版的大约 160 个开源模型上,速度提高了 43%。

消息来源:Venture Beat
老王点评:虽然有部分代码是 C++ 写的,但是能取得这样的性能提高也非常可观。

Rust Linux 驱动程序实现与 C 代码相当的性能

在都柏林举行的 2022 年 Linux Plumbers 大会(LPC)的 Rust 小型会议上,介绍了 Rust for Linux 工作的最新状况。Linux 内核已经有了很好的 C 语言编写的 NVMe 驱动,西部数据的测试显示,虽然其开发的 Rust NVMe 驱动仍处于早期阶段,但其驱动性能与 C 编写的驱动一样好。会议上介绍了最新的补丁系列是如何被精简以减轻上游工作的,以及过去一年的各种进展,但是关于 Rust 何时并入主线,会议上并没有披露具体的时间表和进展。

消息来源:Phoronix
老王点评:非常好的信号,但是大家都更关心什么时候能进入主线。

PyTorch 成为 Linux 基金会的顶级项目

开源 Python 机器学习库 PyTorch 成为 Linux 基金会托管的顶级项目,成立 PyTorch 基金会,其理事会的核心成员包括 AMD、AWS、谷歌云、Meta、Azure 和英伟达。PyTorch 最早由 Facebook 创建,自 2017 年以来,已经有超过 2400 名开发者在 PyTorch 基础上创建了 54000 个项目,PyTorch 成为了 AI 研究的主要平台之一。

消息来源:PyTorch
老王点评:PyTorch 是一个不错的项目,在 LF 的支持下,应该会有更好的发展。

思科承认“阎罗王”勒索团伙泄露了其数据,但表示没有问题

5 月份对思科进行了攻击的“阎罗王(Yanluowang)”勒索团伙周末在暗网上公开泄露了盗取的文件。显然,思科选择不支付勒索团伙要求的勒索,这导致被盗数据被公布。思科的威胁情报部门证实了所泄露文件的真实性,并重申其业务没有受到不利影响。然而,“阎罗王”勒索组织说,其窃取了多达 55GB 的数据,其中包括源代码和机密材料等敏感信息。

消息来源:The Register
老王点评:这组织的名字真是别致,但是到底对思科有没有影响,只有思科自己知道。

有一个令人震惊的事实,即人工智能和机器学习的工具和技术在近期迅速兴起。深度学习,或者说“注射了激素的机器学习”,数据科学家和机器学习专家在这个领域有数不胜数等可用的库和框架。很多这样的框架都是基于 Python 的,因为 Python 是一个更通用,相对简单的语言。TheanoKerasTensorFlow 是几个基于 Python 构建的流行的深度学习库,目的是使机器学习专家更轻松。

Google 的 TensorFlow 是一个被广泛使用的机器学习和深度学习框架。 TensorFlow 开源于 2015 年,得到了机器学习专家社区的广泛支持,TensorFlow 已经迅速成长为许多机构根据其机器学习和深度学习等需求而选择的框架。 另一方面,PyTorch 是由 Facebook 最近开发的用于训练神经网络的 Python 包,改编自基于 Lua 的深度学习库 Torch。 PyTorch 是少数可用的深度学习框架之一,它使用 基于磁带的自动梯度系统 tape-based autograd system ,以快速和灵活的方式构建动态神经网络。

在这篇文章中,我们将 PyTorch 与 TensorFlow 进行不同方面的比较。

让我们开始吧!

什么编程语言支持 PyTorch 和 TensorFlow?

虽然主要是用 C++ 和 CUDA 编写的,但 TensorFlow 包含一个位于核心引擎上的 Python API,使得更便于被 Python 支持者 Pythonistas 使用。 除了 Python,它还包括 C++、Haskell、Java、Go 和 Rust 等其他 API,这意味着开发人员可以用他们的首选语言进行编码。

虽然 PyTorch 是一个 Python 软件包,但你也可以提供使用基本的 C/C++ 语言的 API 进行编码。 如果你习惯使用 Lua 编程语言,你也可以使用 Torch API 在 PyTorch 中编写神经网络模型。

PyTorch 和 TensorFlow 有多么易于使用?

如果将 TensorFlow 作为一个独立的框架使用,它可能会有点复杂,并且会给深度学习模型的训练带来一些困难。 为了减少这种复杂性,可以使用位于 TensorFlow 复杂引擎之上的 Keras 封装,以简化深度学习模型的开发和训练。 TensorFlow 也支持 PyTorch 目前没有的分布式培训。 由于包含 Python API,TensorFlow 也可以在生产环境中使用,即可用于培训练和部署企业级深度学习模型。

PyTorch 由于 Torch 的复杂用 Python 重写。 这使得 PyTorch 对于开发人员更为原生。 它有一个易于使用的框架,提供最大化的灵活和速度。 它还允许在训练过程中快速更改代码而不妨碍其性能。 如果你已经有了一些深度学习的经验,并且以前使用过 Torch,那么基于它的速度、效率和易用性,你会更喜欢 PyTorch。 PyTorch 包含定制的 GPU 分配器,这使得深度学习模型具有更高的内存效率。 由此,训练大型深度学习模型变得更容易。 因此,Pytorch 在 Facebook、Twitter、Salesforce 等大型组织广受欢迎。

用 PyTorch 和 TensorFlow 训练深度学习模型

PyTorch 和 TensorFlow 都可以用来建立和训练神经网络模型。

TensorFlow 工作于 SCG(静态计算图)上,包括在模型开始执行之前定义静态图。 但是,一旦开始执行,在模型内的调整更改的唯一方法是使用 tf.session 和 tf.placeholder 张量

PyTorch 非常适合训练 RNN(递归神经网络),因为它们在 PyTorch 中比在 TensorFlow 中运行得更快。 它适用于 DCG(动态计算图),可以随时在模型中定义和更改。 在 DCG 中,每个模块可以单独调试,这使得神经网络的训练更简单。

TensorFlow 最近提出了 TensorFlow Fold,这是一个旨在创建 TensorFlow 模型的库,用于处理结构化数据。 像 PyTorch 一样,它实现了 DCG,在 CPU 上提供高达 10 倍的计算速度,在 GPU 上提供超过 100 倍的计算速度! 在 Dynamic Batching 的帮助下,你现在可以执行尺寸和结构都不相同的深度学习模型。

GPU 和 CPU 优化的比较

TensorFlow 的编译时间比 PyTorch 短,为构建真实世界的应用程序提供了灵活性。 它可以从 CPU、GPU、TPU、移动设备到 Raspberry Pi(物联网设备)等各种处理器上运行。

另一方面,PyTorch 包括 张量 tensor 计算,可以使用 GPU 将深度神经网络模型加速到 50 倍或更多。 这些张量可以停留在 CPU 或 GPU 上。 CPU 和 GPU 都是独立的库, 无论神经网络大小如何,PyTorch 都可以高效地利用。

社区支持

TensorFlow 是当今最流行的深度学习框架之一,由此也给它带来了庞大的社区支持。 它有很好的文档和一套详细的在线教程。 TensorFlow 还包括许多预先训练过的模型,这些模型托管和提供于 GitHub。 这些模型提供给热衷于使用 TensorFlow 开发者和研究人员一些现成的材料来节省他们的时间和精力。

另一方面,PyTorch 的社区相对较小,因为它最近才发展起来。 与 TensorFlow 相比,文档并不是很好,代码也不是很容易获得。 然而,PyTorch 确实允许个人与他人分享他们的预训练模型。

PyTorch 和 TensorFlow —— 力量悬殊的故事

就目前而言,由于各种原因,TensorFlow 显然比 PyTorch 更受青睐。

TensorFlow 很大,经验丰富,最适合实际应用。 是大多数机器学习和深度学习专家明显的选择,因为它提供了大量的功能,最重要的是它在市场上的成熟应用。 它具有更好的社区支持以及多语言 API 可用。 它有一个很好的文档库,由于从准备到使用的代码使之易于生产。 因此,它更适合想要开始深度学习的人,或者希望开发深度学习模型的组织。

虽然 PyTorch 相对较新,社区较小,但它速度快,效率高。 总之,它给你所有的优势在于 Python 的有用性和易用性。 由于其效率和速度,对于基于研究的小型项目来说,这是一个很好的选择。 如前所述,Facebook、Twitter 等公司正在使用 PyTorch 来训练深度学习模型。 但是,使用它尚未成为主流。 PyTorch 的潜力是显而易见的,但它还没有准备好去挑战这个 TensorFlow 野兽。 然而,考虑到它的增长,PyTorch 进一步优化并提供更多功能的日子并不遥远,直到与 TensorFlow可以 比较。

作者: Savia Lobo,非常喜欢数据科学。 喜欢更新世界各地的科技事件。 喜欢歌唱和创作歌曲。 相信才智上的艺术。


via: https://datahub.packtpub.com/deep-learning/dl-wars-pytorch-vs-tensorflow/

作者:Savia Lobo 译者:Wuod3n 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出