想象一家中央厨房,每天为上百家门店供菜。大厨偷懒,永远只炒同一道宫保鸡丁:同样的鸡丁、同样的花生、同样五个辣椒圈,连摆盘方向都不变。门店和顾客很快看腻——菜虽然能吃,但没有新鲜感。更麻烦的是,如果新开一家川菜馆,这位只会做宫保鸡丁的大厨完全招架不住。今天要聊的“合成数据多样性控制”,就是给这家中央厨房请来一位“花样总厨”:让大厨换着菜单出菜(提示词变体),让帮厨挑出长得一样的“双胞胎”菜(语义聚类去重),调节火候与佐料(温度与Top-p采样),让评审团客观打分(多样性评估),并在“花样多”与“质量高”之间找到一个平衡。这套功夫,是合成数据从“能看”到“好用”的关键一跳。

岗位关联

掌握多样性控制,你就能让合成数据既百花齐放又不跑偏,直接提升下游模型的泛化能力——这是AI数据工程岗最值钱的实战技能之一。

目录
  1. 可视化演示
  2. 多样性问题——中央厨房的招牌菜困局
  3. 提示词驱动——换菜单的大厨
  4. 语义聚类去重——帮厨的火眼金睛
  5. 采样参数调节——火候与佐料
  6. 多样性评估——试菜评审团
  7. 质量平衡——好看又好味的艺术
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示模式坍缩问题、提示词驱动多样性、语义聚类去重、温度采样调节与多样性评估的交互式动画。

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

模式坍缩问题 相同提示词下模型生成相似样本导致多样性低 模式坍缩使训练数据覆盖面不足影响泛化 Collapse = low_diversity(high_similarity) 模式坍缩是合成数据生成的核心痛点

多样性问题——中央厨房的招牌菜困局

中央厨房的大厨只会一张菜单、一套配方。老板让他“再想想别的做法”,他挠头半天,端出来的还是宫保鸡丁——只是花生米多了三粒。这不是大厨不努力,而是所有环节都被“锁死”了:原料固定、火候固定、摆盘固定,菜品怎么可能有新鲜感?

这个场景搬到AI世界:大厨就是LLM,菜单就是提示词,配方就是解码参数。当提示词固定、参数固定、示例固定时,LLM会沿着训练数据里最高频的“最稳路径”输出,合成数据就像复制粘贴。更麻烦的是,下游模型在这种数据上训练,会把“宫保鸡丁”当成全世界的唯一菜品——遇到新场景就抓瞎,这就叫泛化能力受损。

技术上有三个直接原因:其一,自回归模型对前缀高度敏感,前缀相同输出就趋同;其二,softmax分布天然偏向高频词,导致句式雷同;其三,大量重复样本让训练目标被“单一答案”主导。多样率公式把这种冗余量化出来。

要打破招牌菜困局,不能只逼大厨“多想想”,得配套换菜单(提示词)、加帮厨(去重)、调火候(采样)和建评审(评估)。接下来就一步步看这套中央厨房的多样性升级方案。

Ddiv=NuniqNtotal\displaystyle D_{\text{div}} = \frac{N_{\text{uniq}}}{N_{\text{total}}}
这个公式叫“多样率”:一批数据里唯一样本占的比例。越接近1说明冗余越少,越接近0说明大家都在炒同一道菜。
  1. 原始样本总数大厨一次性端出多少盘菜:N_total 是生成管道产出的全部样本数。
    NtotalN_{\text{total}}
  2. 去重后唯一样本数帮厨把一模一样、味道完全相同的菜归堆后,每堆只留一盘:N_uniq 是去重后的剩余数。
    NuniqN_{\text{uniq}}
  3. 多样率计算用唯一数除以总数,得到这批菜的新鲜度:D 越接近1,菜色越丰富。
    Ddiv=NuniqNtotalD_{\text{div}} = \frac{N_{\text{uniq}}}{N_{\text{total}}}

提示词驱动——换菜单的大厨

要让大厨不只会做宫保鸡丁,最直接的办法是换菜单。菜单一换,食材组合一变,端出来的菜自然五花八门。现实中的大厨会在周日晚上翻着菜谱挑新菜式,而AI工程师的做法,是给LLM一份可以无限组合的“电子菜单”。

