开发中常见概念整理
·
一、实验开发中常见的几个词
| 概念 | 中文理解 | 最简单解释 | 主要作用 |
|---|---|---|---|
| Checkpoint | 检查点 / 存档 | 像游戏存档 | 保存模型当前状态,以后继续训练或重新加载 |
| Toy Version | 玩具版 / 极简版 | 把真实问题缩小 | 用很小的数据和简单场景先验证思路 |
| Smoke Test | 冒烟测试 | 先看看能不能跑 | 用极小数据快速检查程序有没有明显错误 |
| WP | Work 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 |
| GPU | Graphics Processing Unit,图形处理器 | 大规模并行计算,尤其擅长矩阵运算、深度学习训练 | 真正干计算活的硬件。RTX 4090 就是一种 GPU |
| RTX 4090 | NVIDIA 的一款 GPU 型号 | 可以用于游戏、图形渲染以及深度学习训练 | 就像 CPU 有 i7、i9,不同 GPU 也有不同型号,RTX 4090 是具体型号 |
| VRAM / GPU Memory | 显存 | GPU 工作时临时存放模型参数、数据、梯度和中间结果 | GPU 自己的内存。RTX 4090 大约有 24GB 显存 |
| CUDA OOM | CUDA Out Of Memory | 表示运行 GPU 程序时显存不够 | 就像桌子已经摆满东西了,再放东西就放不下。通常要减小 batch size 等 |
| NVIDIA Driver | NVIDIA 显卡驱动 | 让操作系统和软件能够正确识别、控制 NVIDIA GPU | GPU 和软件之间的控制员 / 翻译员。有 GPU 但驱动有问题,也可能用不了 |
nvidia-smi |
NVIDIA GPU 状态查看命令 | 查看 GPU 型号、驱动版本、显存使用、GPU 利用率、使用 GPU 的进程等 | 相当于 GPU 的仪表盘。想知道显卡现在怎么样,首先经常运行它 |
| GPU-Util | GPU Utilization,GPU 利用率 | 表示 GPU 最近有多大比例的时间在进行计算 | 例如 95% 可以理解为 GPU 很忙;0% 表示当前基本没在计算,但不能仅靠它判断程序是否有问题 |
| CUDA | NVIDIA 的 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.cuda |
PyTorch 对应的 CUDA 版本 | 查看当前安装的这份 PyTorch 是按照哪个 CUDA 版本构建的 | 主要用于检查 PyTorch 和 CUDA 的版本关系 |
| CUDA Toolkit | CUDA 开发工具包 | 提供 CUDA 编译器、开发库、头文件和各种开发工具 | 如果 CUDA 是一套 GPU 计算体系,那么 Toolkit 就是 NVIDIA 提供的开发工具箱 |
nvcc |
NVIDIA CUDA Compiler,CUDA 编译器 | 编译 CUDA 程序 | 类似 Java 有 javac,CUDA 代码也有自己的编译器 nvcc |
nvcc --version |
查看 CUDA 编译器版本的命令 | 查看本机 CUDA Toolkit / nvcc 的版本 |
主要检查 CUDA Toolkit 版本,和 nvidia-smi 看的东西不完全一样 |
| Conda | 环境管理 + 软件包管理工具 | 创建独立 Python 环境,并安装、管理各种软件依赖 | 相当于给不同项目准备独立的软件房间,防止 Python、PyTorch 等版本互相冲突 |
| Conda Environment | Conda 环境 | 给某个项目单独保存 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.yml |
Conda 环境配置文件 | 记录实验需要哪些 Python 版本、软件包和版本 | 相当于实验环境的配方单。别人拿到它,可以按照配方重新搭建环境 |
conda env create -f environment.yml |
根据配置文件创建环境 | 自动按照 environment.yml 安装整个实验环境 |
相当于告诉 Conda:照着这张配方单给我搭一个环境 |
| pip | Python 包管理工具 | 安装和管理 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 状态 |
nvcc |
CUDA 编译器 |
| 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 个 |
这张最后的表其实最适合你保存下来,后面做实验遇到这些词直接查就行。
更多推荐



所有评论(0)