← 返回学习工作台

NCA-ADS 备考学习手册

2026 年 10 月 15 日考试 · 26 天计划 · 8 个模块 · 中文讲解与英文术语

本资料为独立、非官方的原创备考整理;不是 NVIDIA 官方教材或真实考试题库。考试信息核对日期:2026-09-19。具体考试安排以报名通知为准。

如何使用

每次学习先解释概念,再运行小例子,最后做题。标准日 90 分钟:35 分钟知识、35 分钟实操、20 分钟练习。短日 30 分钟:15 分钟重点、10 分钟题目、5 分钟错因。自定准备目标为未见题闭卷模拟达到 80%,这不是官方通过分数线。

考试范围与权重

模块权重
数据处理与准备23%
RAPIDS 机器学习16%
工作流与自动化13%
描述统计与可视化13%
加速数据科学基础12%
MLOps 入门10%
时间序列与图7%
软件与环境管理6%

文档:NVIDIA 中国:NCA-ADS 考试与考纲 · NVIDIA:Associate 官方学习指南(当前入口)

26 天备考计划

日期任务与完成标准分钟
2026-09-19
Day 1
基线诊断与起步
读考试概况;完成 16 题诊断;记录不熟悉的术语。
完成标准:能解释 8 个模块及自己的前三个薄弱点。
60
2026-09-20
Day 2
GPU 工具地图
学习基础模块;手算整体加速比;复习 6 张术语卡。
完成标准:不看资料说出 cuDF / CuPy / cuML / cuGraph 的分工。
90
2026-09-21
Day 3
环境检查与 Python 回顾
读环境模块;完成实操 1;确认 notebook 解释器与架构。
完成标准:保存版本报告;区分驱动与 CUDA 运行时。
90
2026-09-22
Day 4
数据审计、缺失与单位
读数据模块前半;完成实操 2 的输入检查。
完成标准:列出行数、键、缺失、单位和异常值规则。
90
2026-09-23
Day 5
连接与聚合
手算一对多、多对多 join;运行实操 2。
完成标准:解释输出为何是 A=3、B=8,并检查行数。
90
2026-09-24
Day 6
特征编码与缩放
读编码和泄漏;训练集拟合、验证集转换;做数据模块题。
完成标准:能指出先标准化再切分的错误。
90
2026-09-25
Day 7
不平衡与数据格式
学习类权重、采样、Parquet;复盘本模块错题。
完成标准:能解释 98% accuracy 为什么可能没有价值。
90
2026-09-26
Day 8
PCA 与准备模块复盘
比较 PCA 与特征选择;完成数据模块剩余练习。
完成标准:数据模块首次正确率达到自定 80% 目标或明确错因。
120
2026-09-27
Day 9
机器学习任务与基线
学习回归、分类、聚类;运行实操 3 CPU 路径。
完成标准:得到按受试者切分的基线及完整混淆矩阵。
120
2026-09-28
Day 10
模型评估与手算
复习 precision / recall / F1 / MAE / RMSE / R²;做指标题。
完成标准:不看答案计算例题,解释阈值改变的影响。
90
2026-09-29
Day 11
验证与调参
比较分层、分组、时间验证;读 GPU XGBoost 配置。
完成标准:能为重复测量和未来预测分别选对切分。
90
2026-09-30
Day 12
GPU 模型与错误复盘
有兼容环境时运行 GPU 路径;否则逐行解释代码。
完成标准:记录真实结果和运行环境,不预设加速倍数。
90
2026-10-01
Day 13
可复现流水线
学习任务图、幂等、切分及检查点;梳理端到端流程。
完成标准:写出每一步输入、输出、校验与版本信息。
90
2026-10-02
Day 14
Dask 与可扩展性
比较 compute / persist;分析分区和 shuffle;做工作流题。
完成标准:说明小任务为什么可能不需要分布式。
90
2026-10-03
Day 15
EDA 与图形选择
按分析问题选图;用实操数据检查分布、分组和缺失。
完成标准:识别均值图遗漏的信息以及实际独立样本单位。
120
2026-10-04
Day 16
统计解释与可视化复盘
学习 p 值、置信区间、多重比较;完成 EDA 练习。
完成标准:能纠正“p=0.03 说明原假设有 3% 概率为真”。
120
2026-10-05
Day 17
时间序列
学习时间切分、lag、rolling;完成实操 5。
完成标准:确认所有预测特征都在预测时可获得。
90
2026-10-06
Day 18
图与关系网络
读节点、边、权重、degree、PageRank;做结构模块题。
完成标准:能把小型脑区网络写成边列表并解释中心性限制。
90
2026-10-07
Day 19
实验追踪和模型保存
学习构件与实验记录;完成实操 6。
完成标准:保存并重载模型和预处理器,核对固定样本输出。
90
2026-10-08
Day 20
漂移、监控和性能测量
完成实操 4;区分数据漂移、概念漂移和性能退化。
完成标准:计时包含同步,区分稳态与首次执行。
90
2026-10-09
Day 21
环境管理与全模块查漏
复盘兼容链、Docker、Git;完成剩余模块练习。
完成标准:8 模块都已读过,每个错题都有原因。
90
2026-10-10
Day 22
模拟 A:55 题 / 60 分钟
闭卷完成模拟 A;用 60 分钟复盘错题和不确定题。
完成标准:建立按模块的失分清单;记录首次模拟成绩。
120
2026-10-11
Day 23
集中修复两个薄弱模块
优先处理高权重且正确率低的模块;重跑相关小实验。
完成标准:能不看解析解释正确项及错误选项为何不成立。
120
2026-10-12
Day 24
模拟 B:55 题 / 60 分钟
闭卷完成未做过的模拟 B;核对时间分配与漏题。
完成标准:自定目标 ≥80%;仅作准备度参考,不代表官方分数线。
120
2026-10-13
Day 25
错题闭环与口述流程
只练错题;口述读取到部署的完整流程;复习公式。
完成标准:8 模块没有完全空白;避免用背答案代替解释。
90
2026-10-14
Day 26
轻量复习与考前确认
浏览速查和术语;确认考试通知、时间、地点、证件与路线。
完成标准:停止新增大实验;提前休息。考试安排以本人通知为准。
45

