Skip to content

Conversation

@relic-yuexi
Copy link

Add SwanLab Logger Support

Summary

This PR adds support for SwanLab as a logging backend for LitGPT training and finetuning workflows. SwanLab is an experiment tracking and visualization tool that provides an alternative to existing loggers like TensorBoard, W&B, and MLFlow.

Based on Lightning-AI/pytorch-lightning#21506

Changes

Core Implementation

  • litgpt/utils.py:
    • Added SwanLabLogger import from lightning.pytorch.loggers
    • Extended choose_logger() function to support logger_name="swanlab"
    • Implemented SwanLab logger initialization with support for:
      • project: Project name (defaults to experiment name)
      • experiment_name: Experiment/run name
      • description: Experiment description
      • logdir: Log directory (defaults to out_dir/logs/swanlab)
      • mode: SwanLab mode (defaults to "cloud")
      • config: Additional configuration
      • version: Version (only used when resuming training)
    • Updated error message to include "swanlab" in valid options

Type Annotations

Updated logger_name parameter type hints across all training scripts to include "swanlab":

  • litgpt/pretrain.py
  • extensions/thunder/pretrain.py
  • litgpt/finetune/adapter.py
  • litgpt/finetune/adapter_v2.py
  • litgpt/finetune/full.py
  • litgpt/finetune/lora.py
  • litgpt/finetune/lora_legacy.py

Tests

  • tests/test_utils.py:
    • Added SwanLabLogger import
    • Added test case for choose_logger("swanlab", ...) with RequirementCache("swanlab") check
    • Verified that invalid logger names raise appropriate ValueError

Usage

Users can now use SwanLab for logging by specifying --logger_name swanlab:

litgpt pretrain --logger_name swanlab --log_args.project my_project pythia-14m

Additional SwanLab options can be passed via --log_args:

litgpt pretrain \
  --logger_name swanlab \
  --log_args.project my_project \
  --log_args.mode disabled \
  --log_args.description "My experiment" \
  pythia-14m

Testing

Tested locally with litgpt pretrain pythia-14m --config config_hub/pretrain/debug.yaml to ensure basic functionality works correctly.

Compatibility

  • Requires swanlab package to be installed
  • Compatible with all existing training and finetuning workflows
  • Follows the same pattern as other loggers (TensorBoard, W&B, MLFlow)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant