Inhaltsverzeichnis[Ausblenden][Zeigen]
Wir leben in aufregenden Zeiten, in denen jede Woche Ankündigungen über Spitzentechnologie veröffentlicht werden. OpenAI hat gerade das hochmoderne Text-to-Image-Modell DALLE 2 veröffentlicht.
Nur wenige Menschen erhielten frühzeitig Zugang zu einem neuen KI-System, das realistische Grafiken aus Beschreibungen in natürlicher Sprache generieren kann. Es ist weiterhin für die Öffentlichkeit geschlossen.
Stability AI veröffentlichte dann die Stable Diffusion model, eine Open-Source-Variante von DALLE2. Dieser Launch hat alles verändert. Überall im Internet veröffentlichten Menschen schnelle Ergebnisse und waren von realistischer Kunst überrascht.
Was ist stabile Diffusion?
Stable Diffusion ist ein maschinelles Lernmodell, das in der Lage ist, Bilder aus Text zu erstellen, Bilder je nach Text zu ändern und Details in Bildern mit niedriger Auflösung oder geringen Details auszufüllen.
Es wurde auf Milliarden von Fotos trainiert und kann äquivalente Ergebnisse liefern DALL-E2 machen Mitte der Reise. Stabilität KI erfunden und am 22. August 2022 veröffentlicht.
Bei begrenzten lokalen Rechenressourcen benötigt das Stable Diffusion-Modell jedoch viel Zeit, um qualitativ hochwertige Bilder zu erstellen. Die Ausführung des Modells online über einen Cloud-Anbieter bietet uns nahezu unbegrenzte Rechenressourcen und ermöglicht es uns, viel schneller hervorragende Ergebnisse zu erzielen.
Das Hosten des Modells als Microservice ermöglicht es auch anderen kreativen Apps, das Potenzial des Modells besser auszuschöpfen, ohne sich mit der Komplexität der Online-Ausführung von ML-Modellen befassen zu müssen.
In diesem Beitrag werden wir versuchen zu demonstrieren, wie man ein stabiles Diffusionsmodell entwickelt und es in AWS bereitstellt.
Erstellen und Bereitstellen von Stable Diffusion
BentoML und Amazon Web Services EC2 sind zwei Optionen für das Online-Hosting des Stable Diffusion-Modells. BentoML ist ein Open-Source-Framework zur Skalierung Maschinelles Lernen Dienstleistungen. Mit BentoML werden wir einen zuverlässigen Dispersionsdienst aufbauen und ihn auf AWS EC2 bereitstellen.
Umgebung vorbereiten und stabiles Diffusionsmodell herunterladen
Installieren Sie Anforderungen und klonen Sie das Repository.
Sie können das Stable Diffusion-Modell auswählen und herunterladen. Einfache Genauigkeit ist für CPUs oder GPUs mit mehr als 10 GB VRAM geeignet. Halbe Genauigkeit ist ideal für GPUs mit weniger als 10 GB VRAM.
Aufbau einer stabilen Diffusion
Wir werden einen BentoML-Dienst aufbauen, um das Modell hinter a zu bedienen REST-konforme API. Das folgende Beispiel verwendet das Modell mit einfacher Genauigkeit für die Vorhersage und das Modul service.py, um den Dienst mit der Geschäftslogik zu verbinden. Wir können die Funktionen als APIs verfügbar machen, indem wir sie mit @svc.api taggen.
Darüber hinaus können wir die Ein- und Ausgabetypen der APIs in den Parametern definieren. Der txt2img-Endpunkt empfängt beispielsweise eine JSON-Eingabe und erzeugt eine Bildausgabe, während der img2img-Endpunkt eine Bild- und eine JSON-Eingabe akzeptiert und eine Bildausgabe zurückgibt.
Ein StableDiffusionRunnable definiert die wesentliche Inferenzlogik. Das Runnable ist dafür verantwortlich, die txt2img-Pipe-Methoden des Modells auszuführen und die relevanten Eingaben zu senden. Zum Ausführen der Modellrückschlusslogik in den APIs wird ein benutzerdefinierter Runner aus StableDiffusionRunnable erstellt.
Verwenden Sie dann den folgenden Befehl, um einen BentoML-Dienst zum Testen zu starten. Lokal läuft die Stabiles Diffusionsmodell Inferenz auf CPUs ist ziemlich träge. Die Bearbeitung jeder Anfrage dauert etwa 5 Minuten.
Text zum Bild
Text-zu-Bild-Ausgabe
Die Datei bentofile.yaml definiert die erforderlichen Dateien und Abhängigkeiten.
Verwenden Sie den folgenden Befehl, um ein Bento zu erstellen. Ein Bento ist das Verteilungsformat für einen BentoML-Dienst. Es ist ein eigenständiges Archiv, das alle Daten und Konfigurationen enthält, die zum Starten des Dienstes erforderlich sind.
Das Stable Diffusion Bento ist fertiggestellt. Wenn Sie das Bento nicht richtig erzeugen konnten, geraten Sie nicht in Panik; Sie können ein vorgefertigtes Modell mit den im nächsten Abschnitt aufgeführten Befehlen herunterladen.
Vorgefertigte Modelle
Es folgen die vorgefertigten Modelle:
Stellen Sie das stabile Diffusionsmodell auf EC2 bereit
Um das Bento auf EC2 bereitzustellen, verwenden wir bentoctl. Mit bentoctl können Sie Ihre Bentos für alle bereitstellen Cloud-Plattform mit Terraform. Um Terraform-Dateien zu erstellen und anzuwenden, installieren Sie den AWS EC2-Operator.
In der Bereitstellungsdatei config.yaml wurde die Bereitstellung bereits konfiguriert. Bitte zögern Sie nicht, nach Ihren Anforderungen zu bearbeiten. Bento wird standardmäßig auf einem g4dn.xlarge-Host mit dem bereitgestellt Tiefes Lernen AMI GPU PyTorch 1.12.0 (Ubuntu 20.04) AMI in der Region us-west-1.
Erstellen Sie jetzt die Terraform-Dateien. Erstellen Sie das Docker-Image und laden Sie es in AWS ECR hoch. Abhängig von Ihrer Bandbreite kann das Hochladen von Bildern lange dauern. Verwenden Sie beim Bereitstellen des Bento in AWS EC2 die Terraform-Dateien.
Um auf die Swagger-Benutzeroberfläche zuzugreifen, stellen Sie eine Verbindung zur EC2-Konsole her und öffnen Sie die öffentliche IP-Adresse in einem Browser. Wenn schließlich der Stable Diffusion BentoML-Dienst nicht mehr benötigt wird, entfernen Sie die Bereitstellung.
Zusammenfassung
Sie sollten sehen können, wie faszinierend und leistungsfähig SD und seine Begleitmodelle sind. Die Zeit wird zeigen, ob wir das Konzept weiter iterieren oder zu anspruchsvolleren Ansätzen übergehen.
Es gibt jedoch derzeit Initiativen, größere Modelle mit Anpassungen zu trainieren, um die Umgebung und die Anweisungen besser zu erfassen. Wir haben versucht, den Stable Diffusion-Service mit BentoML zu entwickeln und ihn auf AWS EC2 bereitzustellen.
Wir konnten das Stable Diffusion-Modell auf leistungsstärkerer Hardware ausführen, Bilder mit geringer Latenz erstellen und durch die Bereitstellung des Dienstes auf AWS EC2 über einen einzelnen Computer hinausgehen.
Hinterlassen Sie uns einen Kommentar