加速数据科学基础 · 12%

Foundations of Accelerated Data Science

学习目标:能解释一段数据科学流程为什么值得用 GPU,以及为什么也可能变慢。

从数组、表格到完整工作流

NumPy 的 ndarray 适合规则的同类型数值数组;pandas 的 DataFrame 适合列类型不同、带标签的表格。Jupyter 是交互式工作环境,不会自动把 Python 运算搬到 GPU。先明确样本单位、特征和预测目标,再做读取、清洗、划分、训练与评估。

例如每行是一名受试者一次 EEG 记录的特征:年龄、频段功率、反应时、组别。受试者 ID 用于关联和划分,通常不能直接当作有意义的连续预测特征。随机拆分记录之前,要先判断同一受试者是否重复出现。

CPU、GPU 与分布式分别解决什么问题

概念擅长的任务需要付出的代价
CPU分支复杂、串行控制、小任务与一般 I/O大规模相似运算的吞吐量可能受限
GPU大量可并行的同类计算,例如聚合、矩阵运算启动、调度、数据迁移和显存占用
分布式计算把任务与数据分给多个进程、设备或节点网络通信、shuffle、调度和容错
Dask + GPU对合适的 GPU 分区计算进行调度需要显式选用 GPU 后端和资源配置

GPU 加速和分布式是两个维度。单块 GPU 可以很快;很多 CPU 也可以形成分布式集群。安装 Dask 不会让所有代码自动使用 GPU。

工具的职责边界

工具主要用途常见误解
cuDFGPU DataFrame,清洗、连接和分组聚合原生 cuDF 并不保证支持 pandas 的每一个行为
cuDF.pandas以 pandas 接口运行,支持部分运算回退 CPU“能运行”不等于“全部运行于 GPU”
CuPyNumPy 风格的 GPU 数组计算并非 GPU DataFrame
cuML回归、分类、聚类和降维等 GPU 算法CPU/GPU 结果不必逐位一致
cuGraph图算法和关系网络分析不能用普通分组聚合替代所有图算法
XGBoost梯度提升树,可选 GPU 执行不是只有 CPU 版本,也不是所有操作都在 GPU

用端到端成本判断加速

总耗时 = 读取 + 预处理 + 传输 + 计算 + 输出。只展示训练时间会遗漏真正的瓶颈。尽量把连续的大数据步骤留在 GPU,最后把较小的预测结果或汇总表传回 CPU。避免在循环里反复 to_pandas()

教学算例:原流程 100 秒,只有 40 秒能加速到 10 倍,其余仍是 60 秒,则新耗时为 60 + 40/10 = 64 秒,整体加速约 1.56 倍。GPU 计算快 10 倍不等于整个流程快 10 倍。

DGX Spark 使用统一内存架构;仍需关注对象转换、数据访问与计算后端,不应简单照搬独立显卡的所有传输成本假设。

参数、超参数与泛化

