一句话定义:测试时训练(Test-Time Training,TTT)指的是模型在推理阶段拿到一条具体输入后,先用这条输入自己产生的信号做一次极小的参数更新,再用更新后的参数给出答案。
不是「想久一点」,是「当场调手感」
常规推理里,模型参数是冻住的:无论你问什么,同一批权重不变,变化只发生在上下文里。TTT 打破了半条规则——它让一个很小的子集动起来:可能是末尾几层、一个适配器(adapter)模块、或者序列模型内部一块可学习的记忆状态。
关键在于「老师是谁」。推理时没有标准答案,所以监督信号必须从输入本身长出来:语言模型用「预测下一个词」当自监督(self-supervised)任务,视觉模型用遮挡重建,或者让模型先编码再要求还原。流程大致是:读输入 → 给自己出题 → 走一两步梯度下降 → 用新参数回答,答完再决定这份更新是丢掉还是留下。
打个比方:考试时反复验算、多写几种解法,叫「AI 词典:测试时计算">测试时计算」(Test-Time Compute,TTC);TTT 则是进考场后先翻两道同类例题,当场把手感微调一下,再动笔答正式题。笔还是那支笔,握法变了。
和测试时计算的区别
两者都发生在推理时,也都吃算力,但动的东西不是一回事:
| 测试时训练(TTT) | 测试时计算(TTC) | |
|---|---|---|
| 改变什么 | 一小部分参数或内部状态 | 只增加采样、搜索、验证次数,参数不变 |
| 算力花在 | 少量梯度更新 | 多次前向推理 |
| 是否留痕 | 可能写进状态,影响后续请求 | 一般只活在本次上下文里,答完即散 |
| 门槛 | 需要结构上留出可训练的小模块 | 任何模型都能多试几次 |
| 主要风险 | 学歪、遗忘、隐私残留 | 延迟与成本随次数上涨 |
一句话:TTC 是「多想几遍」,TTT 是「边用边改」。
对实际工作的意义
对做模型和系统的人:部署不再等于「参数冻结」。你得考虑每请求的状态隔离、更新后的回滚与失效、评测口径的变化——同一道题,第一次问和第五次问,答案可能不同。缓存、批处理、可复现性这些工程习惯都要重新想一遍。
对普通使用者:这类系统更容易贴合你的用语习惯和所在领域的术语,但也更容易「越聊越偏」。如果发现回答前后不一致,除了上下文太长,也可能它正在悄悄学习。某个具体产品是否用了 TTT、更新了哪些部分,以官方文档为准。
