如果你要做一顿让全家人都惊艳的晚餐,会买 100 袋打折的冷冻菜胡乱下锅,还是精挑两三样新鲜食材,用心做三道菜?答案不言而喻。大模型就像一位早已熟悉各种食材的老厨师:预训练阶段它学会了单词、语法和世界知识;而监督微调(SFT)则是给这位厨师一份“新菜单”,让他明白顾客今天想要怎样的摆盘和服务。 Dolly 与 LIMA 两篇论文,讲的就是这个“少但更好”的故事。Dolly 用一万五千条人类手工编写的指令数据,让开源模型表现不俗;LIMA 更加极端,仅仅保留 1000 条精心打磨的样板,就胜过塞满 10 万条自动生成数据的“大锅乱炖”。数据质量,而不是数量,才是微调的决定性变量。

岗位关联

对做大模型微调和数据构造的工程师来说,掌握“数据质量法则”,可以把动辄几百人日的数据清洗工作压缩到几人日,避免用大量噪声数据烧掉宝贵的算力,让每一次训练都花在刀刃上。

目录
  1. 可视化演示
  2. SFT核心概念
  3. Dolly实践经验
  4. LIMA核心发现
  5. 高质量样本标准
  6. 数据配比选择
  7. 微调工程实践
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

动态演示少即是多的核心机制,通过采集/分析/决策/反馈四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

少即是多:SFT数 SFT数据质量的核心发现与Do 高质量SFT数据的定义标准与评 核心机制可视化 少即是多整体架构与关键组件

SFT核心概念

预训练好的大模型,像一位基本功扎实的老厨师。他刀工、火候、食材知识都不缺,但却不知道今天客人想要什么口味,也不知道店内菜单长什么样。监督微调(Supervised Fine-Tuning,简称 SFT)就是给这位厨师递上几张“标准菜谱卡”,让他照着卡片学习正确的摆盘和服务话术。

那菜谱卡上写的是什么?每张卡片都是一对配对:左边是“顾客的需求”(指令 x),右边是“主厨预先写好的标准答案”(标注响应 y)。训练时,我们反复让模型看这些卡片,尽量模仿标准答案的措辞与风格。换句话说,SFT 的学习目标就是:当模型看到顾客说“请帮我写一份周报”,它能按专家的口吻写出合格答卷。

为了做到这一点,我们定义带参数 $\theta$ 的模型,并最小化在所有样本上的负对数似然损失:

SFT 的本质不是重新教模型认识世界,而是给老厨师一份“标准菜单”。菜单上的菜写得越准确、越清晰、越多样,厨师端出的成品就越符合期待——而这与菜单到底收录了几万道菜,没有必然关系。

LSFT(θ)=−∑(x,y)∈Dlog⁡Pθ(y∣x)\displaystyle \mathcal{L}_{\rm SFT}(\theta) = -\sum_{(x,y)\in \mathcal{D}} \log P_\theta(y\mid x)
这个公式的含义是:一条条样本“教”模型——看到指令 x 时,应该以更高的概率生成答案 y。所有样本的效果累加,损失越小,模型越像标注者。
  1. 收集配对样本从数据集 $\mathcal{D}$ 中取一条(指令,标准答案),其中 $x$ 是用户指令,$y$ 是人工写好的标准回答。
    D={(x1,y1),(x2,y2),… }\mathcal{D}=\{(x_1,y_1),(x_2,y_2),\dots\}
  2. 计算条件概率给定参数为 $\theta$ 的模型,在输入 $x$ 的条件下生成 $y$ 的概率。
    Pθ(y∣x)P_\theta(y\mid x)
  3. 取对数用 $\log$ 把连乘的概率变成累加,计算更稳定,也方便求导。
    log⁡Pθ(y∣x)\log P_\theta(y\mid x)
  4. 加负号并求和对数据集中所有样本取对数概率的相反数再求和,得到需要最小化的损失。
    −∑(x,y)∈Dlog⁡Pθ(y∣x)-\sum_{(x,y)\in \mathcal{D}}\log P_\theta(y\mid x)

