Żyjemy w ekscytujących czasach, z ogłoszeniami o najnowocześniejszych technologiach co tydzień. OpenAI właśnie wypuściło najnowocześniejszy model tekstu na obraz dalle 2.
Tylko kilka osób uzyskało wczesny dostęp do nowego systemu AI, który potrafi generować realistyczną grafikę z opisów w języku naturalnym. Nadal jest zamknięty dla publiczności.
Stabilizacja AI następnie wypuściła Stabilna dyfuzja model, wariant DALLE2 o otwartym kodzie źródłowym. Ta premiera zmieniła wszystko. Ludzie w całym Internecie publikowali szybkie wyniki i byli zaskoczeni realistyczną sztuką.
Co to jest stabilna dyfuzja?
Stabilna dyfuzja to model uczenia maszynowego zdolny do tworzenia obrazów z tekstu, zmieniania obrazów w zależności od tekstu i wypełniania szczegółów na obrazach o niskiej rozdzielczości lub o niskiej szczegółowości.
Został przeszkolony na miliardach zdjęć i może dostarczyć wyniki odpowiadające DALL-E2 i W połowie podróży. Stabilność AI wymyślił go i został upubliczniony 22 sierpnia 2022 r.
Jednak przy ograniczonych lokalnych zasobach obliczeniowych model Stable Diffusion zajmuje dużo czasu, aby stworzyć wysokiej jakości obrazy. Uruchomienie modelu online za pomocą dostawcy chmury zapewnia nam niemal nieskończone zasoby obliczeniowe i pozwala znacznie szybciej uzyskiwać doskonałe wyniki.
Hostowanie modelu jako mikrousługi umożliwia również innym kreatywnym aplikacjom łatwiejsze wykorzystanie potencjału modelu bez konieczności zajmowania się złożonością uruchamiania modeli ML w trybie online.
W tym poście postaramy się pokazać, jak opracować stabilny model dyfuzji i wdrożyć go w AWS.
Buduj i wdrażaj stabilną dyfuzję
BentoML i Amazon Web Services EC2 to dwie opcje hostingu modelu Stable Diffusion online. BentoML to platforma typu open source do skalowania uczenie maszynowe usługi. Dzięki BentoML zbudujemy niezawodną usługę dyspersji i wdrożymy ją do AWS EC2.
Przygotowanie środowiska i pobranie stabilnego modelu dyfuzji
Zainstaluj wymagania i sklonuj repozytorium.
Możesz wybrać i pobrać model stabilnej dyfuzji. Pojedyncza precyzja jest odpowiednia dla procesorów CPU lub GPU z większą niż 10 GB pamięci VRAM. Połowa precyzji jest idealna dla procesorów graficznych z mniej niż 10 GB pamięci VRAM.
Budowanie stabilnej dyfuzji
Zbudujemy usługę BentoML do obsługi modelu stojącego za RESTful API. W poniższym przykładzie zastosowano model o pojedynczej precyzji do prognozowania i moduł service.py w celu połączenia usługi z logiką biznesową. Możemy ujawnić funkcje jako API, oznaczając je @svc.api.
Ponadto w parametrach możemy zdefiniować typy danych wejściowych i wyjściowych interfejsów API. Na przykład punkt końcowy txt2img odbiera dane wejściowe JSON i generuje dane wyjściowe obrazu, podczas gdy punkt końcowy img2img akceptuje dane wejściowe obrazu i JSON i zwraca dane wyjściowe obrazu.
StableDiffusionRunnable definiuje podstawową logikę wnioskowania. Runnable odpowiada za uruchamianie metod potoku txt2img modelu i wysyłanie odpowiednich danych wejściowych. Aby uruchomić logikę wnioskowania modelu w interfejsach API, niestandardowy Runner jest tworzony na podstawie StableDiffusionRunnable.
Następnie użyj następującego polecenia, aby uruchomić usługę BentoML do testowania. Działa lokalnie Model stabilnej dyfuzji wnioskowanie na temat procesorów jest raczej powolne. Przetwarzanie każdego żądania zajmie około 5 minut.
Tekst na obraz
Tekst na wyjście obrazu
Plik bentofile.yaml definiuje wymagane pliki i zależności.
Użyj poniższego polecenia, aby zbudować bento. Bento to format dystrybucji usługi BentoML. Jest to samodzielne archiwum, które zawiera wszystkie dane i konfiguracje potrzebne do uruchomienia usługi.
Bento Stabilnej Dyfuzji zostało ukończone. Jeśli nie potrafiłeś poprawnie wygenerować bento, nie panikuj; możesz pobrać gotowy model za pomocą poleceń wymienionych w następnej sekcji.
Gotowe modele
Poniżej znajdują się modele pre-build:
Wdróż model stabilnej dyfuzji w EC2
Aby wdrożyć bento w EC2, użyjemy bentoctl. bentoctl może pozwolić Ci wdrożyć bentos na dowolnym Platforma cloud za pomocą Terraforma. Aby zbudować i zastosować pliki Terraform, zainstaluj operator AWS EC2.
W pliku config.yaml wdrożenia wdrożenie zostało już skonfigurowane. Zachęcamy do edycji do swoich wymagań. Bento jest domyślnie wdrażane na hoście g4dn.xlarge z głęboki Learning AMI GPU PyTorch 1.12.0 (Ubuntu 20.04) AMI w regionie us-west-1.
Utwórz teraz pliki Terraform. Utwórz obraz Dockera i prześlij go do AWS ECR. W zależności od przepustowości przesyłanie obrazów może zająć dużo czasu. Podczas wdrażania bento do AWS EC2 użyj plików Terraform.
Aby uzyskać dostęp do interfejsu użytkownika Swagger, połącz się z konsolą EC2 i otwórz publiczny adres IP w przeglądarce. Na koniec, jeśli usługa Stable Diffusion BentoML nie jest już wymagana, usuń wdrożenie.
Wnioski
Powinieneś być w stanie zobaczyć, jak fascynujące i potężne są SD i towarzyszące mu modele. Czas pokaże, czy będziemy dalej iterować tę koncepcję, czy przejdziemy do bardziej wyrafinowanych podejść.
Jednak obecnie trwają inicjatywy mające na celu trenowanie większych modeli z korektami, aby lepiej zrozumieć otoczenie i instrukcje. Próbowaliśmy opracować usługę Stable Diffusion przy użyciu BentoML i wdrożyliśmy ją w AWS EC2.
Udało nam się uruchomić model Stable Diffusion na mocniejszym sprzęcie, tworzyć obrazy z niskimi opóźnieniami i wykraczać poza pojedynczy komputer, wdrażając usługę na AWS EC2.
Dodaj komentarz