Живееме во возбудливи времиња, со најави за врвна технологија секоја недела. OpenAI штотуку го објави најсовремениот модел од текст во слика DALLE 2.
Само неколку луѓе добија ран пристап до нов систем за вештачка интелигенција што може да генерира реални графики од описи на природни јазици. Сè уште е затворен за јавноста.
Стабилност AI потоа го ослободи Стабилна дифузија модел, варијанта со отворен код на DALLE2. Ова лансирање промени сè. Луѓето ширум интернет објавуваа брзи резултати и беа изненадени од реалистичната уметност.
Што е стабилна дифузија?
Стабилна дифузија е модел за машинско учење способен да создава слики од текст, да менува слики во зависност од текстот и да пополнува детали за слики со мала резолуција или ниски детали.
Беше обучен на милијарди фотографии и може да даде резултати еквивалентни на ДАЛ-Е2 Средно патување. Стабилна вештачка интелигенција го измислил, а бил објавен во јавноста на 22 август 2022 година.
Но, со ограничени локални пресметковни ресурси, на моделот Stable Diffusion му треба долго време за да создаде висококвалитетни слики. Работењето на моделот онлајн со помош на провајдер на облак ни обезбедува речиси бесконечни пресметковни ресурси и ни овозможува да стекнеме одлични резултати многу побрзо.
Хостирањето на моделот како микросервис, исто така, им овозможува на другите креативни апликации полесно да го искористат потенцијалот на моделот без да мора да се справуваат со сложеноста на водење на ML моделите на интернет.
Во овој пост, ќе се обидеме да покажеме како да развиеме стабилен модел на дифузија и да го распоредиме на AWS.
Изградете и распоредете стабилна дифузија
BentoML и Amazon Web Services EC2 се две опции за хостирање на моделот Stable Diffusion онлајн. BentoML е рамка со отворен код за скалирање машинско учење услуги. Со BentoML, ќе изградиме сигурна услуга за дисперзија и ќе ја распоредиме на AWS EC2.
Подготовка на околината и преземање на стабилен модел на дифузија
Инсталирајте ги барањата и клонирајте го складиштето.
Можете да го изберете и преземете моделот за стабилна дифузија. Единечната прецизност е погодна за процесори или графички процесори со повеќе од 10 GB VRAM. Половина прецизност е идеална за графички процесори со помалку од 10 GB VRAM.
Градење стабилна дифузија
Ќе изградиме услуга BentoML за да му служи на моделот зад a RESTful API. Следниот пример го користи единствениот прецизен модел за предвидување и модулот service.py за поврзување на услугата со деловната логика. Можеме да ги изложиме функциите како API со означување на нив со @svc.api.
Понатаму, можеме да ги дефинираме влезните и излезните типови на API во параметрите. Крајната точка txt2img, на пример, прима влез JSON и произведува излез на слика, додека крајната точка img2img прифаќа слика и влез JSON и враќа излез на слика.
StableDiffusionRunnable ја дефинира основната логика на заклучоци. Runnable е задолжен за извршување на методите на цевката txt2img на моделот и испраќање на соодветните влезови. За извршување на логиката за заклучување на моделот во API-ите, прилагоден Runner е конструиран од StableDiffusionRunnable.
Потоа, користете ја следнава команда за да започнете услуга BentoML за тестирање. Локално водење на Модел на стабилна дифузија заклучокот за процесорите е прилично слаб. Обработката на секое барање ќе трае околу 5 минути.
Текст до слика
Излез од текст во слика
Датотеката bentofile.yaml ги дефинира потребните датотеки и зависности.
Користете ја командата подолу за да изградите бенто. Bento е формат на дистрибуција за услуга BentoML. Тоа е самостојна архива која ги содржи сите податоци и конфигурации потребни за стартување на услугата.
Стабилната дифузија бенто е завршена. Ако не можевте правилно да генерирате бенто, не паничете; можете да преземете претходно изграден модел користејќи ги командите наведени во следниот дел.
Модели за пред-изградба
Следниве се моделите за пред-изградба:
Распоредете го моделот за стабилна дифузија на EC2
За распоредување на бенто на EC2, ќе користиме бентоктл. bentoctl може да ви дозволи да ги распоредите вашите бентоси на кој било платформа за облак користејќи Terraform. За да изградите и примените Terraform датотеки, инсталирајте го операторот AWS EC2.
Во датотеката за распоредување config.yaml, распоредувањето е веќе конфигурирано. Ве молиме слободно уредете според вашите барања. Bento е стандардно распореден на g4dn.xlarge домаќин со Длабоко учење AMI GPU PyTorch 1.12.0 (Ubuntu 20.04) AMI на регионот на САД-запад-1.
Креирајте ги датотеките Terraform сега. Направете ја сликата на Docker и поставете ја на AWS ECR. Во зависност од вашиот пропусен опсег, поставувањето на слики може да потрае долго време. При распоредување на bento на AWS EC2, користете ги датотеките Terraform.
За да пристапите до Swagger UI, поврзете се со EC2 конзолата и отворете ја јавната IP адреса во прелистувачот. Конечно, ако услугата Stable Diffusion BentoML повеќе не е потребна, отстранете го распоредувањето.
Заклучок
Треба да можете да видите колку се фасцинантни и моќни SD и неговите придружни модели. Времето ќе покаже дали ќе го повториме концептот понатаму или ќе продолжиме кон пософистицирани пристапи.
Сепак, во моментов има иницијативи за обука на поголеми модели со прилагодувања за подобро разбирање на околината и упатствата. Се обидовме да ја развиеме услугата за стабилна дифузија користејќи BentoML и ја распоредивме на AWS EC2.
Можевме да го извршиме моделот Stable Diffusion на помоќен хардвер, да создаваме слики со мала латентност и да се прошириме надвор од еден компјутер со распоредување на услугата на AWS EC2.
Оставете Одговор