大模型书籍学习
Table of Contents
卷积层: (权重+偏置)
全连接层:
池化层无参数
本例总参数 = 380+552+24704+1290 = 26926


2‑1 如何将自监督学习应用于视频数据?
核心思路:利用视频天然的时序结构构造自监督信号,做对比学习、时序预测、掩码复原。
- 时序对比学习(孪生对比框架)
- 同一视频片段做两种扰动:时空裁剪、随机翻转、颜色抖动、时间子采样,得到两个正样本片段。
- 共享权重的孪生网络分别提取两段视频嵌入,最大化同视频不同片段的相似度,不同视频片段作为负样本。
- 同一视频时间上邻近的帧/片段视为正样本对,相隔较远或者其他视频片段作为负样本。
- 时序预测任务
- 输入前面部分帧,让模型预测后续帧、预测未来帧的嵌入向量;利用时序连续性作为监督信号。
- 掩码重建(类似MAE)
- 对视频时空维度做掩码,遮盖部分帧或者部分空间块,模型学习恢复被掩码的视频内容。
- 帧顺序判别
- 把视频帧打乱,训练模型判断帧的正确时序顺序,利用时序先后作为自监督信号。

2‑2 自监督学习可以用于行列形式的表格数据吗?如果可以,该如何实现?
答:可以。 表格数据:行=样本,列=特征(数值特征、离散类别特征)。 表格没有图像、文本那种天然结构,需要人为构造自监督预训练任务。
主要实现方式:
- 特征掩码恢复 随机遮盖表格中部分列(特征),输入模型,让模型预测/还原被掩码掉的特征值;离散特征做分类预测,连续数值特征做回归。
- 样本增广+对比学习 对同一个表格样本做扰动增广:随机噪声、特征丢弃、特征置换,生成该样本的两个增广版本,作为正样本对;不同行样本作为负样本,用对比损失,让同源样本嵌入接近。
- 列置换任务 随机打乱部分特征列,训练模型识别哪些特征被篡改,还原原始特征。
- 样本生成任务 模型学习部分特征,去预测其余特征,利用表格自身内部特征之间的相关性作为监督信号,不需要外部标签。
3‑1 MNIST数据集如何划分用于小样本学习
背景:MNIST原始:训练集50000张,10类(0‑9);小样本学习核心:元训练集、元测试集类别隔离,元测试类别只使用少量标注样本,模拟少标签场景。
小样本学习要求:元训练(预训练)类别 和 元测试(评估)类别互不重叠。 MNIST一共10个类别(数字0~9):
- 挑选一部分类别作为元训练集(base类):使用大量带标注样本做元学习预训练;
- 剩下的类别作为元测试集(novel新类):训练阶段模型完全看不到这些类的大量样本,仅提供每类少量标注样本(K‑shot,如1‑shot、5‑shot),用来测试模型少样本泛化能力。
- 总类别:0‑9,共10类
- 元训练基类:选其中 6 个类别,例如
{0,1,2,3,4,5},使用该类别全部可用样本进行元训练; - 元测试新类:剩余 4 个类别
{6,7,8,9}- 在新类内部:每类只取出少量标注样本作为支持集Support set(如每类1/5张);
- 再取一部分样本作为查询集Query set,用来测试模型效果。
小样本学习按照**类别进行划分,保证元训练类别与元测试类别互不重叠。 ①将MNIST的10个数字类别分成两部分:一部分作为元训练基类,使用该类全部样本完成元学习预训练; ②剩余类别作为元测试新类,训练阶段不接触该类数据;在新类中,选取每类少量样本构成支持集(Support),再选取部分样本作为查询集(Query),用来评估小样本下模型性能。 例如:取0‑5作为元训练类别,6‑9作为元测试新类,设置4‑way 5‑shot,每个新类别提供5张标注样本作为支持集。
3‑2 有哪些真实应用场景或案例适用小样本学习
核心前提:现实场景中标注样本稀缺,获取标注成本高,但是存在大量相关先验知识 / 预训练模型可以迁移,适合小样本学习。
- 医疗影像 医院的罕见病影像:罕见病症病例数量少,很难收集大量标注 CT/MRI/ 病理切片;但是普通疾病影像数据充足。用小样本学习,借助普通医学图像预训练,仅靠少量罕见病样本实现病灶识别。
- 工业缺陷检测 工业生产中大部分产品是合格,各类缺陷样本极少,很难采集大量缺陷图片。不同类型缺陷样本稀缺,适合小样本,只需要少量缺陷样本就识别新型缺陷。
4‑1 假设我们正在尝试验证彩票假设,但发现子网络的性能并不是很理想(与原始网络相比),接下来我们可以尝试哪些步骤呢?

