Как отправить задания SLURM на кластер
Отправка заданий SLURM на кластер
Руководство по отправке задач SLURM на кластер, особенно для глубокого обучения и науки о данных
Вы уже привыкли обучать модели глубокого обучения с помощью бесплатных GPU Google Colab, но теперь вы готовы перейти на новый уровень и использовать мощь кластера, и у вас нет понятия, как это сделать? Вы находитесь в нужном месте! 🚀
Во время моей научно-исследовательской стажировки в области нейронаук в Кембриджском университете, я обучал большие модели для задач компьютерного зрения, и бесплатного GPU, предоставленного Google, было недостаточно, поэтому я решил использовать локальный кластер.
Однако было очень мало документации, и мне пришлось просить у других людей скрипты, чтобы попытаться их понять, и более или менее собрал несколько вещей, которые оказались полезными для меня. Теперь я собрал все, что необходимо для запуска базовых python-скриптов. Это руководство – то, которое мне хотелось бы иметь во время моего пребывания там.
Типичный случай использования машинного обучения
Допустим, вы хотите обучить классификатор птиц с 500 различными классами и высоким разрешением изображений. Что-то, что никогда не запустится на Google Colab.
- 10 лучших инструментов автоматизации рабочих процессов
- Как вы бы легко научились чему-либо с помощью ChatGPT?
- Понимание селекторов Playwright Руководство
Первое, что вам нужно сделать, – убедиться, что ваш скрипт обучения модели глубокого обучения готов к работе. В этом скрипте должен быть необходимый код для загрузки набора данных, определения архитектуры вашей нейронной сети и настройки цикла обучения.
Вы должны иметь возможность запустить этот скрипт из вашего терминала.
Например, предположим, у вас есть скрипт под названием train_bird_classifier.py
, вы должны иметь возможность запустить его так:
python train_bird_classifier.py
Этот скрипт может выглядеть примерно так:
# train_bird_classifier.pyimport torchfrom torch.utils.data import DataLoader# Предполагая, что необходимые функции, модели и преобразования определены в различных файлах.from utils import build_model, BirdDataset, collate_fn, train_modelfrom transformations import train_transforms, test_transformsdef main(): device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") # Настройка набора данных и загрузчика данных train_dataset = BirdDataset('data/train/', transform=train_transforms) train_loader =…