模型参数由训练数据学习,如线性回归系数;超参数由训练过程外指定,如树深度、正则化强度和聚类数。训练成绩优秀但验证成绩较差通常提示过拟合;两者都差可能是模型表达能力不足、特征不够或训练设置不合适。

先建立简单基线,再改变一项假设进行比较。GPU 缩短试验时间,但不能修复标签错误、数据泄漏或不恰当的评估设计。

易错点

自测问题

术语速记

术语解释
GPUGraphics Processing Unit,图形处理器;这里用于并行通用计算。
ETLExtract, Transform, Load:提取、转换、加载。
Throughput吞吐量:单位时间完成的工作量。
Latency延迟:一次请求从开始到完成的时间。
Host / Device主机侧 / 设备侧;理解计算与数据实际位于哪里。
Generalization泛化:面对未见样本时的表现。

文档:NVIDIA 中国:NCA-ADS 考试与考纲 · cuDF pandas accelerator · NVIDIA cuML 文档 · NVIDIA cuGraph 文档 · CuPy:性能测量 · NVIDIA DGX Spark:架构与规格

数据处理与准备 · 23%

Data Manipulation and Preparation

学习目标:面对脏表、多表和高维数据,能选择正确且避免泄漏的处理顺序。

先审计数据,再做转换

先检查行数、列类型、单位、缺失比例、唯一键与取值范围。ID 即使看起来像数字,也可能应存为字符串以保留前导零。缺失值不等于 0;“未测量”与“测量为零”含义不同。异常值先追查原因,再决定修正、保留、截尾或删除,并记录规则。

一个神经科学表中的 duration 若混合秒和毫秒,GPU 只能更快地算出错误结果。数据字典应记录单位、合法范围、编码与缺失语义。用于公开练习的数据应有使用许可;去掉姓名也不代表已充分去标识化。

连接与行数膨胀

操作保留内容检查点
inner join两边能匹配的键丢失了哪些样本?
left join左表所有行及匹配右表右表的键是否唯一?
outer join两边全部键新增缺失值如何解释?
concat沿行或列拼接列、索引和顺序是否对齐?

同一键在左表出现 2 次、右表出现 3 次,匹配部分会产生 2 × 3 = 6 行。left join 并不保证行数不变。先确定一对一、一对多或多对多,再选择去重、预聚合或保留重复。神经记录常是多次测量对应一名受试者,应确保受试者信息表每个 ID 一行。

缺失、编码、缩放与数据泄漏

先划分训练与验证数据,再在训练数据拟合填补器、编码器、缩放器、特征选择器及 PCA;验证数据只调用已拟合的转换。交叉验证时,每一折也要重新拟合这些步骤。

方法适用理由注意
中位数填补数值变量且希望降低极端值影响可能需要同时添加缺失指示列
One-hot 编码无自然次序的类别类别数很多会增加内存和维度
Ordinal 编码类别有明确顺序不能随意把脑区编码成具有距离含义的数值
标准化 z=(x−μ)/σ距离模型、线性正则化模型、PCA 常受尺度影响树模型一般不要求同样的缩放
Target encoding利用类别与目标关系编码必须采用折内或交叉拟合设计防止目标泄漏

不平衡、采样和合成数据

少数类只有 2% 时,全预测多数类仍可达 98% accuracy。应同时看召回、精确率、PR 曲线和业务成本。类权重、欠采样、过采样都可能有用,但没有一种方法在所有任务上最好。

重采样与合成数据生成只用于训练部分;验证和测试应尽可能保留目标部署分布。先对全体数据做 SMOTE 再切分,会让衍生自相关样本的合成点跨入测试集。合成样本不等于新的独立受试者,也不能凭空增加真实生物学证据。

降维、特征选择与存储

特征选择保留原始特征的子集;PCA 构造最大化保留方差的线性组合,并不使用类别标签,因此大方差方向不一定最有分类价值。高维 EEG 特征可先去掉无信息列,再在训练集上拟合 PCA。稀疏数据应考虑会不会被中心化或转换意外变成稠密矩阵。

Parquet 是列式格式,适合只读部分列、压缩及按条件减少读取;CSV 易交换和人工查看,但文本解析与类型恢复可能更昂贵。Parquet 文件变小不代表计算时对象同样小:解压、临时数组与连接仍会消耗内存。

ETL 框架选型也属于考纲:RAPIDS 提供 GPU 数据处理库,Dask 可调度分区计算,Apache Spark 是另一种分布式处理生态。现有 Spark 作业能否加速,要核对所用 GPU 加速组件与算子支持;不能把“运行在 Spark 上”直接当作“运行在 GPU 上”。

cuDF 清洗与聚合示例

