模型层 开放阅读

PyTorch

PyTorch

概念 ID
pytorch
更新时间
2026-05-29
来源数量
待补

3 秒看懂

PyTorch 是当前深度学习领域使用最广泛的开源框架之一。它由 Meta(原 Facebook)AI 团队主导开发,现已归属独立的 PyTorch 基金会(Linux 基金会旗下)。其核心定位是提供灵活、直观且支持动态计算图的张量运算与自动微分基础设施,主要应用于模型研究、原型开发及工业部署。

3 分钟产业解释

PyTorch 之所以成为主流,关键在于其 “define-by-run”动态计算图设计——运算图在每次前向传播时即时构建,极大简化了调试过程,并原生支持 Python 控制流(如循环和条件语句)。这一特性在 NLP、生成式 AI 及复杂控制流密集的研究中优势明显。与之配套的 torch.nntorch.optimtorch.utils.data 等模块构建了完整的建模、训练、数据加载生态。

产业端,PyTorch 不只是在学术界占据主导(据各大顶会论文统计,使用率已超 80%),在工业界的落地也迅速铺开。通过 TorchScripttorch.jit 可实现模型图化与序列化,便于生产环境部署;TorchServe 提供模型服务化;PyTorch Lightning 等高层封装进一步提升了工程化效率。此外,PyTorch 与 CUDA 深度绑定,支持 GPU 加速,且在分布式训练(涵盖数据并行、模型并行、流水线并行)方面持续演进,已成为千亿参数大模型训练的核心基座之一。

15 分钟专家深入

PyTorch 的技术架构可分为以下几个层面:

  1. 张量库(ATen 与 LibTorch):底层 C++ 实现的通用张量运算库,不包含自动微分。它为上层提供统一的多维数组接口,支持 CPU、CUDA、ROCm 等多种后端,并实现了算子融合与内存优化。
  2. 自动微分引擎(Autograd):基于运算图构建与反向累积梯度的系统。在运行时记录张量间的运算关系,形成有向无环图,通过 backward() 触发反向传播。支持高阶导数。
  3. 神经网络模块(torch.nn):提供层、激活函数、损失函数等高层抽象,参数管理与 Module 机制使模型组织变得模块化。
  4. 优化器与调度器(torch.optim):实现了 SGD、Adam、AdamW 等主流优化算法,并可搭配学习率调度器灵活控制训练动态。
  5. 数据加载(torch.utils.data):通过 DatasetDataLoader 实现高效数据预处理、分批加载和多进程并行数据馈送。
  6. 分布式训练torch.distributed 包提供 NCCL/GLOO 后端通信,整合 DistributedDataParallel (DDP) 实现多卡数据并行;Fully Sharded Data Parallel (FSDP) 采用 ZeRO 策略优化显存占用;torch.distributed.pipelining 等支持流水线并行,联合张量并行可支撑超大模型。

在模型精度方面,PyTorch 支持自动混合精度(AMP),通过 torch.cuda.amp 在 FP32 与 FP16/BF16 之间自动切换,兼顾训练速度与数值稳定性。硬件生态上除了 NVIDIA GPU,还在拓展 Intel Gaudi、AMD Instinct、Apple M 系列芯片(Metal Performance Shaders)、以及移动端(PyTorch Mobile)的支持。

技术原理(最深部分)

动态计算图与自动微分

PyTorch 的自动微分基于 “tape-based” 模式:每个 Tensor 对象都有一个 grad_fn 属性,指向前向过程中生成该张量的运算函数。前向传播时,各运算节点被记录下来,构成一个反向传播路径图。

x = torch.tensor(2.0, requires_grad=True)   # 叶子张量,grad_fn=None
y = x ** 2                                   # y.grad_fn =
z = y * 3                                    # z.grad_fn =
z.backward()                                 # 从 z 开始反向计算梯度
# x.grad 变为 dz/dx = 6 * x = 12

反向传播不存储完整图结构,只保留求梯度所需的状态,这样内存更省,图也能包含任意 Python 控制流。每次前向会重新构建图,因此对于形状、值或结构会变化的模型非常灵活。

高级特性:vmap、functorch 与 torch.compile