现象:按照彩票假设流程(训练收敛→剪枝→权重回退到原始初始化 W₀→重训练),得到的稀疏子网络,准确率显著低于原始完整大网络,没有得到合格的 “中奖彩票”。
- 减小每轮迭代剪枝的比例,采用渐进剪枝,避免一次性剪去过多参数;适当降低目标稀疏程度。
- 改进权重重要性评判标准,不再仅依靠权重幅值,引入梯度、海森矩阵信息,减少误剪关键权重。
- 调整权重回退策略,可以不再完全回退到最原始初始化,改为回退至训练早期的权重;检查掩码与权重回退代码正确性。
- 调整剪枝后重训练的超参数:调整学习率、学习率调度,增加重训练迭代次数,重置优化器状态。
- 使用多个不同随机种子重复整套迭代幅值剪枝流程,彩票假设存在随机效应。
- 增加正则化、数据增强,改善稀疏子网络的训练与泛化;也可更换规模更小、更适配彩票假设的模型与数据集。
4‑2 ReLU 激活函数和彩票假设之间有何关联?
ReLU:;输入正数输出原值,输入≤0输出0。
- ReLU产生天然的激活稀疏,网络大量神经元输出为0,与彩票假设“大网络存在稀疏有效子网络”的思想相契合。
- 彩票假设原始实验与早期理论证明主要基于ReLU网络;ReLU缓解梯度消失,保证深层网络可以充分收敛,迭代幅值剪枝整套流程得以正常执行。
- ReLU存在死亡ReLU问题:神经元永久失活,权重幅值偏小。迭代幅值剪枝容易把这些已经失效的权重剪掉,会干扰对子网络的筛选;剪枝‑回退后重训练的稀疏子网也更容易出现神经元死亡,导致子网络性能变差。
- 在ReLU网络训练中,梯度下降会放大重要权重的幅值,不重要权重幅值维持较小;这正好适配迭代幅值剪枝“移除幅值最小权重”的筛选逻辑,便于从中找出中奖彩票子网络。
补充思考题:如果实验中ReLU网络很难找到中奖彩票,一部分原因就是发生了严重的Dying ReLU。
- Dying ReLU:死亡ReLU
- activation sparsity:激活稀疏
- iterative magnitude pruning IMP:迭代幅值剪枝
- winning‑ticket:中奖彩票
5-1XGBoost 迁移学习
答:XGBoost进行迁移学习是可行的,但与深度神经网络迁移学习机理不同,且要求源域数据集与目标域的**特征维度、特征含义必须完全一致。
- 首先在合作方提供的源域旧数据集上完整训练XGBoost模型。
- 使用XGBoost的
xgb_model热启动(warm‑start)机制,将源域训练完毕的模型作为初始模型,在本任务少量有标签数据集上继续训练。训练阶段调小学习率,增加L1/L2正则,限制迭代轮数,避免过拟合。XGBoost会保留源域学到的决策树,追加新树适配目标任务。 - 备选方案:将源域数据与目标域少量数据混合训练,对目标域样本设置更高样本权重,提升目标任务的重要度。
- 注意:XGBoost无法实现冻结部分树的操作;若源域与目标域分布差异大,会出现负迁移,效果恶化;两套数据集特征必须保持一致,否则迁移无法实施。
- warm‑start:热启动
- negative transfer:负迁移
- xgb_model:XGBoost热启动参数
补充小考点:为什么不能直接冻结树?XGBoost是梯度提升树,模型由多棵决策树叠加;已经建好的树节点不会被更新,只能新增树,没有层的概念,不存在类似神经网络冻结层的机制。
5‑2 MNIST手写数字识别,使用数据增强后准确率反而下降
-
数据增强强度过大,生成大量不合理、脱离真实分布的样本 MNIST手写数字是灰度、居中、大小相对固定的手写数字。如果变换幅度过大:过度旋转、大幅缩放、过度平移、噪声添加过多,生成很多人都难以辨认的数字图片。
-
训练集增强,但是测试集没有做对应增强 ; 训练增强变换太强,测试是原始干净图片,训练分布和测试分布差距拉大。
-
数据增强导致有效信息被破坏 MNIST数字本身尺寸很小(28×28)。大幅度裁剪、平移很容易把数字的一部分直接裁到图像外面,数字残缺。
-
训练集使用强数据增强,但没有相应调整训练超参数。增强提升了数据集复杂度,原有训练轮数不足,出现欠拟合。增加训练epoch、调整学习率。
-
增强样本占比过高,原始真实样本占比被挤压 如果每一张原图生成大量增强样本,训练集绝大部分是合成变换样本,真实原始样本占比过低,模型缺少对真实手写数字的学习。
💡MNIST小图像的经验:数据增强要保守,轻微旋转、小幅平移即可,不宜大幅度变换。
- 训练集精度高,测试集低:过拟合 / 分布偏移
- 训练集精度本身也变低:增强太强或者训练不充分(欠拟合)
6‑1:早停法(保存最佳checkpoint) vs 固定训练轮数
早停法(保存验证集最佳检查点) ✅优点:自动适配最优停止轮次,获取验证集最优权重,抑制过拟合,节约算力;无需人工猜测epoch。 ❌缺点:依赖验证集,验证集噪声会误导选择;需要存储检查点,存在验证集信息泄露风险。
固定训练轮数(手动调整epoch) ✅优点:逻辑简单,算力可预估;允许模型过拟合后继续训练,兼容Grokking现象;不需要训练过程监控。 ❌缺点:需要反复调参;epoch过大容易过拟合,过小容易欠拟合;即使提前到达最优点,也要跑完全部轮次,浪费算力。
6‑2 集成方法的潜在不足
- 计算、存储开销大:需要训练、保存多个模型,训练成本成倍增加。
- 推理性能差:预测需要执行全部子模型,推理速度变慢,线上时延升高。
- 可解释性差:多模型融合,结果难以解释。
- 依赖模型多样性:子模型误差高度相关时,集成几乎没有提升。
- 工程维护复杂:多模型版本管理、部署、排错成本上升。

