📍 你在这里 训练进阶 · 第 1 篇 / 共 9 篇

刚进这个阶段?AI 学习路线图 是总入口,零基础请从人工智能简史:AI 是怎么诞生的看起。

← 上一篇 精读 So-Large-LM(二):从分词到架构,再拆开智能体 · 下一篇 → 大模型微调基础:LoRA 原理与实践

本地安装的顺序是先安装显卡驱动(链接)、vs2022(链接)、CUDA12.6(链接)、然后是cuDNNV8.9.7(链接)。

CUDA

CUDA(Compute Unified Device Architecture)是英伟达(NVIDIA)推出的一种并行计算平台和编程模型。它允许开发者使用 C、C++、Fortran 等编程语言利用英伟达 GPU(图形处理单元)的强大计算能力来加速通用计算任务,而不仅仅局限于图形渲染。

主要用途

  • 科学计算:在物理模拟、分子动力学、气候建模等领域,GPU 的并行计算能力可以显著加速复杂的计算任务。
  • 深度学习:深度学习模型的训练和推理通常涉及大量的矩阵运算,CUDA 可以让这些运算在 GPU 上高效执行,从而大大缩短训练时间。
  • 数据处理:在大数据分析、图像处理、视频编码解码等领域,CUDA 可以加速数据处理过程。

cuDNN

cuDNN(CUDA Deep Neural Network library)是英伟达(NVIDIA)推出的一个用于深度神经网络的 GPU 加速库。它基于 CUDA 平台开发,为深度学习框架提供了高度优化的实现,能够显著提升深度神经网络在 NVIDIA GPU 上的训练和推理速度。以下是关于 cuDNN 的详细介绍:

主要功能

  1. 卷积运算加速:卷积运算是深度学习中最常见且计算量最大的操作之一。cuDNN 针对不同的硬件架构和卷积参数(如卷积核大小、步长等)进行了优化,能够高效地执行卷积运算。
  2. 池化操作加速:池化操作(如最大池化、平均池化)用于减少特征图的维度,cuDNN 提供了快速的池化操作实现。
  3. 激活函数加速:cuDNN 对常见的激活函数(如 ReLU、Sigmoid 等)进行了优化,能够在 GPU 上快速计算。
  4. 循环神经网络加速:对于循环神经网络(RNN)及其变体(如 LSTM、GRU),cuDNN 也提供了优化的实现,加速模型的训练和推理过程。

应用场景

cuDNN 广泛应用于各种深度学习框架中,如 TensorFlow、PyTorch、Caffe 等。在使用这些框架进行深度学习开发时,cuDNN 可以自动被调用,无需用户手动编写复杂的 GPU 加速代码。例如,当使用 PyTorch 进行模型训练和推理时,如果系统中安装了 cuDNN 并且 CUDA 可用,PyTorch 会自动利用 cuDNN 来加速计算。

安装和配置

要使用 cuDNN,您需要先安装 CUDA 工具包,然后从 NVIDIA 官方网站下载与您 CUDA 版本兼容的 cuDNN 库,并将其解压到 CUDA 安装目录下。在 Windows 系统中,安装步骤大致如下:

  1. 确保已经安装了合适版本的 CUDA 工具包。
  2. 从 NVIDIA 官方网站下载对应的 cuDNN 库文件。
  3. 将下载的 cuDNN 库文件解压,将其中的 bin、include 和 lib 文件夹中的文件复制到 CUDA 安装目录下对应的文件夹中。

安装完成后,深度学习框架会自动检测并使用 cuDNN 进行加速。

安装cuda

第一:查看显卡支持的最高CUDA的版本,以便下载对应的CUDA安装包

第二:查看对应CUDA对应的VS版本,以便下载并安装对应的VS版本(vs需要先安装)

第三:确定CUDA版本对应的cuDNN版本,这个其实不用太关注,因为在cudnn的下载页面会列出每个版本对应的cuda版本,11.x以上对应的范围很宽。

在显卡驱动被正确安装(链接)的前提下,在命令行里输入<font style="color:rgb(78, 161, 219) !important;">nvidia</font><font style="color:rgb(77, 77, 77);">-smi.exe</font>,效果如图所示

可以看到显示CUDA Version为12.6,说明该显卡最高支持到12.6,我这里就选择12.6的版本,你也可以选择更低的版本比如 12.5,12.4更低的版本

查询CUDA官方安装文档,可知,支持的VS版本如下表:

确定CUDA版本对应的cuDNN版本

