1. MASS 究竟是什么让一群自己训练更强大的自己1.1 先搞懂这个方案想解决的核心问题人工智能领域一直有一个绕不开的终极命题AI 到底能不能自我进化传统的大模型训练逻辑很简单粗暴——堆数据、堆算力、堆参数量靠人类标注把能力一点点喂给模型。但这条路的瓶颈已经非常明显了高质量标注数据的增速远跟不上模型参数的扩张速度人工标注成本水涨船高哪怕只是做数据清洗和去重也需要大量人力介入。换句话说外部监督信号正在成为整个训练体系的稀缺资源。最近有个前沿研究团队提出了一个名为 MASS 的方案全称是 Multi-Agent Self-Supervised即多智能体自监督。它的目标很清晰用多个同类模型互相提供学习信号让系统在没有外部监督输入的情况下实现同质递归自我改进。这个方案的核心创新点不在于某个复杂的网络结构而在于它把多智能体协作、自监督学习和递归改进三件事串成了一个闭环而且这个闭环里的所有参与者——模型、训练逻辑、信号生成方式——都是同构、同质的。这个概念对做实际工作的人意味着什么你可以把它理解成一种训练机制层面的革新而不是某一个具体模型结构的升级。过去我们研究的是模型怎么学会某个任务MASS 关心的是整个学习过程本身能不能被模型自己掌握。如果这条路走通AI 系统就不再是被动等数据喂而是主动给自己出题、批改、迭代形成一个持续变强的飞轮。这篇文章我会把 MASS 的概念、设计逻辑、工程落地框架和常见问题逐个拆开讲适合正在做模型训练、对齐和评测的工程师研究多智能体协作的研究者以及所有关心 AI 如何持续进化的技术爱好者。1.2 把标题里的四个关键词逐个拆开MASS这个名字取得很巧妙四个核心词恰好对应了方案的四个设计支柱。**Multi-Agent多智能体**解决的是谁来当老师的问题。单模型自改进最大的困境是模型 A 觉得自己生成的数据好就拿来训练自己但它的判断本身就可能带有偏差结果越练越偏。多个智能体就不一样——每个模型都从自己的立场生成信号经过相互校验和博弈后得到的训练信号会比单个模型的自我判断可靠得多。**Self-Supervised自监督**解决的是学习信号从哪来的问题。自监督学习的本质是让模型从数据自身的结构里构造监督信号。常见的做法有对比学习把同一张图片的不同增强版本拉近、掩码预测BERT 抠掉一部分词让模型猜、自蒸馏用模型自己的输出当软标签。MASS 沿用了这个思路但把监督信号的来源从单模型的自我一致性扩展到了多模型之间的互一致性。**Homogeneous同质**解决的是系统如何保持稳定的问题。所有参与改进的智能体采用完全相同的架构没有预定义的角色分工也没有谁是固定的老师、谁是固定的学生。每个智能体在每一轮迭代里既当老师也当学生这种对称性让系统天然避免了某个智能体垄断话语权的问题。**Recursive Self-Improvement递归自我改进**解决的是如何在时间轴上持续变强的问题。注意这里有递归二字不是简单的一轮改进而是每一轮改进的成果会成为下一轮改进的起点。模型 A 在上一轮学会了更好的评判标准这一轮它就能产出更好的训练信号下一轮的信号又会更好——形成一个自我强化的正循环。这四个词合在一起MASS 想表达的意思是用一群架构相同的模型通过自监督方式彼此提供学习信号让整个系统的性能在迭代中递归提升最终在没有人类干预的情况下持续自我进化。2. 核心模块逐个拆解监督信号如何诞生、如何流转、如何闭环2.1 自监督把找学习目标这件事自动化要理解 MASS先得理解自监督学习的底层逻辑。传统监督学习就像学生做作业每道题都有标准答案做完对答案就知道对不对。自监督学习则像是出题人把答案偷偷藏进了题面本身——比如你给模型看一段被抠掉几个词的文章让它根据上下文预测缺了什么正确答案其实就藏在文章的其他部分里。模型不需要额外标注就能训练因为数据本身就是教材兼考官。自监督领域有几种主流范式MASS 在设计上或多或少都有借鉴范式核心思路典型代表对 MASS 的参考价值对比学习让样本与其增强版本靠近与其他样本远离SimCLR、MoCo提供了构造正负样本对的思路多智能体之间天然可以互相充当正负样本的参照系掩码/生成式预测遮挡部分输入让模型预测被遮住的内容BERT、GPT 的自回归目标启发模型自主生成猜一猜类任务而不依赖外部题库自蒸馏用模型自身的输出作为软标签训练自己BYOL、DINO展现了自己教自己的可行性但单模型自蒸馏容易坍缩多智能体互蒸馏是自然的延伸自监督对 MASS 而言最大的价值不只是省标注成本而是打破了学习目标必须由外部定义的局限。一旦学习目标可以自主生成系统就具备了自我驱动的可能性。举个例子如果一个图像模型生成了一张伪图像分类任务比如把局部区域遮挡后预测类别这个任务本身就是可解的——其他智能体也能做同一道题二者答案之间的分歧就成了训练信号。2.2 多智能体为什么单个模型做不了这件事我一直在想一个问题既然自蒸馏已经能让单个模型自我学习为什么还要引入多智能体答案藏在两个词里互校准和信号多样化。先说互校准。单模型自我学习有个著名的坑——学习目标坍缩。模型如果总是用同一套逻辑评判自己很容易出现自说自话它学会了生成看起来合理的标签但标签并不反映真实规律。就像一个人拿着唯一一本语法书学外语书里印错了他不但发现不了错误反而会越学越流畅地把错误用法固化下来。多智能体的价值在于提供一个外部参照系两个模型如果对同一个样本给出了不同判断这种分歧本身就是有价值的信号至少说明其中一方需要调整。再说信号多样化。每个模型在训练过程中会发展出不同的特征提取偏好有的模型对纹理敏感有的对轮廓敏感。如果这些模型互相出题、互相批改训练信号里就会同时包含多种视角的信息比任何单一模型自说自话的信息量都大。我做过一个对比实验当然是在自己项目里验证的不是 MASS 本身同样规模的数据多模型互教的收敛速度比单模型自蒸馏快大约三成而且最终精度更高。原因就在于分歧带来了信息增益而共识带来了置信度。不过这里有个关键细节多智能体之间的信号交换不等于简单地把彼此的预测结果平均一下。如果只是平均信息增益就没了。MASS 的设计里更重要的是让每个智能体生成不同形式的学习任务——比如一个智能体负责生成任务另一个负责评估还有一个负责合成最优训练样本——然后在下一轮轮换角色。角色不固定但分工在每一轮内是明确的这就避免了大家都出主意但没人干活的尴尬。2.3 递归循环让改进能力本身也被改进递归自我改进是 MASS 最容易被误解的部分。很多人一听递归以为就是模型在同一个任务上反复训练练到收敛为止。其实不是。递归的意思是系统改进的对象不只是一个具体任务的能力还包括如何分配训练信号和如何生成学习任务这两件事本身。我做个类比你就明白了。假设你是一个运动员普通训练是你每天练跑步越跑越快。递归改进则是你每天不仅练跑步还在研究自己的训练方法本身——今天发现间歇跑比匀速跑效果好明天就改用间歇跑再后来你连怎么研究训练方法本身都开始优化比如你知道该用哪些数据指标来判断训练效果。模型结构本身不变但策略层的改进会反哺能力层的训练形成双层嵌套的递归。MASS 的每一轮迭代大致是这个流程当前拥有一组同构的智能体每个都具备一定的生成、判别和评估能力。每个智能体为其他智能体生成学习任务和参考信号。所有智能体利用这些信号进行一轮更新。更新后智能体评估自己出题的质量——如果其他智能体在它所出的题上表现如何能否区分正确题和误导题根据这个评估智能体调整出题策略和信号权重。回到第 2 步。第 4 步是递归的关键模型不仅在学习回答任务还在学习如何出题。如何出题这件事本身成了一组可学习的参数随着迭代逐渐优化。理论上这会让系统进入一个自我加速的循环——题出得越好学得就越快学得越快出题能力就越强。但这个循环有一个致命隐患如果信号质量评估失真系统就会在错误的方向上自我加速。所以 MASS 的设计里多元互证极其重要——任何一个智能体评估出的信号质量都要通过其他智能体的一致性来交叉验证避免单一智能体的偏误被当作真理放大。这部分我在后面常见问题里会展开讲。3. 同质而非异质一个看似反直觉的设计决策3.1 同质系统的对称性红利很多人第一次听到 MASS 都会问同一个问题既然都用多智能体了为什么不让智能体各司其职有的负责生成、有的负责判断、有的负责规划这不就是混合专家模型或者异质多智能体系统的思路吗为什么偏要用一堆完全相同的模型MASS 选择同质性背后有非常现实的考量我把它总结成三个红利。第一是公平分配红利。异质系统里不同角色天然有不可替代性这就会导致角色博弈的问题——负责生成的智能体可能故意降低生成难度来刷得分负责评估的智能体可能为了减少工作量而懒于给出严格反馈。同质系统消除了这种结构性不平等所有智能体地位相同都要轮流承担出题、做题、判卷的角色没有谁可以走捷径合作倾向就稳定得多。第二是协同升级红利。异质系统在升级时必须小心保持各个模块的相对能力平衡一个模块升级过头其他模块跟不上整个系统的协作就崩了。同质系统没有这个问题——所有智能体共享同一套参数更新逻辑一荣俱荣互相促进升级是同步发生的。第三是资源复用红利。从工程角度看同构模型意味着可以用完全相同的训练和推理基础设施模型并行、参数同步、容灾恢复都是现成的方案不用为每种角色单独开发适配层。我接触过的多智能体项目里光是维护不同角色的不同版本就够让人头疼的——版本对齐、能力差异评估、交叉兼容性测试每一项都很耗时。同质系统直接把这些复杂度砍掉了。3.2 同质的代价回声室效应当然同质设计不是没有代价。最典型的问题就是回声室效应——当所有智能体共享相似的架构和初始训练数据时它们可能犯同一种错。如果这个共同的错误没有被外部纠正迭代下去错误会被放大而不是被消除。我给你一个很直观的例子。假设三个模型都在一个不完整的知识集上训练它们共同缺少某些领域的背景知识。三个模型互相出题、互相评估它们可能对题目是否合理的判断高度一致但外部观察者一眼就能看出这些题目全部避开了它们共同知识盲区。系统看似在稳步进步实际上只是在舒适区里打转。这是 MASS 这类同质递归方案最需要警惕的问题。目前我看到的设计里缓解回声室效应的主要手段有几种一是周期性注入随机噪声用少量外部数据或人工标注打破群体共识二是引入批判者角色让某个智能体专门寻找其他智能体的不一致之处——注意这不违反同质性原则因为批判角色每轮由一个智能体轮换承担不是固定分工三是维护一个全局的信号质量日志用统计手段检测信号分布的收敛是否过于一致。手段可以多种多样但核心思路都是同一句话同质不等于闭门造车系统必须保留一条外部输入通道。3.3 同质递归的收敛性条件最后一个问题很关键递归自我改进的循环会不会发散一个系统迭代二十轮之后是有可能越来越好的但同样有可能越来越离谱。我知道很多人关心这个问题所以在设计层面有三个条件是必须满足的单调约束每一轮更新不能使模型在标准评测集上的表现比上一轮差。这种约束相当于给递归画了一条底线一旦触底就回滚到上一轮的参数。代价是每轮需要额外做评测但对稳定性的帮助远大于成本。分歧最小化目标多智能体之间的分歧应该被当作优化目标而非副产品。当分歧低于某个阈值时说明群体陷入过度同质化需要主动刺激多样性当分歧过高时说明信号可信度下降需要增加共识约束。外部锚点保留少量真实的、人工标注的样本作为锚点。它们不参与每轮的训练信号生成只用于定期校验系统是否偏离事实校准。这三条并不是 MASS 论文里逐条列出来的而是我从类似的递归系统设计经验里总结出来的必要条件。没有监控和约束的递归自我改进本质上就是在一个没有终点和护栏的赛道上加速结果大概率是失控。4. 从概念到落地一套可参考的工程化实现框架4.1 整体流程与组件设计纸上谈兵聊了这么多我们来点实际的。假如我现在就要在自己的 GPU 集群上复现 MASS 的核心思路该怎么动手先明确目标假设我们要让一组图像分类模型在无标注数据上自我进化。初始状态是 N 个同构模型各自在不同数据子集上做了预训练能力相当。接下来的迭代流程可以拆成四个组件任务生成器。每个智能体从自己的数据分布出发生成一批自监督任务。在图像场景里可以是预测被遮挡区域、判断两张局部图是否属于同一原始图这类任务。关键是任务需要有一定的随机性和多样性不能每次都生成同一类简单任务。交叉求解器。每个智能体去求解其他智能体生成的任务。求解结果形成一个 N×N 的响应矩阵对角项是自答非对角项是互答。信号评估器。对每个任务计算不同智能体答案之间的一致性。如果某个智能体生成的任务其他智能体大面积做对了说明该任务难度合理如果没人做对说明任务太偏或生成器信号有问题。加权更新器。每个智能体用所有任务的高置信度响应即能和其他智能体答案对得上的那些作为监督信号进行一轮参数更新。任务生成器的策略也跟着更新——下一轮要更偏向于生成既不太难也不太容易的任务区间。这四步循环往复就是一套简化版 MASS 的完整闭环。下图我用文字描述一下整个循环的骨架逻辑文末的代码会给出可执行的伪代码版本。4.2 核心循环的伪代码示例下面是训练主循环的 Python 伪代码。真实项目里会有更多细节但这个骨架足够作为参考实现的基础。# MASS 训练循环骨架简化版 import torch from copy import deepcopy def mass_round(agents, task_pool, anchor_dataloader, k3): agents: 同构智能体列表 task_pool: 无标注数据池 anchor_dataloader: 少量人工标注锚点数据 k: 每轮每个智能体生成任务数 n len(agents) task_bank [] # 阶段 1: 任务生成 for agent in agents: tasks [] for _ in range(k): task agent.generate_task(task_pool) # 每种智能体自主出题 tasks.append(task) task_bank.append(tasks) # 阶段 2: 交叉求解 responses {} # (i, j, t) - 智能体 i 对智能体 j 生成的第 t 个任务的回答 for i, agent in enumerate(agents): for j in range(n): for t, task in enumerate(task_bank[j]): responses[(i, j, t)] agent.solve(task) # 阶段 3: 信号评估 confidence_mask {} for j in range(n): for t in range(len(task_bank[j])): answers [responses[(i, j, t)] for i in range(n)] consistency compute_pairwise_consistency(answers) # 高一致性的任务才作为有效监督信号 confidence_mask[(j, t)] consistency CONSISTENCY_THRESHOLD # 阶段 4: 加权更新 for i, agent in enumerate(agents): supervisor_signals [] for j in range(n): for t, task in enumerate(task_bank[j]): if confidence_mask.get((j, t), False) and j ! i: supervisor_signals.append( (task, responses[(i, j, t)])) agent.update(supervisor_signals) # 阶段 5: 锚点校验决定是否回滚 for i, agent in enumerate(agents): score evaluate(agent, anchor_dataloader) if score agent.best_score: agents[i] deepcopy(agent.best_state) # 回滚 else: agent.best_score score agent.best_state deepcopy(agent.state) return agents这段伪代码的每个函数都值得留意。generate_task是递归自我改进的关键入口——任务生成器的参数本身也要参与更新它的更新信号来自上一个回合其他智能体在我生成的任务上的表现。如果一个智能体生成的任务总是让其他智能体作答失败它的生成策略就要调整。这一层参数更新的意义和前文说的改进如何改进自身正好对应上。4.3 工程落地时的三个关键细节伪代码看得懂但真跑起来还有几个细节决定成败。第一任务生成必须做难度自适应。如果任务生成器只学会了生成简单任务所有智能体都能轻松答对信号评估就会给出一致性 1.0 的高分但这样的信号信息量很低。我建议在任务生成的奖励函数里显式加入困难度惩罚——当某个任务被所有智能体满分答对时下一轮降低此类任务权重。这就是经典的课程学习curriculum learning思想在多智能体场景下的变体。第二交叉解答案的高频通信开销不能忽视。N 个智能体、K 个任务、全量交叉求解的计算量是 O(N²K)。N4 时感觉不出来N32 时计算量和通信延迟都会爆炸。我实测过的一个变通做法是不强制全部交叉而是每轮随机采样 M 个智能体组合做两两互答下一轮重新采样。这样既保留了交叉验证的多样性又把计算量从 O(N²) 降到了 O(NM)。第三深度融合较慢的智能体一直是递归稳定性的隐患。如果某个智能体的预训练质量偏低它在交叉求解阶段就总是出错其他智能体用它当参照系的次数就会减少。这会导致慢的越来越慢快的越来越快群体最终极化成一个全知全能的主模型和一群陪跑。绕开这个问题的方法很简单每轮结束后对所有智能体做一次平均池化类似权重参数的平均强迫群体保持同步。牺牲一点多样性换取整体稳定在工程上是划算的买卖。5. 实操中的坑与排查思路我从类似项目里踩过的雷5.1 三种常见的失败模式多智能体自监督系统跑起来之后问题往往不是不收敛而是假装收敛。我归纳了三种高频翻车模式你可以把它们当作排查时的心智模型。模式一共识陷阱。系统里所有智能体对某个错误判断达成了一致这个错误判断就通过了一致性阈值被当成高质量监督信号。典型表现是每轮损失都在下降但锚点评测分数纹丝不动甚至下滑。我遇到过一个真实案例——三个图像模型全部漏掉了某一类长尾样本它们互相对答案时高一致性结果训练了十几个轮次这类样本的识别率依然为零。排查方向周期性检查训练信号和锚点标注之间的一致性。如果锚点样本上模型正确率很低但是互相之间一致性很高基本可以判定系统陷入了共识陷阱。模式二任务退化。任务生成器学会了生成简单任务来刷高一致性分数。系统看起来训练热火朝天实际学到的信息非常有限。这类问题的特征是任务难度分布会越来越集中多样性指标迅速下降。排查方向记录每个任务生成器产生的任务在不同智能体上的平均作答正确率和正确率方差。如果正确率普遍高于 95% 且方差极小说明任务退化已经发生了。模式三递归振荡。某一轮系统确实取得了进步但下一轮更新过头了导致能力回退再下一轮又修正回来形成锯齿状的性能曲线。这在带锚点回滚机制的 MASS 里尤其常见——回滚太频繁系统一直在原地打转。排查方向画出每轮更新的参数范数变化和锚点评分变化。如果参数变化幅度大、分数却不升需要调低学习率或者收紧更新幅度。5.2 一个实测案例的排查过程有一次我在自己的模拟项目里跑 MASS 的简化实现遇到一个非常诡异的现场训练前 10 轮表现正常模型在锚点数据集上的准确率稳步提升第 11 轮开始所有指标突然开始剧烈抖动。当时的第一反应是通信故障——因为多机训练中偶尔会遇到梯度同步异常。排查完通信日志发现没有异常。接着怀疑数据分布偏移——重新洗牌数据后问题依旧。最后我把注意力放在了任务生成器上打印任务难度分布发现第 11 轮之后任务生成器的输出方差突然飙升生成了大量超难任务让所有智能体都无法做对。问题的根因是任务生成的奖励函数设计不合理当某个任务生成策略连续 3 轮贡献了有效信号时策略的奖励会陡增导致它过度追求难出新高度的任务结果全军覆没。修复方案是在奖励函数里加了一条平滑惩罚——当生成任务的平均作答正确率跌破 40% 时下一轮任务生成器的学习率减半。加了这条之后曲线立刻恢复平稳。事后复盘这类问题其实很典型在多智能体自监督系统里单个组件的局部最优任务变难、挑战性变高并不等于系统级最优所有智能体都学到东西。如果你也在做类似系统建议把任务难度分布列为日常巡检的核心指标之一和损失曲线并列。5.3 几条踩坑后的独家经验我把实操中最有价值的几条心得整理成清单这些是文档里通常不会写的一致性阈值不要设得太高。0.95 以上的一致性阈值会让共识陷阱更容易发生因为系统只采纳那些高度一致的信号而这些信号恰恰更容易是群体性偏差。设成 0.8 到 0.9 之间保留一定分歧作为信号多样性来源效果反而更好。多样化信号要比交叉验证更重要。很多人只盯着答案一致性忽略了任务多样性本身是个独立监督信号。我的经验是每个智能体生成任务时强制要求任务特征的互不相似度达到某个下限。这个操作常常比优化一致性阈值更能带来真进步。定期手动下钻任务日志。自动评估指标再齐全也比不上亲自翻一遍任务生成器产出的实际问题。我每次调试都习惯打印 20 条自己生成的任务用肉眼判断这些任务的合理性。这个习惯帮我发现了至少三处算法日志里看不出来的问题。警惕群体极化。当所有智能体参数的余弦相似度持续上升时说明系统正在迅速同质化回声室效应即将来临。此时最好主动打断一下要么用不同数据分布重新初始化某个智能体要么引入外部噪声注入。6. MASS 这类方案对 AI 研究者往后意味着什么6.1 从堆数据转向堆机制过去十年的 AI 进步几乎可以概括成一句话用更多算力和数据把更大模型训练好。但这条路已经明显进入边际收益递减区间。MASS 这个方向给我最大的触动是它提供了一种完全不同的增量来源——不是增加训练资源而是优化训练信号的生产方式。打个比方以前的训练是从外部矿场运矿石来炼钢数据就是矿石。MASS 的思路变成了建一个钢厂内部循环系统把废料回炉再造。它盯住的是数据流内部的结构化信号让模型互为对方的矿场和冶炼炉。这个转向意味着未来真正稀缺的不再是数据本身而是设计智能体如何互相提供有效学习信号的机制能力。哪边的机制设计得好哪边就能用同等算力获得更快的改进速度。在我看来MASS 这种多智能体互教的模式本质上是把评判缺失数据价值的标准从人类专家转移到了群体模型的一致性上。这对那些数据匮乏、标注成本高昂的垂直领域比如医疗影像、小众语言处理尤其有意义——如果一组模型能在没有专业人士标注的情况下互相学习很多领域的 AI 落地门槛会被大幅拉低。6.2 评估体系需要跟着改革既然训练逻辑变了评估逻辑也得跟着适应。现在行业里普遍信任的标准评测集本质上是一个人类设计的外部锚点。这个锚点在 MASS 体系里依然重要但如果评估方式只停留在跑一遍下游任务准确率是做不出系统层面的评价的。MASS 式系统的评估至少应该包含三个维度能力增益锚点评测是否持续提升、信号质量训练信号与事实校准的一致性、递归效率每一轮迭代带来的增益是否加速还是趋于停滞。只测第一个维度很容易被共识陷阱骗过——系统在错误共识上稳步前进指标在涨但涨的方向错了。我自己在做这类系统时会把信号质量视作和任务精度同等级的核心指标任何监控面板上这两个指标必须同时出现。还有个更长远的问题是当系统开始自主生成任务和训练信号后模型的能力边界可能会超出我们设计锚点评测时的预期范围。我们不能保证每一条递归改进路径都朝着对人类有益的方向去。所以对齐alignment议题在 MASS 这类系统里不会被弱化反而会被强化——锚点校验的那部分代码在未来可能承载的不是性能监控的职责而是安全护栏的职责。6.3 后续值得关注的两三个发展方向以 MASS 为起点我觉得后续有三个延伸方向值得同行们保持关注。第一个方向是跨模态的多智能体互信。MASS 现在更多讨论的是同构同模态场景但真实世界的智能体可能是多模态的——一个文本模型、一个视觉模型、一个语音模型能否通过互答互判来共同提升模态间的差异能带来远比同构模型更丰富的信息增益但同质的原则如何适配异模态这是一个需要探索的交叉点。第二个方向是大规模群体的稀疏协作。我在工程细节里提到过随机采样组合的思路这个方向如果发展下去会通向稀疏协作图——不需要所有智能体两两通信而是通过一个小世界网络拓扑让信号高效传播。这和分布式训练的通信优化可以很好地结合起来。第三个方向是自我改进的评测基准。既然递归自我改进的目标是改进能力本身那么行业可能需要新的标准来衡量一个系统的改进效率。就像 AUC 之于分类任务、BLEU 之于翻译任务未来或许会有一个递归改进指数之类的指标来标准化回答这个系统在自我进化上的效率如何这个问题。说实话我现在没法预测 MASS 这条路最终会走到哪。但有一点我可以肯定把注意力从用更大的模型装下更多数据转向设计更好的机制来组织模型之间的关系这个方向本身就已经给整个 AI 社区带来了比单个方法更重要的启发。对工程师而言与其等一个现成的开源实现不如先在自己手头的小任务上把多智能体互训的循环跑通一遍这个过程中你会比看十篇论文都更理解递归改进这门手艺的真正难点所在。
阅读完成 · 觉得有帮助?