资讯详情

大模型自举:无标签自提升的CoT自训练管线解析

📅 2026/10/15 11:53:43 | 华诺云谱 👁 阅读
大模型自举:无标签自提升的CoT自训练管线解析
简介这是一份面向大模型研究、ChatGPT/AIGC应用与NLP深度学习人群的英文原版论文PDF主题为“大型语言模型能否自我提升”聚焦如何在无标注数据条件下增强LLM推理能力。压缩包内仅1个PDF文件整体约532KB可顺畅下载阅读页面显示已有365人学习浏览。论文提出通过Chain-of-Thought提示与自一致性生成“高置信度”理由增强答案并将其作为微调目标使540B参数模型在GSM8K、DROP、OpenBookQA、ANLI-A3等基准上准确率分别提升至82.1%、83.0%、94.4%、67.9%且无需任何真实标签。消融实验进一步表明基于推理的微调是模型自我提升的关键因素。对于关注LLM自我学习、少监督微调、CoT推理及无人工标注场景的读者这份资源能帮助快速理解相关方法设计、实验对比与结论具有不错的参考价值。1. 大模型自举不靠标注数据靠自己的推理路径完成能力跃迁一个 540B 参数的巨型语言模型只喂给它问题本身连标准答案都不给反而能让它在 GSM8K 上从 74.4% 跳到 82.1%在 DROP 上从 78.2% 跳到 83.0%——这就是「无标签自提升」路线的核心结论。这个方法把 CoT 提示生成的多条推理路径拿回来自己做多数投票再把“高置信度”的推理样本当成训练语料喂回去微调整个流程完全避开人工标注和外部反馈。对做模型训练、算法落地或 AI 应用开发的人来说它最有价值的启发不是某个 benchmark 数字而是“自我博弈”的完整工程路径如何筛选可信伪标签、如何设计训练样本格式、为什么推理路径本身的多样性比答案正确性更关键。这篇笔记把论文里的方法、实验设置和消融结论拆开讲覆盖数据生成、过滤、微调和踩坑细节方便你在自己的模型和数据上直接照着复现。2. 核心机制拆解CoT 多路径采样与多数投票如何生成可信训练信号2.1 从自洽性到置信度多个采样路径的价值大模型在解决推理题时如果用 temperature 0 的贪心解码只会输出一条路径这条路径一旦错了就没有任何纠错机会。而把 temperature 调到大于 0同一个问题可以采样出完全不同的多条推理链条。论文里的自一致性方法正是利用了这种多样性对同一条问题生成 m 条路径然后按最终答案做多数投票得票最多的那个答案被视为“高置信度”答案。这个设计的巧妙之处在于它不需要外部打分器来判断哪条推理路径更合理而是把模型自身的多次采样当作一个委员会用答案的一致性代替正确性。只要大多数路径给出了同一个答案模型就在“自我确认”这条推理思路是可取的。论文里给出的例子很直观三个输出路径里两个得出 108 元、一个得出 96 元前两条被留下第三条被丢弃。从实操角度m 的选择直接影响训练数据质量和数量。我在复现时发现m 太小比如 4~5投票结果不够稳定m 太大比如 40边际收益递减而且推理成本翻倍。论文里的主要实验采用 m 40消融实验里也测试过不同取值但综合精度和成本考虑大部分场景下 m 20~30 是一个比较划算的区间。2.2 高置信度过滤只保留“概率上被印证”的推理路径过滤逻辑不复杂把所有推理路径按最终答案分组选出出现次数最多的答案作为“一致答案”然后只保留那些最终落到一致答案上的推理路径。这里有一个关键细节——保留的不是答案本身而是完整的推理链。我在第一次读这篇论文时被一个细节卡住了他们保留的是所有导向一致答案的推理路径而不是只保留其中一条。这意味着同一个问题的训练数据里可能出现多条不同措辞但结论一致的 CoT 推理链而这些推理链本身也可能包含局部错误。论文在后续实验里专门验证过即使推理过程中有瑕疵只要最终答案是对的这批数据对模型自提升仍然有用。这给我一个很重要的启发不要用人工标注的标准去要求自举数据模型在学习的是“推理模式”不是“标准答案”。过滤后的数据量跟几个因素强相关任务本身的难度、采样温度、m 的大小。比如 GSM8K 上模型原始精度约 74%采样 40 条后多数投票能提升到 74.4%再微调后到 82.1%。如果原始模型太弱投票选出来的伪标签错误率也高自提升效果就会受限。2.3 训练样本的拼接格式混合格式比单一格式更抗过拟合论文里提到的另一个容易被忽略的设计点是训练样本的格式增强。光把问题 推理链拼在一起喂给模型模型容易学会一种固定的说话腔调。他们做了多组格式变化实验结论是混合多种 prompt 格式能显著降低过拟合风险提升 OOD 泛化能力。例如原始 CoT 示例的格式是Q: ... A: Lets think step by step. ...可以在微调阶段把问题换成前缀式写法、把推理链中的思考句法做轻微改写、甚至调整回答的开头引导词。这种做法跟数据增强的核心思想一致——让模型学到的是推理结构而不仅仅是文本表面的统计规律。从工程角度看格式增强可以用一个简单脚本来实现不必引入额外的 generation 模型import random def format_augmentation(q, reasoning, answer): 生成三种不同格式的训练样本 formats [ fQ: {q}\nA: Lets think step by step.\n{reasoning}\nThe answer is {answer}., fQuestion: {q}\nAnswer: {reasoning}\nFinal answer: {answer}., fProblem: {q}\nSolution: {reasoning}\nAnswer: {answer}. ] return random.choice(formats) # 使用示例 q John buys 20 cards and 1/4 are uncommon. How many uncommon cards did he get? reasoning John gets 20 * 1/4 5 uncommon cards. answer 5 train_sample format_augmentation(q, reasoning, answer)这段代码的逻辑是随机选一种 prompt 模板包裹训练样本让模型看到的是同一道题的不同表达方式。关键参数是formats列表里的模板数量——论文经验是 3 到 4 种模板就够太多会引入格式噪声太少会过拟合单一样式。3. 搭建完整自训练管线从原始问题到微调数据集的工程实现3.1 数据准备只需要问题本身不需要任何标签整个自训练流程的起点是一个“question-only”数据集。论文实验里用的是 GSM8K、DROP、OpenBookQA、ANLI-A3 这类任务的训练集但关键限制条件是只取输入部分、丢弃标准答案。对工程团队来说这意味着存量业务数据只要有问题文本就能用于模型自提升而不再依赖耗时耗力的人工标注管线。数据准备阶段的格式统一是大坑之一。我在复现时把不同任务的数据塞进同一个训练集结果发现格式不统一导致训练不收敛。论文里做了多任务混合训练但输入格式基本遵循同一套 CoT 风格。建议做如下规范化def normalize_question(task_name, raw_question): 统一不同任务的输入格式 if task_name gsm8k: return fQ: {raw_question}\nA: Lets think step by step. elif task_name openbookqa: return fQuestion: {raw_question}\nAnswer: Lets reason carefully. else: return fQ: {raw_question}\nA:这段代码做的事是给不同数据集的原始问题套上统一的 prompt 模板。注意normalize_question的输出会被后续的采样环节直接使用因此模板选择会显著影响生成质量——用与模型预训练阶段一致的 CoT 模板往往效果最好。混合多任务训练在论文里被证明不会互相干扰反而提升了 OOD 泛化能力。我自己实验时在 GSM8K DROP ANLI 混合训练上看到的效果和论文结论一致但有一个前提各任务的训练样本量需要均衡否则大任务会压掉小任务的学习信号。3.2 多路径解码配置采样参数与并行策略自举数据的质量很大程度上由解码参数决定。论文的核心设定是 temperature 0典型值在 0.5~1.0 之间。采样温度太低生成的路径多样性不够温度太高路径质量下滑投票选出的一致答案更可能是“错得一致”。论文里自一致性模块对多个采样路径做了验证能较准确地把模型在 GSM8K 上从贪心解码的约 56% 提升到多数投票后的 74%——这一跃升本身就是解码参数的功劳。生成配置可以这样处理python generate_paths.py \ --model paLM-540B \ --dataset train_questions.jsonl \ --temperature 0.7 \ --sample_n 30 \ --max_tokens 512 \ --output_path rationale_paths.jsonl这里的关键参数是sample_n每条问题的采样次数和temperature。sample_n 30意味着每个问题生成 30 条推理链数据量约为问题数的 30 倍按后续多数投票过滤后一般会保留 60%~75% 的路径。推理成本大头也在这单条问题 30 次解码在 540B 模型上需要不小的算力支撑实际工程里可以用小一号模型先做 pipeline 验证确认投票逻辑稳定后再上大模型。3.3 微调阶段在自生成推理数据上做标准的语言模型微调把过滤后的高置信度推理路径拼接成完整的“问题-推理链-答案”三元组然后就可以用标准的 causal LM loss 做微调了。论文用的是 PaLM 540B 的继续训练设置优化器、学习率、batch size 这些超参数并没有给出特别激进的设置重点在于数据质量。我梳理了一条可操作的微调配置参考以开源模型为例deepspeed train.py \ --model_name_or_path /path/to/pretrained_base \ --train_file self_generated_{gsm8k,drop,openbookqa}.jsonl \ --per_device_train_batch_size 8 \ --gradient_accumulation_steps 8 \ --learning_rate 1e-5 \ --num_train_epochs 2 \ --lr_scheduler_type cosine这里微调的关键决策有三一是学习率必须比常规监督微调低取 1e-5 甚至更低避免模型在有限的伪标签数据上剧烈震荡二是 epoch 数控制在 2 左右因为自生成数据的多样性有限训太多轮容易过拟合到伪标签的模式上三是用 cosine 学习率调度比线性衰减更稳因为伪标签数据本身存在噪声训练后期需要一个更平滑的收敛过程。微调完成后不只在训练任务上评测还要在 OOD 任务上验证。论文展示 OOD 任务如 AQUA、StrategyQA、MNLI 上有正迁移这说明自举数据学到的是通用推理结构而不是任务表面模式。如果你的微调结果只在训练集任务上提升、OOD 任务反而下降大概率是格式增强做少了或 epoch 训过头了。3.4 效果评测论文结果与复现参考基线把论文主要数值做一个整理方便对照复现任务原始预训练模型自一致性投票后自提升微调后GSM8K56.5%74.4%82.1%DROP56.4%78.2%83.0%OpenBookQA87.5%90.0%94.4%ANLI-A357.4%63.4%67.9%注意这里的微妙之处多数投票本身已经带来了大幅提升而自提升微调是在这个高基线上再叠加增益。如果拿自提升结果直接跟最开始的基座对比提升幅度被“放大”了容易产生误解。严格来说论文要证明的核心增量是“投票后的精度 vs 投票后微调的精度”后者在四个任务上也都是明显更高的。4. 实战中的坑自提升微调的四个容易翻车的环节4.1 采样温度与投票质量的隐性冲突现象把 temperature 调到 1.0 以上路径数增加了很多投票后的高置信度答案反而变差了。原因温度过高时采样的路径虽然多样但低质量路径占比急剧上升多数投票选出的答案可能只是“在低质量分布里的一致”并不代表正确率更高。解决把 temperature 控制在 0.5~0.8 之间并且对每条路径做简单的格式校验比如解析出的最终答案是否完整。再次强调论文里的自一致性对比实验结果是 greedy 56.5% 到投票 74.4%温度设置直接决定这个提升幅度能兑现多少。4.2 伪标签的“自欺诈”多数投票一致不代表推理链正确现象微调后模型在训练集任务上表现不错但 OOD 任务掉点。原因有些推理链虽然最终答案一致但链条本身是错的比如中途计算步骤错了最后凑对答案。模型记住了这种“错误推理模式”迁移到其他任务上就会出问题。解决不要只按答案投票可以对保留的推理链做一轮额外过滤。论文中的方法没有引入外部验证器但我们在工程里可以加一个轻量级规则检查比如对数值计算类的推理链做中间步骤的数值可验证性判断。从实际效果看过滤后 OOD 泛化会稳定几个点。4.3 过拟合伪标签模式epoch 数比想象中更敏感现象微调到第 3 个 epoch 之后训练损失继续下降但评测精度停止不动甚至下滑。原因伪标签数据不是无限多样的同一个问题最多保留 20~30 条推理链训多了模型开始死记这些路径而不是学习泛化推理能力。解决每训完一个 epoch 就在 OOD 任务上做一次评测不只在训练任务上看 loss。我在实验里发现 epoch 2 是一个安全值如果数据量特别大超过 10 万条可以适当延长到 3但务必配 early stopping。4.4 多任务混合训练时任务间的串扰现象GSM8K 和 DROP 一起训练两个任务都提升了再加入 ANLI 后 DROP 反而掉点。原因ANLI 是自然语言推理任务样本格式和推理风格跟数学题差异较大混合时模型在解码时出现了任务间的相互干扰。解决对每个任务设置独立的 sampling weight 而不是简单的等比例混合。我的做法是把推理类任务GSM8K、DROP权重调高把文本理解类任务ANLI权重调低按 7:2:1 左右的比例混合重新平衡后再测就稳定了。5. 进阶探索自生成问题与自生成提示的下一步玩法论文里除了核心的“多路径投票 微调”之外还做了两个延伸实验正好回应了“人工参与成本能不能再低”这个问题。第一个是自生成问题给定有限数量的输入问题让模型自己对这些问题做改写、改变数字、换场景生成新的训练问题来扩充数据。这个思路对数据稀缺场景特别有用——不需要积累大量真实问题先用手头的问题“衍生”出更多样的问题再走自一致性投票和微调流程。第二个是自生成 few-shot CoT 示例不再依赖人工写的 Chain-of-Thought 样例而是让模型自己生成 reasoning 示例作为 prompt。论文汇报的结果是在 GSM8K 上达到 74.2%已经是当时 zero-shot 场景下的最好成绩。这意味着整个自提升流程可以从 “无标签数据” 进一步走向 “无人工 prompt”模型在数据层面彻底自给自足。从工程角度我建议按下面的顺序渐进式落地这套方法而不是一上来就追求 540B 级别的复现第一先用 7B~13B 的开源模型在单任务的小数据集上把 pipeline 跑通验证多数投票的过滤逻辑是否按预期工作。第二引入格式增强和多任务混合观察 OOD 泛化是否改善。第三把自生成问题和自生成 CoT 示例作为增强模块加进去。最后再考虑把整套流程对大模型规模化。如果让我给一个最容易见效的切入点就是把自一致性投票后的数据直接当作 SFT 数据来用。很多团队手里已经有大量未标注的业务问题调用模型多次推理、多数投票、微调这一条链路完全可以在内部数据上闭环。论文那个“模型自我提升”的结论听起来有点夸张但拆到工程层面它的每一步都是可复现的。我从复现论文到搭出自己的自训练管线踩过的最大教训是不要用监督学习的思维来看待伪标签数据先把清洗洁癖收起来让模型在足够多的自生成推理路径里去选训练出来的稳定性远超预期。从那以后我每次做蒸馏或自举数据之前都会强制走一遍采样、投票、抽检可视化的流程确认数据分布没问题再启动训练。希望帮到你。本文还有配套的精品资源点击获取
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