Dolly实践经验

如果只靠一位主厨闭门写菜单,写出来的菜式难免单调。Databricks 团队在 Dolly 项目中选择了另一种思路:发动公司内部的“众包厨师”——让大量员工像给朋友推荐拿手菜一样,各自编写真实的指令和回答。这正是 Dolly 数据构建的核心理念:用真实人类的智慧,而非机器自动生成,来制作高质量样例。

这些众包样本被分成 8 个行为类别,包括头脑风暴、分类、闭卷问答、信息抽取、开放式问答、摘要等。团队把一万五千条人工编写的指令数据整理成 databricks-dolly-15k 数据集,并基于它微调了一个 60 亿参数的开源模型。结果让人惊喜:即便没有用到 ChatGPT 生成的任何数据,模型在不少任务上的表现依然可圈可点,为开源社区提供了一个低成本、可复现的替代方案。

为了观察数据分布是否均衡,我们通常会统计每个类别的样本占比:

Dolly 用事实说明:一本由真实人类不断“试菜”后写出来的菜谱合集,虽然只有 1.5 万页,却能撑起一桌像样的宴席——因为它不追求菜谱数量,而是追求每道菜都可执行、可复现。

pk=nkN,k=1,2,…,K\displaystyle p_k = \frac{n_k}{N}, \quad k=1,2,\dots,K
其中 $K$ 是类别数量,Dolly 的 $K=8$。如果每个类别的 $p_k$ 都不太低,说明数据集覆盖较广,不容易在微调时偏向某一类技能。
  1. 统计各类别样本量把属于第 $k$ 个类别的样本数记为 $n_k$。
    nk=∑i=1N[ labeli=k ]n_k=\sum_{i=1}^{N} [\,{\rm label}_i = k\,]
  2. 计算占比用类别数量除以总样本数 $N$,得到该类别的比例 $p_k$。
    pk=nkNp_k=\frac{n_k}{N}
  3. 验证分布之和所有类别的占比之和恒等于 1,这是数据分布的基本约束。
    ∑k=1Kpk=1\sum_{k=1}^{K} p_k = 1

LIMA核心发现

如果说 Dolly 是一本厚实的家常菜谱,那 LIMA 就是一位米其林主厨的私人笔记。Meta 的研究者在 LIMA 论文中做了一个更“极端”的实验:只保留 1000 条经过严格筛选、由人类认真编写的指令数据,去微调一个已经预训练好的大模型。结果,这个“只学了一千课”的模型,在与那些用几万甚至几十万条自动生成数据训练出的模型对比时,不仅不落下风,还在多数评测中胜出。

为什么能做到?关键在大模型的“知识”几乎都来自预训练阶段,SFT 的作用更多是“风格对齐”和“指令跟随”。就像老厨师早就懂得所有食材的性质,只是需要几道精致样板来弄清餐厅的摆盘风格;而 10 万条参差不齐的自动生成数据,反而像一堆标注错误的菜谱,把厨师的风格学歪了。

我们用一个直观公式理解“有效数据量”——数据数量与数据质量相乘,才能真正发挥作用:

LIMA 就像那位只带着 1000 道“私房菜”进厨房的主厨:他不需要一万道备选菜谱,因为每一道都被反复打磨过。数据少不可怕,可怕的是数据多而杂,把原本清晰的“风味”稀释掉了。

Deff=N×qˉ,qˉ=1N∑i=1Nqi\displaystyle D_{\rm eff} = N \times \bar{q}, \quad \bar{q}=\frac{1}{N}\sum_{i=1}^{N}q_i
$N$ 是样本总数,$q_i$ 是第 $i$ 条样本的质量评分。100K 条平均质量只有 0.04 的数据,有效信息量只有 4000;而 1K 条平均质量 0.95 的数据,有效信息量高达 950。这也解释了 LIMA 为什么会赢。
  1. 单样本质量评分给每条样本打一个质量分 $q_i\in[0,1]$,反映答案是否正确、指令是否清晰。
    qi∈[0,1]q_i \in [0,1]
  2. 计算平均质量对所有样本的质量分取平均,得到数据集的整体质量水平。
    qˉ=1N∑i=1Nqi\bar{q} = \frac{1}{N}\sum_{i=1}^{N}q_i
  3. 合成有效数据量总数量乘以平均质量,得到真正对训练有用的信息量。
    Deff=N×qˉD_{\rm eff} = N \times \bar{q}

