PatchTSMixer 新增至 Hugging Face Transformers – 發布與快速入門指南
TL;DR
PatchTSMixer 是 IBM Research 推出的輕量級 MLP‑Mixer 為基礎的時間序列模型,現在已在 Hugging Face Transformers 函式庫中提供,可實現快速且記憶體高效的預測、分類與回歸,且具備最先進的準確度。
PatchTSMixer 是什麼?
PatchTSMixer 將多變量時間序列輸入切分為固定大小的 patch,對其進行嵌入,並使用一系列 MLP‑Mixer 層處理得到的張量,這些層學習 patch 之間、patch 內部以及通道之間的相關性。殘差連接與門控注意力模組協助模型聚焦於顯著特徵。此架構同時支援遮蔽式預訓練與直接預測,且可配置各種注意力模組。
效能聲稱
根據原始 IBM Research 論文,PatchTSMixer 相較於現有的 MLP 與 Transformer 基線提升預測準確度 8 %–60 %,並超越近期的 Patch‑Transformer 模型 1 %–2 %,同時使用的記憶體與執行時間僅為原來的 2 ×–3 ×。
快速開始:安裝
要使用 PatchTSMixer,您需要兩個 Python 套件:
pip install git+https://github.com/IBM/tsfm.git # IBM Time Series Foundation Model repository
pip install transformers # Hugging Face Transformers
快速驗證:
from transformers import PatchTSMixerConfig
from tsfm_public.toolkit.dataset import ForecastDFDataset
如果匯入成功,環境即已就緒。
範例 1 – 電力資料集的直接預測
此 notebook 示範完整的訓練流程:
- 種子設定 – 使用
set_seed(42)以確保可重現性。 - 資料載入 – 使用 pandas 讀取 CSV;根據索引範圍將欄位分割為訓練、驗證與測試。
- 前處理 –
TimeSeriesPreprocessor會對每個視窗進行縮放(預設為 "std"),並產生長度為 512 的滑動上下文視窗。 - 模型設定 – 範例超參數:
config = PatchTSMixerConfig( context_length=512, prediction_length=96, patch_length=8, patch_stride=8, num_input_channels=..., d_model=16, num_layers=8, expansion_factor=2, dropout=0.2, head_dropout=0.2, mode="common_channel", scaling="std", ) model = PatchTSMixerForPrediction(config) - 訓練 – 使用 Hugging Face
Trainer搭配早停(耐心度 10)與 MSE 損失函式。範例訓練日誌顯示損失從 0.247 下降至約 0.12。 - 評估 – 測試 MSE 為 0.128,在 Electricity 基準上屬於最先進水平。
- 儲存 – 透過
trainer.save_model()儲存模型檢查點。
範例 2 – 轉移學習至 ETTh2
相同的預訓練模型可重新用於不同的資料集:
- Zero‑shot – 在 ETTh2 上直接評估得到 MSE 0.304,與 SOTA 相當。
- Linear probing – 冻結主幹僅訓練線性頭,將 MSE 降至 0.271。
- Full fine‑tuning – 解凍所有參數後 MSE 僅略微提升至 0.273,顯示預訓練特徵已相當有效。
所有三個階段皆使用相同的
TrainerAPI,並調整TrainingArguments(較低的學習率、早停耐心度 5)。
主要結論
- PatchTSMixer 現已成為 Transformers 函式庫中的一等模型,簡化了與現有 HF 流程的整合。
- 其 MLP‑Mixer 主幹在提供強大預測準確度的同時,計算開銷遠低於傳統 Transformers。
- 該模型同時支援直接訓練與轉移學習,讓新時間序列領域能夠實現 zero‑shot 與微調後的效能。
- 完整的 notebook 包含資料準備、模型設定、訓練、評估與檢查點儲存,為實務工作者提供即用的參考範例。
資源
- 原始論文:TSMixer: Lightweight MLP‑Mixer Model for Multivariate Time Series Forecasting(IBM Research)– https://arxiv.org/pdf/2306.09364.pdf
- Hugging Face 模型文件:https://huggingface.co/docs/transformers/main/en/model_doc/patchtsmixer
- 完整 notebook:https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/patch_tsmixer.ipynb
Sources
- OriginalPatchTSMixer in HuggingFace