Vivemu in tempi eccitanti, cù annunzii annantu à a tecnulugia di punta ogni settimana. OpenAI hà appena liberatu u mudellu d'avanguardia testu-à-imaghjini DALLE 2.
Solu uni pochi di persone anu acquistatu un accessu anticipatu à un novu sistema AI chì pò generà gràfiche realistiche da descrizzione di lingua naturale. Hè sempre chjusu à u publicu.
Stability AI hà poi liberatu u Diffusione stabile mudellu, una variante open-source di DALLE2. Stu lanciu hà cambiatu tuttu. E persone in tuttu l'Internet publicavanu risultati rapidi è sò stati sorpresi da l'arti realistu.
Cosa hè a diffusione stabile?
Diffusione stabile hè un mudellu d'apprendimentu automaticu capace di creà immagini da u testu, cambià l'imaghjini secondu u testu, è riempie i dettagli nantu à l'imaghjini à bassa risoluzione o pocu dettagliu.
Hè statu furmatu nantu à miliardi di ritratti è pò purtà risultati equivalenti à DALL-E2 e Mid Journey. Stabilità AI l'hà inventatu, è hè statu publicatu u 22 d'aostu di u 2022.
Ma cù risorse di computazione lucali limitati, u mudellu di diffusione stabile piglia assai tempu per creà ritratti d'alta qualità. Eseguisce u mudellu in linea cù un fornitore di nuvola ci furnisce risorse computazionali quasi infinite è ci permette di acquistà risultati eccellenti assai più veloce.
L'ospitu di u mudellu cum'è un microserviziu permette ancu à altre app creative di sfruttà più facilmente u potenziale di u mudellu senza avè da trattà cù e cumplessità di l'esecuzione di mudelli ML in linea.
In questu post, pruveremu di dimustrà cumu sviluppà un mudellu di diffusione stabile è implementà à AWS.
Custruisce è Implementa una diffusione stabile
BentoML è Amazon Web Services EC2 sò duie opzioni per ospitu u mudellu Stable Diffusion in linea. BentoML hè un framework open-source per a scala machine learning servizii. Cù BentoML, custruiremu un serviziu di dispersione affidabile è implementà à AWS EC2.
Preparazione di l 'ambienti è scaricà mudellu diffusion stadda
Installa i requisiti è clone u repository.
Pudete selezziunà è scaricà u mudellu di diffusione stabile. A precisione unica hè adattata per CPU o GPU cù più di 10 GB di VRAM. A mità di precisione hè ideale per GPU cù menu di 10 GB di VRAM.
Custruisce a diffusione stabile
Custruiremu un serviziu BentoML per serve u mudellu daretu à a API RESTful. L'esempiu seguente usa u mudellu di precisione unicu per a prediczione è u modulu service.py per cunnette u serviziu à a logica cummerciale. Pudemu espose e funzioni cum'è API taggenduli cù @svc.api.
Inoltre, pudemu definisce i tipi di input è output di l'API in i paràmetri. L'endpoint txt2img, per esempiu, riceve un input JSON è pruduce un output Image, mentri l'endpoint img2img accetta una Image è un input JSON è torna un output Image.
Un StableDiffusionRunnable definisce a logica di inferenza essenziale. U runnable hè incaricatu di eseguisce i metudi di pipe txt2img di u mudellu è di mandà l'inputs pertinenti. Per eseguisce a logica di inferenza di mudellu in l'API, un Runner persunalizatu hè custruitu da u StableDiffusionRunnable.
Allora, aduprate u cumandimu seguitu per inizià un serviziu BentoML per a prova. Eseguisce localmente u Mudellu di diffusione stabile L'inferenza nantu à i CPU hè piuttostu lenta. Ogni dumanda duverà circa 5 minuti per processà.
Testu à imagine
U testu à l'imagine
U schedariu bentofile.yaml definisce i schedarii necessarii è dipendenze.
Aduprate u cumandimu sottu per custruisce un bento. Un Bento hè u formatu di distribuzione per un serviziu BentoML. Hè un archiviu autonomu chì cuntene tutte e dati è e cunfigurazioni necessarii per inizià u serviziu.
U bento Stable Diffusion hè statu finitu. Se ùn avete micca pussutu generà bè u bento, ùn panicu; pudete scaricà mudellu pre-custruitu cù i cumandamenti elencati in a sezione dopu.
Modelli pre-custruiti
Eccu i mudelli pre-custruiti:
Implementa un mudellu di diffusione stabile à EC2
Per implementà u bento à EC2, useremu bentoctl. bentoctl pò permette di implementà i vostri bentos à qualsiasi piattaforma nuvola utilizendu Terraform. Per custruisce è applicà i fugliali Terraform, installate l'operatore AWS EC2.
In u schedariu config.yaml di implementazione, a implementazione hè digià cunfigurata. Per piacè sentite liberu di edità à i vostri bisogni. U Bento hè implementatu per automaticamente in un host g4dn.xlarge cù u Deep Learning AMI GPU PyTorch 1.12.0 (Ubuntu 20.04) AMI nantu à a regione us-west-1.
Crea i schedari Terraform avà. Crea l'immagine Docker è caricala in AWS ECR. Sicondu a vostra larghezza di banda, a carica di l'imaghjini pò piglià assai tempu. Per implementà u bento in AWS EC2, utilizate i schedari Terraform.
Per accede à u Swagger UI, cunnette à a cunsola EC2 è apre l'indirizzu IP publicu in un navigatore. Infine, se u serviziu Stable Diffusion BentoML ùn hè più necessariu, sguassate a implementazione.
cunchiusioni
Duvete esse capace di vede quantu sò affascinanti è putenti SD è i so mudelli di cumpagnie. U tempu dirà s'ellu iteraremu nantu à u cuncettu più o si passa à approcci più sofisticati.
Tuttavia, ci sò attualmente iniziative in corso per furmà mudelli più grandi cù aghjustamenti per capisce megliu l'ambienti è l'istruzzioni. Avemu pruvatu à sviluppà u serviziu Stable Diffusion utilizendu BentoML è l'hà implementatu in AWS EC2.
Pudemu eseguisce u mudellu di diffusione stabile nantu à hardware più putente, creà stampi cù bassa latenza, è estenderà oltre un solu computer implementendu u serviziu in AWS EC2.
Lascia un Audiolibro