一、实验开发中常见的几个词

概念中文理解最简单解释主要作用
Checkpoint检查点 / 存档像游戏存档保存模型当前状态,以后继续训练或重新加载
Toy Version玩具版 / 极简版把真实问题缩小用很小的数据和简单场景先验证思路
Smoke Test冒烟测试先看看能不能跑用极小数据快速检查程序有没有明显错误
WPWork Package工作包 / 任务阶段把一个大实验拆成 WP1、WP2、WP3 等
Freeze冻结确定以后不再变化保证不同实验使用同一份数据
概念中文 / 含义主要功能通俗理解
Host / Host Machine宿主机真正提供 CPU、内存、GPU、磁盘等资源的电脑或服务器真正的那台电脑。沙箱、Conda 环境、Python 程序最终都运行在它上面
Sandbox沙箱给程序提供一个受限制、隔离的运行环境,限制它访问系统、GPU、文件、sudo 等资源像把程序关在一个安全小房间里。房子里虽然有 GPU,但这个房间可能没有访问 GPU 的钥匙
/dev/nvidia*Linux 中 NVIDIA GPU 的设备节点让程序通过操作系统访问 NVIDIA GPU可以理解成程序访问 GPU 的入口/门。如果沙箱里没有这些入口,程序可能看不到 GPU
GPUGraphics Processing Unit,图形处理器大规模并行计算,尤其擅长矩阵运算、深度学习训练真正干计算活的硬件。RTX 4090 就是一种 GPU
RTX 4090NVIDIA 的一款 GPU 型号可以用于游戏、图形渲染以及深度学习训练就像 CPU 有 i7、i9,不同 GPU 也有不同型号,RTX 4090 是具体型号
VRAM / GPU Memory显存GPU 工作时临时存放模型参数、数据、梯度和中间结果GPU 自己的内存。RTX 4090 大约有 24GB 显存
CUDA OOMCUDA Out Of Memory表示运行 GPU 程序时显存不够就像桌子已经摆满东西了,再放东西就放不下。通常要减小 batch size 等
NVIDIA DriverNVIDIA 显卡驱动让操作系统和软件能够正确识别、控制 NVIDIA GPUGPU 和软件之间的控制员 / 翻译员。有 GPU 但驱动有问题,也可能用不了
nvidia-smiNVIDIA GPU 状态查看命令查看 GPU 型号、驱动版本、显存使用、GPU 利用率、使用 GPU 的进程等相当于 GPU 的仪表盘。想知道显卡现在怎么样,首先经常运行它
GPU-UtilGPU Utilization,GPU 利用率表示 GPU 最近有多大比例的时间在进行计算例如 95% 可以理解为 GPU 很忙;0% 表示当前基本没在计算,但不能仅靠它判断程序是否有问题
CUDANVIDIA 的 GPU 通用计算平台让程序可以利用 NVIDIA GPU 进行深度学习、矩阵计算等让软件使用 NVIDIA GPU 计算的一套技术体系。GPU 是硬件,CUDA 不是硬件
PyTorch深度学习框架搭建 Transformer、神经网络,完成训练、反向传播、优化等你写模型时真正经常直接使用的深度学习工具,例如 import torch
device计算设备指定模型和数据到底放 CPU 还是 GPU 上计算device="cpu" = CPU 算;device="cuda" = NVIDIA GPU 算
torch.cuda.is_available()PyTorch 的 GPU 可用性检查判断当前 PyTorch 是否能够正常使用 CUDA GPU返回 True = 当前 PyTorch 能用 GPU;False = 当前不能用,但不一定代表显卡坏了
torch.cuda.get_device_name(0)查看 PyTorch 识别到的 GPU查看第 0 张 CUDA GPU 是什么型号例如输出 NVIDIA GeForce RTX 4090,说明 PyTorch 已经真正识别到了这张显卡
torch.version.cudaPyTorch 对应的 CUDA 版本查看当前安装的这份 PyTorch 是按照哪个 CUDA 版本构建的主要用于检查 PyTorch 和 CUDA 的版本关系
CUDA ToolkitCUDA 开发工具包提供 CUDA 编译器、开发库、头文件和各种开发工具如果 CUDA 是一套 GPU 计算体系,那么 Toolkit 就是 NVIDIA 提供的开发工具箱
nvccNVIDIA CUDA Compiler,CUDA 编译器编译 CUDA 程序类似 Java 有 javac,CUDA 代码也有自己的编译器 nvcc
nvcc --version查看 CUDA 编译器版本的命令查看本机 CUDA Toolkit / nvcc 的版本主要检查 CUDA Toolkit 版本,和 nvidia-smi 看的东西不完全一样
Conda环境管理 + 软件包管理工具创建独立 Python 环境,并安装、管理各种软件依赖相当于给不同项目准备独立的软件房间,防止 Python、PyTorch 等版本互相冲突
Conda EnvironmentConda 环境给某个项目单独保存 Python 和各种依赖版本例如项目 A 用 Python 3.9,项目 B 用 Python 3.11,可以分别放在两个 Conda 环境里
conda create创建 Conda 环境新建一个独立的软件环境例如 conda create -n test python=3.9 = 创建叫 test 的 Python 3.9 环境
conda activate激活 Conda 环境切换到某个 Conda 环境conda activate test = 现在开始使用 test 这个环境里的 Python 和软件包
conda deactivate退出当前 Conda 环境离开当前环境相当于从这个软件房间里出来
environment.ymlConda 环境配置文件记录实验需要哪些 Python 版本、软件包和版本相当于实验环境的配方单。别人拿到它,可以按照配方重新搭建环境
conda env create -f environment.yml根据配置文件创建环境自动按照 environment.yml 安装整个实验环境相当于告诉 Conda:照着这张配方单给我搭一个环境
pipPython 包管理工具安装和管理 Python 软件包例如 pip install numpy 就是安装 numpy。它主要负责安装 Python 包
Conda vs pip两种常见的软件管理工具Conda 擅长管理整个环境,也能装包;pip 主要安装 Python 包可以简单记:Conda 管“房间”,pip 往房间里“装东西”
Conda vs Sandbox两种完全不同的“隔离”Conda 解决软件版本冲突;Sandbox 解决权限和安全问题Conda:你用什么软件;Sandbox:你有权访问什么东西