import cudf
records = cudf.DataFrame({
    "subject_id": [1, 1, 2, 3],
    "power": [2.0, 4.0, None, 8.0]})
people = cudf.DataFrame({"subject_id": [1, 2, 3],
                         "site": ["A", "A", "B"]})
# 右表键必须唯一;重复会放大连接行数
assert len(people) == people.subject_id.nunique()
joined = records.merge(people, on="subject_id", how="left")
summary = joined.groupby("site")["power"].mean()
print(summary)  # A: 3.0, B: 8.0;缺失未当作零

此示例仅演示数据审计与聚合;若填补值用于模型,应只从训练部分估计。输出顺序可能不同,以键和值比较结果。

易错点

自测问题

术语速记

术语解释
Cardinality连接基数:一对一、一对多或多对多。
Data leakage数据泄漏:训练或选模使用了本不该见到的信息。
One-hot encoding独热编码:每个类别对应指示列。
Class imbalance类别不平衡:不同类别的样本数相差悬殊。
PCAPrincipal Component Analysis,主成分分析。
Parquet具有类型信息和压缩能力的列式存储格式。

文档:pandas:合并与连接 · pandas:缺失数据 · scikit-learn:预处理 · scikit-learn:常见陷阱 · scikit-learn:分解与 PCA · Apache Parquet:格式概览

RAPIDS 机器学习 · 16%

Machine Learning with RAPIDS

学习目标:能区分任务、选择验证方案,计算和解释指标,并识别现代 GPU 训练设置。

任务与算法

任务输出入门算法与要点
回归 Regression连续值,如反应时线性回归、随机森林回归;对照均值或中位数基线
分类 Classification离散类别或类别概率逻辑回归、随机森林、XGBoost;类别概率还需要阈值
聚类 Clustering无监督分组K-means 需要 k,受尺度影响;DBSCAN 可识别噪声点
降维 Dimensionality reduction低维表示PCA 保方差;二维聚类图不能单独证实细胞类型

cuML 延续熟悉的 fit / predict / transform 思路。不要把聚类编号直接当作已经证实的生物学类别;需要独立证据。

验证设计比换模型更重要

独立同分布分类样本可用分层划分,保持类别比例。同一受试者多次测量应按受试者分组,让新受试者评估更可信。时间预测应以过去训练、未来验证,不能随意打乱。

训练集用来拟合;验证或交叉验证用来选模型、超参数与阈值;测试集只用于冻结方案后的最终评估。超参数调优多次比较会产生选择偏倚,严格评价可采用嵌套交叉验证。

混淆矩阵与四个常考公式

实际\预测预测阴性预测阳性
实际阴性TN 真阴性FP 假阳性
实际阳性FN 假阴性TP 真阳性
Accuracy  = (TP + TN) / N
Precision = TP / (TP + FP)
Recall    = TP / (TP + FN)
F1        = 2TP / (2TP + FP + FN)

例:TP=30,FP=10,FN=20,TN=140,则 accuracy=85%,precision=75%,recall=60%,F1≈66.7%。降低判为阳性的阈值,通常提高 recall,但 precision 往往下降。样本、模型和阈值固定时再比较指标。

不止 accuracy

指标解释与用途
PR-AUC / Average precision聚焦阳性检出质量;少数阳性类很少时尤其有用。二者的面积计算约定并非完全一样。
ROC-AUC跨阈值的排序能力;需要分数或概率,而不是只看某个阈值后的类别。
MAE平均绝对误差,与目标同单位。
RMSE平方误差均值开根号;对大误差更敏感,与目标同单位。
相对均值预测基线的解释能力;可以为负。
Silhouette簇内紧密、簇间分离的一个度量;不保证生物学意义。

模型选择与 GPU XGBoost

网格搜索系统枚举有限组合;随机搜索可把预算分配到更广范围。先设定指标和验证策略,再调学习率、深度、正则化等。Early stopping 应使用验证数据,不要用最终测试集决定训练轮数。

from xgboost import XGBClassifier
# 现代 XGBoost 写法;旧材料的 gpu_hist 需结合版本理解
model = XGBClassifier(tree_method="hist", device="cuda",
                      max_depth=4, n_estimators=100,
                      learning_rate=0.1, random_state=42)
# model.fit(X_train, y_train)

这是配置示例;运行前需有兼容的 GPU 环境、输入数据和依赖。比较 CPU 与 GPU 时应控制数据、切分和参数,允许合理浮点误差,不预设 GPU 一定获胜。

易错点

自测问题

术语速记

