Time-MoE 开发者指南

Time-MoE 开发者指南

Time-MoE Time-MoE: Billion-Scale Time Series Foundation Models with Mixture of Experts Time-MoE 项目地址: https://gitcode.com/gh_mirrors/ti/Time-MoE

1. 项目介绍

Time-MoE 是一个基于 Mixture of Experts(MoE)架构的时间序列基础模型,旨在处理大规模时间序列数据的预测任务。该项目是第一个将时间序列基础模型参数扩展到 24 亿规模的尝试,从零开始训练。Time-MoE 通过其独特的 MoE 架构,能够实现高效的计算和长序列的处理。

2. 项目快速启动

在开始之前,请确保安装了 Python 3.10 或更高版本。

安装依赖

pip install -r requirements.txt

Time-MoE 需要 transformers==4.40.1,也可以选择安装 flash-attn 以提高训练和推理的速度:

pip install flash-attn==2.6.3

制作预测

以下是一个简单的预测示例:

import torch
from transformers import AutoModelForCausalLM

context_length = 12
seqs = torch.randn(2, context_length)  # [batch_size, context_length]

model = AutoModelForCausalLM.from_pretrained('Maple728/TimeMoE-50M', device_map="cpu", trust_remote_code=True)

mean, std = seqs.mean(dim=-1, keepdim=True), seqs.std(dim=-1, keepdim=True)
normed_seqs = (seqs - mean) / std

prediction_length = 6
output = model.generate(normed_seqs, max_new_tokens=prediction_length)

normed_predictions = output[:, -prediction_length:]
predictions = normed_predictions * std + mean

如果序列已经归一化,可以跳过均值和标准差的计算。

3. 应用案例和最佳实践

评估模型

准备基准数据集,可以从 Google Drive 获取预处理好的数据集,并将其放在 ./dataset 目录下。以下是一个评估 ETTh1 数据集的示例:

python run_eval.py -d dataset/ETT-small/ETTh1.csv -p 96

微调 Time-MoE

要开始微调 Time-MoE,您的数据集需要转换为 jsonl 格式。以下是数据格式的一个例子:

{
"sequence": [1.0, 2.0, 3.0, ...]
}
{
"sequence": [11.0, 22.0, 33.0, ...]
}

可以使用 jsonljsonpickle 格式保存转换后的数据。如果使用 Time-300B 数据集,可以直接进行,无需额外预处理。

使用 CPU 进行训练的命令如下:

python main.py -d <data_path>

对于单节点单 GPU 或多 GPU 训练,使用以下命令:

python torch_dist_run.py main.py -d <data_path>

多节点多 GPU 训练需要设置环境变量以支持节点间的通信:

export MASTER_ADDR=<master_addr>
export MASTER_PORT=<master_port>
export WORLD_SIZE=<world_size>
export RANK=<rank>
python torch_dist_run.py main.py -d <data_path>

要从头开始训练 Time-MoE,只需在命令中添加 --from_scratch 参数。

4. 典型生态项目

Time-MoE 作为时间序列预测的开源项目,其生态系统包括但不限于以下项目:

  • TimeMix:一个用于时间序列数据混洗的工具。
  • 其他时间序列处理和预测框架,如 Prophet、LSTM 等。

通过上述介绍,开发者可以快速上手 Time-MoE,并在实际项目中应用时间序列预测的最佳实践。

Time-MoE Time-MoE: Billion-Scale Time Series Foundation Models with Mixture of Experts Time-MoE 项目地址: https://gitcode.com/gh_mirrors/ti/Time-MoE

### TIME-MOE 模型架构 TIME-MOE 是一种基于稀疏混合专家 (Mixture of Experts, MoE) 设计的时间序列预测模型。其核心在于通过引入稀疏性来平衡模型规模和计算效率[^1]。具体来说,TIME-MOE 利用了大规模预训练技术,在 Time-300B 数据集上进行了充分验证,证明了大模型在时间序列领域中的潜力。 #### 架构特点 1. **稀疏混合专家机制** TIME-MOE 的设计采用了稀疏 MoE 结构,这意味着只有部分子网络会被激活用于特定输入,从而减少了不必要的计算开销并提高了运行效率。 2. **多分辨率预测能力** 该模型具备处理不同时间尺度的能力,能够适应多种预测任务的需求,无论是短期还是长期预测均表现出色。 3. **零样本学习优势** 在未见过的数据分布情况下,TIME-MOE 显示出了强大的泛化性能,尤其适合应用于新环境下的快速部署。 4. **开源扩展支持** 类似于 llama3-8&times;8b-MoE-Base/Instruct 这样的项目提供了丰富的工具链,包括但不限于 MoE 扩展脚本、权重转换脚本以及针对 SFT 数据的微调方法[^2]。这些资源可以进一步增强 TIME-MOE 的灵活性与适用范围。 --- ### 应用场景 由于 TIME-MOE 出色的表现及其独特的特性,它广泛适用于以下几个方面: 1. **金融行业** 对股票价格波动、外汇汇率变化等复杂动态系统的建模分析成为可能,帮助投资者制定更科学的投资策略。 2. **能源管理** 提供精确的电力需求预测服务,优化电网调度计划;同时也可用于可再生能源发电量估计等领域。 3. **供应链物流** 实现库存水平监控预警功能,减少因供需失衡带来的经济损失风险。 4. **医疗健康监测** 跟踪患者生命体征参数趋势图谱,提前发现潜在疾病隐患信号。 5. **气象预报** 改善天气状况模拟精度,延长有效预见期长度,提升灾害防御准备工作的及时性和准确性。 ```python # 示例代码展示如何加载预训练好的 TIME-MOE 模型 from timemoe import load_model model = load_model('time-moe-pretrained') input_data = [...] # 输入待预测的时间序列数据 predictions = model.predict(input_data) print(predictions) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彭桢灵Jeremy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值