Живеем във вълнуващи времена със съобщения за авангардни технологии всяка седмица. OpenAI току-що пусна авангардния модел за текст към изображение DALLE 2.
Само няколко души получиха ранен достъп до нова AI система, която може да генерира реалистични графики от описания на естествен език. Все още е затворен за обществеността.
След това AI за стабилност пусна Стабилна дифузия модел, вариант с отворен код на DALLE2. Това стартиране промени всичко. Хората в целия интернет публикуваха бързи резултати и бяха изненадани от реалистичното изкуство.
Какво е стабилна дифузия?
Стабилна дифузия е модел за машинно обучение, способен да създава изображения от текст, да променя изображения в зависимост от текста и да попълва детайли в изображения с ниска разделителна способност или с ниска детайлност.
Той е обучен на милиарди снимки и може да осигури резултати, еквивалентни на DALL-E2 намлява MidJourney. AI за стабилност го е изобретил и е публикуван на 22 август 2022 г.
Но с ограничени местни изчислителни ресурси моделът на стабилна дифузия отнема много време, за да създаде висококачествени снимки. Изпълнението на модела онлайн с помощта на облачен доставчик ни предоставя почти безкрайни изчислителни ресурси и ни позволява да получаваме отлични резултати много по-бързо.
Хостването на модела като микроуслуга също така позволява на други творчески приложения да използват по-лесно потенциала на модела, без да се налага да се справят със сложността на изпълнението на ML модели онлайн.
В тази публикация ще се опитаме да демонстрираме как да разработим стабилен дифузионен модел и да го внедрим в AWS.
Изграждане и внедряване на стабилна дифузия
BentoML и Amazon Web Services EC2 са две опции за хостване на модела Stable Diffusion онлайн. BentoML е рамка с отворен код за мащабиране машинно обучение услуги. С BentoML ние ще изградим надеждна услуга за дисперсия и ще я внедрим в AWS EC2.
Подготовка на средата и изтегляне на стабилен модел на дифузия
Изисквания за инсталиране и клониране на хранилището.
Можете да изберете и изтеглите модела Stable Diffusion. Единичната прецизност е подходяща за CPU или GPU с повече от 10 GB VRAM. Половината прецизност е идеална за GPU с по-малко от 10GB VRAM.
Изграждане на стабилна дифузия
Ще изградим услуга BentoML, която да обслужва модела зад a RESTful API. Следващият пример използва модела с единична точност за прогнозиране и модула service.py за свързване на услугата с бизнес логиката. Можем да изложим функциите като API, като ги маркираме с @svc.api.
Освен това можем да дефинираме типовете вход и изход на API в параметрите. Крайната точка txt2img, например, получава JSON вход и произвежда изображение, докато крайната точка img2img приема изображение и JSON вход и връща изображение.
StableDiffusionRunnable дефинира основната логика на извода. Runnable отговаря за изпълнението на тръбопроводните методи txt2img на модела и изпращането на съответните входни данни. За изпълнение на логиката за извеждане на модела в APIs, персонализиран Runner е конструиран от StableDiffusionRunnable.
След това използвайте следната команда, за да стартирате услуга BentoML за тестване. Локално управление на Модел на стабилна дифузия изводът за процесорите е доста бавен. Всяка заявка ще отнеме около 5 минути за обработка.
Текст към изображение
Извеждане на текст към изображение
Файлът bentofile.yaml дефинира необходимите файлове и зависимости.
Използвайте командата по-долу, за да създадете бенто. Bento е форматът за разпространение на услуга BentoML. Това е самостоятелен архив, който съдържа всички данни и конфигурации, необходими за стартиране на услугата.
Стабилното дифузионно бенто е завършено. Ако не сте успели да генерирате правилно bento, не се паникьосвайте; можете да изтеглите предварително създаден модел, като използвате командите, изброени в следващия раздел.
Предварително изградени модели
Следват моделите за предварително изграждане:
Разположете стабилен дифузионен модел в 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.
Оставете коментар