Մենք ապրում ենք հետաքրքիր ժամանակներում՝ ամեն շաբաթ նորագույն տեխնոլոգիաների մասին հայտարարություններով: OpenAI-ը հենց նոր թողարկեց տեքստից պատկեր DALLE 2 ժամանակակից մոդելը:
Միայն մի քանի մարդ վաղաժամկետ հասանելիություն ձեռք բերեց նոր արհեստական ինտելեկտի համակարգին, որը կարող է ստեղծել իրատեսական գրաֆիկա բնական լեզվի նկարագրություններից: Այն դեռ փակ է հանրության համար։
Stability AI-ն այնուհետև թողարկեց Կայուն դիֆուզիոն մոդել, DALLE2-ի բաց կոդով տարբերակ: Այս մեկնարկը փոխել է ամեն ինչ: Մարդիկ ամբողջ համացանցում հրապարակում էին արագ արդյունքներ և զարմանում ռեալիստական արվեստով:
Ի՞նչ է կայուն դիֆուզիան:
Կայուն դիֆուզիոն մեքենայական ուսուցման մոդել է, որն ի վիճակի է տեքստից պատկերներ ստեղծել, փոխել պատկերները՝ կախված տեքստից և մանրամասներ լրացնել ցածր լուծաչափով կամ ցածր մանրամասն պատկերների վրա:
Այն վերապատրաստվել է միլիարդավոր լուսանկարների վրա և կարող է ապահովել համարժեք արդյունքներ DALL-E2 և MidJourney. Կայունություն AI հորինել է այն, և այն հրապարակվել է 22 թվականի օգոստոսի 2022-ին։
Բայց սահմանափակ տեղական հաշվողական ռեսուրսներով, Stable Diffusion մոդելը երկար ժամանակ է պահանջում բարձրորակ նկարներ ստեղծելու համար: Ամպային մատակարարի միջոցով մոդելի առցանց գործարկումը մեզ տալիս է գրեթե անսահման հաշվողական ռեսուրսներ և թույլ է տալիս մեզ շատ ավելի արագ ստանալ գերազանց արդյունքներ:
Մոդելի որպես միկրոսերվիս հոսթինգը նաև թույլ է տալիս այլ ստեղծագործական հավելվածներին ավելի հեշտությամբ օգտագործել մոդելի ներուժը՝ առանց առցանց ML մոդելների գործարկման բարդությունների հետ առնչվելու:
Այս գրառման մեջ մենք կփորձենք ցույց տալ, թե ինչպես զարգացնել կայուն դիֆուզիոն մոդել և այն տեղակայել AWS-ում:
Կառուցեք և գործարկեք կայուն դիֆուզիոն
BentoML և Amazon Web Services EC2-ը Stable Diffusion մոդելը առցանց հյուրընկալելու երկու տարբերակ են: BentoML-ը մասշտաբավորման բաց կոդով շրջանակ է Machine Learning ծառայություններ։ BentoML-ի միջոցով մենք կստեղծենք հուսալի ցրման ծառայություն և կտեղակայենք այն AWS EC2-ում:
Շրջակա միջավայրի պատրաստում և կայուն դիֆուզիոն մոդելի ներբեռնում
Տեղադրեք պահանջները և կլոնավորեք պահեստը:
Դուք կարող եք ընտրել և ներբեռնել Stable Diffusion մոդելը: Single precision-ը հարմար է 10 ԳԲ-ից ավելի VRAM ունեցող պրոցեսորների կամ GPU-ների համար: Կես ճշգրտությունը իդեալական է 10 ԳԲ-ից պակաս VRAM ունեցող GPU-ների համար:
Կառուցելով կայուն դիֆուզիոն
Մենք կկառուցենք BentoML ծառայություն՝ a-ի հետևում գտնվող մոդելին սպասարկելու համար RESTful API- ն. Հետևյալ օրինակը օգտագործում է կանխատեսման մեկ ճշգրիտ մոդելը և service.py մոդուլը՝ ծառայությունը բիզնես տրամաբանությանը միացնելու համար: Մենք կարող ենք բացահայտել գործառույթները որպես API՝ նշելով դրանք @svc.api-ով:
Ավելին, մենք կարող ենք սահմանել API-ների մուտքային և ելքային տեսակները պարամետրերում: txt2img վերջնակետը, օրինակ, ստանում է JSON մուտքագրում և արտադրում Image ելք, մինչդեռ img2img վերջնակետն ընդունում է Պատկեր և JSON մուտքագրում և վերադարձնում Պատկերի ելք:
StableDiffusionRunnable-ը սահմանում է էական եզրակացության տրամաբանությունը: Runnable-ը պատասխանատու է մոդելի txt2img խողովակի մեթոդների գործարկման և համապատասխան մուտքերի ուղարկման համար: API-ներում մոդելի եզրակացության տրամաբանությունը գործարկելու համար StableDiffusionRunnable-ից ստեղծվում է հատուկ Runner:
Այնուհետև օգտագործեք հետևյալ հրամանը՝ թեստավորման համար BentoML ծառայություն սկսելու համար: Տեղական վազում է Կայուն դիֆուզիոն մոդել CPU-ների վերաբերյալ եզրակացությունը բավականին դանդաղ է: Յուրաքանչյուր հարցումը մշակելու համար կպահանջվի մոտ 5 րոպե:
Տեքստ՝ պատկեր
Տեքստից պատկերի ելք
Bentofile.yaml ֆայլը սահմանում է պահանջվող ֆայլերը և կախվածությունները:
Բենտո կառուցելու համար օգտագործեք ստորև նշված հրամանը: Bento-ն BentoML ծառայության բաշխման ձևաչափն է: Դա ինքնուրույն արխիվ է, որը պարունակում է բոլոր տվյալները և կոնֆիգուրացիաները, որոնք անհրաժեշտ են ծառայությունը սկսելու համար:
Stable Diffusion Bento-ն ավարտված է: Եթե չկարողացաք ճիշտ ձևավորել բենտոն, մի վախեցեք. կարող եք ներբեռնել նախապես կառուցված մոդելը՝ օգտագործելով հաջորդ բաժնում թվարկված հրամանները:
Նախնական կառուցման մոդելներ
Հետևյալը նախնական կառուցման մոդելներն են.
Տեղադրեք Stable Diffusion մոդելը EC2-ում
Բենտոն EC2-ում տեղակայելու համար մենք կօգտագործենք bentoctl: bentoctl-ը կարող է ձեզ թույլ տալ տեղակայել ձեր բենտոները ցանկացածի վրա ամպային հարթակ օգտագործելով Terraform: Terraform ֆայլեր ստեղծելու և կիրառելու համար տեղադրեք AWS EC2 օպերատորը:
Deployment 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 UI մուտք գործելու համար միացեք EC2 վահանակին և բացեք հանրային IP հասցեն բրաուզերում: Ի վերջո, եթե Stable Diffusion BentoML ծառայությունն այլևս չի պահանջվում, հեռացրեք տեղակայումը:
Եզրափակում
Դուք պետք է կարողանաք տեսնել, թե որքան հետաքրքրաշարժ և հզոր են SD-ն և նրա ուղեկից մոդելները: Ժամանակը ցույց կտա՝ մենք կկրկնե՞նք հայեցակարգը, թե՞ կանցնենք ավելի բարդ մոտեցումների:
Այնուամենայնիվ, ներկայումս նախաձեռնություններ կան՝ ավելի մեծ մոդելներ վարժեցնելու համար՝ ճշգրտումներ կատարելով, որպեսզի ավելի լավ ըմբռնեն շրջապատը և հրահանգները: Մենք փորձեցինք զարգացնել Stable Diffusion ծառայությունը BentoML-ի միջոցով և այն տեղակայեցինք AWS EC2-ում:
Մենք կարողացանք գործարկել Stable Diffusion մոդելը ավելի հզոր սարքաշարի վրա, ստեղծել նկարներ ցածր ուշացումով և դուրս գալ մեկ համակարգչից՝ ծառայությունը տեղակայելով AWS EC2-ում:
Թողնել գրառում