术语解释
Precision精确率:预测为阳性的样本中多少是真的。
Recall / sensitivity召回率 / 灵敏度:实际阳性中检出了多少。
Cross-validation交叉验证:多次训练与验证以估计泛化表现。
Hyperparameter超参数:训练外设定的模型或优化配置。
Early stopping早停:验证表现不再改善时结束训练。
Clustering聚类:在没有已知标签的情况下寻找分组。

文档:NVIDIA cuML 文档 · XGBoost:GPU 支持 · scikit-learn:评价指标 · scikit-learn:交叉验证 · scikit-learn:常见陷阱

工作流与自动化 · 13%

Data Science Pipelines and Workflow Automation

学习目标:能设计可重复、可扩展的完整流程,识别 Dask 何时有帮助以及何时带来负担。

把笔记本整理成可重跑的流程

给每一步定义输入、输出和质量检查:原始数据 → 校验与清洗 → 按任务切分 → 训练部分拟合变换 → 训练/调优 → 冻结评估 → 保存构件。原始数据保持可追溯;转换结果放到明确的版本目录。

处理步骤应尽可能幂等:同一输入和配置重跑,不产生重复行或不受控追加。日志记录任务状态、输入版本和错误;失败后能从可靠检查点恢复。只保存最后一个 notebook 输出不足以重现实验。

Dask 的惰性执行与分区

Dask 可先构建任务图,直到需要结果时才执行。compute() 返回具体结果,DataFrame 的结果通常集中到当前进程;结果太大可能导致客户端内存耗尽。persist() 触发并保存分区结果供后续复用,不等于把结果写入磁盘永久保存。

太小的分区导致调度开销高;太大的分区可能使内存不足。按实际峰值内存与操作类型调节,不背诵一个通用最佳大小。全局排序、重分区及部分 join 会产生 shuffle,带来通信与临时内存成本。

扩展 GPU 流程的正确方向

先优化列选择、过滤和算法,再评估单 GPU 能否完成;确需扩展时使用合适的 Dask GPU 后端和调度配置。多 GPU 不意味着线性加速;数据倾斜和通信可使新增资源无效。已经很小的聚合结果可转到 CPU 做可视化。

# 在安装了兼容 dask-cuda / dask-cudf 的环境中执行
from dask_cuda import LocalCUDACluster
from dask.distributed import Client
import dask_cudf

if __name__ == "__main__":
    with LocalCUDACluster() as cluster, Client(cluster):
        df = dask_cudf.read_parquet("records/*.parquet",
                                     columns=["site", "power"])
        result = df.groupby("site").power.mean().compute()
        print(result)

此段是扩展模板,需自行提供数据路径。仅有一块 GPU 时仍可学习分区与任务图,但不能把它当作真实多 GPU 性能实验。

特征与模型共同迭代

训练与验证都差时,先排查标签和特征,再考虑增加合适复杂度、减弱过强正则化或改进训练。训练好、验证差时,检查泄漏和切分,考虑简化模型、加强正则化、收集更具代表性的数据。

数据增强必须符合任务语义。把未来信息加入当前时点特征,即使性能提升也不可用。反馈数据用于再训练之前,必须先质控、处理选择偏倚,并经过离线评估和受控发布,不能自动把所有新数据都当作可靠标签。

易错点

自测问题

术语速记

术语解释
Lazy evaluation惰性执行:先描述计算,稍后触发执行。
Partition分区:数据的一个块,也是并行任务的基本单位之一。
Shuffle按键重新分布数据,可能产生大量通信。
Idempotent幂等:重复运行不造成额外副作用。
Pipeline流水线:串联预处理、模型与相关步骤。
Data flywheel数据反馈循环:经验证的新数据持续改善模型。

文档:Dask:最佳实践 · Dask DataFrame:最佳实践 · scikit-learn:常见陷阱 · NVIDIA:Associate 官方学习指南(当前入口)

描述统计与可视化 · 13%

Descriptive Analysis and Visualization

学习目标:用合适的汇总、图形和统计解释理解数据,避免把显著性或相关性说过头。

先看样本结构和分布

均值受极端值影响较大,中位数通常更稳健;标准差描述离散程度,四分位距 IQR=Q3−Q1 描述中间 50% 数据的跨度。画分布图比单看均值更容易发现偏态、双峰和异常点。

同时检查每组样本量和缺失比例。10 名受试者每人 100 次测量不等于 1,000 名独立受试者。汇总时要区分受试者层面和记录层面,避免把重复测量误当作独立证据。

为问题选择图

想回答什么优先考虑常见错误
连续变量的分布直方图、密度图把分箱造成的形状当作客观分组
各组分布差异箱线图、散点叠加、提琴图只画柱形均值,隐藏离散与样本量
两个连续变量的关系散点图、密度散点仅凭相关系数断言因果
随时间变化按时间排序的折线图用无顺序类别做连续趋势线
类别频数或比例条形图数量变化其实来自分母变化
矩阵结构热图色标不同却直接比较颜色深浅

相关性、混杂与分组检查

Pearson 相关关注线性关系;Spearman 基于秩,适合考察单调关系。一个接近零的 Pearson 相关仍可能存在明显非线性模式。离群点也可能主导相关结果。

整体样本看见的关系可能由站点、年龄或采样批次驱动。先分层作图,再考虑适当建模;组间分布差异并不能单凭观察数据确证因果。数据可视化是发现问题的工具,也是质量检查的一部分。

p 值、置信区间与多重比较

在原假设及模型假设成立时,p 值衡量观测到当前或更极端结果的概率。它不是“原假设为真的概率”,也不是效果大小。小 p 值可能对应很小的实际差异;不显著也不等于两组完全相同。

独立两组均值比较在条件合适时可考虑 Welch t 检验;同一人的前后测量有配对关系,应选相应分析。还需检视独立性、分布、离群点与研究设计。大量重复检验时应预先规划并进行适当多重比较控制。

95% 置信区间的频率学解释针对反复抽样的区间覆盖率;单个区间不是直接给固定参数赋予 95% 概率。报告区间和效应量有助于解释不确定性。

先汇总,再画大数据

上千万点直接传回 CPU 并在浏览器绘制,可能使加速收益消失。先在 GPU 上计算直方图分箱、分组统计或空间密度,再传回小结果。确需抽样时使用代表性方案,并说明少数类和罕见事件可能被普通随机抽样遗漏。

读取图时固定四个问题:轴与单位是什么?一个点代表什么?分母和样本量是多少?图形是否隐藏了分组或缺失?

易错点

自测问题

术语速记

术语解释
EDAExploratory Data Analysis,探索性数据分析。
IQRInterquartile Range,四分位距。
Confounder混杂因素:同时关联解释变量和结果的因素。
p-valuep 值:在原假设及相关假设下对结果极端性的度量。
Effect size效应量:差异或关联的大小。
Aggregation聚合:按组或区间计算汇总统计。

文档:SciPy:独立样本 t 检验 · scikit-learn:评价指标 · Dask DataFrame:最佳实践

MLOps 入门 · 10%

Introductory MLOps Practices

学习目标:能够追踪实验、保存可复用模型,监控质量、漂移、性能和成本。

一个实验需要留下什么

对象例子目的
参数 Parameters树深度、学习率、随机种子知道本次配置
指标 Metrics验证 F1、耗时、峰值内存公平比较结果
构件 Artifacts模型文件、图、转换器、数据字典复用和核查产物
版本信息代码提交、依赖、数据版本和切分 ID追溯完整上下文

MLflow、Weights & Biases 或结构化自定义日志都可用于实验追踪。记录种子很有帮助,但不同硬件、库版本或并行实现仍可能产生差异;不能只靠一个 seed 承诺逐位复现。

保存模型也要保存前处理

模型推理需要相同的列、类型、单位、特征顺序、类别映射和缩放参数。仅保存最终分类器,遗漏填补器或编码器,可能导致预测错误。保存后重新加载,使用固定小批样本比较输出,并记录依赖版本。

加载 pickle/joblib 等模型文件需要可信来源,因为反序列化可能执行代码。跨版本或跨硬件加载应查对应库支持,不要假定所有模型构件完全通用。

漂移不等于性能必然下降

变化含义观察方式
数据漂移输入分布 P(X) 改变缺失率、数值分布、类别比例与训练参照比较
概念漂移输入与标签的关系 P(Y|X) 改变需结合标签、误差或业务证据分析
性能退化预测效果变差标签到达后计算切片和总体指标
系统异常请求失败、延迟或资源异常错误率、p95 延迟、吞吐量、内存等

输入分布变动可能是预期变化,也可能预示风险;应调查原因,不能仅凭一次漂移告警直接覆盖线上模型。标签有延迟时,输入监控和服务监控仍能先发现问题。

公平的基准测试

明确比较范围:纯算法、包含传输的计算,还是读取到写出的端到端流程。CPU/GPU 都应先预热,使用相同输入和合理对应配置,重复测量;报告中位耗时、波动、峰值内存和输出正确性。

GPU 执行常是异步的,计时结束前要等待对应计算完成,或使用 CUDA 事件。首次调用可能包含上下文初始化或编译时间,应与稳态测量分开。最终选择还要考虑成本、吞吐量和部署约束。

小型实验日志示例

