Ми живемо в захоплюючий час, коли щотижня ми публікуємо оголошення про передові технології. OpenAI щойно випустив передову модель перетворення тексту в зображення DALLE 2.
Лише кілька людей отримали ранній доступ до нової системи штучного інтелекту, яка може генерувати реалістичну графіку з описів природною мовою. Він досі закритий для відвідування.
Стабільність AI потім випустив Стабільна дифузія модель, варіант DALLE2 з відкритим кодом. Цей запуск все змінив. Люди в Інтернеті публікували швидкі результати та були здивовані реалістичним мистецтвом.
Що таке стабільна дифузія?
Стабільна дифузія це модель машинного навчання, здатна створювати зображення з тексту, змінювати зображення залежно від тексту та заповнювати деталями зображення з низькою роздільною здатністю або низькою деталізацією.
Він був навчений на мільярдах фотографій і може забезпечити результати, еквівалентні ВІД-Є 2 та Серед Подорожі. Стабільність ШІ винайшов його, і він був оприлюднений 22 серпня 2022 року.
Але з обмеженими локальними обчислювальними ресурсами модель Stable Diffusion потребує багато часу для створення високоякісних зображень. Запуск моделі онлайн за допомогою хмарного постачальника надає нам майже нескінченні обчислювальні ресурси та дозволяє отримати чудові результати набагато швидше.
Розміщення моделі як мікросервісу також дозволяє іншим креативним програмам легше використовувати потенціал моделі без необхідності мати справу зі складнощами запуску моделей ML онлайн.
У цій публікації ми спробуємо продемонструвати, як розробити стабільну модель дифузії та розгорнути її в AWS.
Створіть і розгорніть стабільну дифузію
BentoML і Amazon Web Services EC2 – це два варіанти розміщення моделі Stable Diffusion онлайн. BentoML — це платформа з відкритим кодом для масштабування навчання за допомогою машини послуги. За допомогою BentoML ми створимо надійну службу дисперсії та розгорнемо її на AWS EC2.
Підготовка середовища та завантаження стабільної моделі дифузії
Вимоги до встановлення та клонування репозиторію.
Ви можете вибрати та завантажити модель Stable Diffusion. Одинарна точність підходить для ЦП або графічних процесорів із відеопам’яттю понад 10 ГБ. Половина точності ідеальна для графічних процесорів із менш ніж 10 ГБ відеопам’яті.
Побудова стабільної дифузії
Ми створимо сервіс BentoML для обслуговування моделі, що стоїть за a RESTful API. У наступному прикладі використовується модель єдиної точності для прогнозування та модуль 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
Щоб розгорнути bento в EC2, ми використаємо bentoctl. bentoctl може дозволити вам розгортати ваші bento на будь-якому хмарна платформа за допомогою Terraform. Для створення та застосування файлів 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. Залежно від вашої пропускної здатності завантаження зображення може зайняти багато часу. Під час розгортання bento на AWS EC2 використовуйте файли Terraform.
Щоб отримати доступ до інтерфейсу користувача Swagger, підключіться до консолі EC2 і відкрийте публічну IP-адресу в браузері. Нарешті, якщо служба Stable Diffusion BentoML більше не потрібна, видаліть розгортання.
Висновок
Ви повинні побачити, наскільки захоплюючим і потужним є SD і супутні моделі. Час покаже, чи будемо ми повторювати цю концепцію далі чи переходимо до більш складних підходів.
Однак наразі існують ініціативи щодо навчання більших моделей із коригуванням, щоб краще сприймати оточення та інструкції. Ми спробували розробити службу Stable Diffusion за допомогою BentoML і розгорнули її в AWS EC2.
Нам вдалося запустити модель Stable Diffusion на більш потужному апаратному забезпеченні, створити зображення з низькою затримкою та вийти за межі одного комп’ютера, розгорнувши службу на AWS EC2.
залишити коментар