双下降是固定数据集改变模型参数量,参数量过少、极多时泛化表现较好,参数量接近样本数的插值临界点泛化最差;
**顿悟(Grokking)**是固定模型与数据集,在小数据集场景下,模型已经过拟合后继续长时间训练,泛化能力会突然提升

- 将完整训练数据集切分为 k 个大小相近的子集,称为折 (fold)。
- 循环执行 k 次:
- 选取其中1 折作为验证折(黑色块,验证集)
- 剩余 (k‑1) 折作为**训练折(训练集)**训练模型
- 在验证折上计算性能指标
- 把 k 次验证结果取平均值,作为模型整体性能评估。
两种后续处理方案: (a) 常规方案:评估结束,在全部原始训练数据集上重新训练一个最终模型,用于后续预测。 (b) 集成方案:保留 k 轮训练得到全部 k 个独立模型,做集成学习,通过多数投票 / 结果叠加得到预测输出。

在模型并行策略下,我们将不同的层分布到不同的GPU上,以解决单GPU显存限制的问题。
在数据并行中,我们将批量数据拆分到多个GPU上,以解决无法并行训练的问题,数据并行会计算梯度的平均值来更新权重。
而张量并行则是在模型大到无法完整装载进单GPU显存时,将输入矩阵和权重矩阵拆分到不同的GPU上并行处理。
流水线并行是数据并行和模型并行的一种高阶混合版。
数据并行是将不同训练样本分发到各个 GPU,每张 GPU 持有完整模型;序列并行是将同一个样本的长 token 序列切分,把序列块分配到不同 GPU,用来降低超长序列激活值的显存开销。
7‑1 张量并行 + Adam显存不足
7-1.假设我们正在自己实现一套张量并行算法,当我们使用标准SGD(stochastic gradient descent,随机梯度下降)优化器来训练模型时,效果非常好。但当我们尝试使用Diederik P. Kingma和Jimmy Ba提出的Adam优化器时,遇到了设备内存不足的问题。可能是什么原因导致了这个情况?
SGD仅保存参数与梯度,无额外优化器状态。 Adam需要为每一个参数维护一阶动量m、二阶动量v,张量并行将权重切分到多张GPU,每张GPU除了保存自己的权重分片,还需要为本分片参数分配m、v动量缓存。 而标准 SGD 不保存动量状态,无这部分开销,因此 SGD 运行正常,Adam 出现显存不足。
- 优化器状态分片(ZeRO),把 m/v 分散存储,不跟随参数分片驻留在计算 GPU;
- 使用 Adam‑8bit,压缩优化器状态精度降低显存占用。
7‑2 CPU运行数据并行是好主意吗
7-2.假设我们没有GPU可用,在CPU上运用数据并行是一个好主意吗?
数据并行:把batch切分成多份,每个工作进程/线程持有一份完整模型,处理一部分样本;计算完成后聚合梯度。 在GPU上:GPU计算算力极强,多卡计算速度远大于通信开销,数据并行收益很大。
CPU上使用数据并行通常不是好主意。
- 内存代价:数据并行每个worker都持有完整模型副本,会成倍占用CPU内存
- 通信开销:CPU进程间梯度聚合通信成本高,容易抵消并行带来的加速收益,甚至变慢。
- Python GIL进一步限制并行效率,并行带来的计算收益往往被通信与内存开销抵消;仅
结论:CPU环境一般不推荐使用数据并行;仅极小模型、超多CPU核心的特殊场景才可能收益。
关联对比:GPU下数据并行收益高,因为GPU算力强,计算耗时远大于通信时间。
8-1.如本章所讨论的,自注意力机制很容易并行处理,但也有很多人认为Transformer计算成本很高。我们该如何理解这种矛盾?
自注意力易于并行与计算成本高分属不同维度,不存在矛盾:
- 易并行:自注意力基于矩阵运算,无时序依赖,能充分利用 GPU 并行计算,训练阶段速度远优于循环模型;
- 成本高:训练阶段标准自注意力时间复杂度为,计算、显存开销随序列长度平方增长;但是自回归生成推理时,必须逐个输出 token,无法一次性并行生成全部输出,依靠 KV‑Cache 复用历史的 KV 避免重复计算,但随着生成序列不断变长,每一步 token 的计算量、显存占用都会随序列长度线性增长,所以长文本生成速度会越来越慢。
- 本质:并行只能缩短运算耗时,无法减少总的计算量,因此两个特点会同时存在。
8.2既然自注意力权重代表了各种输入元素的重要性,我们可以将自注意力视为特征选择的一种形式吗?
自注意力机制视作一种“软(连续、概率式、可微分)”、“可学习”、“动态”的特征选择机制
- 软:连续概率权重,非 0/1 离散,算子可微分;所有输入元素均参与加权求和,不会真正丢弃输入。
- 可学习:QKV 投影矩阵 () 通过梯度下降学习,权重不是人工给定;
- 动态:权重依赖当前 Query 与上下文,每个位置、每个样本权重分布都不一样,没有固定一套选择规则。
但二者存在本质区别:传统特征选择目的是降维、剔除冗余特征,常采用硬筛选;而自注意力加权的是投影后的 Value 隐向量,核心目标是建模序列元素之间的依赖关系、聚合上下文信息,并非以降维筛选为目的。
- 朴素贝叶斯(生成式) 朴素贝叶斯是通过学习联合分布 ,再利用贝叶斯公式推导出条件概率 ,从而实现分类。
- 建模:,引入特征条件独立假设;
- 训练:最大化联合似然;
- 行为:学习每一类样本自身的特征分布,理论上可生成对应类别的样本。
- 逻辑回归(判别式) 逻辑回归直接建模条件概率 ,通过最大化条件似然函数估计参数。
- 建模:;
- 训练:最大化条件似然;
- 行为:学习输入到标签的决策边界,不建模输入本身分布,不能生成样本。
9‑1.我们要如何评测生成式AI模型生成的图像质量?
答:分为客观自动化指标与主观人工评测,二者需要结合使用。
- 客观指标
- FID:计算生成图像与真实图像的特征分布距离,数值越小,生成分布越接近真实数据。
- IS:衡量生成图像类别清晰度与多样性,分数越高效果越好。
- LPIPS:评估生成图与参考图的视觉感知相似度。
- Precision‑Recall:Precision衡量生成样本保真度;Recall衡量多样性,检测模式崩塌。 客观指标计算高效,但难以识别语义错误、物体畸形等细节问题。
- 主观人工评测 采用MOS平均主观打分、A/B成对偏好测试,人工评估图像真实性、prompt语义一致性、生成多样性、物体结构合理性。主观评测贴合人视觉感受,但成本较高。
完整评测需要客观指标与主观评测相互补充。
9‑2.根据本章对一致性模型的描述,我们要如何用它来生成新图像?
答:概率流ODE轨迹中,清晰图像逐步加噪声最终变为高斯噪声。一致性模型学习轨迹上任意噪声点都映射回清晰原图。
- 在ODE轨迹末端,从高斯分布采样一张满噪声图像;
- 将噪声输入训练完成的一致性模型,利用一致性映射,可单步直接输出清晰图像;也可采用多步迭代进一步提升画质;
- 最终得到全新生成的图像。
相比于传统扩散模型需要大量迭代去噪,一致性模型推理速度更快。
习题10‑1
题目:假设使用 top‑k 采样或者核采样(top‑p),为超参数。能否不修改代码,让推理输出变成确定行为(每次输入相同,输出完全一样)?
可以。仅调整推理超参数,无需修改模型代码。
- top‑k 采样:设置 ,候选集合只保留概率最高的1个token,退化为贪心解码。
- 核采样(top‑p):设置 ,核集合仅包含概率最大的token,退化为贪心解码。
贪心解码容易产生重复文本,多样性差;仅实现输出确定性,生成质量未必最优。
习题10‑2
题目:在什么情况下,推理期间的随机Dropout行为是可取的?
常规推理默认关闭Dropout,保证输出稳定确定。
可取场景:蒙特卡洛Dropout(MC‑Dropout)
- 估计模型预测不确定性(核心用途) 对同一输入多次前向推理,Dropout随机生成不同神经元掩码,得到多组预测。
- 通过预测结果的方差衡量模型置信度
- 方差大:模型不确定,大概率是异常/域外样本
- 方差小:模型预测置信度高
-
贝叶斯神经网络近似 无需重新训练模型,依靠多次推理采样近似得到预测后验分布。
-
次要用途:生成任务中,增加输出结果的多样性。
不可取场景 普通分类、回归任务,需要稳定确定输出时,推理阶段必须关闭Dropout;否则同一输入多次推理结果不一致,系统行为不稳定。
| 技术 | 参数设置 | 行为 |
|---|---|---|
| Top‑k | 等价贪心解码,确定输出 | |
| Top‑p(核采样) | 等价贪心解码,确定输出 | |
| Dropout推理 | 关闭 | 标准部署,输出确定 |
| Dropout推理 | 开启(MC‑Dropout) | 获取预测不确定性,输出随机 |
习题11‑1
题目:如果我们想使用SGD优化器或广受欢迎的Adam优化器来优化神经网络,那么对于SGD和Adam,需要存储的参数量分别是多少?
设模型本身参数总数量为
- SGD(无动量):优化器额外存储 0,共;
- SGD momentum:额外存储 ,共;
- Adam:Adam优化器需要为每一个参数维护一阶动量 和二阶动量 ,额外存储 ,共。
习题11‑2
题目:网络添加3个BatchNorm层:第1卷积后、第2卷积后、第1全连接层之后。输出层不加BN。这3个BatchNorm层给模型额外增加多少参数?
每一个BN层维护2个可学习参数:(缩放系数,scale)、(偏移系数,shift)。
均值 、方差 是统计量,推理时作为运行时缓冲,不属于可训练模型参数。
- 不管BN接在卷积层还是全连接层之后:每个BN层固定增加2个可训练参数。
- 3个BN层: 个可训练参数。
- 、 滑动平均是缓存变量,用于推理,不计入模型可学习参数;
- BN参数数量和输入通道数无关,每一层BN永远只有 、 两组可学习参数。
BN公式
设某一层的一批输入:,为batch样本数。
计算批均值
计算批方差
标准化(归一化到均值0,方差1)
:极小常数,防止分母为0。
缩放与平移(可学习参数 )
输出 送入下一层。
LN公式
输入向量 (单个样本全部特征,为特征维度)
标准化
缩放与平移(可学习参数 )
| 项目 | BatchNorm | LayerNorm |
|---|---|---|
| 归一化维度 | 沿着batch维度,同一个通道内所有样本做归一化 | 沿着特征维度,单个样本自身内部做归一化 |
| 统计量来源 | 训练时:当前batch的均值、方差 推理:滑动平均缓存 | 训练&推理都使用单样本自身的均值方差,没有滑动均值/方差缓存! |
| 可训练参数 | (每层2个) | (每层2个) |
| batch大小影响 | batch小效果暴跌 | 不受batch大小影响,Transformer标配 |
| 额外缓存变量 | 有(running μ、running σ²) | 无缓存变量 |
1×1卷积与全连接等价性
基础等价前提:
kernel=1, stride=1, padding=0,输入特征图 ,此时1×1卷积nn.Linear
输出尺寸公式:
- 场景①:输入 (本章示例) 代入 : 卷积核没有滑动空间,stride参数不起作用;即便stride>1,输出仍为1×1,等价性保留。
- 场景②:输入 (普通特征图) stride>1触发空间下采样,卷积仅计算部分空间像素;全连接摊平全部像素参与运算。等价性消失。
输出尺寸公式:
- padding = 0:输出保持 ,满足等价条件。
- padding > 0: 代入 : 输出空间尺寸变大,卷积生成大量额外空间位置输出; 全连接无空间维度,不会产生额外输出。等价性被破坏。
- 卷积:
- 输入特征图:
- bias配置保持一致(同时开启/关闭偏置)
第17章17-1.要将预训练的BERT模型用于分类任务,需要添加用于分类的输出层,通常称为分类头。正如前面讨论过的,BERT在预训练期间使用[CLS]词元来执行下一句预测任务。我们不必对其进行预测下一句的训练,而是可以为我们的目标预测任务(如情感分类)微调新的输出层。嵌入的[CLS]输出向量充当整个输入序列的摘要。我们可以将其视为一个特征向量,并在其上训练一个小型神经网络,通常是一个全连接层接一个softmax激活函数来预测分类概率。全连接层的输出大小应与我们分类任务中的分类数量相匹配。然后我们可以像往常一样使用反向传播来训练它。比如,可以使用不同的微调策略(更新所有层而不是仅更新最后一层)在监督数据集上训练模型。17-2.是的,我们可以对像GPT这样的纯解码器模型进行微调来执行分类任务,尽管它可能不如像BERT这样的基于编码器的模型有效。与BERT相比,我们不需要使用特殊的[CLS],但基本概念类似于微调编码器模型以执行分类任务。我们添加一个分类头(一个全连接层和一个softmax激活函数),并在生成的第一个输出词元的嵌入(最终隐藏状态)上对其进行训练(这类似于使用[CLS]词元的嵌入)。
第18章18-1.如果我们无法访问模型,或者如果我们想要使模型适应那些未曾训练过的类似任务,上下文学习是有用的。相比之下,微调对于使模型适应新的目标领域是有用的。例如,假设模型是在通用语料库上预训练的,并且我们希望将其应用于金融数据或文档。在这里,对来自该目标领域的数据进行模型微调是有意义的。请注意,上下文学习也可以与微调模型一起使用。例如,当一个预训练的语言模型在一个特定任务或领域上进行微调后,上下文学习利用模型根据输入中提供的上下文生成响应的能力。与不进行微调的上下文学习相比,在给定目标领域的情况下,该模型生成的响应可能更准确。18-2.这是隐式完成的。在前缀调优、适配器和LoRA中,预训练语言模型原有的知识被保留下来,这是通过在保持核心模型参数冻结的同时,引入额外可学习的参数来适应新任务实现的。
第19章19-1.如果使用像Word2vec这样独立处理每个词语的嵌入技术,我们预期“cat”的嵌入之间的余弦相似度是1.0。然而,在这种情况下,我们使用Transformer模型来生成嵌入。Transformer使用自注意力机制,在生成嵌入向量时会考虑整个上下文(例如输入文本)。(有关自注意力的更多信息,请参阅第16章。)由于单词cat用于两个不同的句子,BERT模型为这两个cat的样本生成了不同的嵌入。19-2.交换候选文本和参考文本,与计算列与行之间的最大余弦相似度具有相同的效果(如图19-3中的步骤5所示),可能会导致特定文本的BERTScore不同。这就是为什么在实践中,BERTScore通常被计算为类似于ROUGE的F1分数。例如,我们会先按一种方式计算BERTScore(召回率),然后再按另一种方式计算(准确度),最后计算调和平均值(F1分数)。
第20章20-1.基于CART决策树的随机森林通常不能随着新数据的到来而随时更新。因此,无状态训练方法是唯一可行的选择。如果我们转而使用如循环神经网络这样的神经网络模型,有状态方法可能更有意义,因为神经网络可以随时根据新数据进行更新。(不过,最好一开始就横向比较有状态系统和无状态系统,以决定哪种方法最有效。)20-2.有状态的重训练在这里最有意义。与其在结合现有数据(包括用户反馈)的基础上训练一个新模型,不如基于用户反馈更新模型。大模型通常以自监督的方式预训练,然后通过监督学习进行微调。训练大模型的成本是非常高的,因此通过有状态的重训练来更新模型比从头开始重训练模型更有意义。
第21章21-1.从提供的信息来看,还不清楚这是否是一种以数据为中心的方法。人工智能系统在很大程度上依赖数据输入来做出预测和提出建议,但对于任何人工智能机器学习方法来说都是如此。为了确定这种方法是否是以数据为中心的人工智能的例子,我们需要知道人工智能系统是如何开发的。如果它是通过使用固定的模型并对训练数据进行改进来开发的,这称得上是一种以数据为中心的方法;否则,它只是常规的机器学习和预测建模。21-2.如果我们保持模型不变,也就是说重用相同的ResNet-34架构,并且只改变数据增强方法来探究其对模型性能的影响,那么我们可以认为这是一种以数据为中心的方法。然而,数据增强也是现代机器学习流水线中的常规流程之一,仅仅是使用数据增强方法本身并不能说明这种方法是否是数据为中心的。根据现代定义,以数据为中心的方法要在保持其余的模型构建和训练流水线不变的情况下,积极研究各种数据增强技术之间的差异。
第22章22-1.使用多GPU策略进行推理的一个缺点是GPU之间的额外通信开销。然而,对于推理任务来说,因为它们不需要梯度计算和更新,相较于训练而言规模较小,所以GPU之间的通信时间可能会超过并行化节省的时间。管理多个GPU也意味着更高的设备和能耗成本。在实践中,以提升单个GPU或CPU性能为目的来优化模型通常更值得。如果有多个GPU可用,在不同的GPU上并行处理多个样本要比使用多个GPU处理同一个样本更为合理。22-2.循环分块通常与向量化结合使用。例如,在应用循环分块之后,可以使用向量化操作来处理每个分块。这让我们能够对缓存中已经存在的数据使用SIMD指令,从而提高这两种技术的有效性。
第23章23-1.问题是,重要性加权假设测试集分布与部署分布相匹配。然而,由于各种原因,这往往并非实际情况,比如不断变化的用户行为、不断发展的产品功能或动态的环境。23-2.通常我们会监控分类准确度等指标,性能下降可能表示数据发生了变化。然而,如果我们无法获取到新流入数据的标签,这样做是不切实际的。在无法标记新流入数据的情况下,我们可以使用统计双样本检验来确定样本是否来自同一分布。我们还可以使用对抗验证,如第29章所述。然而,这些方法无助于检测概念偏移,因为它们只比较输入分布,而不比较输入与输出之间的关系。其他方法包括测量重建误差:如果我们有一个在源数据上训练好的自编码器,就可以监控新数据上的重建误差。如果误差显著增大,则可能表示输入分布发生了变化。异常检测是另一种常见的技术。当被识别为异常值的数据点的比例异常高时,表明数据分布可能发生了变化。
第24章24-1.尝试预测一名球员进球的数量(例如,基于过去几个赛季的数据)是一个泊松回归问题。我们也可以应用序回归模型,根据进球数量对球员进行排名。然而,由于进球差是恒定的,并且可以量化(例如,3个进球和4个进球之间的差别与15个进球和16个进球之间的差别相同),因此对于序回归模型来说,这不是一个理想的问题。24-2.这是一个类似于序回归问题的排序问题,但存在一些差异。由于我们只知道电影的相对顺序,因此与序回归模型相比,成对排序算法可能是更合适的解决方案。然而,如果要求此人按1到5的范围(类似于亚马逊网站上的星级评价系统)为每部电影分配数字标签,那么有可能在这种类型的数据上训练并使用序回归模型。
第25章25-1.置信水平(90%、95%、99%等)的选择会影响置信区间的宽度。较高的置信水平会产生较宽的区间,因为我们需要撒一个更大的网,以更加确信我们捕捉到了真实的参数。相反,较低的置信水平产生较窄的区间,反映了关于真实参数所在位置的更大的不确定性。因此,90%的置信区间比95%的置信区间窄,反映出对真实总体参数的位置有更大的不确定性。通俗地说,我们90%确信真实参数位于一个较小的值范围内。为了增加这种确定性,我们必须将区间宽度增加到95%或99%。
ReAct DAG Langchain