机器学习模型是强大的模式检测器。当测试时的世界与训练时的世界相似,它们表现出色。但在实践中,现实世界往往不配合。一辆在晴天道路上训练的自动驾驶汽车,在雪天可能举步维艰;一个在某家医院训练的医学影像模型,在另一家医院的数据上可能失效。这种不匹配——称为分布偏移 (distribution shift) ——是可靠的真实世界人工智能面临的最大障碍之一。

传统的解决方法是重新训练: 收集新数据并更新模型。但这通常不切实际或效率低下。测试时自适应 (Test-Time Adaptation,TTA) 提出了另一种思路: 让模型在推理过程中动态地进行调整。最近的综述《超越测试时模型自适应》整理了 400 多篇论文,指出自适应不仅仅是对模型权重进行微调。研究者们在预测流程的多个环节上进行适应: 模型本身、推理过程、归一化层、输入样本,甚至输入给大型基础模型的提示词 (prompts) 。

在这份指南中,我将带你了解 TTA 的主要理念、实际应用中的取舍,以及如何为你的问题选择合适的 TTA 策略。在此过程中,我们会提供图示和实用技巧,帮助你自信地应用 TTA。

一张条形图,显示了 2020 年至 2024 年间每年发表的 TTA 论文数量,呈现出陡峭的上升趋势。

图 1: 测试时自适应研究的五年趋势 (2020–2024) 。论文数量快速增长,反映了该领域在各大 AI 会议上的迅速扩张。

为什么 TTA 很重要

  • 它让模型无需在训练期间接触目标数据,就能在测试时适应未见过的条件。
  • 它可在线应用: 模型随着新数据的到来而自适应。
  • 当在目标域收集标签不可能或费用高昂时 (如医学影像、部署中的机器人) ,尤其有吸引力。

但 TTA 并非魔法。它也带来了自己的挑战 (稳定性、计算开销、误差累积的风险) 。理解不同的自适应策略及其失效模式,有助于避免陷阱。

相关范式速览
在深入了解 TTA 之前,先看看它与其他相关方法的关系。

一张图表,比较四种应对分布偏移的学习框架: 域自适应、域泛化、无源域自适应与测试时自适应。

图 2: 处理分布偏移的几类方法。测试时自适应 (d) 在推理阶段直接调整源域训练的模型——训练时无需目标数据,也不需单独的部署前自适应阶段。

  • 域自适应 (Domain Adaptation, DA) : 在训练中同时使用有标签的源数据和 (通常无标签的) 目标数据。
  • 域泛化 (Domain Generalization, DG) : 在多个源域上训练,学习域不变特征,希望能泛化到未见过的域。
  • 无源域自适应 (Source-Free Domain Adaptation, SFDA) : 先用源数据训练,再在部署前对目标样本集合适应——但必须有专门适应阶段。
  • 测试时自适应 (Test-Time Adaptation, TTA) : 只在源数据上训练,并在推理时利用传入的 (无标签) 测试数据进行适应。

TTA 遵循 Vladimir Vapnik 的实用主义建议: 解决你真正需要解决的问题 (适应当前的测试分布) ,而不是去解决更一般的中间问题。

适应什么——五个实用方向
该综述提出了一个基于“测试时适应系统哪个部分”的简明分类法。不同方法在需求、优势和风险方面各不相同。

  1. 模型自适应——调整权重
    最直观的方式: 利用无标签测试数据,以及基于这些数据计算的无监督目标,微调部分或全部模型参数。

一张图表展示模型自适应过程: 目标样本输入源域训练模型,计算测试时损失,经反向传播更新模型参数,生成适应后的模型用于预测。

图 3: 模型自适应: 在目标样本上计算测试时损失,并通过反向传播更新模型参数。功能强大但计算成本高。

