TimesFM 2.5 加载前如何用 check_system.py 预检脚本确认硬件与数据集内存满足要求?
【免费下载链接】timesfmTimesFM (Time Series Foundation Model) is a pretrained time-series foundation model developed by Google Research for time-series forecasting.项目地址: https://gitcode.com/GitHub_Trending/ti/timesfm
第一次加载 TimesFM 2.5 时,模型本身(约 800 MB 权重,CPU 上约 1.5 GB 内存)和你要喂给它的数据集(成百上千条序列)都会吃内存,机器配置不足时可能直接跑挂。TimesFM 仓库中的timesfm-forecastingskill 为此提供了预检脚本check_system.py:它先检查 RAM、GPU、磁盘与 Python 环境,再按你给出的数据集参数估算内存需求,给出预检是否通过的结论。本文按顺序执行这两类检查、读懂报告输出,并处理脚本给出的 FAIL/WARN 项。前提是 Python ≥ 3.10(脚本本身会检查这一项);系统兼容性以 system_requirements.md 为准:Linux(Ubuntu 20.04+)、macOS 13+、Windows 11 + WSL2 为完全支持。
预检脚本检查什么、放在哪里
脚本位于 timesfm-forecasting/scripts/check_system.py。文档中的python scripts/check_system.py命令假定你在timesfm-forecasting/目录下执行。
脚本只读取系统状态(内存、GPU、磁盘、Python 版本、包安装状态),不修改环境,可以重复运行。它只依赖标准库和(如果已安装的)torch,所以在安装 timesfm 之前的干净环境里就能运行;此时 timesfm/torch 两项会显示 WARN,属于预期结果。
脚本默认按v2.5模型配置(TimesFM 2.5,200M 参数)检查;要检查旧版本时传--model v2.0或--model v1.0(可选)。
第 1 步:运行硬件项检查
# 在 timesfm-forecasting 目录下执行 python scripts/check_system.py脚本按 v2.5 配置依次检查 6 个项目,判定逻辑来自脚本源码:
| 项目 | 判定 |
|---|---|
| RAM | 总内存 < 2 GB → FAIL(脚本原文:模型可能加载失败,或系统重度换页导致无响应);2–4 GB → WARN(提示改用per_core_batch_size=4或更低);≥ 4 GB → PASS |
| GPU | 检测到 CUDA → PASS,并报告设备名与 VRAM 大小;检测到 Apple Silicon MPS → PASS;无 GPU → WARN(CPU 模式,"slower but functional") |
| Disk | 检查 HuggingFace 缓存目录(HF_HOME或~/.cache/huggingface;该目录尚不存在时检查主目录)的空闲空间,< 2 GB → FAIL |
| Python | < 3.10 → FAIL |
| timesfm | 未安装 → WARN |
| torch | 未安装 → WARN,且 GPU 项显示 Unknown |
几个需要留意的判定细节:
- GPU 项只判断"有没有 GPU",不按 VRAM 大小拦截;TimesFM 2.5 的 GPU 要求(VRAM ≥ 2 GB)见 SKILL.md 的硬件需求表。
- 磁盘项为 v2.5 配置预留 2 GB(权重 + 开销);system_requirements.md 给出的总下载量约 1 GB(~800 MB 权重 + ~200 MB 缓存开销)。
- WARN 不影响整体通过,只有 FAIL 才算不通过:任一项 FAIL 时脚本退出码为 1,否则为 0。
报告输出示例
下面按脚本的输出格式构造,实际数值取决于你的机器:
================================================== TimesFM System Requirements Check Model: TimesFM 2.5 (200M) ================================================== [RAM ] Total: 32.0 GB | Available: 21.5 GB ✅ PASS [GPU ] None (CPU only) ⚠️ WARN [Disk ] Free: 45.0 GB (in /home/user) ✅ PASS [Python ] 3.12 ✅ PASS [timesfm ] Not installed ⚠️ WARN [torch ] Not installed ⚠️ WARN VERDICT: ✅ System is ready for TimesFM 2.5 (200M) (CPU mode) Recommended: per_core_batch_size=64VERDICT 行是最终判定:各项均为 PASS/WARN 时显示 "System is ready for ... (CPU/GPU/MPS mode)",并在下一行给出推荐的per_core_batch_size;存在 FAIL 时显示 "System does NOT meet requirements for TimesFM 2.5 (200M)" 并列出各失败项原因。推荐值稍后会填入ForecastConfig。需要机器可读结果时加--json参数(可选)。
第 2 步:估算数据集内存是否满足
硬件检查通过后,用数据集的真实参数估算这份数据装不装得下:
# 在 timesfm-forecasting 目录下执行 python scripts/check_system.py \ --num-series 1000 \ --context-length 1024 \ --horizon 24 \ --batch-size 32--num-series:数据集中时间序列的条数;--context-length:每条序列的上下文长度(对应ForecastConfig的max_context)。两者必须同时提供,估算才会输出。--horizon:预测步长,默认 24。--batch-size:即per_core_batch_size,默认 32。- 加
--estimate-only只输出内存估算、跳过系统检查,该模式下退出码恒为 0(可选)。
命令中的 1000 / 1024 / 24 / 32 是 SKILL.md 给出的示例值,替换为你数据集的序列条数、上下文长度、预测步长与批大小。
估算的构成
脚本的估算(来自脚本中的estimate_memory_gb函数):
| 组件 | 计算方式 |
|---|---|
| 模型权重 | 固定 0.8 GB |
| 运行时开销 | 固定 0.5 GB |
| 输入数据 | num_series × context_length × 4字节 |
| 批处理峰值 | batch_size × context_length × 4字节 |
| 输出数据 | num_series × horizon × 10 个分位数 × 4字节 |
| 缓冲 | 以上合计再乘 1.2 |
SKILL.md 与 system_requirements.md 另给了一条简化公式RAM ≈ 0.8 GB + 0.5 GB + (0.2 MB × num_series × context_length / 1000);脚本实际按上表的精确字节数估算,两者可能不一致,以脚本的实际输出为准。
脚本给出的四种判定结果
脚本先按总内存的 90% 作为可用内存(留 10% 给系统),再拿加缓冲后的需求量比较:
| 情形 | 报告中的提示行 |
|---|---|
| 需求 > 总内存 | 🛑 "Dataset requires X GB but system only has Y GB RAM. Consider processing in chunks or using a machine with more RAM." |
| 需求 > 可用内存的 90% | 🛑 "Dataset requires X GB but only Z GB is available. Close other applications or restart to free memory." |
| 需求 > 可用内存的 80% | ✅ 但附注 "memory usage will be high. Consider reducing batch_size." |
| 其余 | ✅ "Dataset fits comfortably: X GB needed, Y GB available." |
估算输出示例
下面示例的数值按脚本公式、用上一节示例参数(1000 条序列 × 上下文 1024 × 步长 24 × 批 32)计算得出;System RAM/Available RAM与实际判定行取决于你的机器:
================================================== Memory Estimate for Dataset ================================================== Dataset: 1,000 series × 1024 context length Horizon: 24 steps Batch size: 32 Model: v2.5 -------------------------------------------------- Model weights: 0.80 GB Overhead: 0.50 GB Input data: 0.00 GB Batch processing: 0.00 GB Output data: 0.01 GB -------------------------------------------------- Total (raw): 1.31 GB Total (+20% buf): 1.58 GB -------------------------------------------------- System RAM: 32.0 GB Available RAM: 21.5 GB ================================================== ✅ Dataset fits comfortably: 1.58 GB needed, 32.0 GB available. ==================================================注意:脚本退出码只反映第 1 步的系统项(有 FAIL 才退出 1);即使数据集估算给出 🛑,退出码也不变,因此必须以报告末尾的 ✅/🛑 行为准。
脚本报告的 FAIL/WARN 怎么处理
- RAM FAIL(总内存 < 2 GB):脚本原文是模型可能加载失败或系统重度换页、变得无响应,没有给出可降级的替代方案;SKILL.md 硬件需求表中 2.5 的 CPU 要求为 ≥ 4 GB,建议换更高内存的机器。
- Disk FAIL:脚本建议腾出空间或把缓存指到更大的卷。system_requirements.md 的 "
【免费下载链接】timesfmTimesFM (Time Series Foundation Model) is a pretrained time-series foundation model developed by Google Research for time-series forecasting.项目地址: https://gitcode.com/GitHub_Trending/ti/timesfm
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考