高质量样本标准

什么样的菜谱才算“高质量”?首先要保证菜谱步骤正确、食材名称不写错——对应到数据上,就是答案必须正确且权威。想象一本把“盐”写成“糖”的菜谱,厨师照着做十遍,就会做出十道失败的菜。错误样本在 SFT 中会一遍遍放大“坏习惯”,模型甚至会把错误当成标准。

其次是多样性。如果一本菜谱只收录“红烧肉”,哪怕每道菜都完美,厨师也只会做红烧肉。高质量数据集应当覆盖不同领域、不同任务类型和不同表达方式,才能让模型在面对真实世界的各种请求时都游刃有余。Dolly 之所以选择 8 个行为类别,正是为了增加这种“菜系多样性”。

我们用信息熵来度量多样性——类别越分散,熵值越大,数据越多样:

好的菜谱标准还不止这两条:指令要清晰可执行,不能出现“随便炒炒”这种模糊要求;难度要适中,既不能全是“蛋炒饭”,也不要全是“佛跳墙”。把这几条标准落到实处,才算真正理解了“少而精”的内核。

Hdiv=−∑k=1Kpkln⁡pk\displaystyle H_{\rm div} = -\sum_{k=1}^{K} p_k \ln p_k
当所有样本集中在一个类别时,熵为 0;当样本均匀分布在 8 个类别时,熵达到最大值 $\ln 8$。高熵代表模型见多识广。
  1. 沿用类别占比使用第 $k$ 个类别的样本占比 $p_k$,它反映了该类别的“浓度”。
    pk=nkNp_k=\frac{n_k}{N}
  2. 逐类别计算熵贡献对每个类别的占比取自然对数后与自身相乘,再加负号。
    −pkln⁡pk-p_k \ln p_k
  3. 对所有类别求和把 8 个类别的熵贡献累加,得到整体多样性指标。
    −∑k=1Kpkln⁡pk-\sum_{k=1}^{K} p_k \ln p_k

数据配比选择

菜谱选好了,接下来要决定餐桌上各类菜品各上几道。如果一桌全是甜点,顾客会觉得腻;如果全是凉菜,又不够正式。数据集同样需要“配比”:不同任务类别的样本数量要大致均衡,不能因为“摘要”数据好收集就让它占 90%,把其他能力饿死。

实际操作中,我们常用的手段是重采样。先统计每个类别的占比,再给样本赋予权重,让稀有类别被多采样、常见类别被少采样,最终使模型看到的各类别比例大致相同。重采样权重公式如下:

除了配比,还要做“食材筛选”:去掉完全重复的样本,过滤包含错误答案的坏样本,调节难度使其既不过于简单也不过于刁钻。最后留出一部分数据作为验证集,像品菜师一样在训练前、训练中反复试吃,确保配比调整真的带来了口味提升。

wk=1/Kpk\displaystyle w_k = \frac{1/K}{p_k}
当某类样本偏多($p_k$ 大)时,权重 $w_k$ 自动变小;当某类样本偏少($p_k$ 小)时,权重变大。所有类别乘以权重后,训练时看到的有效比例都是 $1/K$。
  1. 目标比例希望每个类别在训练中出现的概率相同,因此目标比例是 $1/K$。
    1K\frac{1}{K}
  2. 当前占比数据集中第 $k$ 类的真实占比为 $p_k$。
    pk=nkNp_k=\frac{n_k}{N}
  3. 计算补偿权重目标比例除以当前占比,多的减权、少的加权。
    wk=1/Kpkw_k=\frac{1/K}{p_k}

