
时序分类这个方向过去几年一直有个尴尬的局面CV和NLP那边基础模型已经卷到百亿参数、zero-shot横扫榜单了而时序领域还在为某个数据集上比Informer高0.3个点发论文。直到2024年前后一批工作开始认真讨论一个问题——时序分类能不能也走预训练下游适配这条路更具体地说能不能像GPT那样预训练完之后靠上下文学习ICL直接做分类连微调都省了GAIR这篇Paper 133讨论的正是这个转折点。它没有提出一个新模型而是做了一件更稀缺的事把时序分类基础模型这条线上散落的工作串起来理清从学会表征到学会任务的演进逻辑并且给出了一个叫TSC-FM Benchmark的评测框架。我读完最大的感受是这个领域正在经历NLP在2018-2020年经历过的那套范式迁移但时序有自己的特殊性——它的语言没有统一语法采样率、通道数、长度全都可变这让预训练一个通用模型比想象中难得多。这篇文章我打算按自己的理解重新梳理一遍基础模型在时序分类里到底指什么、ICL为什么突然成了关键词、ChorusTIC这类工作解决了什么问题、TSC-FM Benchmark想评测什么、以及如果你现在想入场哪些坑是必须提前知道的。适合做时序方向的研究生、想从传统时序模型迁移到基础模型的工程师以及单纯想搞清楚这个方向到底走到哪了的从业者。1. 时序分类基础模型到底在解决什么老问题1.1 传统时序分类的三层困境要理解基础模型为什么会出现得先看清楚传统方法卡在哪。时序分类Time Series Classification, TSC的经典做法大致分三代第一代是DTW1NN这种距离度量方法靠动态时间规整算两条序列的相似度第二代是shapelet和TSFresh这类特征工程方法手工设计统计特征再喂给树模型第三代是ResNet、InceptionTime、ROCKET这些深度学习方法。这三代方法有个共同的死穴每个数据集都要单独训练一个模型。UCR和UEA这两个标准库里有一百多个数据集意味着你要训一百多个模型。更麻烦的是很多数据集只有几百条样本深度模型在这种规模上根本喂不饱最后往往还不如ROCKET这种随机卷积核方法。我在实际项目里就遇到过一个工业设备故障分类任务只有800条标注样本试了InceptionTime调参调了两周F1还不如直接用TSFreshLightGBM。第二个困境是跨域迁移几乎不可能。你在心电图数据上训好的模型换到地震波数据上就是废的因为两者的频率特征、周期结构完全不同。传统方法没有任何机制让模型记住通用的时序模式。第三个困境更隐蔽评测标准不统一。有人用accuracy有人用F1有人做cross-validation有人做train-test split导致论文之间根本没法公平比较。这个问题在基础模型时代被放大了——你说你的预训练模型强到底强在哪是zero-shot强还是fine-tune强是在同域强还是跨域强1.2 基础模型带来的范式转变基础模型Foundation Model这个词从NLP借过来核心思想是先用海量无标注数据预训练一个通用 backbone再通过少量适配完成各种下游任务。放到时序分类上这个范式转变体现在三个层面。第一层是表征学习的通用化。传统方法学的是这个数据集上的判别边界基础模型学的是时序信号的一般结构——周期性、趋势性、突变点、多尺度模式。这些结构是跨域共享的就像NLP里主谓宾结构跨语言共享一样。第二层是任务适配的轻量化。预训练完之后下游任务不再需要从头训模型而是通过linear probing、prompt tuning、甚至ICL来完成。这直接解决了小样本问题——800条样本不够训一个ResNet但足够训一个分类头。第三层是评测体系的标准化。基础模型必须有统一的benchmark否则通用二字无从谈起。TSC-FM Benchmark就是在这个背景下出现的它试图定义一套跨域、跨任务的评测协议。这里有个容易混淆的点时序基础模型不等于时序大模型。参数量不是关键关键是预训练适配这个范式。一个10M参数的模型只要遵循这个范式也算基础模型。1.3 为什么时序比NLP难做基础模型很多人以为把Transformer搬到时序上就完事了实际远没那么简单。时序数据和文本有个本质区别文本有离散的token和统一的词表时序是连续值且没有统一语法。具体来说时序面临四个NLP没有的挑战。其一是采样率不一致医疗数据可能是100Hz气象数据可能是每小时一个点预训练时怎么统一其二是通道数可变单变量和多变量时序的建模方式完全不同。其三是长度差异巨大有的序列长100有的长100万。其四是缺乏自监督信号的天然定义NLP可以预测下一个token时序预测下一个点太trivial掩码重建又容易学到平凡解。这些挑战直接导致了时序基础模型的路线分化有人做patch-based的掩码重建有人做对比学习有人干脆放弃重建改做ICL。ChorusTIC这类工作就是在这个分化中找到了自己的位置。2. ICL为什么成了时序分类基础模型的关键词2.1 从预训练微调到预训练上下文学习ICLIn-Context Learning在NLP里是GPT-3带火的给模型几个示例它就能完成新任务不用更新任何参数。这个能力放到时序分类上诱惑极大——意味着你预训练一次之后所有分类任务都靠喂几个样本解决连分类头都不用训。但ICL在时序上的实现比NLP难。NLP的ICL依赖token序列的因果结构模型能看到示例和query的关系。时序分类的输入是数值序列没有天然的序列化示例格式。所以早期工作大多停留在预训练linear probing真正做ICL的很少。转折点出现在一批工作开始把时序分类重新形式化为检索匹配问题把训练集当作contextquery序列和context里的样本做相似度匹配用注意力机制实现。这本质上是一种非参数的ICL——模型不学分类边界而是学如何比较两条时序。2.2 ChorusTIC的切入角度ChorusTIC这个名字里的Chorus合唱暗示了它的核心设计多视角、多粒度的时序表征协同。它没有走单一大模型路线而是用一组互补的编码器分别捕捉不同尺度的时序模式再通过注意力机制融合。这个设计针对的正是时序分类的核心难点判别性特征可能出现在任意尺度上。有的分类任务靠全局趋势比如区分上升和下降有的靠局部突变比如故障检测有的靠周期模式比如步态识别。单一尺度的编码器必然有偏。ChorusTIC的做法是并行多个编码分支每个分支用不同的patch size或卷积核大小然后在表征层做cross-attention融合。这有点像Inception模块的思路但放到了预训练框架里。它的ICL能力来自于预训练时用对比学习让相似类别的表征靠近推理时直接用query和support set的表征相似度做分类不需要梯度更新。我实测过类似的思路不是ChorusTIC原版是自己复现的简化版在UCR的几个小数据集上5-shot ICL的accuracy能到70%左右比从头训ResNet高但比full fine-tune低5-8个点。这个gap说明ICL在时序上还没到NLP那种几乎无损的程度。2.3 ICL在时序分类上的真实边界必须泼一盆冷水ICL不是万能的它在时序分类上有明确的适用边界。第一类别数不能太多。ICL靠context里的示例来定义任务如果类别有50个你得在context里塞至少50个示例序列长度直接爆炸。NLP里ICL做几十类分类也很吃力时序更甚。第二类间差异要足够明显。如果两个类别只在很细微的频率成分上有区别ICL的相似度匹配很容易失效。这时候传统方法配合领域特征反而更稳。第三对context的构造方式极度敏感。示例的顺序、数量、采样策略都会显著影响结果。我试过同样的模型只是把support set从随机采样改成按类均衡采样accuracy波动能有10个点。所以ChorusTIC这类工作的价值不在于ICL全面超越微调而在于证明了ICL在时序分类上可行并且给出了一个可复现的框架。至于什么时候用ICL、什么时候老老实实微调得看具体任务。3. TSC-FM Benchmark想评测的到底是什么3.1 现有benchmark的失效在TSC-FM Benchmark之前时序分类主要用UCR/UEA。这两个库的问题是它们是为传统方法设计的不是为基础模型设计的。具体来说UCR/UEA的评测协议是每个数据集单独训一个模型报告accuracy。这个协议下基础模型的优势完全体现不出来——你预训练了一个通用模型结果评测时还是每个数据集单独微调那和传统方法有什么区别更致命的是UCR/UEA没有定义跨域迁移的评测。基础模型的核心卖点是一个模型适配所有任务但UCR/UEA根本不测这个。你没法回答我的模型在心电图上学到的表征能不能迁移到地震波上。3.2 TSC-FM Benchmark的评测维度TSC-FM Benchmark试图补上这些缺口。根据论文的描述和我的理解它的评测维度大致包括四块。评测维度具体内容对应能力Zero-shot不给任何下游样本直接分类表征的通用性Few-shot ICL给k个示例k1,5,10不更新参数上下文学习能力Linear probing冻结backbone只训分类头表征的线性可分性Full fine-tune全参数微调上限性能这四个维度对应了基础模型能力的四个层次。Zero-shot测的是预训练到底学到了多少通用知识few-shot ICL测的是能不能快速适配linear probing测的是表征质量full fine-tune测的是天花板。一个健康的基础模型应该在四个维度上都表现不错而不是只在full fine-tune上刷点。我见过一些工作full fine-tune很强但zero-shot一塌糊涂这说明它学到的不是通用表征而是过拟合到了预训练数据的分布上。3.3 评测协议里的隐藏陷阱TSC-FM Benchmark虽然比UCR/UEA合理但用的时候有几个坑要注意。第一个坑是预训练数据和评测数据的重叠。如果预训练时用了UCR的数据评测时又在UCR上测那zero-shot结果就是虚高的。论文里通常会声明预训练数据来源但你复现时一定要检查。第二个坑是few-shot的采样策略。k-shot里的k个样本怎么选随机选还是按类均衡选不同的样本结果差异巨大。严格的评测应该报告多次采样的均值和方差而不是单次结果。第三个坑是计算成本的公平性。ICL虽然不更新参数但context长度随k增长推理成本是线性上升的。full fine-tune虽然要训但训完之后推理成本固定。比较时不能只看accuracy还要看推理延迟。我自己做评测时的经验至少跑5次不同随机种子报告mean±std。单次结果在few-shot场景下完全没有参考价值。4. 从表征到任务这条演进线的内在逻辑4.1 学会表征阶段做了什么时序基础模型的第一阶段核心目标是学一个好的表征。代表工作是TS2Vec、TNC、TS-TCC这些对比学习框架。它们的共同思路是通过数据增强构造正负样本对让模型学会什么是一样的、什么是不一样的。这个阶段的方法有个特点预训练和下游任务是解耦的。预训练时不知道下游要做什么分类只是笼统地学表征。下游适配时冻结backbone训一个linear classifier。这种解耦有好处也有坏处。好处是通用性强一个backbone可以适配很多任务。坏处是表征可能学不到任务相关的判别信息——对比学习学的是实例级的相似性但分类需要的是类别级的判别边界两者不完全一致。我在实践中发现纯对比学习预训练的模型在linear probing下往往比监督预训练低3-5个点。这个gap就是表征学习和任务学习之间的鸿沟。4.2 学会任务阶段的转变第二阶段的工作开始意识到光有好表征不够还得让模型学会如何用表征完成任务。这就是ICL和prompt tuning的切入点。这个转变的本质是从学一个通用的特征提取器变成学一个通用的任务求解器。模型不仅要理解时序信号还要理解分类这个任务本身——给定几个示例如何推断出类别边界。ChorusTIC这类工作就是在这个思路下设计的。它的预训练目标不只是对比学习还加入了元学习的成分在预训练时就模拟few-shot场景让模型学会从少量示例中快速推断任务。这个转变让我想起NLP里从BERT到GPT-3的演进。BERT学的是表征GPT-3学的是如何根据上下文完成任务。时序领域正在走同样的路只是晚了几年。4.3 两个阶段的技术衔接点从表征到任务中间有几个关键技术衔接点值得说清楚。衔接点一是预训练目标的设计。纯对比学习只学实例判别要过渡到任务学习预训练目标里必须加入任务感知的成分。常见做法是加入prototypical loss或episodic training模拟few-shot场景。衔接点二是表征的粒度。任务学习需要更细粒度的表征因为要区分类间差异。纯对比学习倾向学粗粒度表征能区分实例就行这对分类不够。解决办法是多尺度表征ChorusTIC的Chorus设计就是这个思路。衔接点三是推理机制。表征学习阶段推理就是提特征分类头。任务学习阶段推理变成提特征相似度匹配。后者不需要训练但对表征质量要求更高。理解这三个衔接点就能明白为什么有些工作卡在表征很强但ICL很弱——它们的预训练目标和推理机制不匹配。5. 如果现在要入场实操层面的几个关键决策5.1 预训练数据从哪来这是最现实的问题。NLP有Common CrawlCV有ImageNet时序有什么目前公开的大规模时序数据集主要有几个来源UCR/UEA但规模小且是评测集、Monash TS Archive、一些工业数据集如NASA的发动机退化数据、以及医疗领域的公开数据如PhysioNet。但这些加起来也就几十万条序列和NLP的万亿token完全不是一个量级。我的建议是如果做研究用MonashUCR的组合注意留出评测集。如果做工业应用用自己业务数据预训练但要注意数据隐私和分布偏移。有个取巧的做法是用合成数据预训练。生成大量具有不同周期、趋势、噪声的合成时序让模型先学时序的一般结构再用真实数据微调。这个思路在论文里有人试过效果还不错尤其适合冷启动场景。5.2 模型架构怎么选时序基础模型的架构大致分三派Transformer-based、CNN-based、和混合架构。Transformer的优势是能建模长程依赖适合长序列。但时序的注意力计算是O(n²)长序列上成本爆炸。解决办法是patch化像PatchTST那样或者用稀疏注意力。CNN的优势是局部模式提取强计算效率高。但感受野有限长程依赖要靠堆层数。InceptionTime和ROCKET都是这个路线。混合架构是近期的趋势用CNN提局部特征用Transformer建模全局关系。ChorusTIC的多分支设计也可以看作混合架构的一种。选哪个取决于你的数据特性。如果序列长度在1000以内Transformer直接上没问题。如果长度上万优先考虑CNN或patch-based方法。如果多变量且通道间关系复杂混合架构更稳。5.3 评测怎么做才靠谱前面说了TSC-FM Benchmark的四个维度这里补充几个实操细节。第一一定要做跨域评测。在同域上刷点没有意义基础模型的价值在跨域。具体做法是预训练用数据集A评测用数据集B两者领域不同比如一个医疗一个工业。第二few-shot的k要覆盖多个值。只报5-shot不够要报1-shot、5-shot、10-shot看性能随k的增长曲线。健康的模型应该在k1时就有一定性能而不是k10才起来。第三要报告推理成本。ICL的context长度、推理延迟、显存占用都要报。否则不更新参数这个优势没法量化。第四baseline要选对。不能只和传统方法比还要和同期的其他基础模型比。而且要比full fine-tune的上限否则不知道自己离天花板有多远。5.4 几个我踩过的坑坑一预训练数据泄漏。有次我预训练用了UCR的全部数据评测时发现zero-shot accuracy高得离谱查了半天才发现评测集在预训练集里。后来严格划分zero-shot直接掉了15个点。坑二few-shot采样不均衡。早期做5-shot时随机采样结果某个类一个样本都没采到accuracy波动极大。改成按类均衡采样后稳定多了。坑三忽略通道对齐。多变量时序预训练时不同数据集的通道数不同直接拼接会导致通道错位。解决办法是用通道独立的编码器或者做通道masking。坑四过度依赖accuracy。时序分类很多是类别不平衡的accuracy会虚高。一定要看F1和AUROC尤其是医疗和故障检测场景。6. 这个方向接下来会往哪走6.1 从分类扩展到更广的任务目前时序基础模型主要集中在分类和预测两个任务上。但时序的任务空间远不止这些异常检测、变化点检测、分割、检索、生成。基础模型要真正基础必须覆盖这些任务。我预期接下来会出现统一的多任务时序基础模型一个backbone同时支持分类、预测、异常检测。这需要预训练目标的设计更加通用不能只针对分类优化。6.2 ICL和微调的边界会重新划定现在讨论ICL时经常陷入ICL vs 微调的二元对立。实际应用中两者是互补的。我的判断是ICL适合快速原型和冷启动微调适合追求极致性能的场景。未来的框架应该支持两者无缝切换——先用ICL快速验证可行性再决定要不要微调。ChorusTIC这类工作已经在往这个方向走了但还比较初步。真正的无缝切换需要模型在预训练时就同时优化ICL和微调两条路径。6.3 评测体系会继续演进TSC-FM Benchmark是个好的开始但还不够。我期待看到的是动态更新的评测集防止过拟合、多模态评测时序文本图像的联合任务、真实工业场景的评测而不是学术数据集。学术benchmark和工业需求之间一直有gap。学术数据集往往很干净、类别均衡、长度统一工业数据则充满噪声、类别极度不平衡、长度参差。基础模型要真正落地必须过工业数据这一关。6.4 一个我比较看好的方向最后说一个我个人看好的方向时序基础模型领域知识的结合。纯数据驱动的基础模型在通用性上有优势但在专业领域医疗、工业、金融往往不如结合领域知识的方法。具体做法是在预训练时加入领域先验比如医疗时序的生理约束、工业时序的物理规律。这些先验可以作为正则项、作为数据增强的指导、或者作为模型结构的约束。ChorusTIC的多尺度设计其实隐含了时序模式是多尺度这个先验但还可以更显式。我在一个工业项目里试过把设备的工作原理作为约束加入预训练few-shot性能比纯数据驱动高了8个点。这个方向值得深挖。最后分享一个我在复现这类工作时的小技巧先跑通linear probing再碰ICL。很多人一上来就冲ICL结果表征质量不行ICL怎么调都上不去。linear probing是表征质量的照妖镜——如果linear probing都做不好ICL肯定没戏。先把表征训好再考虑任务适配这个顺序不能反。