import mlflow
with mlflow.start_run(run_name="eeg_baseline"):
    mlflow.log_params({"seed": 42, "split": "subject_group"})
    # 替换为本次运行实际得到的指标,勿把示例数值冒充结果
    # mlflow.log_metric("valid_f1", valid_f1)
    # mlflow.log_artifact("environment.txt")

上线流程应能够先验证候选模型,再逐步发布,并保留回滚构件;回流数据进入下一次训练前仍要做质量检查。

易错点

自测问题

术语速记

术语解释
Experiment tracking实验追踪:保存配置、指标与产物的对应关系。
Artifact构件:模型、文件、图表等实验产物。
Data drift数据漂移:输入分布发生变化。
Concept drift概念漂移:输入与目标的关系发生变化。
p95 latency第 95 百分位延迟:关注较慢请求的体验。
Benchmark基准测试:在规定条件下可比较的性能测量。

文档:MLflow:实验追踪 · CuPy:性能测量 · scikit-learn:常见陷阱 · NVIDIA cuML 文档

时间序列与图 · 7%

Advanced Data Structures

学习目标:能处理时间顺序、缺失时间戳和图的基本表示,避免预测中的未来信息泄漏。

时间序列的三个前提

先解析时间类型和时区,再检查排序、重复时间戳、采样间隔与缺失区间。重采样是把数据归到新的时间网格;聚合用于降采样,插值用于估计缺失。两者都依赖数据语义,不能自动证明信号真实存在。

线性插值默认可能按行位置理解间隔;不规则时间戳应核对所用库和版本的时间插值支持。不能把 pandas 的全部插值方法假定为 cuDF 支持。先小例子验证结果,再扩展到大数据。

预测必须遵守可获得信息

预测 t 时点时,特征只能来自预测时已知的信息。包含 t 的滚动均值可能泄露当前目标;含未来点的中心滚动窗口更危险。通常先 shift(1) 再做过去窗口的滚动计算,并明确预测窗口。

# 示例:用前三个已经观测到的值预测下一步
df = df.sort_values("time")
df["lag1"] = df["value"].shift(1)
df["past_mean3"] = df["value"].shift(1).rolling(3).mean()

多个受试者的序列必须按受试者分别计算 lag,避免跨边界串线。离线补齐历史记录和在线预测的可用信息不同,不能用未来值反向填补预测时尚未知的信息。

滚动验证和基线

采用扩展窗口或滚动窗口:早期训练、后期验证,随后移动边界。特征窗口与预测区间有重叠风险时考虑设置间隔。一个简单但重要的基线是“下一步等于最后一次观测”,有季节性时可比较季节性朴素预测。

MAE 与 RMSE 可用于预测误差;MAPE 在真实值为零或接近零时可能失真。不同受试者、时间段或站点需要分组检查,避免总体均值掩盖局部失败。

图的表示与节点重要性

概念如何理解神经科学示例
节点 Vertex实体脑区
边 Edge节点间的关系脑区间结构或功能连接
有向图边具有方向从某脑区投向另一个脑区
加权图边包含权重连接强度
Degree邻接边/邻居数量,依定义区分入度出度直接连接的多少
PageRank与连接来源的重要性和转移结构有关网络中的结构性重要性,不是因果证据

边列表以 source、destination、weight 存储;邻接矩阵用二维关系表示。稀疏大图用稠密邻接矩阵可能浪费内存。图可视化受布局影响,视觉中心不一定是算法中心性最高的节点。

易错点

自测问题

术语速记

术语解释
Lag feature滞后特征:从过去时点提取的值。
Resampling重采样:改变时间网格并按规则汇总或补齐。
Interpolation插值:利用已知点估计缺失位置的值。
Walk-forward validation向前滚动验证:用过去训练并在随后时间段评估。
Edge list边列表:用源节点和目标节点表示关系。
Centrality中心性:根据指定图结构准则衡量节点重要性。

文档:scikit-learn:交叉验证 · NVIDIA cuGraph 文档 · pandas:缺失数据 · scikit-learn:评价指标

软件与环境管理 · 6%

Software and Environment Management

学习目标:理解驱动、CUDA、库、Python 和架构的兼容链,并能给出可追溯的运行环境。

兼容性是一条链

硬件架构 → 驱动 → CUDA 运行时 → RAPIDS 与其他库 → Python → 项目代码。每层都有兼容条件。nvidia-smi 显示的 CUDA Version 主要表示驱动支持的 CUDA 版本上限,并不证明当前 Python 环境安装了同版本 Toolkit。

