好的大厨带徒弟,绝不会一上来就让学徒把整筐土豆倒进油锅。他先花半天“备菜”:挑出烂的、洗掉沙子,把食材按品类码好,再排一张由易到难的课表——先切墩、再掂锅、最后掌勺。学徒跟着这张课表练,三个月顶别人半年,灶台上的柴火反而省下三成。训练大模型就像带徒弟:数据是食材,GPU算力是柴火,模型是学徒。传统做法是“所有数据一把梭”,结果模型在重复和噪声上浪费大量时间,烧掉的电费能绕地球几圈。训练数据效率提升方法,正是这套大厨的“备菜哲学”——先筛优质食材(数据清洗)、配好营养比例(数据配比)、排好课表(课程学习)、熬一罐高汤宝(数据蒸馏)、一菜多吃(数据增强)、从小灶到大宴(渐进式训练)。每一步都在回答同一个问题:如何用更少的柴火,做出同样好的一桌菜。
掌握数据效率提升方法,你就能在算力预算不变的前提下把训练成本砍掉30%以上——这是每位AI从业者从“会训练”走向“会绿色地训练”的必修课。
可视化演示
通过效率对比与数据管道双模式,展示数据质量筛选、课程学习与数据蒸馏如何以更少数据达到目标精度。
本节配有交互动效(进入视口后自动加载,约 3KB)。
效率对比:优化 vs 标准训练 紫线为效率优化训练,更少步数达到目标精度 粉线为标准训练,收敛较慢需更多步数 绿点标记当前进度,效率优化路径显著缩短 Acc(t) = 1 - a*e^(-kt), k_opt > k_std
数据质量筛选
大厨逛菜市场,面对堆成小山的食材,绝不会闭着眼睛全买。他先扒拉一遍——烂叶子扔了、带泥的洗了、碰伤的削了。因为这些“问题食材”混进菜里,不但坏了整盘菜,还白费了洗菜的水和烧火的柴。训练数据也一样,从网上爬来的文本、图片,重复的、带乱码的、标错标签的比比皆是。
这些脏数据就是模型训练里的“烂叶子”。如果直接喂给模型,它会花大量时间记住这些噪声,真正的规律反而学不好,这就是常说的“垃圾进,垃圾出”。因此,数据质量筛选是数据效率提升的第一道关——原材料不干净,后面一切优化都是白搭。
数据去重是最常见的一步。先把每个样本转成向量(比如用 Embedding 或感知哈希),再两两算相似度,重复的只留一份。然后是异常过滤:对于格式损坏、标签明显冲突的样本直接剔除。更进一步是质量评分:用 CLIP 打分或人工规则,给每个样本打个“新鲜度”,只把高分段的样本送进训练。经过这三关,有效数据率可能从 30% 提升到 80% 以上,同样的 GPU 能学到的有效信息直接翻倍。
这一关就像大厨把菜摊子扒拉了一遍,烂叶子全扔进泔水桶。留下的食材干干净净,后面每一道工序都省水省火——这就是数据效率省下的第一桶金。
- 点积$x_i \cdot x_j = \sum_{k} x_{ik} x_{jk}$,把两个向量逐维相乘再加总,衡量它们在每个维度上是否同向。
- 范数乘积$\|x_i\| \cdot \|x_j\|$ 是两向量长度的乘积,用来归一化,消除样本本身强度的影响。
- 相似度判定$\text{sim} > 0.9$ 视为重复样本,两者只保留其一,从而压缩数据集规模。
主动学习
学徒练手艺,最该加练的是什么菜?不是他已经拿手的西红柿炒蛋,而是那些一上桌就让客人皱眉的“惊悚菜”。大厨的做法是:每次考核后,把学徒最没把握的几道菜挑出来单独开小灶。主动学习(Active Learning)做的正是这件事——让模型自己举手说“我对哪些样本没把握”,然后把宝贵的标注预算花在这些地方。
在很多真实场景里,数据不缺,缺的是高质量标注。比如自动驾驶的上千万帧画面,人工标注一张要好几块钱。如果全都标注,预算爆炸;如果随机标一部分,可能标了一堆模型早就学会的“大晴天直路”,雨天夜间的罕见场景反而漏掉了。
主动学习有三板斧。信息量采样:用模型对每个样本预测的置信度计算熵,熵越高说明模型在几个类别间摇摆不定,这类样本最值得标注。多样性覆盖:不能只挑“没把握”的,还要让挑出来的样本在特征空间中分布均匀,避免全集中在同一个区域。循环标注:训练一小步→挑出最没把握的样本→请人工标注→加入训练集继续练,每一轮标注都花在刀刃上。
大厨盯着学徒的“错题本”补课,补的每一道题都是真不会的,而不是重复练已经会了的菜。标注预算就这么被省下来,同样的钱,教出了更强的学徒。
- 类别概率$p(c|x)$ 是模型认为样本 $x$ 属于类别 $c$ 的概率,对应“学徒觉得这道菜属于哪个菜系”的把握程度。
- 对数项$\log p(c|x)$ 在概率接近 0 时负得很大,让低概率类别在熵中也有贡献。
- 负号求和对全部 $C$ 个类别的 $p(c|x) \log p(c|x)$ 加总取负,当预测均匀摊开时熵最大——也就是最没把握。
数据配比优化
一张好菜单,光有上等食材还不够。全是红烧肉,食客腻;全是拍黄瓜,没营养。大厨配菜讲究荤素搭配、咸淡有序。训练数据的配比也一样——类别比例、难度层级,都是需要精心调配的“营养结构”。
互联网数据天然是长尾的:热门类别(猫、狗、人像)样本几百万张,罕见类别(蒸汽火车、角蜥)可能只有几十张。如果按原始比例训练,模型对热门类目门儿清,对长尾类目直接“眼盲”。数据配比优化就是调整每个类别、每个难度层级的采样概率,让模型均衡发育。
具体做法有三类。类别平衡:最直接的是对样本量少的类别过采样,但简单复制容易过拟合,更稳妥的是平方根重采样——将少数类权重适度放大。难度配置:把样本按难度切分后按比例混合,比如简单:中等:困难 = 3:5:2。动态调整:训练过程中每过若干步,在验证集上观察哪类在掉点,实时微调配比,像大厨根据客人反馈改菜单。
菜单搭配好了,学徒每道菜都练过,上什么菜都不慌。配比优化不增加任何食材,只是把既有食材的组合调均衡,模型各科成绩就齐刷刷上涨。
- 随机比例$N$ 是全部训练样本数,$n_c$ 是第 $c$ 类样本数,$N / (K \cdot n_c)$ 是“均衡时应有比例”与实际比例之比。
- 类别总数$K$ 是类别数,当类别很多时,每个类别的基准配额被摊薄。
- 根号平滑$\sqrt{\cdot}$ 削弱过采样强度,防止少数类被反复复制几十倍而严重过拟合。
课程学习
做菜是门循序渐进的功夫。第一天就让学徒雕萝卜花,他八成会把手指头雕进去。好师傅都是先教切土豆丝、再教焯水断生、最后才轮到爆炒熘炸。课程学习(Curriculum Learning)就是给模型排一张这样的“由易到难”课表。
机器学习和人一样,直接从难样本起步会学得磕磕绊绊,梯度震荡甚至不收敛;而先学简单样本,模型能快速抓住数据的大体结构,再逐步接触难样本时,只把精力花在细枝末节的修正上。直观表现是:损失曲线下降更快、更平稳,收敛所需步数明显减少。
实现课程学习要先给样本定义难度——常见做法是用模型对样本的损失值、离分类边界的距离,或者人工标注的难度等级来打分。然后把样本按难度排序,训练时用一个“难度阈值”决定当前步允许模型看到多难的样本。最常用的调度是线性放宽阈值,让难度上界随训练进度匀速增长。
课表一排出,学徒顺着台阶一路往上走,走得稳当还省劲儿。课程学习就是这么个台阶——数据还是那些数据,只是换了个顺序喂,模型收敛就快了一大截,电费账单也好看了一大截。
- 难度区间$d_{\min}$ 和 $d_{\max}$ 分别是最简单和最困难样本的难度分,对应课表的第一课和最后一课。
- 训练进度$t/T$ 是当前训练步数占总步数的比例,从 0 到 1 匀速增大。
- 线性插值$d_{\min} + (d_{\max} - d_{\min}) \cdot (t/T)$ 让难度上界随进度匀速爬坡,不突变、不回头。
数据蒸馏
老火汤要吊三小时,但大厨有一罐浓缩高汤宝——熬一次用一大锅食材,浓缩成一小罐,之后每道菜只需放一小块,鲜味便直接拉满。数据蒸馏(Data Distillation)就是造这罐“高汤宝”的过程:从海量数据中提炼出一小撮精华样本,模型只在这撮样本上训练,效果却逼近全量。
这个想法的价值在训练成本上立竿见影:假设原来要用 50 万张图训一个模型,蒸馏后只需 1 万张达到相近精度,则每轮迭代时间、显存占用、电力消耗都缩为原来的约 1/50。在动辄上万 GPU 卡时的大模型时代,这种压缩极为诱人。
数据蒸馏有三条技术路径。核心集选取:用 k-Center 等贪心算法,在特征空间里挑出“最能代表全体”的样本子集。样本合成:不满足于挑,而是直接优化合成新的“伪样本”——通过梯度匹配让模型在这些样本上的学习信号与全量训练等效。蒸馏训练:用一个大模型当老师,把它在样本上的软输出(概率分布)作为监督信号,让压缩后的数据集依然保留关键信息。实践中常把挑选和合成组合着用。
有了高汤宝,徒弟烧菜再不用守着灶台等三小时。数据蒸馏就是这罐宝贝——它没法凭空变出新菜,但把整锅数据的“灵魂”浓缩成一小罐,让每一次训练都轻装上阵。
- 全量规模$|D_{\text{full}}|$ 是原始大数据集的样本数量,对应熬汤前的那一大锅食材。
- 蒸馏后规模$|S_{\text{distilled}}|$ 是浓缩出来的精华子集规模,通常只占全量的 1%~10%。
- 压缩比$\eta$ 越小,训练成本越低,但对蒸馏算法要求越高,需要在压缩比和信息保留之间找平衡。
数据增强
大厨常教徒弟做“一菜三吃”:同一块五花肉,做成微辣、中辣、特辣三档,顺便试不同火候,一道菜练出三份功夫。数据增强(Data Augmentation)同理——对每一张图、每一段文本做些无伤大雅的变换,让模型看同一份数据的不同“马甲”,从有限食材里榨出更多训练价值。
模型需要大量数据才能学到稳定的特征,可现实往往拿不到那么多新数据——医学影像标注贵、工业缺陷样本稀缺。数据增强不增加真实数据,但通过合理的变换,告诉模型“旋转 15 度还是同一只猫、亮度降 10% 还是同一个字”,相当于免费扩充了训练集,还能提升模型的鲁棒性。
几何变换是最基础的一类:随机裁剪、水平翻转、旋转、加噪。更进阶的是混合增强:Mixup 把两张图按比例线性混合,标签也同样混合,强迫模型在样本之间学出平滑的边界;CutMix 则把一张图的一块贴到另一张图上,模拟遮挡场景。自动增强(AutoAugment)更进一步,用搜索算法在预定义的变换组合里找出验证集上效果最好的策略,像一个实验大厨在厨房里反复试菜谱。
一道菜练出多种味型,学徒见过的世面广了,将来遇到什么要求都不慌。数据增强让模型在同样数量的食材前练出翻倍的经验值——不新买食材,把功夫练透。
- 两个样本$x_i, x_j$ 是随机抽出的两张原始图,$y_i, y_j$ 是对应的标签。
- 混合系数$\lambda$ 从 Beta 分布采样得到,取值在 0 到 1 之间,决定 $i$ 图和 $j$ 图各占多少比例。
- 像素与标签同步$\tilde{x}$ 是混合后的图像,$\tilde{y}$ 是混合后的软标签,两者共用同一个 $\lambda$。
渐进式训练
学徒不会一上来就承包整场宴席。大厨通常先让他在小厨房练手——菜式少、份量小、火候好掌握;等基本功扎实了,再逐步搬到正经宴会厨房,份量翻倍、菜式翻倍。渐进式训练(Progressive Training)把这套思路搬进深度学习:先在小分辨率、小尺寸上快速试错,再逐步增到全分辨率精修。
高分辨率训练慢、显存吃紧、收敛还慢;低分辨率训练快,但学不到细节。与其一开始就在高分辨率上死磕,不如让模型先在低分辨率把“粗线条”学会——目标边界、整体结构,然后把分辨率一步步往上加,此时模型只需在已有基础上补细节,收敛自然又快又稳。
渐进式训练的三个关键设计。输入递增:分辨率从 $r_{\min}$ 起步,按指数曲线逐步增加到 $r_{\max}$,前 1/3 步数可能都在低分辨率上度过,算力消耗小得多。模型渐进:训练中期才把模型结构加深加宽,避免一开始就优化过大的参数空间。步数压缩:因为前期粗学、后期精修,整个训练所需总步数被显著压缩——这正是绿色训练最直接的“省火”环节。
从小灶台练到大宴会,学徒每一步都有明确的训练目标,火力都花在刀刃上。渐进式训练用更少的总步数完成同样的目标,灶台后面的柴火堆,肉眼可见地矮了一截。
- 分辨率范围$r_{\min}$ 与 $r_{\max}$ 是起始和最终分辨率,比如 64×64 到 256×256。
- 放大倍数$r_{\max}/r_{\min}$ 是总放大倍数,底数大于 1,指数 $t/T$ 从 0 增到 1。
- 指数调度$t/T$ 作为指数,让分辨率在早期缓慢爬升、后期加速到位——粗学阶段低清省算力,精修阶段高清抓细节。
节能与工程实现
前七招练完,账房先生出场了。他不管菜好不好吃,只拨算盘:这一桌菜柴火用了多少?同样的味道,隔壁大厨用了多少?如果咱们省了三成,那这套备菜功夫就值了。节能评估与工程实现,正是这个“账房先生 + 流水线监理”的角色。
数据效率方法的最终目的不是炫技,而是实打实地省算力、省电费、降碳排。要衡量省了多少,需要一把统一的尺子:精度-能耗曲线。横轴是累计算力/电耗,纵轴是模型精度,曲线越靠左上角说明越“性价比高”。而要算电耗,最底层的公式就三个变量:功率、时长和能耗。
能耗核算的基本盘是 $E = P \times T$,即 GPU 功率乘以训练时长。数据效率方法并不直接改硬件功率,而是砍训练时长——去重后数据量小了($T$ 降),课程学习收敛快($T$ 降),蒸馏子集少($T$ 降),提升逻辑全部指向同一个方向。工程实现上,这些方法需要被打包进数据管线:清洗、去重、采样、增强作为独立算子,在训练前/中流水线化执行,并配好在线采样的监控,让工程师随时看到“当前有效数据率是多少、损失下降正不正常”。
账房先生把算盘一拨:同样的菜,柴火省三成,口味不减——这就是训练数据效率的最终成绩单。前七招把“省”落到每个环节,第八招把这些省法量化、管线化,让绿色训练从口号变成能算账、能复盘的工程。
- 基准时长$T_{\text{baseline}}$ 是传统“全量数据随机训练”所需的总时长/总步数。
- 高效时长$T_{\text{efficient}}$ 是采用清洗、蒸馏、课程学习等策略后的总时长/步数。
- 节约比例$1 - T_{\text{efficient}}/T_{\text{baseline}}$ 得出节能比例,0.3 表示“同样精度,电费省了三成”。
AI 应用场景
大模型预训练数据清洗
阶段:数据准备
解决的问题:从互联网爬取的预训练语料动辄数万亿 token,近一半是重复页面、低质广告和无意义噪声。直接训练不仅浪费巨额算力,还会让模型学会“念经式”文本。基于数据质量筛选与配比优化的数据管线,能以更小数据量逼近甚至超过全量训练效果。
具体案例:某开源大模型团队对 100T 原始语料做哈希去重 + 质量打分 + 类别配比调整,最终只用 60% 的数据就达到原来全量数据训练的下游任务精度,预训练时间缩短 30%,对应电费节省数十万元。
自动驾驶主动学习标注
阶段:数据标注
解决的问题:自动驾驶采集车每天产生数万帧画面,全部人工标注成本动辄千万级。传统随机采样会标注大量“大晴天直路”等低价值样本,而雨天、夜间等长尾场景反而被漏掉。主动学习让模型只挑选“高熵”难样本送审,把钱花在刀刃上。
具体案例:某自动驾驶团队上线主动学习标注平台后,先用预训练模型对十亿级无标注帧打分,筛出置信度最低的 5% 帧进入人工精标,再循环训练。两个季度后,标注预算节省 40%,而在雨天夜间的感知召回率反而提升了 12 个百分点。
AIGC 模型 LoRA 微调的数据蒸馏与增强
阶段:模型训练
解决的问题:给 Stable Diffusion 类模型做 LoRA 微调时,用户往往只有几十张参考图,直接微调会导致过拟合、风格崩坏。数据蒸馏挑选“核心代表图”,数据增强补充多角度、多光照的变形,让极少量真实素材训练出稳定的生成风格。
具体案例:某出海电商团队要训练“北欧极简风家居”LoRA,原始素材仅 200 张。通过核心集筛选挑出 80 张代表图,再配以角度、光线、构图增强,最终微调后的模型在不同 prompt 下稳定输出统一风格,出图一致率从 52% 提升到 89%。
Python 演示
import numpy as np class CurriculumTrainer: def __init__(self, dim=2, lr=0.5): self.dim = dim self.lr = lr self.theta = np.zeros(dim) def sigmoid(self, z): return 1.0 / (1.0 + np.exp(-z)) def predict(self, X): return self.sigmoid(X @ self.theta) def train_step(self, X, y): p = self.predict(X) grad = X.T @ (p - y) / len(y) self.theta -= self.lr * grad return -np.mean(y * np.log(p + 1e-12) + (1 - y) * np.log(1 - p + 1e-12)) def evaluate(self, X, y): p = self.predict(X) return np.mean((p > 0.5) == y) def make_data(n=2000, seed=42): rng = np.random.default_rng(seed) X = rng.uniform(-1, 1, (n, 2)) y = (X[:, 1] > 0.3 * X[:, 0]).astype(int) margin = np.abs(X[:, 1] - 0.3 * X[:, 0]) difficulty = 1.0 / (margin + 0.05) return X, y, difficulty def curriculum_schedule(difficulty, step, total_steps, start_ratio=0.2): threshold = np.percentile( difficulty, start_ratio * 100 + (100 - start_ratio * 100) * step / total_steps ) return difficulty <= threshold def train_with_schedule(schedule_fn, X, y, difficulty, steps=80): trainer = CurriculumTrainer() accs = [] for t in range(steps): mask = schedule_fn(difficulty, t, steps) trainer.train_step(X[mask], y[mask]) accs.append(trainer.evaluate(X, y)) return accs def main(): X, y, difficulty = make_data() steps = 80 cur_accs = train_with_schedule(curriculum_schedule, X, y, difficulty, steps) random_accs = train_with_schedule( lambda diff, t, total: np.ones(len(y), dtype=bool), X, y, difficulty, steps, ) target = random_accs[-1] cur_step = next((i for i, acc in enumerate(cur_accs) if acc >= target), steps - 1) print("第20步准确率: 课程 {:.3f} vs 随机 {:.3f}".format(cur_accs[20], random_accs[20])) print("最终准确率: 课程 {:.3f} vs 随机 {:.3f}".format(cur_accs[-1], random_accs[-1])) print("课程学习约用 {} 步达到随机学习 {} 步的精度".format(cur_step + 1, steps)) if __name__ == "__main__": main()
grad = X.T @ (p - y) / len(y)向量化梯度计算,一次性算出整个批次的参数更新方向。difficulty = 1.0 / (margin + 0.05)把样本到分类边界的距离映射为难度分:离边界越近(越难分)分数越高。threshold = np.percentile(difficulty, start_ratio * 100 + (100 - start_ratio * 100) * step / total_steps)用分位数算当前步的难度上界,决定“今天只学多难的题”。mask = schedule_fn(difficulty, t, steps)按课表筛出当前训练步允许学习的样本子集。trainer.train_step(X[mask], y[mask])只在“今日课表”内的样本上更新模型,简单样本先喂,难样本后喂。cur_step = next((i for i, acc in enumerate(cur_accs) if acc >= target), steps - 1)找出课程学习追平随机学习最终精度的最早步数,量化“省了多少步”。
常见误区
误区我听别人说大模型就是靠海量数据堆出来的,那我把网上能爬的数据全塞进去,模型肯定更聪明、效果更好。数据不够时才需要搞什么清洗、增强。
正解数据多不等于信号多。爬虫数据里大量重复、噪声和错标样本,会让模型花大量算力“背答案”,甚至学到错误规律。经过哈希去重、质量过滤后的 10T 干净数据,往往比 100T 脏数据训练效果更好、成本更低。大模型公司的成功不是“全塞”,而是“塞之前的大扫除”。
为何常见:媒体宣传总强调“数据规模史无前例”,让人以为规模直接决定智能,忽略了背后精密的数据工程流水线。
误区课程学习不就是把样本按我自己觉得的难度排个顺序嘛,我先放简单的,再放难的,甚至按文件名排序也算吧?
正解难度度量需要科学定义——常用模型当前损失值、到分类边界距离或交互难度(如对话轮数)。调度策略也讲究:难度阈值放宽太慢浪费步数,太快则退化为随机训练。随便排序不仅没有收益,还可能破坏独立同分布假设,让优化过程震荡。
为何常见:课程学习的名字过于“直觉友好”,容易让人忽略难度度量与调度设计才是核心工作量。
误区数据蒸馏、知识蒸馏,名字都带“蒸馏”,不就是同一个东西换个说法吗?反正都是把大模型变小模型。
正解两者目标与对象都不同。知识蒸馏是把大模型(教师)的预测分布迁移给小模型(学生),压缩的是模型;数据蒸馏是从大数据集中选出或合成精华子集,压缩的是数据。两者可以组合使用——用蒸馏出的精华数据配上教师模型的软标签,效果叠加。
为何常见:术语都含“蒸馏”,且都被用于降本增效,容易混淆“压模型”与“压数据”两条路径。
误区数据不够就增强嘛,旋转、翻转、加噪,怎么变都是同一类,多来几遍模型自然就强了,不需要考虑任务特性。
正解盲目增强会引入分布偏移甚至改变语义。手写数字 6 旋转 180° 变成 9;医学影像中左右翻转可能把心脏位置映到右边,病理意义完全不同。增强策略需依赖领域知识设计,或用 AutoAugment 在验证集上搜索最优组合,而不是越多越好。
为何常见:增强在小数据集上效果立竿见影,容易形成“万能药”错觉,忽略其破坏语义、引入噪声的风险。
误区要绿色 AI 就买更省电的 GPU,或者把数据中心迁到水电便宜的地方。数据层面的什么清洗、蒸馏,跟省电关系不大吧?
正解硬件效率只决定单位功耗 $P$,训练时长 $T$ 才是更大的可调杠杆。能耗 $E = P \times T$:数据清洗把 100T 压到 10T,课程学习让收敛步数减半,蒸馏让数据规模降 90%——这些“软件节能”在同等硬件上就能省下 30%~70% 电费,且立即可执行。
为何常见:提到耗能大家先想到硬件功耗表上的瓦数,忽略了训练时长这个只要调整数据策略就能显著下降的变量。
面试题
Q1. 数据清洗最直接解决的训练问题是?
- A.模型在噪声与重复样本上过拟合← 正确答案
- B.模型在训练集上收敛速度过慢
- C.模型的参数量太大不好部署
- D.模型推理时延过高难上线
答案:A。重复和异常样本会让模型把噪声当规律,也就是过拟合,同时还浪费算力。B 是“学得慢”而非“学得脏”;C 是模型结构问题;D 是推理阶段问题,与训练数据清洗无关。像大厨挑烂叶子,为的是不让烂菜毁了一锅汤。
Q2. 主动学习中“信息量采样”通常用什么度量?
- A.样本的预测熵高低← 正确答案
- B.样本文件大小排列
- C.标注时间的长短
- D.存储位置的远近
答案:A。模型对某个样本预测的熵越高,说明它在几个类别间摇摆不定,也就是最“没把握”,这类样本标注价值最大。文件大小、标注时长、存储位置都与样本对模型的训练价值无关。
Q3. 课程学习(Curriculum Learning)的核心思想是?
- A.由易到难逐步推进训练← 正确答案
- B.随机打乱全部训练样本
- C.只挑选困难样本训练
- D.先全量数据后逐步删减
答案:A。课程学习模仿人类认知规律,先学简单样本快速抓住结构,再逐步放开难度阈值,像学徒先切土豆丝再掌勺。B 是随机训练基线;C 是“反课程”;D 是数据删除策略,都不是课程学习。
Q4. 数据蒸馏的核心目标是?
- A.用少量精华样本逼近全量训练效果← 正确答案
- B.不断增加训练数据的总量
- C.持续扩大模型的参数量
- D.加快单张图片的推理速度
答案:A。数据蒸馏通过核心集选取或样本合成,浓缩出 1%~10% 的精华子集让模型训练,效果逼近全量。B 和 C 方向正好相反;D 是推理侧优化,与训练数据无关。
Q5. GPU 功率 P、训练时长 T 与能耗 E 的关系是?
- A.E 等于 P 乘以 T← 正确答案
- B.E 等于 P 加上 T
- C.E 等于 P 除以 T
- D.E 等于 T 除以 P
答案:A。能耗 = 功率 × 时间,一块 450W GPU 跑 100 小时约耗电 45kWh。数据效率方法不改变 P,而是通过清洗、蒸馏、课程学习砍掉 T,从而直接降低 E。
Q6. 以下哪种方法属于“数据配比优化”?
- A.对长尾类别做平方根重采样← 正确答案
- B.将图片旋转九十度加入训练
- C.用教师模型软标签教学生
- D.先低分辨率后高分辨率训练
答案:A。平方根重采样调整类别采样权重,均衡长尾分布,是典型的配比优化。B 是数据增强;C 是知识蒸馏;D 是渐进式训练。
Q7. 渐进式训练中“输入递增”指的是?
- A.训练中图片分辨率由小到大← 正确答案
- B.每步把批次大小翻两倍
- C.每步增加模型层数十倍
- D.输入文本长度由短到长
答案:A。渐进式训练先低分辨率快速试错,再逐步提高到全分辨率精修,像学徒先在小厨房练手再上大宴。B 是批次调度,C 是模型结构变化,D 不是渐进式训练的标准做法。
Q8. 以下哪些属于数据增强方法?
- A.Mixup 混合两张图像← 正确答案
- B.随机裁剪与水平翻转← 正确答案
- C.对长尾类别过采样
- D.自动搜索增强策略← 正确答案
答案:ABD。A、B、D 都是对原始样本做变换或搜索变换组合,属于数据增强。C 改变的是类别采样权重,属于数据配比优化,不产生新样本。
Q9. 关于数据效率的常见误区,以下说法正确的是?
- A.数据越多模型一定越强
- B.数据蒸馏与知识蒸馏目标不同← 正确答案
- C.盲目旋转增强会破坏语义← 正确答案
- D.课程学习等价于随机排序
答案:BC。B 正确:数据蒸馏压数据,知识蒸馏压模型;C 正确:6 旋转 180° 变 9,医学图翻转可能改变病理含义。A 忽略了脏数据危害,D 忽略了课程学习需要科学难度度量与调度。
Q10. 绿色训练视角下,提升数据效率的有效手段包括?
- A.清洗去重提升有效数据率← 正确答案
- B.课程学习缩短收敛步数← 正确答案
- C.数据蒸馏压缩数据规模← 正确答案
- D.无限增加 GPU 数量与批次
答案:ABC。A 减少无效计算,B 直接缩短训练时长,C 压缩数据规模,三者都指向能耗公式 E = P × T 中的 T 下降。D 增大算力开销,与绿色训练目标相反。