Vi lever i spændende tider, med meddelelser om banebrydende teknologi hver uge. OpenAI har netop frigivet den banebrydende tekst-til-billede model DALLE 2.
Kun få personer fik tidlig adgang til et nyt AI-system, der kan generere realistisk grafik ud fra naturlige sprogbeskrivelser. Det er stadig lukket for offentligheden.
Stabilitet AI frigav derefter Stabil diffusion model, en open source-variant af DALLE2. Denne lancering har ændret alt. Folk over hele internettet udgav hurtige resultater og blev overrasket over realistisk kunst.
Hvad er stabil diffusion?
Stabil diffusion er en maskinlæringsmodel, der er i stand til at skabe billeder ud fra tekst, ændre billeder afhængigt af teksten og udfylde detaljer på billeder med lav opløsning eller lav detalje.
Den blev trænet på milliarder af fotos og kan levere resultater svarende til DALL-E2 , MidJourney. Stabilitet AI opfandt det, og det blev offentliggjort den 22. august 2022.
Men med begrænsede lokale beregningsressourcer tager Stable Diffusion-modellen lang tid at skabe billeder af høj kvalitet. At køre modellen online ved hjælp af en cloud-udbyder giver os næsten uendelige beregningsressourcer og giver os mulighed for at opnå fremragende resultater meget hurtigere.
Hosting af modellen som en mikroservice giver også andre kreative apps mulighed for lettere at udnytte modellens potentiale uden at skulle håndtere kompleksiteten ved at køre ML-modeller online.
I dette indlæg vil vi forsøge at demonstrere, hvordan man udvikler en stabil diffusionsmodel og implementerer den til AWS.
Byg og implementer stabil diffusion
BentoML og Amazon Web Services EC2 er to muligheder for at hoste den stabile diffusionsmodel online. BentoML er en open source-ramme til skalering machine learning tjenester. Med BentoML vil vi bygge en pålidelig spredningstjeneste og implementere den til AWS EC2.
Forberedelse af miljøet og download af stabil diffusionsmodel
Installer krav og klon depotet.
Du kan vælge og downloade den stabile diffusionsmodel. Enkelt præcision er velegnet til CPU'er eller GPU'er med mere end 10 GB VRAM. Halv præcision er ideel til GPU'er med mindre end 10 GB VRAM.
Bygningsstabil diffusion
Vi vil bygge en BentoML-tjeneste til at tjene modellen bag en RESTful API. Følgende eksempel bruger den enkelte præcisionsmodel til forudsigelse og service.py-modulet til at forbinde tjenesten med forretningslogik. Vi kan eksponere funktionerne som API'er ved at tagge dem med @svc.api.
Ydermere kan vi definere API'ernes input- og outputtyper i parametrene. txt2img-endepunktet modtager for eksempel et JSON-input og producerer et billedoutput, hvorimod img2img-endepunktet accepterer et billede og et JSON-input og returnerer et billedoutput.
En StableDiffusionRunnable definerer den væsentlige inferenslogik. Den runnable er ansvarlig for at køre modellens txt2img pipe metoder og indsende de relevante input. For at køre modelinferenslogikken i API'erne konstrueres en brugerdefineret Runner fra StableDiffusionRunnable.
Brug derefter følgende kommando til at starte en BentoML-tjeneste til test. Lokalt kører Stabil diffusionsmodel slutningen om CPU'er er ret træg. Hver anmodning vil tage omkring 5 minutter at behandle.
Tekst til billede
Tekst til billede output
Filen bentofile.yaml definerer de nødvendige filer og afhængigheder.
Brug kommandoen nedenfor til at bygge en bento. En Bento er distributionsformatet for en BentoML-tjeneste. Det er et selvstændigt arkiv, der indeholder alle de data og konfigurationer, der er nødvendige for at starte tjenesten.
Den stabile diffusionsbento er afsluttet. Hvis du ikke var i stand til at generere bento ordentligt, skal du ikke gå i panik; du kan downloade en præbygget model ved hjælp af kommandoerne i næste afsnit.
Forudbyggede modeller
Følgende er pre-build modellerne:
Implementer stabil diffusionsmodel til EC2
For at implementere bento til EC2, vil vi bruge bentoctl. bentoctl kan lade dig implementere dine bentos til enhver sky platform ved hjælp af Terraform. For at bygge og anvende Terraform-filer skal du installere AWS EC2-operatøren.
I installationsfilen config.yaml er installationen allerede blevet konfigureret. Du er velkommen til at redigere efter dine krav. Bento er som standard installeret på en g4dn.xlarge-vært med Deep Learning AMI GPU PyTorch 1.12.0 (Ubuntu 20.04) AMI på us-west-1-regionen.
Opret Terraform-filerne nu. Opret Docker-billedet og upload det til AWS ECR. Afhængigt af din båndbredde kan upload af billeder tage lang tid. Når du installerer bento til AWS EC2, skal du bruge Terraform-filerne.
For at få adgang til Swagger UI skal du oprette forbindelse til EC2-konsollen og åbne den offentlige IP-adresse i en browser. Til sidst, hvis Stabil Diffusion BentoML-tjenesten ikke længere er påkrævet, skal du fjerne implementeringen.
Konklusion
Du burde være i stand til at se, hvor fascinerende og kraftfuld SD og dets ledsagende modeller er. Tiden vil vise, om vi vil iterere konceptet yderligere eller gå videre til mere sofistikerede tilgange.
Der er dog i øjeblikket initiativer i gang for at træne større modeller med justeringer for bedre at få fat i omgivelserne og instruktionerne. Vi forsøgte at udvikle Stable Diffusion-tjenesten ved hjælp af BentoML og implementerede den til AWS EC2.
Vi var i stand til at køre Stable Diffusion-modellen på mere kraftfuld hardware, skabe billeder med lav latenstid og strække os ud over en enkelt computer ved at implementere tjenesten på AWS EC2.
Giv en kommentar