在合成数据里,“菜单”就是提示词。提示词驱动的多样性调节,指通过系统性地改变提示词内容,让LLM产出大量语义不同但意图一致的样本。同样是“描述一只狗在玩耍”,换一种句式、换一个场景、换一种口吻,生成的数据就是不同的“菜品”。

常用做法有四种:模板变体——把“一只狗在花园玩耍”改成“花园里,一只狗正在玩耍”;风格指令——追加“用轻松口语”或“用正式书面语”;示例扰动——在few-shot里换不同的示范样本;场景扩展——替换人物、地点、时间、动作等槽位。所有这些做法,在数学上都等价于往一个提示词模板的不同槽位里填不同取值。

菜单换好,大厨的创意才能被激活。但光有菜单还不够——万一十道菜长得还是像,就需要帮厨上场了。

Pk=T(s1=v1(k), s2=v2(k), …, sm=vm(k))\displaystyle P_k = \mathcal{T}(s_1 = v_1^{(k)},\, s_2 = v_2^{(k)},\, \ldots,\, s_m = v_m^{(k)})
意思是:第 k 条提示词,就是往模板的 m 个槽位里填入第 k 组取值。换不同取值,就得到不同“菜品”。
  1. 提示词模板T:一张包含多个空位的“菜谱模板”,比如“一只{颜色}的{动物}在{地点}{动作}”。
    T\mathcal{T}
  2. 槽位s_j:模板里的可变空位,如颜色、动物、地点,每个空位都可以替换。
    s1,s2,…,sms_1, s_2, \ldots, s_m
  3. 槽位取值v_j^{(k)}:第 k 条提示词在槽位 j 填入的具体值,比如“白色”。
    vj(k)v_j^{(k)}
  4. 产生提示词变体P_k:填完所有槽位得到一条完整提示词,k 从1到K就得到K道“菜”。
    PkP_k

语义聚类去重——帮厨的火眼金睛

换了菜单之后,大厨确实出了不少新菜,但帮厨发现:有些菜只是换了个盘子,味道一模一样——“红烧土豆”和“土豆红烧”其实没区别。如果让这样的“双胞胎菜”一起端上桌,顾客还以为厨房在凑数。

语义聚类去重,就是帮厨的那双火眼金睛:先用向量化把每条文本变成一个高维语义坐标(embedding),再用聚类算法把坐标相近的样本归成一组,最后每组只保留一个代表性样本,删掉冗余。这样既保住了“菜系”的覆盖面,又不会让相似样本挤占训练容量。

具体流程是:文本 → 向量化 → 聚类 → 选代表 → 输出精简集。向量化常用句子BERT等模型,聚类常用贪心分组或K-Means。判断两条文本是否该归一堆,标准是语义相似度——最常用的就是余弦相似度。

帮厨把“双胞胎”菜归堆后,每道端上桌的菜都有了独特性。但即便这样,大厨的火候还得调——同样的菜,火太猛会糊,火太弱不熟。

sim(a,b)=a⋅b∥a∥ ∥b∥\displaystyle \text{sim}(\mathbf{a}, \mathbf{b}) = \frac{\mathbf{a} \cdot \mathbf{b}}{\|\mathbf{a}\| \, \|\mathbf{b}\|}
这是余弦相似度,衡量两条文本的语义有多“像”。值越接近1,说明两条样本语义越贴近,越可能被归为同一道菜。
  1. 语义向量a和b两条样本经过向量化后的数值坐标,坐标越接近,语义越相似。
    a,b\mathbf{a}, \mathbf{b}
  2. 向量点积a·b 体现两向量同向程度,方向越一致值越大。
    a⋅b\mathbf{a} \cdot \mathbf{b}
  3. 模长归一化除以两个向量的长度,消除句子长短带来的干扰,让长句和短句能公平比较。
    ∥a∥ ∥b∥\|\mathbf{a}\| \, \|\mathbf{b}\|
  4. 相似度范围结果落在[-1, 1],接近1表示几乎同一个意思,接近0表示毫不相干。
    sim(a,b)∈[−1,1]\text{sim}(\mathbf{a}, \mathbf{b}) \in [-1, 1]

采样参数调节——火候与佐料

大厨炒菜,火候是灵魂。火太大,菜瞬间糊锅;火太小,肉还是生的。合成数据生成也有两个“火候旋钮”:温度和Top-p。一个管“火力大小”,一个管“该放哪几味佐料”。

