Открытый инструмент для отслеживания и визуализации обучения глубоких нейронных сетей с современным дизайном
Поддерживает как облачное, так и оффлайн использование, совместим с 30+ популярными фреймворками, легко интегрируется с вашим кодом экспериментов
🔥SwanLab Online · 📃 Документация · Сообщить о проблеме · Оставить отзыв · История изменений
👋 Присоединяйтесь к нашей группе в WeChat
- 🌟 Последние обновления
- 👋🏻 Что такое SwanLab
- 📃 Онлайн-демонстрация
- 🏁 Быстрый старт
- 💻 Самостоятельное размещение
- 🚗 Интеграция с фреймворками
- 🆚 Сравнение с известными инструментами
- 👥 Сообщество
- 📃 Лицензия
-
2025.01.01: Добавлено сглаживание графиков и возможность изменения размера графиков перетаскиванием, улучшено взаимодействие с графиками.
-
2024.12.22: Интеграция с LLaMA Factory, теперь можно использовать SwanLab для отслеживания и визуализации экспериментов по тонкой настройке больших моделей в LLaMA Factory, инструкция по использованию.
-
2024.12.15: Добавлена функция мониторинга оборудования (0.4.0), поддерживается запись и мониторинг системной информации для CPU, NPU (Ascend), GPU (Nvidia).
-
2024.12.06: Добавлена интеграция с LightGBM и XGBoost; увеличено ограничение на длину строки в логах.
-
2024.11.26: Вкладка "Окружение" — раздел "Оборудование" теперь поддерживает распознавание Huawei Ascend NPU и Kunpeng CPU; раздел "Облачные провайдеры" поддерживает распознавание QingCloud.
-
2024.11.24: Выпущен новый UI с переработанным дизайном, улучшены детали взаимодействия, добавлена поддержка темной темы.
-
2024.11.11: Выпущен плагин для VSCode; добавлена интеграция с фреймворком Keras; добавлен метод
run.public
, позволяющий получать информацию о проекте, эксперименте и ссылке, #732
SwanLab — это открытый и легковесный инструмент для отслеживания и визуализации обучения моделей искусственного интеллекта, предоставляющий платформу для отслеживания, записи, сравнения и совместной работы над экспериментами.
SwanLab ориентирован на исследователей в области ИИ, предлагая удобный Python API и красивый интерфейс, а также функции визуализации обучения, автоматической записи логов, записи гиперпараметров, сравнения экспериментов и совместной работы. С помощью SwanLab исследователи могут обнаруживать проблемы в обучении на основе наглядных графиков, сравнивать несколько экспериментов для поиска идей и делиться результатами через онлайн-страницы и совместное обучение в организациях, что упрощает коммуникацию в команде и повышает эффективность обучения.
Основные функции:
1. 📊 Отслеживание метрик и гиперпараметров: Минималистичный код для встраивания в ваш ML pipeline, отслеживание ключевых метрик обучения.
- Поддержка облачного использования (аналогично Weights & Biases), возможность просмотра прогресса обучения в любое время. Как смотреть эксперименты на телефоне
- Поддержка записи гиперпараметров и их отображения в таблицах.
- Поддерживаемые типы данных: скалярные метрики, изображения, аудио, текст, ...
- Поддерживаемые типы графиков: линейные графики, медиа-графики (изображения, аудио, текст), ...
- Автоматическая запись логов: логирование, информация об оборудовании, Git-репозитории, окружение Python, список библиотек Python, рабочая директория проекта.
2. ⚡️ Полная интеграция с фреймворками: PyTorch, 🤗HuggingFace Transformers, PyTorch Lightning, 🦙LLaMA Factory, MMDetection, Ultralytics, PaddleDetetion, LightGBM, XGBoost, Keras, Tensorboard, Weights&Biases, OpenAI, Swift, XTuner, Stable Baseline3, Hydra и более 30+ фреймворков.
3. 💻 Мониторинг оборудования: Поддержка записи и мониторинга системных показателей CPU, NPU (Ascend), GPU (Nvidia), памяти.
4. 📦 Управление экспериментами: Централизованная панель управления, разработанная для сценариев обучения, позволяет быстро просматривать и управлять несколькими проектами и экспериментами.
5. 🆚 Сравнение результатов: Сравнение гиперпараметров и результатов разных экспериментов через онлайн-таблицы и графики, поиск идей для улучшения.
6. 👥 Онлайн-сотрудничество: Возможность совместного обучения с командой, синхронизация экспериментов в реальном времени в одном проекте, просмотр записей обучения команды и обсуждение результатов.
7. ✉️ Поделиться результатами: Копирование и отправка постоянных URL для обмена каждым экспериментом, удобная отправка партнерам или встраивание в онлайн-заметки.
8. 💻 Поддержка самостоятельного размещения: Поддержка оффлайн использования, локальная версия также позволяет просматривать панель управления и управлять экспериментами.
Important
Добавьте проект в избранное, чтобы получать уведомления о всех новых выпусках без задержек~ ⭐️
Ознакомьтесь с онлайн-демонстрацией SwanLab:
Классификация кошек и собак с ResNet50 | Обнаружение объектов с Yolov8-COCO128 |
---|---|
Отслеживание простой модели ResNet50 для задачи классификации изображений на наборе данных кошек и собак. | Использование Yolov8 для задачи обнаружения объектов на наборе данных COCO128, отслеживание гиперпараметров и метрик обучения. |
Тонкая настройка Qwen2 | Прогнозирование акций Google с LSTM |
---|---|
Отслеживание тонкой настройки большой языковой модели Qwen2 для выполнения простых инструкций. | Использование простой модели LSTM для прогнозирования будущих цен акций Google на наборе данных акций. |
Классификация аудио с ResNeXt101 | Тонкая настройка Qwen2-VL на наборе данных COCO |
---|---|
Постепенный процесс экспериментов от ResNet к ResNeXt в задаче классификации аудио. | Тонкая настройка мультимодальной модели Qwen2-VL на наборе данных COCO2014 с использованием Lora. |
pip install swanlab
-
Бесплатная регистрация аккаунта
-
Войдите в аккаунт, скопируйте ваш API Key в разделе пользовательских настроек > API Key
-
Откройте терминал и введите:
swanlab login
При появлении запроса введите ваш API Key, нажмите Enter, чтобы завершить вход.
import swanlab
# Инициализация нового эксперимента SwanLab
swanlab.init(
project="my-first-ml",
config={'learning-rate': 0.003},
)
# Запись метрик
for i in range(10):
swanlab.log({"loss": i, "acc": i})
Готово! Перейдите на SwanLab, чтобы увидеть ваш первый эксперимент.
Локальная версия поддерживает оффлайн просмотр панели управления SwanLab.
Установите параметры logir
и mode
в swanlab.init
, чтобы отслеживать эксперименты оффлайн:
...
swanlab.init(
logdir='./logs',
mode='local',
)
...
-
Параметр
mode
устанавливается вlocal
, чтобы отключить синхронизацию экспериментов с облаком. -
Параметр
logdir
является необязательным, он указывает путь для сохранения логов SwanLab (по умолчанию сохраняется в папкеswanlog
).- Лог-файлы создаются и обновляются в процессе отслеживания экспериментов, локальная панель управления также основывается на этих файлах.
Остальные части полностью совместимы с облачным использованием.
Откройте терминал и используйте следующую команду для запуска панели управления SwanLab:
swanlab watch ./logs
После выполнения команды SwanLab предоставит локальный URL (по умолчанию http://127.0.0.1:5092).
Перейдите по этой ссылке, чтобы просмотреть эксперименты в браузере.
Используйте ваш любимый фреймворк вместе с SwanLab!
Ниже приведен список уже интегрированных фреймворков. Если вы хотите предложить интеграцию с другим фреймворком, создайте Issue.
Основные фреймворки
Специализированные/фреймворки для тонкой настройки
- PyTorch Lightning
- HuggingFace Transformers
- OpenMind
- LLaMA Factory
- Modelscope Swift
- Sentence Transformers
- Torchtune
- XTuner
- MMEngine
- FastAI
- LightGBM
- XGBoost
Компьютерное зрение
Обучение с подкреплением
Другие фреймворки:
-
☁️ Поддержка онлайн-использования: SwanLab позволяет легко синхронизировать и сохранять эксперименты в облаке, что удобно для удаленного просмотра прогресса обучения, управления историей проектов, обмена ссылками на эксперименты, отправки уведомлений и просмотра экспериментов на разных устройствах. Tensorboard — это оффлайн инструмент для отслеживания экспериментов.
-
👥 Совместная работа: При совместной работе над проектами машинного обучения SwanLab упрощает управление проектами, обмен ссылками на эксперименты и обсуждение результатов. Tensorboard в основном предназначен для индивидуального использования и не поддерживает совместную работу.
-
💻 Постоянная и централизованная панель управления: Независимо от того, где вы обучаете модель — на локальном компьютере, в лабораторном кластере или на облачном GPU, результаты будут записываться в одну централизованную панель управления. Tensorboard требует ручного копирования и управления файлами TFEvent с разных машин.
-
💪 Более мощные таблицы: SwanLab позволяет просматривать, искать и фильтровать результаты из разных экспериментов, что упрощает поиск лучшей модели для различных задач. Tensorboard не подходит для крупных проектов.
-
Weights and Biases — это закрытая MLOps платформа, требующая подключения к интернету.
-
SwanLab поддерживает как онлайн, так и оффлайн использование, а также предоставляет открытую и бесплатную версию для самостоятельного размещения.
- GitHub Issues: Ошибки и проблемы при использовании SwanLab.
- Электронная почта: Отправка отзывов и вопросов по использованию SwanLab.
- Группа в WeChat: Обсуждение вопросов по использованию SwanLab, обмен новыми технологиями в области ИИ.
Если вам нравится использовать SwanLab в вашей работе, добавьте значок SwanLab в ваш README:
[![swanlab](https://img.shields.io/badge/powered%20by-SwanLab-438440)](https://github.com/swanhubx/swanlab)
Если SwanLab помог вам в ваших исследованиях, рассмотрите возможность цитирования в следующем формате:
@software{Zeyilin_SwanLab_2023,
author = {Zeyi Lin, Shaohong Chen, Kang Li, Qiushan Jiang, Zirui Cai, Kaifang Ji and {The SwanLab team}},
doi = {10.5281/zenodo.11100550},
license = {Apache-2.0},
title = {{SwanLab}},
url = {https://github.com/swanhubx/swanlab},
year = {2023}
}
Хотите внести вклад в SwanLab? Сначала ознакомьтесь с руководством по вкладу.
Мы также приветствуем поддержку через социальные сети, мероприятия и конференции. Спасибо!
Участники
Этот репозиторий распространяется под лицензией Apache 2.0 License.