微调工程实践

理解了理论,落地时依然有讲究。数据准备阶段的完整流程可以概括为:采集原始文本 → 清洗去重 → 按类别配比 → 人工质检 → 划分验证集。每一步都像厨房里的“备菜”,宁可慢一点,也要把坏叶子摘干净。实际经验表明,这套流程做得好,1K 条精选数据就足以支撑一次有效微调。

训练阶段的超参数选择同样关键。由于只用了少量高质量数据,模型很容易“背下来”而失去泛化能力。通常我们会把学习率调低到 $1\times10^{-5}$ 量级,训练轮数控制在 2-3 个 epoch,并配合适当的权重衰减。用美食来类比:少而精的菜谱只需要“小火慢炖”,大火猛炒反而会把食材烧焦。

训练完成后需要一套可信的评测体系,最直接的是准确率:

评测之后还要迭代:把模型答错的样本找出来,分析是数据标注错误、指令歧义,还是配比失衡,然后修正数据集、重新训练。这个闭环就像餐厅根据顾客差评调整菜谱——每一次修正,都让下一版模型更接近目标口味。

Acc=1Neval∑i=1Neval1[y^i=yi]\displaystyle \text{Acc} = \frac{1}{N_{\rm eval}}\sum_{i=1}^{N_{\rm eval}} \mathbf{1}[\hat{y}_i = y_i]
让模型在验证集上回答 $N_{\rm eval}$ 个问题,统计预测答案 $\hat{y}_i$ 与标准答案 $y_i$ 一致的次数比例。除了准确率,还可以请人工或更强的模型做偏好对比,判断回答哪一个更自然。
  1. 单样本预测判断$\mathbf{1}[\cdot]$ 是示性函数,条件为真时取 1,否则取 0。
    1[y^i=yi]\mathbf{1}[\hat{y}_i = y_i]
  2. 汇总正确数把 $N_{\rm eval}$ 条评测样本的正确判断累加,得到总正确数。
    ∑i=1Neval1[y^i=yi]\sum_{i=1}^{N_{\rm eval}} \mathbf{1}[\hat{y}_i = y_i]
  3. 求平均准确率除以评测样本总数,得到 0 到 1 之间的准确率,再乘以 100% 就是常见百分比。
    1Neval∑i=1Neval1[y^i=yi]\frac{1}{N_{\rm eval}}\sum_{i=1}^{N_{\rm eval}} \mathbf{1}[\hat{y}_i = y_i]

AI 应用场景

智能客服助手微调

阶段:数据准备与监督微调

解决的问题:原始客服日志存在大量重复、无关闲聊和不完整回复。若把 50 万条历史记录直接灌入模型,训练成本高且答非所问频发。解决方案是提炼出少量“金牌答案”,让模型先学会典型问题的标准话术,再根据实际交互持续补充。

具体案例:某 SaaS 公司先从 50 万条客服会话中抽取 5000 条候选,经清洗去重后,由资深客服挑选出 2000 条高质量问答对。微调后的模型在内部测试中的一次性解决率达到 93%,而对照团队直接用全部 50 万条数据训练的模型只有 81%,训练时长还多出 6 倍。这与 Dolly 的“精选样本”思路完全一致。

垂直领域专家问答库构建

阶段:指令数据构建与效果评估

解决的问题:医疗、法律等垂直领域缺乏现成的对话数据集,直接用通用大模型生成答案容易出现“一本正经地胡说八道”。通过引入领域专家对少量典型问题进行人工标注,再与开源高质量数据集(如 databricks-dolly-15k)混合,可以显著提升回答的权威性。

具体案例:一家医疗 AI 创业公司以 Dolly-15K 为基础,补充了 500 条由三甲医院医生编写的问答样本,覆盖常见病咨询、用药说明和报告解读。在 200 道盲测题目中,这套“500 条专家数据 + 开源基底”的组合,优于另一组由通用大模型自动生成的 20000 条同领域数据,人工评分高出 19 个百分点。