温度参数T控制LLM输出概率分布的“陡峭程度”。T越小,分布越尖锐,模型总是选最高概率的词,输出稳定但单调;T越大,分布越平缓,低概率词也有机会被选中,输出多样但容易跑偏。Top-p采样则是另一套思路:把所有词按概率从高到低排序,取出累积概率刚超过 p 的最小子集,然后在这个子集里重新归一化采样——相当于只挑最提味的几味佐料下锅。

温度化的softmax公式如下:

火候和佐料配合得当,菜既不糊也不生。但怎么知道这桌菜够不够丰盛?得靠评审团说了算。

pi=exp⁡(zi/T)∑j=1Vexp⁡(zj/T)\displaystyle p_i = \frac{\exp(z_i / T)}{\sum_{j=1}^{V} \exp(z_j / T)}
第 i 个词被选中的概率。T=1时是标准softmax;T>1时分布变平,冷门词被选概率上升;T<1时分布变尖,永远选最稳的词。
  1. logit值z_i:模型为第 i 个词打出的原始分数,越高表示越倾向选它。
    ziz_i
  2. 温度缩放除以T:T变大时所有分数被压缩,概率差距变小;T变小时差距被放大。
    exp⁡(zi/T)\exp(z_i / T)
  3. 分母归一化对词表中所有V个词加和,确保所有词的概率之和为1。
    ∑j=1Vexp⁡(zj/T)\sum_{j=1}^{V} \exp(z_j / T)
  4. 采样概率p_i:最终第i个词被抽中的概率。T与p的关系就是“火候大、花样多、容易糊”。
    pip_i

多样性评估——试菜评审团

中央厨房组织了一场盲评:十道菜摆一排,评审团要打分。可如果评委只凭感觉说“还行”,那跟没评一样。得先定标准:菜和菜之间的“撞脸率”、口味的覆盖范围、每类菜的数量是否均匀。合成数据也一样,多样性的好坏必须靠数字说话。

合成数据有四种常用量化方法:Self-BLEU衡量样本间n-gram重叠的平均程度;嵌入距离计算样本在语义空间中的平均距离;聚类数量反映数据集覆盖了多少语义簇;分布均匀度考验每簇样本数是否均衡。这四个指标各有侧重,合在一起就能给数据集的“丰富度”画像。

最直观的指标是平均两两相似度——把数据集中所有样本两两配对算相似度再取平均,值越低说明整体越分散、多样性越高。

评审团有了客观标准,中央厨房才知道该夸谁、该改谁。不过,花样太多也可能出问题——“芥末味冰淇淋”够新奇,但没人想吃。最后一步是质量与多样性的平衡。

Sˉ=2N(N−1)∑i<jsim(si,sj)\displaystyle \bar{S} = \frac{2}{N(N-1)} \sum_{i<j} \text{sim}(s_i, s_j)
平均相似度。N条样本会产生 N(N-1)/2 对比较,这个公式把这些对的相似度取平均。S越低,数据集越丰富。
  1. 样本对数N条样本两两配对一共有 N(N-1)/2 对,系数 2/N(N-1) 就是它的倒数。
    2N(N−1)\frac{2}{N(N-1)}
  2. 配对求和遍历所有 i<j 的样本对,把每对相似度加在一起。
    ∑i<jsim(si,sj)\sum_{i<j} \text{sim}(s_i, s_j)
  3. 相似度计算sim 可以用余弦相似度或n-gram重叠率,语义越近值越大。
    sim(si,sj)\text{sim}(s_i, s_j)
  4. 平均相似度结果越低说明撞脸越少,多样性越好。
    Sˉ\bar{S}

质量平衡——好看又好味的艺术

刺激的菜不一定好吃。中央厨房尝过一轮后发现:温度调到1.5后,菜谱确实千奇百怪,但一半菜品是“橙汁炖鱼头”这种黑暗料理——多样过头就成了灾难。数据生成也是同样道理:温度拉满,样本之间确实不重复了,但语法崩坏、语义混乱的噪声也混了进来。

多样性与质量天然存在张力:多样性太高,模型会学到大量噪声,反而损害下游性能;多样性太低,模型又变成复读机。工业界通常给质量设一个下限(如语法正确率、语义合理性),只保留合格样本,再追求多样性。这就是“信噪比筛选”——先滤掉噪声,再谈花样。