常见的无监督目标:

  • 辅助自监督: 在源域训练时加入辅助自监督任务 (如旋转预测、对比学习任务) 。测试时仅在辅助损失上微调。例如 Test-Time Training (TTT) 即采用此思想。
  • 熵最小化: 让预测结果更锐利 (低熵) 。Tent 是常用的变体,通过在测试批次上最小化预测熵微调模型参数。
  • 伪标签: 模型为测试样本生成 (硬或软) 标签,再用这些伪标签微调自身。
  • 特征对齐: 通过一致性、聚类或 MSE/KL 损失,使测试样本特征统计与源域对齐。

优点

  • 在有足够无标签测试数据和算力时,通常能带来显著提升。
  • 直接将自适应目标与预测任务关联。

缺点

  • 需要在推理时回传梯度,计算成本高。
  • 可能不稳定: 伪标签错误会累积误差;持续设置下易灾难性遗忘;对批次大小和非 i.i.d. 数据流敏感。
  • 若无鲁棒性处理,易被恶意输入 (投毒/攻击) 干扰。
  1. 推理自适应——在前向传播中预测参数
    与其在测试时迭代优化参数,不如在训练阶段学习一个小型辅助模块,让它在单次前向传播中预测出要调整的部分 (如分类器修正或参数微调) 。

一张图表展示推理自适应: 一个训练好的模块 φ(·) 在一次前向传播中生成适应参数,无需反向传播。

图 4: 推理自适应: 学习的模块 φ(·) 能在单次前向传播内生成适应后的参数。速度快,适合低延迟场景。

关键模式

  • 批次级推理: 使用一批目标样本推断参数 (例如基于批次统计生成域嵌入或原型) 。
  • 样本级推理: 为每个样本独立推断参数 (需元学习或变分方法才能从单样本泛化) 。

优点

  • 快速 (单次前向传播) ,适合延迟敏感的应用。
  • 无需在线反向传播。

缺点

  • 需额外训练/准备推理模块;并非即插即用。
  • 通常仅调整少量参数 (如分类层) ,难处理深层偏移。
  1. 归一化自适应——修正统计量
    现代模型常使用归一化层 (如 BatchNorm) 。这些层存储训练时的均值/方差。当测试数据统计不同,归一化不匹配会导致预测劣化。与其调整权重,不如重新计算或修正统计量。

一张图表说明归一化自适应: 调整归一化统计量 (均值/方差) 以适配目标数据,模型参数保持不变。

图 5: 归一化自适应更新每层的归一化统计量,使其更好地匹配目标数据。轻量且对许多协变量偏移有效。

获取目标统计量的策略

  • **重新计算批次统计 **(Prediction-Time BN)
  • 实例归一化或实例感知 BN 用于单样本。
  • 加权组合或移动平均 混合源域与目标域统计。
  • MetaNorm: 通过元学习训练模块,从单样本预测稳定统计量。

优点

  • 极低计算成本 (无反向传播) ,适合含 BN 的模型。
  • 对许多协变量偏移效果良好。

缺点

  • 仅适用于使用归一化层的模型;例如不含 BN 的标准 ViT 收益有限。
  • 需足够批次大小以稳定估计,或在小批量下使用组合/元策略。
  • 可能需调节超参数 (混合权重) 。
  1. 样本自适应——改变输入而非模型
    与其改动模型,不如将输入变得更接近训练分布。利用生成模型 (扩散模型、GAN、EBM、VAE 等) “翻译”或净化测试输入。

一张图表展示样本自适应: 目标样本经由自适应模块转换成源域风格,再输入固定的源模型进行预测。

图 6: 样本自适应: 将目标输入映射到源域风格或特征空间,再使用未改变的源模型。模型权重保持冻结,但需生成建模。

方法

  • 特征级投影: 用生成器或能量模型从目标特征生成类似源特征。
  • 输入级恢复: 用扩散模型或专用编辑网络去除扰动,重建分类器预期的图像。

优点

  • 不改动源模型,无遗忘风险。
  • 若生成映射质量高,可稳定逐样本工作。

