PyTorch是什么?
PyTorch是当前最流行的开源深度学习框架,在研究和工业界应用广泛。它具有三大核心优势:张量计算库支持GPU加速、自动微分引擎简化反向传播、以及丰富的深度学习工具函数。PyTorch在易用性和灵活性之间取得了良好平衡,既适合初学者快速上手,又能满足高级用户的定制需求。安装时需注意Python版本兼容性,并可根据硬件条件选择CPU或GPU版本。对于Apple Silicon芯片用户,PyTorch
PyTorch 是一个基于 Python 的开源深度学习库。根据 Papers With Code,一个跟踪和分析研究论文的平台,PyTorch 自 2019 年以来一直是研究中最广泛使用的深度学习库。根据 Kaggle 数据科学和机器学习调查 2022,使用 PyTorch 的受访者数量约为 40%,并且每年都在不断增加。
PyTorch 之所以如此受欢迎,其中一个原因就是其用户友好的界面和高效性。然而,尽管它易于上手,却不会牺牲灵活性,为高级用户提供调整模型底层细节的能力,以便进行定制和优化。简而言之,对于许多实践者和研究人员来说,PyTorch 在易用性和功能之间提供了恰到好处的平衡。
在接下来的内容中,我们将定义 PyTorch 的基本功能。
为此我给大家整理了学习资料包
深度学习PyTorch+项目代码+学习资料需要的同学关注“AI技术星球”公众号,关注后回复“221C”获取。
PyTorch 的三个核心组件
PyTorch 是一个相对全面的库,一种方法是关注其三个主要组成部分,如图 1 所示。
图 1:PyTorch 三大核心组件包括作为计算核心构建模块的张量库、实现模型优化的自动微分机制、以及深度学习工具函数,从而更便捷地实现和训练深度神经网络模型。
首先,PyTorch 作为张量库,在 NumPy 基于数组运算的编程库基础上进行功能拓展,新增了 GPU 加速计算能力,从而实现了 CPU 与 GPU 之间的无缝切换。
其次,PyTorch 作为自动微分引擎(即 autograd),能够自动计算张量运算的梯度,从而简化反向传播与模型优化流程。
最后,PyTorch 作为深度学习库,通过提供模块化、灵活且高效的构建组件(包含预训练模型、损失函数与优化器),为各类深度学习模型的设计与训练提供支持,同时兼顾研究者和开发者的需求。
在随后的两个小节中完成深度学习的术语界定与 PyTorch 安装配置后,本课程的剩余部分将结合代码实践演示,深入解析 PyTorch 上述三大核心组件。
定义深度学习
在媒体报道中,大语言模型(LLMs)常被统称为 AI 模型。然而从技术本质看,LLMs 是深度神经网络的一种特定架构,而 PyTorch 作为深度学习框架库,正是实现此类模型的工具载体。这种术语混用是否令人困惑?在深入探讨前,我们简要梳理三者的关系,然后再继续。
人工智能的核心在于创建能够执行通常需要人类智能的任务的计算机系统。这些任务包括理解自然语言、识别模式和做出决策。(尽管取得了显著进展,人工智能仍远未达到通用智能水平。)
机器学习作为人工智能的子领域(如图 2 所示),其核心在于研发并持续优化学习算法。该领域的核心理念是使计算机能够从数据中自主学习,无需显式编程即可执行预测或决策任务。这要求开发能够识别数据模式、从既有数据中学习,并随着数据积累与反馈循环实现性能持续优化的算法。
图 2:深度学习是机器学习的一个分支领域,专注于深度神经网络的工程实现;机器学习则是人工智能的子领域,致力于开发从数据中自主学习算法;而人工智能作为最宽泛的范畴,其核心目标是使机器具备通常需人类智能方能完成的任务能力。
机器学习一直是人工智能演进的核心驱动力,推动着包括大语言模型(LLMs)在内的诸多突破性进展。从在线零售商的推荐系统、流媒体服务平台,到电子邮件垃圾过滤、虚拟助手的语音识别,乃至自动驾驶技术,背后均有机器学习的技术支撑。机器学习的引入与发展显著拓展了 AI 的能力边界,使其突破严格规则系统的局限,获得对新输入与动态环境的自适应能力。
深度学习是机器学习的一个子领域,专注于深度神经网络的训练与应用。这类网络的设计灵感源于人脑工作机制,特别是生物神经元间的复杂互连结构。“深度学习”中的“深度”特指多层隐藏的人工神经元结构,使其能够建模数据中复杂的非线性关联。
与传统机器学习技术擅长处理简单模式识别不同,深度学习在处理图像、音频、文本等非结构化数据领域展现出显著优势——正因如此,它成为大语言模型(LLMs)的天然技术载体。
为此我给大家整理了学习资料包
深度学习PyTorch+项目代码+学习资料需要的同学关注“AI技术星球”公众号,关注后回复“221C”获取。
图 3 总结了机器学习与深度学习中典型的预测建模流程(亦称监督学习)。
图 3:监督学习的预测建模流程包含训练阶段——模型在标注样本组成的训练数据集上学习特征 - 标签映射关系,训练完成的模型即可用于预测新数据实例的标签。
通过学习算法,模型在由样本及其对应标签组成的训练数据集上进行训练。例如在垃圾邮件分类器中,训练数据集包含人工标注的邮件及其垃圾邮件 / 正常邮件二元标签。训练完成的模型即可应用于新数据实例(未标注邮件),预测其未知标签(是否为垃圾邮件)。
当然,我们希望在训练和推理阶段之间添加一个模型评估,以确保在将模型用于实际应用之前,它满足我们的性能标准。
需特别说明:大语言模型(LLM)的训练与应用流程虽具特殊性,但仍遵循图 3 所示的基础范式。以文本分类任务训练 LLM 时,其流程与图 3 完全一致;而若面向文本生成任务(如拙著《从零构建大语言模型》所述),图 3 框架依然适用——此时预训练阶段的“标签”源于文本自监督信号,推理阶段则转为根据输入提示生成全新文本(而非预测分类标签)。
安装 PyTorch
PyTorch 的安装流程虽与常规 Python 库类似,但由于其支持 CPU/GPU 双版本兼容的特性,需特别注意硬件适配与依赖管理,安装可能需要额外说明:
许多科学计算库并不会立即支持最新版本的 Python。因此,在安装 PyTorch 时,建议使用落后一两个版本的 Python。例如,如果 Python 的最新版本是 3.13,那么推荐使用 Python 3.11 或 3.12。
例如,PyTorch 有两个版本:一个是仅支持 CPU 计算的精简版本,另一个是同时支持 CPU 和 GPU 计算的版本。如果你的电脑配备了可用于深度学习的 CUDA 兼容 GPU(理想情况下是 NVIDIA T4、RTX 2080 Ti 或更新的型号),建议安装 GPU 版本。无论选择哪个版本,在代码终端中安装 PyTorch 的默认命令如下:
假设你的计算机支持 CUDA 兼容的 GPU。在这种情况下,只要你的 Python 环境已安装必要的依赖项(如 pip),这将自动安装支持通过 CUDA 进行 GPU 加速的 PyTorch 版本。
AMD GPU 用于深度学习。截至本文撰写时,PyTorch 已通过 ROCm 添加了对 AMD GPU 的实验性支持。请参阅 https://pytorch.org 以获取更多说明。
然而,若要明确安装与 CUDA 兼容的 PyTorch 版本,通常最好指定希望 PyTorch 兼容的 CUDA 版本。PyTorch 官方网站提供了在不同操作系统上安装支持 CUDA 的 PyTorch 的命令,如图 4 所示。
图 4:访问 PyTorch 官网获取安装建议,可根据自身系统定制并选择相应的安装命令。
在撰写本文时,本教程基于 PyTorch 2.4.1 版本,因此建议使用以下安装命令来安装确切版本,以确保与本课程兼容:
然而,如前所述,根据你使用的操作系统不同,安装命令可能与上述示例略有差异。因此,建议你访问 PyTorch 官网,通过官网提供的安装选项菜单(见图 4),选择适合你操作系统的安装命令,并将其中的 torch 替换为 torch==2.4.1,以确保安装与本教程完全兼容的版本。
若要查看 PyTorch 的版本,可在 PyTorch 环境中执行以下代码:
PyTorch 与 Torch。需要注意的是,Python 库名为 “torch”,主要是因为它是 Torch 库在 Python 环境下的延续(因此称为 “PyTorch”)。“torch” 这个名称源自其前身 Torch,一个广泛支持机器学习算法的科学计算框架,该框架最初是用 Lua 编程语言开发的。
安装 PyTorch 后,你可以在 Python 中运行以下代码,检查安装的 PyTorch 是否能识别你计算机内置的 NVIDIA GPU:
这会返回 True 。
如果上述命令返回 True,则说明配置成功。如果返回 False,则可能是你的计算机没有兼容的 GPU,或者 PyTorch 未能识别它。虽然在 PyTorch 中训练神经网络模型并非必须使用 GPU,但 GPU 能够显著加速深度学习相关的计算,使模型训练速度提升数倍甚至更多。
如果你无法访问 GPU,有几家云计算提供商可供用户按小时付费使用 GPU 计算资源。其中一个类似 Jupyter Notebook 的流行环境是 Google Colab,在撰写本文时,它提供限时免费的 GPU 访问。通过“运行时”菜单,你可以选择使用 GPU,如图 5 的截图所示。
图 5:在 Google Colab 的“运行时(Runtime)/ 更改运行时类型(Change runtime type)”菜单下选择 GPU 设备。
在 Apple Silicon 芯片上使用 PyTorch。如果你使用的是配备 Apple Silicon 芯片(如 M1、M2、M3、M4 或更新型号)的 Apple Mac,你可以利用其芯片能力加速 PyTorch 代码的执行。
若要在 PyTorch 中启用 Apple Silicon 芯片加速,首先需要像往常一样安装 PyTorch。安装完成后,你可以在 Python 中运行以下代码片段来检查你的 Mac 是否支持通过 Apple Silicon 芯片加速 PyTorch:
深度学习PyTorch+项目代码+学习资料需要的同学关注“AI技术星球”公众号,关注后回复“221C”获取。

可以直接vx扫一扫

更多推荐
所有评论(0)