为兼顾灵活性与性能,PyTorch 2.0 引入了 torch.compileTorchDynamotorch.compile 通过捕获 Python 字节码将 PyTorch 代码转换为计算图,进而利用后端(如 Inductor)生成高效内核。它有效弥合了动态图与静态图性能的差距,使得此前必须手动编写 Triton 内核或采用 JIT 的优化变得自动化。另一项重要功能是 vmap(向量化映射),可实现免循环的批量计算,自动提升张量运算维度。

自动微分公式与参数

设损失 L 为标量,关于参数 W 的梯度计算依赖于链式法则的累积。反向时,每个节点的 backward() 方法接收上游梯度,乘以本地雅可比后向下游传递。对于具有大量共享权重的模型(如 RNN),在一次 backward() 调用过程中,不同时间步或子模块对该参数的梯度会自动累加到 .grad 属性中,无需 retain_graph=True 或多次调用 backward()。设置 retain_graph=True 常用于保留计算图以支持高阶导数或后续再次反向传播;多次调用 backward() 则多用于从多个独立损失项分别累积梯度。参数更新在优化器 step() 中完成,默认采用 param = param - lr * param.grad,并应用权重衰减、动量等修正项。

技术演进史

  • 2016 年:PyTorch 由 Adam Paszke 等人在 Soumith Chintala 主导下于 Meta AI 发布首个公开版本,主推动态计算图与 Pythonic 接口。
  • 2017 年:0.2~0.3 版本大幅完善,支持 cuDNN、数据并行(DataParallel),在 CV 与 NLP 任务中迅速吸引研究者。
  • 2018 年:1.0 发布,引入 TorchScript(JIT),提供从研究到生产的转换路径,并整合 C++ 前端,推动工业部署。
  • 2019~2020 年:分布式框架成熟,DDP 成为标配;同时 PyTorch Mobile 发布,支持端侧推理。
  • 2021 年:PyTorch 1.10 引入 FX 中间表示,允许图级变换;FSDP 等大模型训练能力开始成型。
  • 2022 年:PyTorch Foundation 成立,移交 Linux 基金会治理,吸引 AMD、AWS、Google Cloud、Meta、Microsoft、NVIDIA 等核心成员。
  • 2023 年:PyTorch 2.0 发布核心 torch.compile,TorchDynamo/Inductor 实现图捕获与代码生成,训练效率大幅提升。
  • 2024 年:持续整合 SOTA 特性,如 FP8 训练、ZeRO-3 优化、更完善的 vmap 与自动并行支持,并在大规模集群(数千 GPU)稳定性上增强。

技术路线对比(量化表)

以下对比基于公开技术文档与社区实践(无精确数据时标为定性)。

维度PyTorchTensorFlow/KerasJAX/FlaxPaddlePaddle
图模式动态图(优先)及 TorchScript 静态图静态图优先(Eager 模式后期补齐)函数式静态图(jit 编译)动态图+静态图混合
编程风格Pythonic 命令式声明式(早期)逐步命令式纯函数式 + 加速器命令式,API 类似 PyTorch
分布式训练DDP/FSDP/Pipeline, 灵活MultiWorkerMirroredStrategy/TPU 亲和pmap/pjit 原生 SPMD分布式策略丰富,支持工业场景
生态系统极端丰富:Hugging Face、TIMM、Detectron2较全,但新模型库集中在 PyTorch快速增长,学术研究居多百度系模型库与垂类覆盖
部署方案TorchServe、ONNX、TensorRT 集成TF Serving、TF Lite, 成熟通过 jax2tf 转 TF,或直接 jitPaddle Serving, Lite
硬件支持NVIDIA CUDA/AMD ROCm/Intel Gaudi/Apple Metal同样广泛,TPU 原生支持TPU/GPU 领先,CPU 适配良好NVIDIA/昆仑芯/昇腾等
社区规模活跃度最高(Stars ~80k,论文使用率与贡献者活跃度领先)Stars 数量最多(~185k),但核心活动下降快速增长(DeepMind 主力)中文社区强大,国际化较弱
易用性调试直观、学习曲线平缓Keras 易用,底层 TF 复杂函数式思维门槛较高对国内开发者友好