低成本开源模型微调

阶段:模型训练与算力优化

解决的问题:中小企业算力有限,面对 100K 级别的数据集往往需要数十张 GPU 训练数天,成本难以承受。参考 LIMA 的“少即是多”思路,先用手头最优质的几十条真实业务数据微调,再用自动化评测筛选错误并迭代补充,可将训练成本压缩到原来的十分之一。

具体案例:某跨境电商团队使用 LLaMA 类开源底座,结合 LoRA 低秩适配,仅用 1200 条人工整理的商品咨询问答和 3 天单卡训练,就上线了一个能回答售后、物流和退换货问题的内部助手,效果接近原先调用闭源 API 的方案,成本却降低约 85%。

Python 演示

python29 行
# -*- coding: utf-8 -*-import numpy as npfrom sklearn.linear_model import LogisticRegressionfrom sklearn.metrics import accuracy_score np.random.seed(42) def make_dataset(n, noise=0.0):    # Create a synthetic binary classification task.    X = np.random.randn(n, 8)    y = np.sign(X[:, 0] + X[:, 1] - 0.2).astype(int)    y[y == 0] = 1    wrong = np.random.rand(n) < noise    y[wrong] = -y[wrong]    return X, y # 1K clean samples vs 100K noisy samplesX_hi, y_hi = make_dataset(1000, noise=0.02)X_lo, y_lo = make_dataset(100000, noise=0.40)X_test, y_test = make_dataset(2000, noise=0.0) model_hi = LogisticRegression(max_iter=1000).fit(X_hi, y_hi)model_lo = LogisticRegression(max_iter=1000).fit(X_lo, y_lo) acc_hi = accuracy_score(y_test, model_hi.predict(X_test))acc_lo = accuracy_score(y_test, model_lo.predict(X_test)) print("1K high-quality  acc = {:.3f}".format(acc_hi))print("100K noisy       acc = {:.3f}".format(acc_lo))
目的:用一个小巧的机器学习实验,直观演示 LIMA 论文的核心结论——1000 条低噪声样本训练的模型,其测试准确率能够超过 100000 条高噪声样本训练的模型。
  1. make_dataset(1000, noise=0.02)生成 1K 条“高质量”数据,只有 2% 错误标签,就像精挑细选的新鲜食材。
  2. make_dataset(100000, noise=0.40)生成 100K 条“噪声”数据,40% 标签是错的,像一锅混入大量变质食材的大杂烩。
  3. y = np.sign(X[:, 0] + X[:, 1] - 0.2).astype(int)构造可学习的线性决策边界,模拟“预训练阶段已有的基础能力”。
  4. LogisticRegression(max_iter=1000).fit(X_hi, y_hi)用 1K 干净数据训练一个简单分类器,对应“高质量 SFT”。
  5. LogisticRegression(max_iter=1000).fit(X_lo, y_lo)用 100K 噪声数据训练另一个分类器,对应“盲目堆数据”。
  6. accuracy_score(y_test, model_hi.predict(X_test))在无噪声测试集上对比准确率,证明质量胜过数量。
  7. print("1K high-quality acc = {:.3f}".format(acc_hi))输出结果,你会看到高质量模型反超噪声模型。

常见误区

误区“反正微调就是继续喂数据,我把能抓到的数据全部灌进去,模型一定会越来越聪明。100K 总比 1K 强吧?”很多初学者把 SFT 想象成给模型继续“补课”,认为知识越多越好。

正解SFT 并不是继续预训练,而是“按标准菜谱做菜”。预训练阶段已经让模型储备了大量知识,微调阶段的任务是校正输出风格和指令跟随能力。如果 100K 数据里充满错误、重复和模糊指令,模型会把“坏习惯”学得根深蒂固。LIMA 实验表明,1K 精心筛选的样本足以超越 100K 自动生成的噪声数据,因为前者每一道“菜”都是可执行的。