最核心的关系,你只需要记住这一条:

Python程序 → PyTorch → CUDA → NVIDIA Driver → GPU

而另外两个在旁边负责管理:

Conda:管理 Python、PyTorch 等软件环境。
Sandbox:管理程序有没有权限访问 GPU、系统文件、sudo 等资源。

比如你实际训练 Transformer 时,可以想成:

Conda 环境(Python 3.9、PyTorch、各种依赖)↓

Python训练代码↓

PyTorch↓

CUDA↓

NVIDIA Driver↓

RTX 4090 GPU↓

24GB 显存

而 Sandbox 像最外面的一层门禁:即使 RTX 4090、驱动、CUDA 都正常,如果沙箱不给访问 GPU 的权限,里面的程序仍然可能看不到 GPU。

最后给你一个超简版速查表

看到这个词第一反应
GPU做大量并行计算的硬件
RTX 4090一种 NVIDIA GPU
VRAM / 显存GPU 自己的内存
Driver控制 GPU 的驱动
CUDA让程序使用 NVIDIA GPU 计算
PyTorch深度学习框架
nvidia-smi查看 GPU 状态
nvccCUDA 编译器
Conda管理独立软件环境
pip安装 Python 包
environment.yml环境安装配方
Sandbox权限受限的安全运行环境
Checkpoint模型存档
Toy Version极简小版本
Smoke Test快速检查能不能跑
KG知识图谱
Manifest数据清单
MovieLens ID数据集原始电影编号
Model ID模型重新分配的连续编号
Padding补空位
input_ids输入模型的数据编号
attention_mask标出哪些位置有效
lengths真实数据长度
labels正确答案
Transformer根据序列学习和预测
Causal Transformer只能看过去预测未来
Score模型预测分数
Candidate最终候选项
Top-K取分数最高的前 K 个

这张最后的表其实最适合你保存下来,后面做实验遇到这些词直接查就行。

更多推荐