注意:GitHub Stars 等数据随时间变化,此处仅反映相对规模。

上下游

上游 包括:

  • 底层计算库:CUDA/cuDNN/NCCL(NVIDIA)、MIOpen/RCCL(AMD)、oneAPI(Intel)、MPS(Apple)等厂商驱动与加速库。
  • 张量编译器:如 OpenAI Triton(PyTorch 2.0 Inductor 后端使用)、MLIR 等。
  • 数据基础设施:存储(如 S3、HDFS)、数据湖、特征平台。

下游 涵盖:

  • 模型库与开发工具:Hugging Face Transformers/Diffusers、TIMM(图像模型)、MMDetection、Lightning、Catalyst。
  • 训练平台:云服务商(AWS SageMaker、GCP Vertex AI、Azure ML)的托管训练服务,以及 Kubernetes 上的训练算子(如 Kubeflow、Volcano)。
  • 部署框架:TorchServe、BentoML、Ray Serve、ONNX Runtime、TensorRT、OpenVINO 等推理优化库。
  • 端侧:PyTorch Mobile、ExecuTorch(新一代移动推理)支持 iOS/Android/嵌入式设备。

关键指标

PyTorch 的关键评估维度:

  • 吞吐量(samples/s):在特定硬件与模型下,使用 torch.compile 与混合精度训练的理论峰值。通常参考 MLPerf 结果(但无确切归属时不提供数字)。
  • 显存占用:FSDP/梯度检查点/优化器状态分片等技术可将单卡显存占用降低数倍,使千亿参数模型在较小集群上可训练。
  • 编译性能加速比:torch.compile 相较于 eager 模式可提升 1.2x~2x(视模型结构而异,[未充分披露])。
  • GPU 利用率:通常期望通过异步数据加载和内核融合,使 GPU 保持在 90% 以上利用率。
  • 易用性定性:学术界 80% 以上使用率,GitHub 活跃度[估计]每月数万次 commit 相关活动。
  • 部署延迟与吞吐:TorchServe 结合 TensorRT 等可提供毫秒级推理延迟。

供需与市场数据

深度学习框架市场由研究与工业需求共同驱动。根据 [各机构开发者调查,未量化]PyTorch 在研究论文中的提及率远超 TensorFlow,已成为事实标准。云厂商纷纷将 PyTorch 作为默认支持的框架,推出优化的训练容器和推理方案。大型科技公司(Meta、OpenAI、Stability AI 等)的大模型训练几乎全部基于 PyTorch 生态构建。据 [行业报告估计],AI 框架市场由 PyTorch 占据超过 60% 的份额,且仍在增长。需求方面,随着生成式 AI、多模态模型的爆发,对 PyTorch 的分布式训练、模型并行、内存优化特性需求极强,带动 PyTorch 内核开发者和生态工具公司的就业市场热度。

代表公司与资本映射

  • Meta(原 Facebook):PyTorch 的原始创造者和持续贡献者,投入大量工程资源维护核心框架。
  • NVIDIA:深度合作优化 CUDA kernel 和 GPU 支持,提供 NGC 容器、NeMo 框架(基于 PyTorch)。
  • Microsoft:Azure 上与 PyTorch 深度集成,通过 Deepspeed 库提供 ZeRO 优化,降低大模型训练成本。
  • AMD:投入力量完善 ROCm 对 PyTorch 的支持,试图打破 NVIDIA 垄断。
  • Google:虽主推 JAX,但在其 Vertex AI 等云服务上对 PyTorch 进行了一等公民支持。
  • Hugging Face:基于 PyTorch 构建最大的模型分享平台,估值数十亿美元,受益于 PyTorch 生态。
  • Lightning AI:提供 PyTorch Lightning 以及云上训练平台,获得多轮融资。
  • Anyscale(Ray)和 OctoML(专注于 ML 模型优化)等同样构筑在 PyTorch 之上,映射资本关注点。

