
大模型推理能力提升数据集成本一直是绕不开的坎。人工标注推理步骤贵、慢、规模小而且领域覆盖有限。很多团队在尝试复现先进推理模型时第一步就卡在训练数据上而不是模型结构。最近“无监督自蒸馏”这一类方法受到不少关注核心思路是让大模型自己生成推理数据再自己筛选、自己训练自己全程不依赖人工标注。本文就围绕这类方法展开梳理它的背景、整体框架、核心技巧、工程落地路径和常见坑点帮你在自己的模型训练任务中判断这类方案是否可用。1. 为什么推理能力提升总是绕不开标注数据1.1 推理能力与大模型的“思维链”依赖要理解无监督自蒸馏需要先回到一个基础问题大模型推理能力从哪里来预训练阶段模型学到了大量语言模式和世界知识可以流畅回答问题但在多步推理任务上表现不稳定。比如一道数学题需要先建立方程、再化简、再求解模型如果直接输出答案很容易在中间某一步出错。这就是思维链Chain-of-Thought简称 CoT被提出的原因让模型在给出最终答案前先写出中间推理过程把多步计算拆解成可以验证的步骤。后来大量研究进一步表明不仅测试时需要思维链训练时也需要让模型接触高质量的思维链样本模型才能真正学会这种推理方式。问题在于思维链数据需要人工标注而且不是简单打个标签而是要把每一步怎么想、怎么算都写得清楚、准确。对于数学、代码、逻辑推理类任务标注员本身必须足够专业标注成本非常高。即使是大规模众包平台也很难稳定产出既准确又多样化的推理链数据。这就形成了一个矛盾推理能力越强的模型越依赖高质量思维链数据而高质量思维链数据恰恰是最难获取的数据类型之一。1.2 监督微调之外的新选择传统提升推理能力的路径高度依赖监督微调Supervised Fine-Tuning, SFT。做法是从人类标注数据集中挑选高质量样本用这些样本对模型做有监督训练让模型模仿标准答案的推理风格。这套方法效果明显但瓶颈也很清晰数据规模受限于人工标注速度数据多样性受限于标注团队的覆盖范围数据质量受限于标注规范和标注员水平。当你想把模型的能力拓展到新的领域、新的题型、新的推理形式时上述限制会集中爆发。无监督自蒸馏方法试图改变这个局面。它不再从人类标注开始而是把模型本身当作数据生产者模型先生成大量候选推理路径再借助某种自动化的质量评估信号从中筛选出优质样本最后用这些样本对模型做蒸馏训练。整个过程不需要人工标注新数据模型在自己的输出中学习更好的推理模式。这种“自己教自己”的思路本质上是一种自举Bootstrapping在机器学习领域并不新鲜但在大模型推理能力提升上找到了新的结合点。1.3 无监督自蒸馏的适用场景无监督自蒸馏不是要完全取代人工标注和SFT而是为以下场景提供了一条低成本的可行性路径新领域冷启动模型在目标领域没有足够的标注推理数据先让模型自己生成候选答案再筛选高质量子集用于训练。持续能力增强想让模型在特定推理任务上有进一步提升但不想再次依赖人工标注。轻量模型蒸馏用一个较大的模型生成推理数据蒸馏到较小的模型上让小模型获得更强的推理能力。数据增强在已有少量人工标注的基础上用自蒸馏方法扩充推理数据规模再结合SFT使用。理解了这个背景下面就可以正式拆解无监督自蒸馏的完整技术方案。2. 核心概念无监督自蒸馏的本质与边界2.1 蒸馏与自蒸馏的简单理解蒸馏Distillation最初指用一个性能较强的大模型指导另一个模型学习训练时让小模型去拟合大模型的输出分布。传统蒸馏需要大模型在给定输入上生成输出然后小模型模仿这些输出。自蒸馏Self-Distillation则更进一步模型直接把自身生成的输出当作训练目标相当于模型既是老师又是学生。无监督自蒸馏在此基础上加入了两个限制第一是不依赖人工标注数据第二是强调让模型在训练过程中自发形成更优的推理模式。与传统的知识蒸馏不同这里的“老师”并不是一个更强的外部模型而更像是模型经过多轮采样、筛选之后的“择优版本”。通过多次采样模型可以产生不同质量的推理路径通过筛选选择其中最合理、最完整的那一部分通过训练模型逐步摆脱低质量路径向高质量路径靠拢。2.2 监督蒸馏与无监督自蒸馏的对比为了把概念讲清楚这里用一张表格对比两者在数据来源、训练目标、适用场景上的区别维度监督蒸馏 / SFT无监督自蒸馏数据来源人工标注或外部模型生成后经人工校验模型自身采样生成的候选推理路径质量信号人工标注、规则校验自动化评估信号如置信度、一致性、可验证结果是否依赖标注是否训练目标模仿人工标注答案提高优质推理路径在模型输出中的概率主要瓶颈数据成本和多样性自动化评估信号的有效性典型场景指令微调、垂直领域能力注入推理能力增强、持续性自我提升由表格可以看出无监督自蒸馏的成败关键已经从“如何获取数据”转移到了“如何定义质量信号”。这一点会在后续章节重点展开。2.3 无监督自蒸馏与强化学习的关联有人可能会问这种“生成、筛选、再训练”的流程与基于人类反馈的强化学习RLHF有什么区别。强化学习需要设计奖励模型或使用人工反馈作为奖励信号然后通过策略优化算法更新模型无监督自蒸馏通常更简单它把筛选得到的优质样本直接当作监督学习目标本质上是一种带选择机制的自我训练。也可以把它理解成一条介于SFT与RLHF之间的折中路径比SFT更省标注比RLHF更容易实现稳定训练。3. 无监督自蒸馏方法的整体框架3.1 生成-筛选-蒸馏三步流水线无监督自蒸馏方法通常可以归纳为“生成-筛选-蒸馏”三步循环。为了便于理解先把整体流程画成结构化描述第 1 步生成Generation - 给定一批无标注问题使用当前模型多次采样生成多样化的推理路径。 第 2 步筛选Filtering - 使用自动化评估信号对推理路径打分或分类。 - 保留高质量样本过滤低质量样本。 第 3 步蒸馏Distillation - 用筛选后的高质量样本对当前模型进行监督训练。 - 更新模型参数进入下一轮迭代。 迭代重复第 1 步到第 3 步直到模型在验证集上的推理能力不再提升。这套流程本身不复杂但每一步都有可以深挖的技术点。下面逐一拆解。3.2 生成阶段如何让采样结果更丰富如果直接让模型对问题生成一次答案结果往往单一且不一定正确。要获得足够多的高质量候选需要在生成阶段注意以下几点。第一增加采样数量。常用做法是让模型对同一个问题生成 8 到 32 条推理路径采样数量越大越可能覆盖到正确的解题思路但计算开销也随之上升。第二调整解码参数。温度参数temperature对推理路径多样性影响很大温度过高会导致胡言乱语温度过低会导致结果单一。实践中经常在 0.7 到 1.0 之间尝试部分研究也会结合 top-p 采样进一步增强多样性。第三提示词设计。可以在提示词中要求模型“一步一步思考”“给出完整推导过程”必要时还可以给模型提供少量示例作为上下文。第四模型选择。生成阶段推荐使用当前参数量较大、推理能力较强的模型因为候选路径的上限直接决定了最终数据质量的上限。3.3 筛选阶段没有标注如何判断好坏这是无监督自蒸馏的核心难点。没有人工标注就必须寻找自动化的“代理质量信号”。下面列出几种在实践中被验证有效的信号你可以根据任务类型选择或组合使用。置信度信号让模型在生成推理路径的同时输出置信度或概率值。若模型对某个答案更确定那么这条推理路径正确的可能性通常更高。但这种信号容易被模型过度自信影响需要谨慎使用。答案一致性信号对同一个问题采样多条推理路径如果多条路径得到相同的最终答案那么该答案正确的概率较高。这种投票式策略在数学题、选择题上效果明显。可验证结果信号在代码、数学、SQL 等任务中可以直接执行或验证结果。比如生成的代码可以成功运行并通过测试用例那么这条推理路径大概率是对的。这是一种强信号推荐优先使用。语言模型打分信号使用一个评判模型对推理路径打分这个评判模型可以是通用大模型也可以是小型奖励模型。打分维度通常包括逻辑连贯性、步骤完整性、是否包含幻觉内容等。规则与启发式过滤检查推理路径中是否包含重复片段、是否出现无效符号、是否包含明显语法错误。这类规则可以快速过滤掉低质量输出。需要注意的是没有一种筛选信号适用于所有任务。实际落地的研究通常组合多种信号把规则过滤放在最前面把自定义校验放在中间把模型打分放在最后形成一个多级漏斗。3.4 蒸馏阶段用筛选后数据训练模型筛选完成后优质推理路径会被组织成训练样本格式通常是“问题 推理链 最终答案”。蒸馏训练与普通监督微调没有本质区别差异在于训练数据完全来自模型自身。训练时需要注意两点。第一防止模型对筛选信号过拟合。如果筛选信号存在偏差模型可能在训练后学会“迎合”筛选器而不是提升真实推理能力。例如若筛选器偏好长文本模型可能会生成冗长的推理路径若筛选器偏好某些高频答案模型可能会忽略其他正确解法。缓解办法是增加筛选信号的多样性尽量使用多个独立信号。第二控制训练步数与学习率。自蒸馏训练数据通常由模型反复生成而来分布相对单一训练轮数过多容易导致模型多样性下降。实践中常将训练轮数控制在 1 到 3 轮之间并配合较小的学习率让模型在已有能力基础上缓慢调整。下面给一个训练目标函数的示例用交叉熵损失完成蒸馏训练import torch import torch.nn.functional as F def distillation_loss(logits, target_ids, mask): 对筛选后的推理路径计算交叉熵损失。 logits: [batch_size, seq_len, vocab_size] target_ids: [batch_size, seq_len] mask: [batch_size, seq_len]padding 部分为 0 shift_logits logits[:, :-1, :].contiguous() shift_targets target_ids[:, 1:].contiguous() shift_mask mask[:, 1:].contiguous() loss F.cross_entropy( shift_logits.view(-1, shift_logits.size(-1)), shift_targets.view(-1), reductionnone ) loss loss.view(shift_logits.size(0), -1) loss (loss * shift_mask).sum() / (shift_mask.sum() 1e-9) return loss上述代码是训练循环中的损失计算片段实际使用时需要配合优化器、梯度累积和数据加载逻辑。整体思路与SFT一致重点在于数据来源不同。4. 无监督自蒸馏为什么能够提升推理能力4.1 通过自我选择放大正确模式大模型在多次采样时既可能产生正确的推理路径也可能产生错误的推理路径。无监督自蒸馏的本质是通过筛选机制把正确路径从大量候选路径中挑选出来然后提高模型生成这些路径的概率。经过多轮迭代模型会逐步把输出概率集中到更合理的推理模式上从而提升整体推理能力。这个逻辑可以类比为“学生在大量草稿中找出正确的解题方法然后反复练习”。4.2 通过自举逐步探索更优策略模型初始能力越强自我生成的候选路径质量上限就越高。在第一轮迭代后模型已经得到了一次“自我修正”第二轮生成的候选路径会比第一轮更可靠进而筛选出的高质量样本也更多。这种自举式提升让模型在没有外部知识注入的情况下也能逐步逼近自己的能力边界。部分研究观察到这种迭代方式在某些数学推理任务上可以把模型从一个相对较弱的初始状态训练到接近强监督微调的效果。4.3 与少样本提示和思维链的协同作用无监督自蒸馏并不排斥思维链。恰恰相反大多数方法在生成阶段都会要求模型显式地生成推理步骤再筛选完整且正确的推理链。如果模型本身已经具备一定的少样本思维链能力那么它生成的推理路径质量会更高自蒸馏训练的效果也会更明显。这也是为什么这类方法通常选择已经经过指令微调、具备一定推理能力的模型作为起点而不是从预训练基座模型直接开始。5. 复现一个最小可行的无监督自蒸馏实验5.1 实验目标与数据集准备下面用一个最小实验来演示无监督自蒸馏的思想。实验目标是提升模型在小学数学应用题上的推理能力。数据集采用公开的GSM8K测试集作为评估集训练阶段不使用人工标注数据而是从模型中自动生成推理路径。需要注意的是GSM8K本身包含训练集但为了展示无监督自蒸馏的效果这里刻意不使用它的标注推理链。实验的重点是走通流程不是一个完整的研究级复现。5.2 生成候选推理路径核心代码如下先生成候选推理路径并将结果保存为JSONL文件import json import torch from transformers import AutoModelForCausalLM, AutoTokenizer model_name Qwen/Qwen2.5-7B-Instruct tokenizer AutoTokenizer.from_pretrained(model_name) model AutoModelForCausalLM.from_pretrained( model_name, torch_dtypetorch.bfloat16, device_mapauto ) questions [ A store sells apples at $3 each. If Tom buys 5 apples, how much does he pay?, A train travels 120 kilometers in 2 hours. What is its average speed in km/h?, ] def generate_candidates(question, num_samples8): prompt fPlease solve the problem step by step.\nQuestion: {question}\nAnswer: inputs tokenizer(prompt, return_tensorspt).to(model.device) candidates [] for _ in range(num_samples): outputs model.generate( **inputs, max_new_tokens256, temperature0.8, top_p0.95, do_sampleTrue ) response tokenizer.decode(outputs[0], skip_special_tokensTrue) candidates.append(response) return candidates with open(candidates.jsonl, w, encodingutf-8) as f: for q in questions: cands generate_candidates(q, num_samples8) f.write(json.dumps({question: q, candidates: cands}, ensure_asciiFalse) \n)生成时需要注意不同模型对提示词的敏感度不同。如果你用的是其他模型建议先手工测试几条提示词观察模型的输出风格再批量生成。5.3 自动化筛选优质样本这里使用“答案一致性 规则校验”的组合信号。思路是先尝试从推理路径中提取最终答案再统计多条路径中相同答案出现的频率保留答案出现次数最高且推理路径完整、无明显重复的样本。对于能够通过执行代码验证结果的任务还可以增加一个代码执行步骤判断最终答案是否正确这是比一致性更强的信号。import re import json def extract_answer(text): # 这是一个简易提取器实际项目需要根据数据格式调整 numbers re.findall(r[-]?\d, text) if not numbers: return None return numbers[-1] def filter_candidates(question, candidates): scored [] for cand in candidates: answer extract_answer(cand) if answer is None: continue if len(cand) 20: continue scored.append({candidate: cand, answer: answer}) # 按答案频率统计保留一致性最高的答案对应路径 answer_counts {} for item in scored: answer_counts[item[answer]] answer_counts.get(item[answer], 0) 1 # 选择出现次数最多且大于等于 2 的答案 if not answer_counts: return [] best_answer max(answer_counts, keyanswer_counts.get) if answer_counts[best_answer] 2: return [] filtered [item[candidate] for item in scored if item[answer] best_answer] return filtered[:2] # 每个问题最多保留 2 条 with open(candidates.jsonl, r, encodingutf-8) as f: for line in f: data json.loads(line) good filter_candidates(data[question], data[candidates]) with open(filtered.jsonl, a, encodingutf-8) as out: for cand in good: out.write(json.dumps({question: data[question], response: cand}, ensure_asciiFalse) \n)这种筛选方式在简单数学题上效果较好但在开放域推理任务上会失效因为开放域问题答案不唯一。此时需要切换到语言模型打分或可验证结果信号。5.4 用筛选数据做自蒸馏训练筛选完成后需要把数据转换成模型训练格式。对于对话模型训练数据通常组织为“用户问题”和“模型回复”的形式。下面是一个轻量训练脚本from datasets import load_dataset from transformers import AutoModelForCausalLM, AutoTokenizer, Trainer, TrainingArguments dataset load_dataset(json, data_filesfiltered.jsonl, splittrain) def format_example(example): messages [ {role: user, content: example[question]}, {role: assistant, content: example[response]}, ] text tokenizer.apply_chat_template(messages, tokenizeFalse) return {text: text} tokenizer AutoTokenizer.from_pretrained(model_name) dataset dataset.map(format_example) training_args TrainingArguments( output_dir./self_distill_model, per_device_train_batch_size1, gradient_accumulation_steps8, learning_rate2e-5, num_train_epochs2, logging_steps10, save_steps100, save_total_limit2, fp16True, ) trainer Trainer( modelmodel, argstraining_args, train_datasetdataset, tokenizertokenizer, ) trainer.train()训练轮数不宜过多因为在少量筛选样本上反复训练容易过拟合。实验时建议用验证集监控loss和推理准确率当验证集不再提升时就停止训练。5.5 运行与结果验证训练结束后可以用训练后的模型在GSM8K测试集上做评估。评估时采用同样的提示词格式让模型生成思维链再提取最终答案与标准答案对比。预期结果是经过无监督自蒸馏训练的模型在测试集上的准确率会高于初始模型尤其是当初始模型已经具备一定推理能力时提升会更明显。如果实验结果显示没有提升优先检查筛选阶段的数据质量而不是训练参数。数据质量是这类方法中最关键的因素。6. 如何验证“无监督自蒸馏”确实有效6.1 建立合理的评估基线无监督自蒸馏的评估不能只看最终准确率还需要回答一个关键问题提升究竟来自“模型自己生成了正确答案”还是来自“筛选器选出了正确答案”如果筛选器本身就依赖答案校验模型并没有学会新的推理能力只是在模仿已经验证过的答案那么当测试集与训练集分布不同时提升会大幅缩水。因此评估时需要关注以下几点。与零样本提示做对比不训练直接用原模型在测试集上推理作为基准。与少样本思维链提示做对比通过提示词让模型模仿几个示例参考这一效果。与随机筛选训练做对比不筛选随机选取同样数量、同样长度的生成数据训练模型。如果随机筛选也有相近效果说明提升主要来自训练数据规模而不是筛选质量。6.2 增加领域外测试为了验证模型是真的提升了推理能力而不是只记住了训练数据的模式可以在训练集之外的同类任务上做测试。例如用小学数学题训练用初中数学题或逻辑推理题评估。领域外测试能有效暴露模型是否出现了过拟合。理想情况下自蒸馏训练后的模型应该表现出一定的泛化能力而不是只在训练分布上得分高。6.3 多轮迭代的收益与衰减无监督自蒸馏实验一般会做多轮迭代但需要密切关注每次迭代后的收益。第一轮迭代提升通常最明显后续迭代的收益会逐渐减小甚至出现退化。退化原因通常有两种一是筛选用例被高置信度的错误答案污染二是模型分布坍缩到少数几种固定推理模式。建议每一轮迭代后保留当前模型并对比不同迭代轮次的模型在验证集上的表现而不是无脑迭代。7. 常见错误与排查思路无监督自蒸馏方法流程看似简单实际落地时会在各个阶段遇到问题。下面把高频问题整理成表格方便你按图索骥排查。问题现象常见原因解决思路训练后推理能力没有提升筛选信号太弱低质量数据占比过高查看筛选后样本质量采用更严格的多级过滤训练后模型输出单一、重复度高筛选数据多样性不足或训练轮数过多增加采样温度、降低训练轮数、在筛选中加入多样性控制模型生成候选答案几乎全错模型初始推理能力太弱或提示词不恰当先用少样本思维链提示评估模型基础能力必要时换更强的模型答案一致性信号失效问题本身答案不唯一改用可验证结果信号或模型打分信号训练损失下降但评估不涨训练数据分布与评估分布不一致增加训练数据多样性避免只保留同一题型样本多轮迭代后能力退化错误数据被筛选器放行引入更严格的结果校验或降低迭代轮数显存不足无法批量生成采样数量太大、模型太大降低采样数、使用批量推理、考虑小模型蒸馏数据中个人信息或敏感内容泄露生成了包含敏感信息的文本增加敏感信息过滤规则必要时引入人工抽检其中“训练损失下降但评估不涨”是最容易被忽略的问题。很多人看到训练loss下降就认为模型在变好但自蒸馏训练中模型完全可能把训练数据中的错误模式也记住了导致评估集表现停滞。唯一的解决办法是建立独立评估集并且定期抽查模型输出定位是数据问题还是训练问题。8. 从论文到工程落地实践建议8.1 数据合规与授权边界无监督自蒸馏虽然不需要人工标注但依然涉及训练数据的合规问题。生成数据源自模型但问题的来源可能是公开数据集、用户提交内容或商业数据。在使用任何问题集时需要确认数据的使用许可。如果问题来源包括用户提交内容还要评估是否包含个人信息、隐私数据或敏感内容。训练脚本中加入敏感信息过滤规则应该是默认动作而非可选配置。总之数据合规是比模型效果更需要优先关注的问题。8.2 算力充足时如何扩大规模当你想从“最小实验”走向正式训练可以按以下顺序扩大规模增加问题数量从几百道题扩展到数万道题。增加每个问题的采样数量从8条扩展到64条。使用更强的生成模型如果目标是蒸馏到小模型大模型的候选路径质量会直接影响上限。引入多模型集成筛选用多个模型投票决定一条推理路径是否保留减少单一模型偏差。增加验证集和人工抽检定期检查筛选数据的质量防止数据污染。8.3 算力有限时如何降低成本如果你的算力有限可以从几个方向控制成本。第一降低采样数量但可以结合更强的筛选信号用质量弥补数量。第二使用量化和LoRA技术做蒸馏训练大幅度降低显存占用。第三只对部分层做训练或使用pissa等参数高效微调方法。第四采用课程式生成先让模型在各领域少量生成并评估锁定效果最好的领域再扩大数据量。需要注意的是无监督自蒸馏非常依赖模型在生成阶段的表现如果生成质量过低盲目扩大规模只会放大训练数据中的错误。8.4 如何判断该方法是否适合你的项目不是所有任务都适合无监督自蒸馏选择前先做三个判断是否存在可自动化的质量信号如果有可执行验证的答案、有确定性的结果或者有相对可靠的打分模型那么适合。如果只能靠人工判断质量收益会打折扣。当前模型是否具备基础推理能力如果模型生成的内容本身就不可用自蒸馏相当于在垃圾数据上训练效果不会好。可以先做少量采样人工检查生成质量。推理能力提升是否是主要目标如果目标是通用对话能力、指令遵循能力或安全性无监督自蒸馏不是首选还是应该回到带有人工偏好的对齐方法。9. 无监督自蒸馏的热门延伸方向9.1 从答案一致性到过程一致性早期的自蒸馏筛选比较多依赖最终答案的一致性但在复杂推理任务中最终答案相同不代表推理过程正确。过程一致性是指不同的推理路径在中间步骤上是否保持一致如果多条路径在关键步骤上得出相同的中间结论那么这些步骤更可能是正确的。许多研究工作正在用过程奖励模型或步骤级验证器来替代最终答案校验这种方式对复杂推理任务更有效但实现复杂度也更高。9.2 自然语言反馈驱动的自蒸馏单纯筛选数据只能选择“好”的推理路径无法告诉模型“哪一步错了、错在哪里”。自然语言反馈驱动的自蒸馏试图解决这个问题筛选器不再只是打分而是生成改进建议模型根据反馈修改推理路径后再进入训练。这种方案比纯选择式自蒸馏更接近人类学习过程发现错误、理解原因、重新尝试。不过生成反馈的质量本身需要保证否则模型会被误导。9.3 多模型协作与交叉蒸馏单模型自蒸馏容易陷入自身能力上限。多模型协作自蒸馏引入不同架构、不同训练方式、不同领域的模型让多个模型相互生成候选数据、相互评价和筛选再把高质量聚合数据用于训练。交叉蒸馏可以有效扩大数据多样性但工程复杂度也会明显提升涉及多模型推理调度、统一数据格式和各模型能力评估。9.4 与强化学习的深度结合无监督自蒸馏的“筛选监督训练”本质上是一种近似策略优化。如果将筛选得到的正负样本直接用于策略优化或者把筛选信号转换成密集奖励自蒸馏方法就和强化学习形成了更紧密的结合。这类方法对训练稳定性要求更高但有机会获得比单纯监督训练更强的推理能力。10. 总结与进一步学习路径无监督自蒸馏方法为大模型推理能力提升提供了一条不依赖人工标注的新路径。它的整体思路并不复杂用模型自身生成推理候选通过自动化信号筛选高质量路径再对筛选结果做监督训练形成一个“生成-筛选-蒸馏”的自我提升循环。这种方法在数学推理、代码生成、逻辑推理等可以自动化验证的领域尤其有效但在开放域、主观性强、质量信号不易自动化的场景中效果会受到明显限制。如果你想继续深入建议按以下路径学习先吃透思维链和自蒸馏的基础知识理解为什么推理路径可以作为训练目标。在GSM8K等公开数据集上复现本文的最小实验体验“生成-筛选-蒸馏”完整流程。重点研究筛选信号的设计思路尝试用过程验证、模型打分、规则过滤组合出更适合自己任务的筛选器。再进一步学习强化学习中的策略优化方法理解自蒸馏与RLHF之间的关系和差异。最后结合自己的业务场景从算力、数据合规、评估指标等角度评估无监督自蒸馏的落地价值。实际项目中不要一上来就在大规模训练集群上跑完整方案。先从几百条问题上验证筛选信号的有效性确认模型生成质量足够高再逐步扩大规模。你会少踩很多坑。