ICML25-TimeVLM
ICML 2025 录用!首个将视觉-语言模型(VLM)引入时序预测的框架,支持 CLIP/BLIP2/ViLT,零样本能力亮眼
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
ICML 2025 录用!首个将视觉-语言模型(VLM)引入时序预测的框架,支持 CLIP/BLIP2/ViLT,零样本能力亮眼
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你手头有一份过去72小时的工厂传感器数据——温度、压力、振动频率——需要预测接下来24小时会发生什么。传统时序模型只能"就数论数",而Time-VLM 却能调动 GPT-4V 级别的视觉-语言模型,让 AI 像一个经验丰富的工程师一样,看懂数据图表中的趋势和异常。这就是 ICML 2025 录用论文 Time-VLM 带来的技术突破。

Time-VLM 整体框架:将时序数据转化为图像,利用预训练 VLM 进行多模态预测
时间序列预测是工业、能源、交通、金融等领域的核心技术之一。从电力负荷预测到交通流量分析,从传感器异常检测到股市走势预判,都离不开高质量的时序模型。
传统深度学习时序模型(如 Informer、Autoformer、DLinear)已经取得了不错的效果,但始终受限于"所见即所得"——模型只能从历史数据本身学习模式,缺乏对数据语义和上下文的高级理解。一个经验丰富的工程师看图表,不仅看数值变化,还会识别波形特征、季节性模式、异常拐点,这些隐性知识难以被纯数值模型捕捉。
多模态大模型的崛起为这一困局提供了新的解题思路。GPT-4V、Gemini、CLIP 等视觉-语言模型(VLM)已经展现了对图像的高级理解能力。那么,是否可以将时序数据"翻译"成 VLM 能理解的视觉语言,从而借助多模态大模型的知识来提升预测精度?这正是 Time-VLM 的核心研究动机。
Time-VLM 的工作流程可以概括为三个关键步骤:
第一步:时序到图像的转化(Time-Series to Image)
研究人员设计了专门的 LearnableTimeSeriesToImage 层,将一维时序数据映射为二维图像表示。具体来说,输入的历史序列通过 PatchEmbedding 被切分成多个 patch(每个 patch 包含若干时间步),然后通过可学习的映射函数将每个 patch 转换为一个"像素块"。这个过程模拟了真实图表中波形、曲线的视觉形态,让时序数据具有了空间结构。
代码实现位于 layers/Learnable_TimeSeries_To_Image.py 和 layers/TimeSeries_To_Image.py,核心使用了 einops 库进行张量重排操作。
第二步:VLM 特征提取(VLM-powered Encoding)
生成的时序图像被送入预训练的视觉-语言模型(支持 CLIP、BLIP2、ViLT 三种主流 VLM),提取高级语义特征。VLMManager(src/TimeVLM/vlm_manager.py)统一管理这三种 VLM 的加载和调用,通过 Hugging Face Transformers 库实现。
关键创新在于 PatchMemoryBank(补丁记忆库):由于时序数据通常比 VLM 预训练的图像数据长得多,Time-VLM 引入了一个环形缓冲区来存储历史 patch 的 VLM 特征。当新的 patch 需要查询时,从记忆库中检索最相似的 top-k 历史 patch 作为上下文补充(类似 RAG 思想),大幅提升了模型处理长序列的能力。
第三步:时序预测头(Forecasting Head)
融合后的 VLM 特征与时序 backbone(Autoformer、Transformer、DLinear 等)输出的局部时序特征通过交叉注意力机制(Cross_Attention)进行深度交互,最终通过 Flatten_Head 投影到预测维度。
从 models/ 目录可以看到,Time-VLM 实际上是一个通用框架,集成了 Autoformer、Crossformer、DLinear、FEDformer、Informer、Mamba 等多种主流时序 backbone,支持灵活替换。
Time-VLM 覆盖了时序领域最核心的五类任务:
| 任务类型 | 脚本 | 说明 |
|---|---|---|
| 长期预测(全样本) | TimeVLM_long_1.0p.sh | 使用 100% 训练数据 |
| 长期预测(少样本) | TimeVLM_long_0.1p.sh | 仅用 10% 数据训练,考验泛化能力 |
| 短期预测 | TimeVLM_short.sh | 高频时序的短时预测 |
| 零样本迁移 | TimeVLM_transfer.sh | 在新数据集上零样本评估 |
| 搜索加速 | TimeVLM_search_parallel.sh | 并行超参搜索 |
实验数据集包括 ETT 系列(ETTh1/ETTh2/ETTm1/ETTm2)、Weather、Electricity、Traffic 等经典时序 Benchmark,覆盖电力、能源、交通三大领域。
主力技术栈:
代码组织:
TimeVLM/
├── src/TimeVLM/ # Time-VLM 核心模块(VLM管理器、核心模型)
│ ├── model.py # 主模型类(PatchMemoryBank、核心推理逻辑)
│ ├── vlm_manager.py # 多 VLM 统一管理接口
│ └── vlm_custom.py # 自定义 VLM 实现
├── layers/ # 底层算子层(注意力、嵌入、图像转化)
├── models/ # 时序 Backbone(支持 Autoformer/Mamba 等多种架构)
├── exp/ # 实验入口(长期/短期/零样本/少样本/异常检测/分类/插补)
├── data_provider/ # 数据加载模块
├── dataset/ # 数据集目录(需手动下载)
├── scripts/ # 运行脚本(bash 一键执行)
├── utils/ # 工具函数
└── run.py # 主入口(argparse 参数解析)
代码质量评估:
exp/ 目录下针对不同任务有独立实验类,代码复用性较高requirements.txt 覆盖完整setup.py、pyproject.toml、install.sh 齐全,发布友好Time-VLM 的定位是学术研究框架,而非开箱即用的产品级工具,部署门槛不低。
环境依赖复杂:requirements.txt 包含 19 个主要依赖,其中 transformers==4.46.3、torch==2.2.2、timm==1.0.15 都是体积较大的包。仅安装 PyTorch CUDA 版本在国内网络环境下就可能遇到下载缓慢的问题。
预训练模型需额外下载:VLM(CLIP/BLIP2/ViLT)权重通过 Hugging Face 自动下载,若网络不通则需要手动配置镜像或本地缓存。代码中 CLIPProcessor.from_pretrained() 会优先尝试本地缓存,缓存未命中时从 HF Hub 下载。
数据集是最大痛点:README 明确指出数据集需要从 Google Drive 或百度网盘手动下载,文件较大且百度网盘在国内访问也存在障碍。下载后需放置在 ./dataset 目录,与代码路径一致才能运行。
无容器化支持:项目没有 Dockerfile 或 docker-compose.yml,无法通过容器化方式一键部署。对于没有 conda 环境或环境管理经验的用户来说,手动解决 Python 3.8 + CUDA 依赖是一大挑战。
GPU 是必须的:VLM 加载至少需要约 16GB 显存(CLIP-vit-base-patch32 约 340M 参数),纯 CPU 运行会非常缓慢。
上手建议:
HF_ENDPOINT=https://hf-mirror.comTime-VLM 的核心贡献在于证明了多模态大模型可以有效赋能时序预测,且零样本迁移能力令人振奋。在 ICML 2025 的公开评审中,该工作获得了积极反馈。
值得关注的几个方向:
Time-VLM 是 ICML 2025 录用的一项创新研究,它将视觉-语言模型(VLM)的语义理解能力引入时序预测,通过时序→图像→VLM特征→时序融合的技术路径,在少样本和零样本场景下展现了有竞争力的预测精度。但其学术框架属性意味着部署和使用门槛较高,更适合有研究背景的开发者。

时序可视化示例:图中展示了模型在多个数据集上的预测效果对比