更系统化的做法是把两者统一成一个可调目标:质量得分和多样性得分各乘一个权重,然后寻找参数(比如温度和p值)使总分最高。同时定期人工抽查一批样本校准指标,再迭代调整参数,形成“生成→评估→调参→再生成”的闭环。

大厨反复试菜、反复微调,直到每一道菜都“刚刚好”——有特色、不撞脸、不难吃。这正是合成数据多样性控制的终极目标:不是越怪越好,而是又丰富又靠谱。

Score(θ)=α Q(θ)+β D(θ)\displaystyle \text{Score}(\theta) = \alpha \, Q(\theta) + \beta \, D(\theta)
联合得分 = 质量 × 权重 + 多样性 × 权重。α大时偏保守、保质量;β大时偏创新、保花样。工业中常用这个公式选择最优采样参数。
  1. 质量得分Q(θ):在参数θ下的样本质量,可来自语言模型困惑度、规则过滤或人工打分。
    Q(θ)Q(\theta)
  2. 多样性得分D(θ):在参数θ下的多样性,可用平均相似度取负或Self-BLEU取反得到。
    D(θ)D(\theta)
  3. 权重系数α、β:分别控制质量和多样性的话语权,开发时通常让两者之和为1。
    α,β\alpha, \beta
  4. 总分最大化遍历候选参数θ(温度、Top-p等),选Score最高的那组作为最终配置。
    max⁡θ Score(θ)\max_{\theta}\, \text{Score}(\theta)

AI 应用场景

客服意图分类训练数据扩充

阶段:数据生成与增强

解决的问题:银行客服的意图分类模型往往只有几百条人工标注,样本重复率高,模型在真实问答中频频误判。传统做法靠外包标注扩量,成本高、风格还不统一。

具体案例:某金融团队用10个意图模板 × 20个场景槽位(业务类型、渠道、语气),结合温度0.7和Top-p=0.9生成5000条候选对话;再经语义聚类去重压缩到1200条有效样本,意图分类准确率提升约11%。

大模型指令微调数据构建

阶段:SFT数据准备

解决的问题:指令微调时如果同义指令太少,模型只会照本宣科,换个说法就听不懂。传统做法靠人工扩写,成本高、风格单一。

具体案例:某AI公司把“帮我定明早7点的闹钟”通过提示词变体扩展到50种说法(换时间、换称呼、加口吻),聚类去重后剩38条,再混入人工精标数据训练,模型指令跟随能力明显提升。

Python 演示

python51 行
import random random.seed(42) WORDS = ["白色", "黑色", "棕色", "灰色", "小猫", "小狗", "兔子",         "熊猫", "花园", "森林", "屋顶", "草地", "玩耍", "奔跑",         "睡觉", "觅食", "一只", "正在", "快乐地", "安静地"] def ngrams(text, n=2):    return set(text[i:i + n] for i in range(len(text) - n + 1)) def similarity(a, b, n=2):    ga, gb = ngrams(a, n), ngrams(b, n)    return len(ga & gb) / max(1, len(ga | gb)) def sample(temp):    if random.random() < temp:        return "".join(random.sample(WORDS, random.randint(4, 6)))    return "一只小狗在花园玩耍" def cluster_dedup(sents, threshold=0.6):    groups = []    for sent in sents:        placed = False        for g in groups:            if similarity(sent, g[0]) > threshold:                g.append(sent)                placed = True                break        if not placed:            groups.append([sent])    return [g[0] for g in groups] def diversity_score(sents):    total, cnt = 0.0, 0    for i in range(len(sents)):        for j in range(i + 1, len(sents)):            total += similarity(sents[i], sents[j])            cnt += 1    return 0.0 if cnt == 0 else 1.0 - total / cnt def make_dataset(temp, size=50):    raw = [sample(temp) for _ in range(size)]    cleaned = cluster_dedup(raw)    return raw, cleaned, diversity_score(cleaned) if __name__ == "__main__":    for temp in (0.0, 0.3, 0.8):        raw, cleaned, div = make_dataset(temp)        print("temp=%.1f 原始=%d 去重后=%d 多样性=%.2f"              % (temp, len(raw), len(cleaned), div))
目的:演示温度参数、聚类去重与多样性评估三个环节如何协同工作——温度越高原始样本越散,去重后有效样本越多,多样性越高。
  1. random.seed(42)固定随机种子,保证每次运行结果一致,便于复现实验。
  2. def ngrams(text, n=2)把文本切成n-gram片段集合,作为“菜谱指纹”用来比较两盘菜像不像。
  3. if random.random() < temp:温度核心逻辑:temp越大,越容易生成随机组合的新句子。
  4. return "一只小狗在花园玩耍"固定模板兜底:低温度时大厨只做招牌菜,确保代码有基础数据。
  5. def cluster_dedup(sents, threshold=0.6)贪心聚类去重:相似度超过0.6的菜归一堆,每组留第一盘。
  6. for g in groups:逐堆比较当前句子与代表样本,找到“双胞胎”就并进去。
  7. return [g[0] for g in groups]每组留下代表性样本,删除冗余。
  8. def diversity_score(sents)多样性评估:两两计算相似度,用1减平均相似度得到多样性分数。
  9. for temp in (0.0, 0.3, 0.8)对比三个温度档位,直观展示“火候”对多样性的影响。

