Her hafta en son teknolojiyle ilgili duyurularla heyecan verici zamanlarda yaşıyoruz. OpenAI, son teknoloji metinden görüntüye modeli TALLE 2'yi piyasaya sürdü.
Doğal dil açıklamalarından gerçekçi grafikler oluşturabilen yeni bir yapay zeka sistemine yalnızca birkaç kişi erken erişim sağladı. Halen halka kapalıdır.
Kararlılık AI daha sonra yayınladı Kararlı Difüzyon model, DALLE2'nin açık kaynaklı bir çeşidi. Bu lansman her şeyi değiştirdi. İnternetin her yerindeki insanlar hızlı sonuçlar yayınlıyor ve gerçekçi sanat eseri karşısında şaşırıyorlardı.
Kararlı Difüzyon nedir?
Kararlı Difüzyon metinden görseller oluşturabilen, görselleri metne bağlı olarak değiştirebilen ve düşük çözünürlüklü veya düşük detaylı görsellere detayları doldurabilen bir makine öğrenme modelidir.
Milyarlarca fotoğraf üzerinde eğitildi ve şuna eşdeğer sonuçlar verebilir: DALL-E2 ve Orta Yolculuk. Stabilite AI icat etti ve 22 Ağustos 2022'de halka açıldı.
Ancak sınırlı yerel hesaplama kaynaklarıyla, Kararlı Yayılma modelinin yüksek kaliteli resimler oluşturması uzun zaman alır. Modeli bir bulut sağlayıcı kullanarak çevrimiçi çalıştırmak bize neredeyse sonsuz hesaplama kaynakları sağlar ve çok daha hızlı mükemmel sonuçlar elde etmemizi sağlar.
Modeli bir mikro hizmet olarak barındırmak, diğer yaratıcı uygulamaların, çevrimiçi makine öğrenimi modellerini çalıştırmanın karmaşıklıklarıyla uğraşmak zorunda kalmadan modelin potansiyelinden daha kolay yararlanmasına da olanak tanır.
Bu gönderide, kararlı bir difüzyon modelinin nasıl geliştirileceğini ve AWS'ye nasıl dağıtılacağını göstermeye çalışacağız.
Kararlı Difüzyon Oluşturun ve Dağıtın
BentoML ve Amazon Web Services EC2, Stable Difüzyon modelini çevrimiçi olarak barındırmak için iki seçenektir. BentoML, ölçeklendirme için açık kaynaklı bir çerçevedir makine öğrenme Hizmetler. BentoML ile güvenilir bir dağıtım hizmeti oluşturacağız ve bunu AWS EC2'ye dağıtacağız.
Ortamın hazırlanması ve kararlı difüzyon modelinin indirilmesi
Gereksinimleri yükleyin ve depoyu klonlayın.
Kararlı Difüzyon modelini seçip indirebilirsiniz. Tek hassasiyet, 10 GB'den büyük VRAM'e sahip CPU'lar veya GPU'lar için uygundur. Yarı hassasiyet, 10 GB'den az VRAM'e sahip GPU'lar için idealdir.
Kararlı Yayılım Oluşturma
Modelin arkasındaki modele hizmet etmek için bir BentoML hizmeti oluşturacağız. RESTful API. Aşağıdaki örnek, tahmin için tek kesinlik modelini ve hizmeti iş mantığına bağlamak için service.py modülünü kullanır. Fonksiyonları @svc.api ile etiketleyerek API olarak gösterebiliriz.
Ayrıca API'lerin giriş ve çıkış türlerini parametrelerde tanımlayabiliriz. Örneğin, txt2img uç noktası bir JSON girdisi alır ve bir Görüntü çıktısı üretirken, img2img uç noktası bir Görüntü ve bir JSON girdisini kabul eder ve bir Görüntü çıktısı döndürür.
Bir StableDiffusionRunnable, temel çıkarım mantığını tanımlar. Çalıştırılabilir, modelin txt2img boru yöntemlerini çalıştırmaktan ve ilgili girdileri göndermekten sorumludur. API'lerde model çıkarım mantığını çalıştırmak için, StableDiffusionRunnable'dan özel bir Runner oluşturulur.
Ardından, test amacıyla bir BentoML hizmeti başlatmak için aşağıdaki komutu kullanın. Yerel olarak çalıştırılan Kararlı Difüzyon modeli CPU'lar üzerindeki çıkarım oldukça ağırdır. Her isteğin işlenmesi yaklaşık 5 dakika sürecektir.
Metinden resme
Metinden görüntü çıktısına
bentofile.yaml dosyası, gerekli dosyaları ve bağımlılıkları tanımlar.
Bir bento oluşturmak için aşağıdaki komutu kullanın. Bento, bir BentoML hizmetinin dağıtım biçimidir. Hizmeti başlatmak için gereken tüm verileri ve yapılandırmaları içeren bağımsız bir arşivdir.
Stabil Difüzyon bento tamamlandı. Bentoyu düzgün bir şekilde oluşturamadıysanız, panik yapmayın; bir sonraki bölümde listelenen komutları kullanarak önceden oluşturulmuş modeli indirebilirsiniz.
Hazır Modeller
Ön yapım modelleri aşağıdadır:
Kararlı Difüzyon modelini EC2'ye dağıtın
Bento'yu EC2'ye yerleştirmek için bentoctl kullanacağız. bentoctl, bentolarınızı herhangi bir yere yerleştirmenize izin verebilir. bulut platformu Terraform'u kullanarak. Terraform dosyalarını oluşturmak ve uygulamak için AWS EC2 operatörünü yükleyin.
dağıtım config.yaml dosyasında dağıtım zaten yapılandırılmıştır. Lütfen gereksinimlerinize göre düzenlemekten çekinmeyin. Bento, varsayılan olarak g4dn.xlarge ana bilgisayarına şu şekilde dağıtılır: Derin Öğrenme AMI GPU PyTorch 1.12.0 (Ubuntu 20.04) ABD-batı-1 bölgesinde AMI.
Terraform dosyalarını şimdi oluşturun. Docker görüntüsünü oluşturun ve AWS ECR'ye yükleyin. Bant genişliğinize bağlı olarak, resim yükleme uzun zaman alabilir. Bento'yu AWS EC2'ye dağıtırken Terraform dosyalarını kullanın.
Swagger UI'ye erişmek için EC2 konsoluna bağlanın ve bir tarayıcıda genel IP adresini açın. Son olarak, Kararlı Difüzyon BentoML hizmeti artık gerekli değilse dağıtımı kaldırın.
Sonuç
SD'nin ve ona eşlik eden modellerin ne kadar büyüleyici ve güçlü olduğunu görebilmeniz gerekir. Konsepti daha fazla tekrar edip etmeyeceğimizi veya daha karmaşık yaklaşımlara geçip geçmeyeceğimizi zaman gösterecek.
Ancak, çevreyi ve talimatları daha iyi kavramak için ayarlamalarla daha büyük modelleri eğitmek için şu anda devam eden girişimler var. BentoML kullanarak Stable Difüzyon hizmetini geliştirmeye çalıştık ve AWS EC2'ye dağıttık.
Stable Difüzyon modelini daha güçlü donanımlarda çalıştırabildik, düşük gecikmeli resimler oluşturabildik ve hizmeti AWS EC2 üzerinde dağıtarak tek bir bilgisayarın ötesine geçebildik.
Yorum bırak