缺点

  • 生成过程通常迭代且算力消耗高。
  • 成功依赖生成模型能否保持标签一致。
  1. 提示词自适应——为基础模型调整提示
    对于大型基础模型,在测试时微调整个网络不可行。提示词调整 (Prompt tuning) 提供了参数高效的方式: 更新文本提示或学习的嵌入提示,引导冻结模型的行为。

一张图表展示提示词自适应: 根据目标样本更新提示,再与固定模型结合进行预测。

图 7: 提示词自适应: 调整输入 (文本或嵌入提示) 以适应冻结的基础模型。无需改动权重,参数效率极高。

变体

  • 文本提示: 为目标域撰写或生成文本描述 (常用大语言模型提供领域信息) 。
  • 嵌入提示: 学习连续的视觉或多模态向量附加到输入上;可通过轻量优化更新或单次推断生成。

优点

  • 适配大型基础模型,存储和更新成本极低。
  • 在零样本或少样本场景下有效,若提示能捕捉领域差异。

缺点

  • 需良好的提示设计或训练/推理策略。
  • 若提示仅能浅层引导模型,难捕捉深层表征差异。

准备: 源阶段需要多少工作?
并非所有 TTA 方法即插即用。综述将其按源训练阶段需求分为:

  • 无需准备: 训练过程无需改动。Tent (熵最小化) 、BN 重新计算、许多探针式提示方法都可用于任意预训练模型。
  • 需训练准备: 在源训练中添加辅助目标、小型推理模块或适配器以简化测试适应。
  • 需训练与数据准备: 复杂元学习策略同时要求自定义训练和人工分布偏移。

经验法则:

  • 若能改动训练: 采用元学习、辅助自监督或训练推理模块,可显著提高稳定性。
  • 若训练冻结 (如基础模型) : 优先选择归一化自适应、推理自适应、提示或样本自适应。

部署中的自适应策略与数据访问
两条实际轴决定部署策略: 更新方式与测试数据模式。

更新方式

  • 迭代更新: 测试时反向传播或迭代生成 (模型自适应、样本自适应、提示微调) 。算力高但性能更佳。
  • 即时更新: 单次前向传播 (推理自适应、BN 重新计算、提示推断) 。速度快,适合实时场景。

数据模式

  • 在线: 连续数据流中增量适应 (如持续 TTA) ,需防灾难性遗忘与误差积累。
  • 批次式: 按批次适应,假设共享分布 (BN 方法常见) 。
  • 样本式: 逐样本适应,当样本域不一致时尤为关键。
  • 动态: 环境变化或重现,方法需保留旧知识与应对新条件。

实际权衡

  • 迭代方法灵活但计算代价高,易忘旧知识。
  • 即时方法高效但在深层偏移下弹性较弱。
  • 样本式方法避免混合不同分布,但无法利用批次信息。

评估 TTA: 使用哪些基准和偏移
多数评估集中在图像分类上,因易于构造可控偏移。常见场景:

  • 协变量偏移 (Covariate shifts) : 损坏 (ImageNet-C, CIFAR-C) 、艺术风格差异 (PACS) 、自然分布差异 (CIFAR-10.1, ImageNet-A) 。
  • 多源协变量偏移: 在多域训练,适应留出的目标域 (PACS, Office-Home, DomainNet) 。
  • 标签偏移 (Label shifts) : 长尾分布或类别先验变化。
  • 条件与联合偏移: 子群体变化、伪相关、输入与标签混合偏移。

图片展示协变量偏移示例: 上排为受损鸟类图像,下排为不同艺术风格的狗图像。

图 8: 用于评估的协变量偏移示例: 损坏 (上排) 与风格偏移 (下排) 。

当前研究重点

  • 集中于协变量偏移与图像分类。
  • 大多数方法先在分类任务开发与验证,再延伸到密集预测 (分割、深度) 及其他任务。
  • 新兴场景: 持续变化、目标数据有限、开放集、多模态与基础模型。