常见误区

误区小白常把温度当“多样性开关”:T=0.9效果不错,那我直接T=2.0,数据一定更丰富。结果生成出一堆语义混乱的乱码文本。

正解温度只是让概率分布变平,T过高时低概率的“噪声词”频繁被选中,样本变成“橙汁炖鱼头”式的黑暗料理。实际调参通常在0.6~1.2之间做网格搜索,同时看质量和多样性两个维度,而不只看花样多不多。

为何常见:因为温度对输出的影响立竿见影,调大后句子明显变了,容易让人误以为“变了=变好了”,忽略了语法和语义的崩塌。

误区既然要多样性,那就让LLM多生成几万条。反正量大管饱,总不会都长一样吧?实际看去重后有效样本可能只有原来的十分之一。

正解LLM在相同提示词和相同采样分布下会反复落到少量“典型模式”上,产生大量语义重复。真正的多样性要结合提示词变体、采样调节和去重三步,不是单纯堆数量。有用信息量比原始数量更重要。

为何常见:直观上“生成越多=见到越多”,但忽略了模型概率分布的高频集中性,重复样本不提供新信息。

误区写个脚本把一模一样的数据删掉就完事。可去重后数据依然很“窄”,因为很多样本字面不同、意思相同。

正解合成数据去重要在语义空间做:“一只白色的小狗在花园里玩耍”和“花园中,一只白毛狗在玩”字面差异很大,但余弦相似度高达0.9,属于同一道菜,只留一盘即可。要用embedding相似度或n-gram重叠率识别这类语义冗余。

为何常见:因为“重复”在日常语义里容易先想到“逐字相同”,而忽略了人类语言的同义表达多样性。

误区看评估指标发现Self-BLEU居高不下,于是拼命加大温度和Top-p随机性,直到Self-BLEU降到极低,然后宣布数据集“高质量高多样性”。

正解Self-BLEU只衡量n-gram重叠,完全不看语义合理性。把指标压到极低的同时,文本可能已经退化成随机字符串。合理做法是设一个“质量下限”(如困惑度、语法过滤),在质量达标的前提下优化多样性指标。

为何常见:指标焦虑——把中间指标当成最终目标,忽视了评估指标与真实质量之间的鸿沟。

面试题

Q1. 温度参数T=0.6与T=1.2相比,下列哪项描述正确?

单选题 · easy

  • A.T为0.6时输出分布更平缓
  • B.T为1.2时输出随机性更强← 正确答案
  • C.温度对输出结果无影响
  • D.温度越小越易产生噪声

答案:B。温度越大,softmax分布越平缓,低概率词被选中的机会越大,随机性就越强。T=0.6比T=1.2更“保守”,容易重复;T越小越不易产生噪声,而是越容易固定输出。这就像火候越小,菜越不容易糊,但也越没新意。

Q2. Top-p采样中p=0.9通常指什么?

单选题 · mid

  • A.只选最高概率的一个词
  • B.从累积概率达p的最小集合采样← 正确答案
  • C.生成文本总长度的90%
  • D.采样概率超过p的所有词

答案:B。Top-p的做法是把所有词按概率从高到低排,逐步累加直到累积概率刚好超过0.9,然后在这个最小候选集合里重新归一化采样。它不像温度那样整体拉平概率,而是“只看最好的那几味佐料”。A是贪心解码,C是长度概念,D是机械截断,都不对。