在cudnn下载页面(https://developer.nvidia.com/rdp/cudnn-archive),我们cuda是12.6,这里就选择cuDNNV8.9.7版本的for CUDA21.x版本即可

安装的顺序是先安装显卡驱动(链接)、vs2022(链接)、CUDA12.6(链接)、然后是cuDNNV8.9.7(链接)。

详细步骤参考:https://blog.csdn.net/YYDS_WV/article/details/137825313

安装anaconda

Anaconda是一个快速创建python或其他环境的工具,可以参考快速创建nodejs的NVM一样

Anaconda安装及解释

在安装后会有一个基础版本base,如下图基础环境就是python3.12。下载链接;默认配置安装

安装完成后,如果在控制台不能直接使用conda命令,需要配置conda环境变量

保存后,打开一个新的终端,检查conda命令是否可用

Conda

配置文件是<font style="color:rgba(0, 0, 0, 0.85);">.condarc</font>,你可以设置镜像源来加快软件包的下载速度,也可以指定默认的环境路径等。

  • Linux 和 macOS:通常位于用户的主目录下,即~/.condarc。你可以通过在终端输入ls ~/.condarc来查看该文件是否存在。若不存在,可使用touch ~/.condarc命令创建。
  • Windows:在用户目录下,如C:\Users\你的用户名\.condarc。你可以通过在命令提示符中输入dir C:\Users\你的用户名\.condarc来查看文件是否存在。
channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  • 命令:conda -V
  • 例如conda 23.3.1。
    1. 创建新环境
    • 命令:conda create --name <环境名称> python=<Python版本>
    • 例如: conda create -n nerfstream python=3.10
      2. 激活环境
    • 命令:
      • 在 Windows 系统中:conda activate <环境名称> 例如:conda activate nerfstream
      • 在 Linux 和 Mac 系统中:source activate <环境名称>
        3. 删除环境
    • 命令:
      • win:<font style="color:rgb(0, 0, 0);">conda deactivate;</font>``<font style="color:rgb(0, 0, 0);">conda remove -n <环境名称> --all</font>
      • linux:<font style="color:rgb(0, 0, 0);">sudo conda remove -n myenv --all</font>
        4. 退出环境(回退到base环境)
    • 命令:
      • 在 Windows 系统中:deactivate
      • 在 Linux 和 Mac 系统中:source deactivate
        5. 查看所有环境
    • 命令:conda info --envs或conda env list
      6. 安装软件包
    • 命令:conda install <软件包名称>
    • 例如,conda install numpy会在当前激活的环境中安装 NumPy 库。Anaconda 会自动处理软件包的依赖关系,确保安装的软件包能够正常运行。
      7. 卸载软件包
    • 命令:conda remove <软件包名称>
      8. 更新软件包
    • 命令:conda update <软件包名称>或conda update --all
      9. 查找软件包
    • 命令:conda search <软件包名称>

venv

使用 venv 创建虚拟环境

venv 是 Python 标准库的一部分,无需额外安装。

步骤如下:

  1. 打开终端或命令提示符。
  2. 创建虚拟环境,假设虚拟环境名为 ai_env:
python -m venv ai_env
  1. 激活虚拟环境:
  2. 在 Windows 上:ai_env\Scripts\activate
    + - 在 macOS 和 Linux 上:source ai_env/bin/activate

PyPI

是 Python 社区的官方软件包仓库,pip 是 Python 的包安装工具,用于从 Python Package Index(PyPI)安装和管理软件包。

  1. 基本命令
    • 安装软件包
      • 命令:pip install <软件包名称>
      • 如pip install numpy==1.21.0,这将安装指定的 1.21.0 版本。
    • 升级软件包
      • 命令:pip install - -upgrade <软件包名称>或pip -U <软件包名称>
    • 卸载软件包
      • 命令:pip uninstall <软件包名称>
    • 列出已安装的软件包
      • 命令:pip list
    • 查看软件包详细信息
      • 命令:pip show <软件包名称>
    • 生成软件包需求文件(requirements.txt)
      • 命令:pip freeze > requirements.txt
      • 解释:这个命令会将当前环境中所有已安装软件包及其版本信息以特定格式输出到requirements.txt文件中。该文件可以用于记录项目的依赖关系,方便在其他环境中重新安装相同版本的软件包。例如,在部署项目时,可以通过pip install -r requirements.txt来安装文件中列出的所有软件包。

conda和pip区别

  • conda
    • 包管理和环境管理:conda不仅可以管理 Python 包,还能对环境进行管理。它允许你创建独立的、隔离的环境,每个环境可以有不同版本的 Python 和其他软件包。这对于同时进行多个不同项目,且各项目对软件包依赖要求不同的情况非常有用。例如,一个项目可能需要 Python 3.6 和特定版本的numpy和pandas,而另一个项目需要 Python 3.8 和其他版本的相关软件包,通过conda可以方便地创建和切换不同的环境来满足这些需求。
    • 跨语言支持:conda支持多种语言的软件包管理,除了 Python,还包括 R、C/C++、Java 等语言编写的软件包。这使得它在数据科学领域尤其有用,因为数据科学项目通常会涉及多种语言编写的工具和库。
  • pip
    • 主要用于 Python 包管理:pip专注于 Python 包的安装、升级和卸载。它从 Python Package Index(PyPI)上获取软件包,主要用于管理纯 Python 编写的库。例如,安装matplotlib、flask等常见的 Python 库时,pip是常用的工具。

创建torch虚拟环境并安装PyTorch

因为在网上的项目的环境并不是一致的,环境的差异导致项目运行所用的依赖或者方法会有区别,所以复现的时候需要用conda先创建虚拟环境。

打开终端(cmd到项目目录或者pycharm打开终端),输入如下命令创建torch虚拟环境。

# 创建名为torch的虚拟环境,指定python版本为3.10
conda create -n torch python=3.10 -y
# 激活虚拟环境
conda activate torch

根据PyTorch官网(网速不好用魔法clash verge)提供命令安装PyTorch,注意选择对应的操作系统和CUDA版本

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
- pip3:这是 Python 3 的包管理工具,用于安装、升级和卸载 Python 包。在 Python 3 环境中,通常使用 pip3 来确保操作针对的是 Python 3 版本。
- install: pip3 的一个子命令,用于安装指定的 Python 包。
- torch torchvision torchaudio :这是要安装的三个 Python 包,它们都与 PyTorch 深度学习框架相关:
- torch:PyTorch 的核心库,提供了张量计算、自动求导等功能,是构建和训练深度学习模型的基础。
- torchvision :基于 PyTorch 的计算机视觉库,提供了常用的数据集、模型架构和图像转换工具,方便进行计算机视觉任务的开发。
- torchaudio :基于 PyTorch 的音频处理库,提供了音频数据集、音频处理变换和预训练模型等功能,用于音频相关的深度学习任务。
--index-url https://download.pytorch.org/whl/cu126 :这是一个可选参数,用于指定 Python 包的下载源。 https://download.pytorch.org/whl/cu126 是 PyTorch 官方提供的 CUDA 12.6 版本的包索引地址。使用这个参数, pip3 会从该地址下载与 CUDA 12.6 兼容的 PyTorch 相关库,从而可以利用 NVIDIA GPU 进行加速计算。

当从官方提供的 CUDA 12.6 版本的包索引地址(https://download.pytorch.org/whl/cu126)下载 PyTorch 相关库速度很慢时,你可以尝试以下几种解决方案:

1. 使用国内镜像源

国内有许多镜像源可以提供更快的下载速度,以下是几个常用的镜像源及其使用方法:

清华大学镜像源

你可以使用以下命令从清华大学镜像源下载 PyTorch 相关库:

pip3 install torch torchvision torchaudio --index-url https://pypi.tuna.tsinghua.edu.cn/simple

具体到版本号

pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu126 -i https://pypi.tuna.tsinghua.edu.cn/simple

或者

pip3 install torch --index-url https://download.pytorch.org/whl/cu126 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install torchvision --index-url https://download.pytorch.org/whl/cu126 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install torchaudio --index-url https://download.pytorch.org/whl/cu126 -i https://pypi.tuna.tsinghua.edu.cn/simple
阿里云镜像源

使用阿里云镜像源的命令如下:

pip3 install torch torchvision torchaudio --index-url https://mirrors.aliyun.com/pypi/simple

2. 临时修改 pip 配置

你也可以临时修改 pip 的配置,指定使用某个镜像源进行下载:

pip3 install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple

这里以清华大学镜像源为例,你可以将其替换为其他镜像源的地址。

3. 永久修改 pip 配置

如果你经常需要从镜像源下载包,可以将镜像源配置永久保存。在 Windows 系统中,你可以在 %APPDATA%\pip\pip.ini 文件中添加以下内容:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

保存文件后,以后使用 pip 下载包时就会默认使用该镜像源。

— 感谢阅读 —

一起交流

分享你的思考,让讨论更进一步。