Fine-tunes TimeGPT on custom datasets to improve forecasting accuracy. Use when TimeGPT's zero-shot performance is insufficient or domain-specific accuracy is needed. Trigger with "finetune TimeGPT",...
Adapts the TimeGPT model to specific datasets for enhanced forecasting performance.
Improves forecasting accuracy by fine-tuning the pre-trained TimeGPT model on custom time series data.
This skill guides users through the process of fine-tuning TimeGPT on their own datasets. It handles data preprocessing, training configuration, and evaluation. Use when domain-specific accuracy is crucial or when the general TimeGPT model underperforms. It outputs a fine-tuned model and performance metrics.
Tools: Read, Write, Bash, Glob, Grep
Environment: NIXTLA_TIMEGPT_API_KEY
Packages:
pip install nixtla pandas scikit-learn matplotlib
Load and preprocess time series data into Nixtla format (unique_id, ds, y).
python {baseDir}/scripts/prepare_data.py \
--input data.csv \
--train_output train_data.csv \
--val_output val_data.csv
Requirements:
Output:
Create or validate training configuration.
# Create default config
python {baseDir}/scripts/configure_training.py \
--create_default \
--output config.json
# Or validate existing config
python {baseDir}/scripts/configure_training.py \
--config config.json
Configuration parameters:
Run the fine-tuning process using prepared data and configuration.
export NIXTLA_TIMEGPT_API_KEY=your_api_key
python {baseDir}/scripts/finetune_model.py \
--train_data train_data.csv \
--config config.json \
--output finetuned_model.pkl
Output: finetuned_model.pkl (serialized fine-tuned model)
Evaluate the fine-tuned model on validation data and save metrics.
python {baseDir}/scripts/evaluate_model.py \
--val_data val_data.csv \
--model finetuned_model.pkl \
--config config.json \
--output metrics.json
Output: metrics.json (MAE, RMSE metrics)
Error: NIXTLA_TIMEGPT_API_KEY not set
Solution: export NIXTLA_TIMEGPT_API_KEY=your_api_key
Error: Invalid data format
Solution: Ensure data has columns: unique_id, ds, y
Error: Insufficient training data
Solution: Provide a larger training dataset (at least 50 time series points per series)
Error: Fine-tuning failed
Solution: Adjust the fine-tuning parameters (learning rate, epochs) in config.json
Error: Missing required column
Solution: Verify CSV has unique_id, ds, y columns with correct data types
Input:
unique_id,ds,y
store_1,2023-01-01,100
store_1,2023-01-02,110
Command:
python {baseDir}/scripts/finetune_model.py \
--train_data train_data.csv \
--config config.json \
--output finetuned_model.pkl
Output: finetuned_model.pkl (a serialized, fine-tuned TimeGPT model)
Input:
unique_id,ds,y
building_1,2023-01-01 00:00,50
building_1,2023-01-01 01:00,55
Command:
python {baseDir}/scripts/evaluate_model.py \
--val_data val_data.csv \
--model finetuned_model.pkl \
--config config.json \
--output metrics.json
Output: metrics.json (performance metrics of the fine-tuned model)
{baseDir}/scripts/prepare_data.py{baseDir}/scripts/configure_training.py{baseDir}/scripts/finetune_model.py{baseDir}/scripts/evaluate_model.py