Q3. 下列哪些方法可以提高合成数据多样性?(多选)

多选题 · mid

  • A.更换提示词模板← 正确答案
  • B.调高温度参数值← 正确答案
  • C.不变更当前随机种子
  • D.引入不同风格示例← 正确答案

答案:ABD。换模板、调温度、换示例都能让LLM产出更多样化的样本。固定随机种子会让每次生成结果完全相同,反而扼杀多样性。这就像让大厨换菜谱、调火候、换摆盘能花样百出,但坚持“每次都按同一个动作炒菜”就永远只有一道宫保鸡丁。

Q4. 语义聚类去重的主要目的是什么?

单选题 · easy

  • A.主要降低存储成本
  • B.消除语义冗余保留代表← 正确答案
  • C.加快模型训练速度
  • D.增加数据样本总量

答案:B。聚类去重是把语义相近的样本归为一堆、每堆只留一个代表,目的是消除冗余、让训练数据的信息密度更高。降低存储和加快训练是附带收益,不是核心目的;去重更不会增加样本量,恰恰是减少样本量。

Q5. 数据集的Self-BLEU越低,说明什么?

单选题 · hard

  • A.数据整体质量越差
  • B.样本重复度越低越多样← 正确答案
  • C.模型训练性能越好
  • D.数据去重率会越低

答案:B。Self-BLEU衡量的是数据内部n-gram的重叠程度,越低说明样本之间相似度越低、多样性越高。它只度量“撞脸率”,与质量、模型性能、去重率没有直接因果关系。就像盲评中“两道菜完全不相似”只能说明花样多,不说明好不好吃。

Q6. 下列哪些属于多样性量化评估的方法?(多选)

多选题 · mid

  • A.Self-BLEU 指标← 正确答案
  • B.余弦距离平均值← 正确答案
  • C.语义聚类数量← 正确答案
  • D.用户留存率值

答案:ABC。Self-BLEU通过n-gram重叠衡量样本间相似度;余弦距离平均值衡量语义空间中的分散程度;聚类数量反映数据覆盖了多少个语义簇。用户留存率是产品运营指标,与数据多样性没有直接关系。

Q7. 温度过高导致合成数据的主要风险是什么?

单选题 · mid

  • A.合成数据过于集中
  • B.语义崩塌,质量下降← 正确答案
  • C.样本重复率会升高
  • D.模型训练速度变慢

答案:B。温度过高时概率分布过于平缓,大量低质量、低概率的“噪声词”频繁被选中,生成文本会出现语法错误或语义混乱。数据过于集中和重复率升高是温度过低的表现,训练速度与温度无关。

Q8. 在联合得分公式 Score = αQ + βD 中,增大β的效果是什么?

单选题 · hard

  • A.更强调多样性,可能牺牲质量← 正确答案
  • B.更强调质量,可能牺牲多样
  • C.提升整体数据生成速度
  • D.固定模型随机种子不变

答案:A。β是多样性得分D的权重,β变大会让总分更依赖多样性,优化时会偏向让数据更丰富,但可能忽略质量约束,所以“可能牺牲质量”。反过来增大α才更强调质量。生成速度和随机种子与这个公式的权重配置无关。

Q9. 关于多样性与质量平衡的正确做法有哪些?(多选)

多选题 · hard

  • A.设质量下限过滤脏数据← 正确答案
  • B.用人工抽查校准指标← 正确答案
  • C.无限提升温度求多样
  • D.迭代方式调整参数← 正确答案

答案:ABD。设质量下限能先筛掉“黑暗料理”,人工抽查能发现指标失灵的情况,迭代调参能逐步逼近最优组合。无限提升温度会让数据彻底变成噪声,属于反面教材。平衡的关键是“在质量达标的前提下追求多样性”,而不是无限追求一端。

Q10. 合成数据多样性控制流程的正确顺序是?

单选题 · easy

  • A.生成、聚类去重、评估、调参← 正确答案
  • B.聚类去重、生成、调参、评估
  • C.调参、评估、生成、聚类去重
  • D.生成、评估、聚类去重、调参

答案:A。标准流程是先批量生成候选数据,再聚类去重压缩冗余,然后评估多样性指标,最后根据指标调整温度和采样参数,进入下一轮迭代。B把顺序搞反了,C和D都打乱了“先产生、再清理、再评价、再优化”的闭环逻辑。