为何常见:人们习惯性地把互联网时代的“大数据思维”套用到微调上,忽略了监督微调与预训练在目标和机制上的本质区别。

误区“既然论文说 1K 胜过 100K,那我随便找 1000 条问答数据微调,也应该效果不错。”这种理解把 LIMA 的结论过度简化了。

正解LIMA 的 1000 条数据是经过严格筛选的人类编写样本,每条都具备高正确性、明确指令和覆盖面广的多样性。它更像一份经过米其林评委反复试菜的“私藏菜单”,而不是随便撕下来的 1000 张便签。若你的 1000 条数据本身充满噪声和重复,那它连 100 条高质量样本都不如。

为何常见:论文标题和媒体宣传往往突出“1K vs 100K”的反差,却少有人细读数据构建部分的苛刻约束,导致读者把“数量少”误当成核心原因。

误区“模型不懂某个专业问题?我准备 100 条带正确答案的数据微调一下,它就能学会这个新知识了。”这是对 SFT 能力的严重误解。

正解SFT 主要调整模型的指令跟随能力和回答风格,模型回答内容的“硬知识”绝大部分来自预训练阶段的权重。少量样本微调可以让模型学会“用某种风格回答问题”,却很难让模型真正记住一个全新的事实。就像给老厨师看一道新菜品的摆盘图,他可以用已有食材模仿出样子,但若食材本身不存在,他也变不出来。

为何常见:人们把人类的“学习=记忆新知识”迁移到模型上,忽略了模型知识存储的机制与人类完全不同。

误区“既然要高质量,那我以前攒的 100K 粗数据全都没用了,直接扔掉吧。”这种想法过于极端。

正解原始噪声数据并非一无是处,它们常常是构造高质量数据的“原材料”。你可以先对 100K 数据进行清洗、去重、抽取关键片段,再用人工或强模型辅助筛选出高质量子集。Dolly 和 LIMA 的实践都说明:好数据来自“严选”,而严选的前提是先有足够多的候选池。扔掉原始数据,等于把食材全部倒掉再从头种菜。

为何常见:媒体传播“质优于量”时,容易让人忽略高质量数据往往是从大量低质量数据中提炼出来的。

误区“唯一可靠的高质量数据方法是聘请专家逐条撰写,成本太高,小团队根本做不了。”这会让团队在数据构建前就放弃。

正解专家逐条编写只是途径之一。Dolly 通过众包员工编写就能获得不错的数据;LIMA 则结合人工筛选与严格清理。实际工程中还可以借助高质量开源数据集打底,再补充几十到几百条真实业务样例,用“基座 + 少量定制”的方式平衡成本与质量。就像开餐厅不一定要请米其林主厨,有一本靠谱的基础菜谱加上几道招牌特色,就能站稳脚跟。

为何常见:人们看到“高质量”三个字就联想到昂贵的人工成本,忽略了众包、开源基底和迭代筛选等更经济的路径。

面试题

Q1. Dolly 项目在数据构建上的主要创新是什么?

单选题 · easy

  • A.使用百万级自动抓取数据
  • B.众包人工标注指令集← 正确答案
  • C.由 GPT-3 全自动生成
  • D.直接复用预训练语料

答案:B。Dolly 最大的特点是不依赖生成式 AI 自动造数据,而是发动众包人员编写真实的指令-响应样本。GPT-3 生成是 Alpaca 等数据集的做法,预训练语料则属于预训练阶段而非 SFT 数据。

Q2. LIMA 论文最核心的结论是哪一项?

单选题 · easy

  • A.1K 样本足以生成 100K 条新指令
  • B.1K 高质量样本优于 100K 噪声数据← 正确答案
  • C.100K 噪声数据永远优于 1K 干净数据
  • D.模型训练轮数越多效果越好

答案:B。LIMA 用 1000 条精心筛选的人工样本微调模型,在多数对比评测中胜过使用 100K 自动生成数据的模型。它证明的不是“1K 万能”,而是数据质量优先于数量的原则。

