今天是2026年10月20日,星期二,南京,天气雨。
今天再写一篇,关于jev的变体,这次是到时序领域,工作叫做TimesJev,做时间序列System1模型,实现上,不试图让大模型对长序列做"慢思考"(长链推理),而是反过来:把原始时间序列压缩成少量关键特征,再交给Jev类的System1模型(用开源Decider-2B/4B作骨干)做单次前向、快速决策。
所以,TimesJev 的真正杠杆点是"提前压缩成 System 1 用得动的形式,也就是说,这不是一个端到端从原始序列学表示的通用时序模型,而是一个"特征库+选择+对齐"的适配器,上限受候选特征质量约束,且只在固定候选集决策类任务上验证。对于追求实时、低成本、可解释(选出了哪K个特征一目了然)的时序决策场景,这是一条值得跟进的路线。
可以细看下具体怎么做的,可以当可解释用,也可以是一个特征压缩工作。做个记录
一、时序预测jev决策模型TimesJev
工作在《TimesJev: Thinking Fast on Time Series with System 1 Sufficienc》(https://arxiv.org/pdf/2610.26002),地址:https://github.com/coenliu/TimesJev,还是可以看几个核心点。
1、前提背景
这块的背景可以梳理下,在时序大模型这个领域,其实一开始就是几个不同的模型,如下:
一个是System2模型,如Qwen3.5-9B、TimeOmni、VeriTime、TS-Reasoner等带推理的LLM,做的是对时间序列问题生成长链思维(CoT),逐token推理后才给答案,准但慢、贵;
一个是System1模型,如Jev(TypeSafe)、开源Decider-2B/4B,输入状态+候选答案,单次前向直接返回各选项概率,不生成中间文本,快但处理原始数值序列弱
然后呢,这里其实有个问题:为什么要在时间序列上做System1?
其核心矛盾是长序列+噪声,既要"看懂模式"(趋势、周期、异常),又要"答得快、答得便宜"。
然后呢,System2的代价就是让LLM对长序列生成长链推理,token数随序列长度膨胀。推理模型在长序列上延迟显著升高,但准确率并没有同步提升,即"慢不等于准"。
但System1也存在短板:Jev类模型处理数值输入是弱点,让一个不逐token生成的模型去从几千个原始数值点里识别周期/趋势,噪声会放大识别误差,小偏差导致完全不同的答案。
因此真正可以做的杠杆点是:既然System1模型不会、也不需要"读"原始长序列,那就提前把序列压缩成它用得动的形式。这就是TimesJev的动机,这个动机成立的前提是:压缩不丢关键信息。否则"快"是以"准"为代价的。因此,实现上就变成了架在System1模型前面的"压缩+对齐"适配器:把长序列变成少量特征,再喂给冻结的System1骨干。
2、如何做?
之前端到端的思路,模型直接吃原始数值点(x1,x2,...,xn),通过一个可学习的编码器(CNN、Transformer、TCN、patchembedding等)自己决定"该看序列的什么",把整段序列压成一个稠密向量z。z的每一维代表什么,不是人指定的,是和下游任务一起用数据训出来的。代表如TimeLLM(patch对齐)、Chronos/TimesFM(直接tokenize原始值)、各类TCN/Informer。它的好处是:表示能力和数据、任务共同优化,理论上能从原始点云里学到任何人类没显式写出来的模式。
TimesJev把"从原始序列抽特征"这个最有泛化价值、最该由模型自己学的环节,固定成了外部特征库,自己只学"选哪几个、怎么对齐"。这是它快、可解释、即插即用的来源,它泛化天花板交给了特征设计,为了实现这个,TimesJev实际做了三步。特征提取环节,从X算出M个标量特征F(X)∈ℝ^M(统计、频域等),使用固定的特征函数库(类似tsfresh的无监督特征);特征选择环节,随机门STG从M个里选TopK,TimesJev训练得到μ,取最大K个;对齐映射环节,编码器g_θ把K个特征映射到System1骨干嵌入空间,TimesJev训练得到θ。
若要讲清楚如何做,就一定得把一些相关的概念理清,因为是一个压缩的动作。
如下图所示:
从原始序列到答案,损失只在两个地方产生:压缩丢信息(红),以及表示与模型不匹配(橙)。TimesJev的两阶段训练,本质就是分别压这两项。
区分几个概念:
一个是System1充分表示(System1 Sufficiency):一个表示T若同时满足两个条件就是"充分的":它保留了原始序列X里回答该问题所需的全部信息(充分性),System1模型借助某个编码器后能精确利用这个信息做决策(可实现性);
一个是充分性散度Δsuff:压缩丢掉的"回答问题所需的信息量",用条件互信息度量。
一个是可实现性散度Δreal:即使信息没丢,System1模型(及其接口约束)也无法达到最优预测时,多出来的那部分损失;
一个是随机门(Stochastic Gate,STG):把"是否保留某特征"这个离散选择,松弛成带噪声的连续变量来训练,训练后保留权重最大的TopK个特征。
因此,这样就可以学习了,变成2阶段的学习
阶段一:为充分性学习压缩(降Δsuff)。先构造一个候选特征库F(X)∈ℝ^M:从原始序列算出M个标量特征(统计特征、频域特征等,注意,这个特征库是预设的,且设定在训练之前,不是从数据里学出来的。F = {f_1, ..., f_M} 是一组固定的函数(均值、标准差、最大值、频域能量等),每个把序列映射成一个标量。
然后用随机门在M个里选至多K个:训练后保留μ_j最大的TopK个特征,得到紧凑表示T=F_S(X)。注意,这里"选特征"是学习出来的,约束是特征总数不超过预算K。
阶段二:为可实现性学习编码(降Δreal)。选出的K个特征值数值尺度、语义各不相同。因此,用一个共享编码器g_θ,以"特征值+特征身份(one-hot)"为输入,映射到System1骨干的嵌入维度D:然后把每个特征拼成"名称+数值文本+一个值token[v](嵌入被h_k替换)",和问题、候选答案一起组成完整输入,训练目标就是最小化q0的预测损失。骨干q0全程冻结,所以TimesJev是即插即用的适配器。
因此,其中最重要的,就是预设特征库 F(类似 tsfresh 的无监督统计/频域特征池)在训练之前就由方法或用户定义好,是一组固定的函数 f_j(X)→标量,不是从数据里学出来的表示。
训练时,只在固定库之上学"选哪 K 个、各留多少权重"(随机门优化 μ_j),不改变特征库本身;
推理时,调用同一个固定库算特征(只取选定的 K 个),无法使用库之外的任何特征。若关键信息不在库覆盖范围内,推理阶段毫无补救,Δsuff 不可能归零,准确率天花板从"特征库定义"这一步就被锁死。
所以,这三点共同支撑了前面的判断:TimesJev 是"特征库 + 选择 + 对齐"的适配器,特征库的覆盖率在训练前就给定,既是它快、可解释、即插即用的来源,也是它泛化天花板交给了特征设计的原因。
3、推理过程是啥样的?
从工程落地角度上看,把"序列理解"从生成式推理搬到"压缩表示+判别式快模型",是降低延迟的可行路径,且理论框架比多数"接个分类头"的工作更有趣【这个是的确的】。
从具体例子上,怎么看?
输入就是原始序列+ 问题 + 候选;输出就是 System 1 骨干吐出的概率分布 + 答案,外加 TimesJev 特有的"选中特征"(可解释副产物)。下面具体展开步骤:
首先,一条样本的输入:
其次,推理时内部压缩(TimesJev 把 12 个点压成 3 个特征)
其中,这 3 个特征由阶段一随机门从 M 个候选里固定选出(本例 K=3);原始 12 个数值点从此不再进入骨干。均值(约 23.26)未被选中,因为它被尖峰拉高但不特异。
接着,喂给 System 1 骨干的完整文本化输入。
特征[局部峰值强度]=1.92;特征[最大值]=58.7;特征[标准差]=10.69。问题:这段监测序列是否出现异常?选项:正常 / 异常
其中,每个"特征名=数值"后跟一个 [v] token,其嵌入被编码器 g_θ 输出的向量 hk 替换;骨干 q0(Decider)不做任何文本生成,单次前向。
这个的细节可以说说,很有趣:
选中的特征是作为(文本)输入的一部分放进去的,但数值不是当作纯文本数字塞进去。TimesJev 用"双通道"把每个特征写进 System 1 骨干的输入序列:
1)通道一(文本语义):特征名和数值字符串,例如"特征[最大值]=58.7",作为普通文本 token 进入骨干。模型能看到这几个字,知道"有个叫最大值的量、数值写作 58.7";
2)通道二(向量注入):在数值后面跟一个特殊 token [v],它的 embedding 不被词表查表得到,而是被编码器 g_θ 输出的向量 hk 直接替换。模型在 [v] 这个位置"读到"的,不是"5、8、.、7"四个字符,而是一个已经对齐到骨干嵌入空间的数值向量。
这个设计很巧妙:为什么要既写文本又注入向量?前面的核心前提就是:System 1 模型(Decider 这类)对一长串原始数字不敏感、读不懂,硬把几千个原始点当文本塞进去效果差(这正是要做压缩 + 对齐的原因)。所以数值的"真身"走向量通道,文本只负责给语义标签。
这个总结成一句话:特征进了输入,但数值以向量形式注入,而非纯文本数字。
最后,输出结果:
整体的完整对为:
4、如何应用?
具体的,对实时、需高频决策的时间序列场景(监控、风控、边缘设备)有实际价值。但是,劣势很现实的,对特征库依赖很严重:若领域没有现成M个好特征,泛化性存疑,跨分布(分布漂移)时选出的TopK可能失效。**此外,任务上也是收窄的:只做"选题/判断",不能做"预测未来数值"**。
因此,对于不同的角色,也应该有不同的用法。
对于使用者(业务侧),把异常检测、分类、判断题类时序任务接入,获得毫秒级、低成本决策;适合监控/风控高频场景,但前置条件在于需准备"候选特征库";需定义候选答案集,高风险场景要自己校准阈值。
在开发者(工程侧),在已有Jev/Decider上挂一个适配器即可,骨架冻结。但是,要训两阶段(门+编码器),特征库质量决定上限,需一定特征工程能力。
二、关于我们
老刘说NLP技术社区,自2022年建立以来,以公正、客观的角度,围绕知识图谱本体论+RAG知识库+Agent智能体三个方向做深入跟进,加入方式在:https://mp.weixin.qq.com/s/_sEWHeV20sN1JcwGJU9tJw