Создание окружения:
conda env create -f env.yml
conda activate airi_env
- Изучить теорию DDPM, classifier guidance, classifier-free guidance.
Для проверки того, понимаете ли вы как работает диффузия, нужно уметь отвечать на следующие вопросы
- Как выглядит итерация обучения диффузионной модели
- Как выглядит переход от x_t к x_{t-1} на этапе генерации
- Как необходимо модифицировать итерацию генерации, чтобы получить classifier guidance
- Как необходимо модифицировать итерацию генерации и модель, чтобы получить classifier-free guidance
- Разобраться в коде. Надо однозначно понимать, что происходит в файле ddpm_sde.py, так как в нем описаны прямой и обратный процесс диффузии, и в файле diffusion.py, это основной класс для обучения модели.
- Дописать код обучения модели в функциях calc_score, calc_loss sample_images. Это задание преимущественно для Вити и Ильи. Так как это база, с которой дальше мы будем работать.
- Безусловная генерация
- Поставить обучение базовой модели безусловной генерации на MNIST
- Поставить генерацию 10_000 картинок
- *Будет круто написать код DDP для параллельного сэмплирования, потому что это долгая операция
- Classifier Guidance
- Поставить обучаться классификатор на шумных данных, он будет использоваться при генерации
- Поставить обучаться классификатор на чистых данных, он будет использоваться для оценки качества условной генерации
- Написать код для условной генерации
- Поставить условную генерацию, для каждого класса 1000 картинок
- Classifier-free Guidance
- *Переписать класс юнета, чтобы он выглядел более читаемо, проверить, что работает также
- Внести изменения в юнет для условной генерации, желательно завести новый файл, чтобы в итоговой репе можно было выбирать, что использовать
- Обучить условную модель диффузии
- Написать код для условной генерации
- Поставить генерацию, аналогично как в classifier-guidance
- Control-Net
- Прочитать статью
- Сформулировать какие изменения нужно внести в архитектуру, и нарисовать схему
- Внести изменения в архитектуру, желательно завести новый файл, чтобы в итоговой репе можно было выбирать, что использовать
- Обучить условную модель диффузии
- Поставить генерацию, аналогично как в classifier-guidance
- Метрики
- Используем FID для оценки качества картинок
- Используем точность чистого классификатора для оценки качества условной генерации