应用——TTA 已经发挥作用的场景
TTA 已被应用于多模态任务:

  • 图像级: 分类、分割、深度估计、增强、医学影像 (标签稀缺且隐私限制源访问) 。
  • 视频: 动作识别、视频分割、时序任务——时间一致性提升适应性。
  • 3D 数据: 点云与三维分割,生成式与特征级方法逐渐涌现。
  • 视觉外: 强化学习 (策略适应) 、自然语言处理 (测试时自监督) 、多模态任务 (CLIP 类提示调整) 、语音、时间序列与表格数据。

综述中的表格总结了不同任务与场景下的尝试。实践建议:

  • 若能承受算力开销且目标批量适中: 使用模型自适应
  • 含 BN 模型且需廉价改进: 使用归一化自适应
  • 大型基础模型: 使用提示词或推理自适应避免重调主干。
  • 标签不可触及且有算力: 使用**样本自适应 **(生成式翻译) 。

两大研究前沿

  1. 超越模型自适应与简单协变量偏移
    现实部署往往遭遇混合偏移: 标签频率变化、条件偏移与开放集问题。能够在混合与动态偏移下稳健适应、并融合新语义知识而不遗忘的方法仍属前沿。理论工作若能揭示不同层对偏移类型的敏感性,将指导应调整的参数或提示。

  2. 超越图像分类: 基础与多模态模型
    大型多模态基础模型带来新的机会与约束:

  • 测试时微调整网不可行。高效策略 (LoRA、适配器、提示、推理模块) 是有前途的替代选项。
  • 多模态场景允许跨模态信号辅助适应 (如文本指导视觉特征调整) 。
  • 鲁棒与高效需并行优化: 轻量适配器、选择性适应与鲁棒伪标签至关重要。

实用清单: 选择 TTA 策略

  • 能否改变训练?
    • : 考虑元学习、辅助自监督、或训练推理模块以提高可靠性。
    • 不能: 优先选择无需准备的方法 (BN 重算、Tent 变体、提示推断或样本转换) 。
  • 是否受限于延迟或算力?
    • : 选择即时方法 (推理自适应、BN 统计、提示推断) 。
    • : 迭代模型自适应或样本生成或可提升准确率。
  • 样本是否独立?或来自动态流?
    • 独立: 批次或样本级自适应更安全。
    • 流式变化: 采用能防灾难遗忘的持续 TTA (权重恢复、记忆缓冲、集成) 。
  • 是否大型基础模型?
    • 倾向提示自适应、适配器或推理模块——避免调整主干。

结论
测试时自适应已从一个概念走向实用工具箱。综述《超越测试时模型自适应》提出了清晰可行的分类: 模型、推理、归一化、样本或提示的自适应。每一维度在速度、稳定性与适用性上各有权衡。

随着模型规模扩大与应用多样化,TTA 将成为真实世界 AI 的关键能力。下一步是让适应在混合与开放环境中更鲁棒,将其集成到资源受限系统中,并通过轻量适配器与提示词智慧地利用基础模型。

若你正在构建部署系统,可从小处着手: 尝试归一化自适应 (若模型含 BN) ,再加入轻量推理自适应或提示方法。若能重新训练,元学习与辅助自监督将有所回报。务必监控失效模式: 自适应能改进模型,也可能在失误时放大错误。

该领域发展迅速。若希望深入研究,原始综述收集并整理了数百篇文献,是未来工作与应用选择的路线图。

一张表格,总结不同 TTA 方法在各种领域的应用,包括图像、视频、3D 以及视觉之外的任务。

图 9: 测试时自适应方法已扩展至分类之外: 分割、3D、视频、强化学习、NLP 和多模态任务——各有具体实践考量。

进一步阅读

  • 若想动手实验,可先用现有基线: Tent (熵最小化) 、TTT (辅助任务的测试时训练) 与 Prediction-Time BN。
  • 若你使用基础模型,可研究近期的提示词微调与测试时提示微调方法,参数增量极小却可显著提升性能。

测试时自适应使模型更能应对现实世界的不可预测性。它是连接实验室表现与真实环境稳定运行的桥梁。请谨慎运用,并在生产中监测其行为。