DGX Spark 的 aarch64/arm64 架构与 x86_64 不同。使用 RAPIDS 官方安装选择器选择当前兼容组合;检查镜像/软件包的 ARM 支持及对应 GPU 架构支持。不要直接复制面向 amd64 的安装包或随意升级工作机驱动。

先做只读检查

uname -m
nvidia-smi
python --version
python -m pip --version
python -m pip check
python -c "import cupy as cp; print(cp.cuda.runtime.getDeviceCount())"
python -c "import cudf, cuml; print(cudf.__version__, cuml.__version__)"

在准备运行 notebook 的同一环境里检查。终端能导入库而 notebook 失败,常需确认 kernel 对应的解释器。容器内部看不到 GPU,应检查设备可见性和 NVIDIA Container Toolkit 配置,不能单凭重装 pandas 修复。

Conda、pip、Docker 与记录

工具用途复现要点
Conda隔离环境并管理 Python/部分非 Python 依赖环境文件、包版本、渠道与平台
pip在当前 Python 环境安装包使用 python -m pip;记录实际版本
Docker打包用户态运行环境固定镜像版本/摘要;仍依赖主机驱动
Git追踪代码版本记录 commit;不要提交密钥和私有原始数据

环境文件应记录实际成功的配置。pip freeze 能保存 Python 包列表,但不能完整捕获驱动、系统库或硬件。不同平台的精确锁定文件未必直接通用。

排错顺序与学习边界

先确认报错发生在哪一层:设备不可见、驱动/运行时不兼容、包缺失、版本冲突、输入类型不支持,还是内存不足。按证据处理对应层,不要每次从“重装全部软件”开始。

先用一个小 DataFrame 和简单聚合验证环境,再跑模型与大数据。CPU 练习能验证分析逻辑,但不能验证 GPU 安装、实际加速或多 GPU 通信。本站实操同时提供 CPU 路径;GPU 路径需在你的兼容环境中运行。

易错点

自测问题

术语速记

术语解释
Driver驱动:连接操作系统与 GPU 硬件。
CUDA runtimeCUDA 运行时:程序执行 GPU 工作所需的运行组件。
Kernel此处指 Jupyter 内核;与 CUDA 计算 kernel 需按上下文区分。
aarch64 / arm6464 位 ARM 架构的常见标识。
Container image容器镜像:封装用户态软件与环境。
CommitGit 提交:代码状态的可追溯快照。

文档:RAPIDS 安装选择器与兼容性 · cuDF pandas accelerator · NVIDIA cuML 文档 · NVIDIA DGX Spark:架构与规格

6 个动手实操

配套文件:Jupyter NotebookPython 脚本。默认 CPU 路径已在本地验证;GPU 路径未在你的 DGX Spark 上执行,需兼容 RAPIDS 环境。全部样本为合成数据。

实操 1:环境与设备检查

导出架构、Python 和包版本;区分 CPU 能运行与 GPU 可用。

核验:CPU 分支应能导入 NumPy、pandas、scikit-learn;GPU 分支另外检查 cuDF、cuML、CuPy。

实操 2:受试者记录的清洗与连接

用完全合成的小表验证键唯一性、缺失值语义和分组均值。

核验:A 组均值 3.0,B 组均值 8.0;左连接仍为 4 行。

实操 3:防止受试者泄漏的分类流程

用合成特征完成分组切分、训练集填补/缩放、分类和指标计算。

核验:输出受试者交集为 0;指标来自实际运行,CPU/GPU 数值可以略有差异。

实操 4:公平计时:启动成本与稳态

比较相同聚合工作并解释预热、同步、传输和数据规模。

核验:报告三次耗时与中位数;不要求 GPU 必须更快。

实操 5:只使用过去信息的时间特征

对一段合成时间序列生成滞后和滚动特征,再做时间切分。

核验:t=3 的 past_mean3 等于 t=0、1、2 的均值;验证时间晚于训练时间。

实操 6:保存、重载与实验记录

保存模型、预处理和元信息,并检查重载后的预测。

核验:同一环境中重载后的类别预测一致;输出 JSON 报告和模型文件。

考前速查

模拟与考前一天

两套模拟各 55 题、60 分钟,各卷独立不重复。本站模拟每题 1 分,多选全对计分;只是练习规则。建议首轮 45 分钟,最后 15 分钟处理疑问和漏题。考前一天确认本人通知中的时间、城市、证件与路线,避免临时更换环境或熬夜安装软件。

一手文档目录

旧 nvdam 短链接及 gpusolution 第三方页面本次未能取得正文;官方学习指南已从当前 NVIDIA 认证页取得。软件版本不断变化,命令和 API 需与实际安装版本核对。