Мы живем в захватывающее время, когда каждую неделю появляются объявления о передовых технологиях. OpenAI только что выпустила передовую модель преобразования текста в изображение DALLE 2.
Лишь несколько человек получили ранний доступ к новой системе искусственного интеллекта, которая может генерировать реалистичную графику из описаний на естественном языке. Он по-прежнему закрыт для публики.
Затем ИИ стабильности выпустил Стабильная диффузия модель, вариант DALLE2 с открытым исходным кодом. Этот запуск изменил все. Люди по всему Интернету публиковали быстрые результаты и удивлялись реалистичному искусству.
Что такое стабильная диффузия?
Стабильная диффузия — это модель машинного обучения, способная создавать изображения из текста, изменять изображения в зависимости от текста и заполнять детали изображений с низким разрешением или низкой детализацией.
Он был обучен на миллиардах фотографий и может давать результаты, эквивалентные ДАЛЛ-Э 2 и Середина пути. Стабильность ИИ изобрел его, и он был обнародован 22 августа 2022 года.
Но при ограниченных локальных вычислительных ресурсах модель Stable Diffusion требует много времени для создания качественных картинок. Запуск модели в режиме онлайн с использованием облачного провайдера предоставляет нам почти бесконечные вычислительные ресурсы и позволяет гораздо быстрее получать превосходные результаты.
Размещение модели в виде микросервиса также позволяет другим творческим приложениям с большей готовностью использовать потенциал модели, не сталкиваясь со сложностями запуска моделей машинного обучения в Интернете.
В этом посте мы попытаемся продемонстрировать, как разработать стабильную модель распространения и развернуть ее на AWS.
Создание и развертывание стабильной диффузии
БентоМЛ и Amazon Web Services EC2 — два варианта онлайн-хостинга модели Stable Diffusion. BentoML — это платформа с открытым исходным кодом для масштабирования. обучение с помощью машины Сервисы. С помощью BentoML мы создадим надежную службу дисперсии и развернем ее на AWS EC2.
Подготовка среды и загрузка модели стабильной диффузии
Установите требования и клонируйте репозиторий.
Вы можете выбрать и загрузить модель Stable Diffusion. Одинарная точность подходит для процессоров или графических процессоров с более чем 10 ГБ видеопамяти. Половинная точность идеальна для графических процессоров с объемом видеопамяти менее 10 ГБ.
Построение стабильной диффузии
Мы создадим сервис BentoML для обслуживания модели, лежащей в основе API RESTful. В следующем примере используется модель одинарной точности для прогнозирования и модуль service.py для подключения службы к бизнес-логике. Мы можем представить функции как API, пометив их тегом @svc.api.
Кроме того, мы можем определить типы ввода и вывода API в параметрах. Например, конечная точка txt2img получает входные данные JSON и создает выходные данные Image, тогда как конечная точка img2img принимает входные данные Image и JSON и возвращает выходные данные Image.
StableDiffusionRunnable определяет основную логику вывода. Runnable отвечает за запуск методов канала txt2img модели и отправку соответствующих входных данных. Для запуска логики вывода модели в API настраиваемый Runner создается из StableDiffusionRunnable.
Затем используйте следующую команду, чтобы запустить службу BentoML для тестирования. Локально работает Модель стабильной диффузии вывод на процессорах довольно вялый. Каждый запрос будет обрабатываться около 5 минут.
Текст к изображению
Вывод текста в изображение
Файл bentofile.yaml определяет необходимые файлы и зависимости.
Используйте приведенную ниже команду, чтобы построить бенто. Bento — это формат распространения службы BentoML. Это автономный архив, содержащий все данные и конфигурации, необходимые для запуска службы.
Бенто «Стабильная диффузия» завершен. Если вам не удалось правильно приготовить бэнто, не паникуйте; вы можете загрузить готовую модель, используя команды, перечисленные в следующем разделе.
Готовые модели
Ниже приведены готовые модели:
Разверните модель Stable Diffusion в EC2
Чтобы развернуть бенто в EC2, мы будем использовать bentoctl. bentoctl позволяет вам развернуть бэнто на любой облачная платформа с помощью Терраформ. Для создания и применения файлов Terraform установите оператор AWS EC2.
В файле развертывания config.yaml развертывание уже настроено. Пожалуйста, не стесняйтесь редактировать в соответствии с вашими требованиями. Bento развернут по умолчанию на хосте g4dn.xlarge с Глубокое обучение AMI GPU PyTorch 1.12.0 (Ubuntu 20.04) AMI в регионе us-west-1.
Создайте файлы Terraform сейчас. Создайте образ Docker и загрузите его в AWS ECR. В зависимости от вашей пропускной способности загрузка изображений может занять много времени. При развертывании бенто на AWS EC2 используйте файлы Terraform.
Чтобы получить доступ к пользовательскому интерфейсу Swagger, подключитесь к консоли EC2 и откройте общедоступный IP-адрес в браузере. Наконец, если служба Stable Diffusion BentoML больше не требуется, удалите развертывание.
Заключение
Вы должны увидеть, насколько увлекательными и мощными являются SD и его сопутствующие модели. Время покажет, будем ли мы развивать эту концепцию дальше или перейдем к более сложным подходам.
Однако в настоящее время предпринимаются инициативы по обучению более крупных моделей с корректировками, позволяющими лучше понимать окружающую среду и инструкции. Мы попытались разработать сервис Stable Diffusion с помощью BentoML и развернули его на AWS EC2.
Мы смогли запустить модель Stable Diffusion на более мощном оборудовании, создавать изображения с малой задержкой и выйти за рамки одного компьютера, развернув сервис на AWS EC2.
Оставьте комментарий