Использование Kubeflow Tensorboards
Инструментарий визуализации TensorFlow, TensorBoard, представляет собой мощную панель для визуализации экспериментов машинного обучения. Он позволяет отслеживать метрики, такие как loss и accuracy, визуализировать граф модели, просматривать гистограммы весов и смещений и многое другое.
Kubeflow предоставляет нативный способ запуска экземпляров TensorBoard непосредственно внутри вашего кластера Kubernetes, направляя их на существующие логи, хранящиеся на Persistent Volume Claims (PVC) или Object Storage (S3, MinIO).
Содержание
Предварительные требованияГенерация логов с PyTorchСоздание экземпляра TensorBoardДоступ к панели управленияСценарии использованияВизуализация метрик обученияСравнение запусковОтладка архитектуры моделиОчисткаПредварительные требования
Перед созданием экземпляра TensorBoard убедитесь, что ваши обучающие задания записывают логи в место, доступное для кластера.
- PVC: Если ваше обучающее задание записывает логи на Persistent Volume, запомните имя PVC и путь внутри него.
- Object Storage: Если ваше обучающее задание записывает логи в S3/MinIO, убедитесь, что у вас есть необходимые учетные данные (часто настраиваются через PodDefaults) и URI бакета (например,
s3://my-bucket/logs/experiment-1).
Генерация логов с PyTorch
Для визуализации метрик обучения ваш код на PyTorch должен записывать события в директорию логов. Класс SummaryWriter является основным интерфейсом для логирования данных, которые будут использоваться TensorBoard.
Создание экземпляра TensorBoard
-
Доступ к панели Kubeflow:
Перейдите в раздел TensorBoards на центральной панели Kubeflow. -
Новый TensorBoard:
Нажмите кнопку New TensorBoard. -
Настройка экземпляра:
- Name: Введите уникальное имя для вашего экземпляра TensorBoard (например,
experiment-1-viz). - PVC Source:
- Отметьте этот пункт, если ваши логи находятся на PVC.
- PVC Name: Выберите PVC из выпадающего списка.
- Mount Path: Укажите путь внутри PVC, где хранятся логи (например,
/logs/run1).
- Object Storage Source:
- Отметьте этот пункт, если ваши логи находятся в облачном хранилище.
- Object Store Link: Укажите полный URI к директории логов (например,
s3://my-bucket/my-model/logs/). - Configuration: Выберите конфигурацию (PodDefault), если для доступа к бакету требуются учетные данные.
- Name: Введите уникальное имя для вашего экземпляра TensorBoard (например,
-
Создать:
Нажмите Create. Экземпляр TensorBoard будет создан как Pod в вашем namespace.
Доступ к панели управления
После того как статус вашего экземпляра TensorBoard изменится на Running:
- Нажмите Connect рядом с именем экземпляра.
- Интерфейс TensorBoard откроется в новой вкладке.
- Теперь вы можете исследовать скаляры, графы, распределения и другие визуализации, созданные вашим обучением.
Сценарии использования
Визуализация метрик обучения
Используйте вкладку Scalars для просмотра графиков точности, loss и скорости обучения во времени. Это помогает диагностировать переобучение модели или необходимость корректировки скорости обучения.
Сравнение запусков
Если вы укажете TensorBoard на родительскую директорию, содержащую поддиректории для нескольких запусков (например, run1, run2), TensorBoard автоматически наложит метрики этих запусков, позволяя сравнивать производительность при разных гиперпараметрах.
Отладка архитектуры модели
Используйте вкладку Graphs для визуализации вычислительного графа вашей модели. Это помогает убедиться, что модель построена корректно, и выявить структурные ошибки.
Очистка
Экземпляры TensorBoard потребляют ресурсы кластера (CPU/Memory). Когда вы закончите анализ экспериментов:
- Вернитесь к списку TensorBoards.
- Нажмите кнопку Delete (иконка корзины) рядом с вашим экземпляром.
- Подтвердите удаление. Это удалит сервер визуализации, но не удалит ваши логи или модели, хранящиеся на PVC или Object Storage.