
Kairos-23M输入输出与超参数完全指南context、patch、quantiles一次讲清【免费下载链接】kairos_23m-npu项目地址: https://ai.gitcode.com/atlasleong/kairos_23m-npu面对一个只有 2300 万参数的时间序列预测模型新手往往最先被它的输入输出形状绕晕past_target到底是什么context_length该设多少输出的 9 个通道是什么意思别担心这篇Kairos-23M 输入输出与超参数指南会带你从零上手把context、patch、quantiles三大核心概念一次讲清让你能快速读懂模型并跑通自己的第一次零样本时序预测。一、Kairos-23M 是什么一个为时序预测而生的基础模型Kairos-23M 是一个 2300 万参数的时间序列基础模型核心能力是零样本zero-shot时间序列预测——也就是说不需要针对你的数据重新训练直接喂入历史观测值它就能输出未来一段时间的预测并且以9 分位数quantile的形式给出预测的不确定性区间。它的架构是 T5 风格的 encoder-decoder配合动态分块dynamic patching、MoE tokenizer 和实例级 RoPE 位置编码属于时序基础模型TSFM家族的最新实践。模型本体代码位于 modeling_kairos.py配置定义在 configuration_kairos.py推理入口脚本是 inference.py。二、模型输入详解past_target 与 context_lengthKairos-23M 的输入非常简洁核心只有一个张量past_target也就是你手中那段历史时间序列。输入的形状past_target: (batch_size, context_length) float32batch_size一次预测多少个序列默认取 1。context_length喂入的历史窗口长度也就是上下文长度。dtype全程float32昇腾 NPU 不支持 fp64不要改成 float64。context_length 超参数怎么设置配置里的默认值是context_length2048这是模型支持的最大上下文上限超过上限的输入会被自动截断为末尾 2048 个点在 modeling_kairos.py 的 encode 方法中处理。而实际交付的推理入口默认使用CONTEXT_LENGTH 512见 _job_bootstrap.py这是一个兼顾速度与精度的折中选择。新手建议先用 512 起步跑通流程后再根据任务复杂度调整。context 越长模型能看到的历史规律越多但显存和耗时也会上升。输入还可以带掩码除了past_target前向函数还接受可选的past_is_padpadding 标记和past_observed_values有效值标记。简单说序列中的 NaN 会被自动视为缺失值模型会用有效观测做预测这在真实工业数据中非常实用。三、patch 超参数input_patch_size 与 input_patch_strideKairos-23M 不像传统方法那样直接处理每一个时间点而是把输入序列切分成一个个 patch块再交给模型。这能显著降低计算量并提升对局部模式的捕捉能力。两个关键配置超参数默认值含义input_patch_size128每个 patch 包含多少个时间点input_patch_stride128patch 之间的滑动步长当stride size时patch 之间没有重叠512 个点的输入会被切成 4 个 patch。此外模型内部使用**动态分块DynamicPatch**机制见 modeling_kairos.py 中的DynamicPatch类MoE 路由会决定哪些 patch 需要进一步细分从而自适应地处理不同粒度的时序模式这就是它擅长时间序列预测的原因之一。四、模型输出详解9 分位数预测的结构模型前向的输出是KairosOutput对象其中最核心的字段是prediction_outputs。输出的形状prediction_outputs: (batch_size, num_quantiles9, prediction_length)例如实际推理日志里的PREDICTION_SHAPE1,9,64含义就是batch 11 个样本99 个分位数通道64预测未来 64 个时间点即prediction_length64。每个通道代表什么模型预测的不是一条线而是 9 条分位数曲线对应quantiles[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]q0.1未来值有 10% 概率低于此线下界q0.9未来值有 90% 概率低于此线上界q0.5索引 4中位数预测通常作为最终的点预测结果。两条分位数曲线之间的宽度就是模型给出的不确定性区间——区间越窄模型越有把握。实际推理时inference.py 正是取索引 4q0.5的中位数通道作为 FORECAST 输出。五、quantiles 超参数按需定制你的预测区间quantiles列表本身也是一个可配置超参数定义在 configuration_kairos.py 中。默认是 0.1 到 0.9 的 9 等分但你完全可以自定义比如想要更细的尾部风险分析可以改为[0.05, 0.1, ..., 0.9, 0.95]。训练损失也用 quantiles模型训练时使用分位数损失quantile loss每个分位数的预测误差会按对应权重惩罚这让每个通道都各司其职地学会刻画不同概率水平。因此量化输出的覆盖度比如 0.1~0.9 区间实际应覆盖约 80% 的真实未来值是评估模型质量的重要指标。六、其他关键超参数速查表除了三大主角下面这些超参数也值得了解完整清单见 model/config.json超参数默认值说明d_model384隐藏层维度d_ff1536前馈网络维度num_layers/num_decoder_layers4 / 4encoder / decoder 层数num_heads8注意力头数num_decoder_segments2解码分段数决定单次最大预测长度n_activated_experts3MoE 激活专家数dtypefloat32全模型精度一个容易踩坑的点单次生成的最大预测长度是num_decoder_segments × prediction_length 2 × 64 128。如果你需要的预测长度超过 128模型内部会自动把中位数预测回填到输入、进行自回归续推见 modeling_kairos.py 的_autoregressive_generate超出的部分会打印 warning不影响运行。七、真实运行示例输入输出一次看懂以仓库自带的 inference.py 在昇腾 NPUAscend 910B4上的实际输出为例INPUT_DEVICEnpu:0 MODEL_DEVICEnpu:0 OUTPUT_DEVICEnpu:0 CPU_FALLBACKfalse PREDICTION_SHAPE1,9,64 TEST_INPUTcontext_len512,last_observed1.062244 FORECAST-0.086745,-0.254155,-0.401681,-0.506220,-0.554450,... EXIT_CODE0对照本指南就能轻松解读输入是 512 个时间点的历史序列最后一个观测值 1.062244输出是(1, 9, 64)的 9 分位数预测FORECAST显示的是中位数q0.5通道的前 8 个预测值。整个前向在 NPU 上中位耗时约114ms。八、新手避坑清单 保持 float32模型全程 float32改为 float64 会在昇腾 NPU 上报错固定 transformers 版本Kairos 建模代码依赖 transformers 4.56.x详见 README 注意事项升级到 5.x 会因 API 移除而失败context 别超上限超过context_length会自动截断取的是末尾部分记得把最新数据放在序列尾部NaN 用掩码处理不要手动删除缺失点把缺失位置留 NaN 即可模型自动忽略中位数通道是索引 4取点预测结果时认准 q0.5索引 4通道。总结一张图记住输入输出最后帮你把全文浓缩成一句话输入(batch, context)的历史序列模型输出(batch, 9, prediction_length)的 9 分位数预测其中context_length决定看多长历史input_patch_size/stride决定怎么切分quantiles决定预测的粒度与不确定性。掌握这三点你就能自信地使用 Kairos-23M 开启自己的零样本时间序列预测之旅了。【免费下载链接】kairos_23m-npu项目地址: https://ai.gitcode.com/atlasleong/kairos_23m-npu创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考