投资逻辑

  • 间接投资:PyTorch 本身非上市实体,其价值反映在受益于 PyTorch 生态的工具链公司和云平台。例如,NVIDIA 的 GPU 需求因 PyTorch 大规模训练热潮而激增,微软 Azure 因集成 PyTorch 工作流获得更多 AI 客户。
  • 开源商业化模式:围绕 PyTorch 提供企业级支持、托管训练服务、端到端 MLOps 成为赛道。关注能降低 PyTorch 使用门槛和成本(如自动调优、高效微调、自动化并行策略)的初创公司。
  • 风险:PyTorch 演进步伐快,API 变迁可能导致依赖方持续投入适配;同时候选框架(如 JAX 在多模态和特定硬件上的性能优势)可能分流部分尖端研究需求。但 PyTorch 的生态粘性和社区活力仍是强有力的护城河。

常见误读纠偏

误读 1:PyTorch 只适合研究,不适合生产。 纠正:TorchScript、torch.compile、TorchServe 以及广泛的 ONNX/TensorRT 导出支持,已使 PyTorch 在生产环境中得到验证(如 Meta 的推荐系统、特斯拉的自动驾驶模型、OpenAI 的 API 服务等)。许多大型互联网公司的关键业务负载运行在 PyTorch 上。

误读 2:PyTorch 的 GPU 支持仅限 NVIDIA,其他硬件生态弱。 纠正:AMD ROCm 已实现 PyTorch 的 ROCm 版,性能差距正在缩小;Intel Gaudi 在微软 Azure 上的 PyTorch 适配进展迅速;Apple Silicon 也通过 MPS 后端提供加速。虽 NVIDIA CUDA 仍最优,但多元化已成趋势。

误读 3:torch.compile 可以完全替代手动优化,不需要了解底层。 纠正:torch.compile 能自动优化大部分场景,但对于复杂控制流或自定义算子,仍需要理解 TorchDynamo 的捕获限制和 Inductor 的生成逻辑。极致性能优化(如特定内存布局、融合模式)仍可能需要手动编写算子或定制编译器 pass。

学习路径

  1. 基础入门(约 1 周):学习张量操作、自动微分、nn.Module 构建简单网络,参考官方《60 分钟入门》。
  2. 实战练习(2~4 周):使用 torchvision 和 torchtext 完成图像分类、文本生成等任务;掌握 Dataset/DataLoader 编写,以及训练循环和验证。
  3. 性能与调试(持续):学习 PyTorch Profiler、TensorBoard 可视化、混合精度训练、梯度累积等技术;理解缓存分配器与 CUDA 流。
  4. 分布式训练(2~3 周):从 DDP 开始,逐步接触 FSDP、DeepSpeed 集成、模型并行原理,并在多卡/多机环境实践。
  5. 部署与编译(2 周):探索 TorchScript、torch.compile、ONNX 导出、移动端部署流程。
  6. 高级特性:研究 torch.fx 图变换、自定义 autograd.Function、Triton 内核编写,以及 torch.vmap 等函数式接口。

推荐资源:官方文档与教程、d2l.ai《动手学深度学习》、《Programming PyTorch for Deep Learning》书籍、以及 fast.ai 课程。

一句话总结

PyTorch 凭借动态图灵活性、Python 原生体验和强大的分布式训练能力,已成为 AI 研究与工业的核心框架,并通过 torch.compile 等创新持续弥合易用性与极致性能的鸿沟。

延伸阅读与来源

  • 官方文档与 2.0 技术白皮书:pytorch.org
  • PyTorch Foundation 公告:Linux 基金会官网
  • “PyTorch 2: Faster Machine Learning Through Dynamic Python Bytecode Transformation” – Meta AI 博客
  • 各大云厂商关于 PyTorch 集成的技术博客(AWS、GCP、Azure)
  • 学术论文如 “Array Programming with PyTorch” (2019) 介绍核心设计
  • 行业分析:State of AI Report 等年度报告中对框架使用数据的分析
source: 公开披露与公开资料整理 本页仅用于产业链学习、信息检索和研究辅助;不构成投资建议,不预测涨跌,不提供买卖、仓位或目标价建议。
完整概念页 复盘 13 节结构 公司投研页 沿产业链找到受益公司 投资课 把概念转成可跟踪模型