Q3. 为什么 SFT 阶段不应盲目使用大量低质量数据?

单选题 · mid

  • A.会让模型学坏习惯且输出混乱← 正确答案
  • B.会显著增大模型推理延迟
  • C.会让模型产生过度自信
  • D.会降低模型参数量

答案:A。SFT 本质是模仿学习,错误答案和模糊指令会被模型当作标准来学习。就像给厨师看十遍错误菜谱,他只会越做越错。选项 B、C、D 与数据质量问题没有直接关系。

Q4. Dolly-15K 数据集按照几个行为类别组织样本?

单选题 · mid

  • A.4 个类别
  • B.8 个类别← 正确答案
  • C.16 个类别
  • D.32 个类别

答案:B。Dolly 将数据划分为头脑风暴、分类、闭卷问答、信息抽取等 8 个行为类别,通过多样性覆盖保证模型学到不同能力。4、16、32 都不是 Dolly 的实际设计。

Q5. SFT 让模型学习的主要是什么?

单选题 · hard

  • A.学习全新的世界知识
  • B.遵循指令和输出风格← 正确答案
  • C.提高底层语义理解
  • D.扩大词表覆盖范围

答案:B。预训练已经为模型注入大量世界知识,SFT 的核心作用是让模型学会“按指令行事”和“用期望的风格回答”。少量样本可以校准风格,但无法凭空注入新知识,因此 SFT 不是知识注入阶段。

Q6. 高质量 SFT 数据通常具备哪些特征?

多选题 · mid

  • A.答案准确且来源权威← 正确答案
  • B.领域和任务类型多样← 正确答案
  • C.指令表达清晰可执行← 正确答案
  • D.样本长度越长越好

答案:ABC。准确性、多样性和指令清晰度是高质量数据的三大支柱。样本长度并非衡量标准,过长的样本反而可能引入无关噪声。D 选项是常见干扰项。

Q7. LIMA 在筛选那 1000 条数据时最看重什么?

单选题 · hard

  • A.只保留英文对话样本
  • B.多样性和风格一致性← 正确答案
  • C.只选择代码生成类任务
  • D.尽可能压缩 token 数量

答案:B。LIMA 的数据构建强调两件事:一是主题和任务类型多样,二是回答风格统一、符合真实用户场景。它没有局限于单一语言或任务,也没有刻意压缩 token 数。

Q8. 面对 100K 低质量 SFT 数据,哪些处理方式是合理的?

多选题 · mid

  • A.清洗去重后保留高质量子集← 正确答案
  • B.继续扩大数据到 1M 摊薄噪声
  • C.抽取少量高质量样本做微调← 正确答案
  • D.修改模型架构解决噪声问题

答案:AC。正确的思路是从低质量数据中提炼精华:清洗去重、抽取高质量子集。继续扩大数据只会放大噪声影响,修改模型架构则无法解决数据质量问题。

Q9. 数据集中某类样本过多时,常用什么公式降低其采样权重?

单选题 · easy

  • A.w_k = (1/K) / p_k← 正确答案
  • B.w_k = p_k × K
  • C.w_k = K / p_k
  • D.w_k = 1 - p_k

答案:A。重采样权重的目标是让每个类别在训练中以 1/K 的比例出现,因此用目标比例除以当前占比 p_k。当 p_k 越大时权重越小,正好抑制过多样本类别的“话语权”。

Q10. 以下哪两项符合 SFT 数据质量法则的正确理解?

多选题 · extreme

  • A.少样本主要对齐风格而非注入知识← 正确答案
  • B.数据越多越好,噪声可以忽略
  • C.需要持续评测并迭代清洗数据← 正确答案
  • D.高质量样本完全不需要去重

答案:AC。A 正确描述了 SFT 的本质——风格对齐。C 强调工程上必须评测-发现问题-修正数据,形成闭环。B 与“质量优先”相悖,D 错误,因为即使高质量样本也可能高度重复,必须去重。