Amazon SageMaker'ı kullanarak üretici yapay zeka ile kişiselleştirilmiş bir avatar oluşturun | Amazon Web Hizmetleri

Amazon SageMaker'ı kullanarak üretici yapay zeka ile kişiselleştirilmiş bir avatar oluşturun | Amazon Web Hizmetleri

Üretken yapay zeka, eğlence, reklamcılık ve grafik tasarım da dahil olmak üzere çeşitli sektörlerde yaratıcı süreci geliştirmek ve hızlandırmak için yaygın bir araç haline geldi. İzleyiciler için daha kişiselleştirilmiş deneyimler sağlar ve nihai ürünlerin genel kalitesini artırır.

Üretken yapay zekanın önemli faydalarından biri, kullanıcılar için benzersiz ve kişiselleştirilmiş deneyimler yaratmaktır. Örneğin, üretken yapay zeka, izleyici etkileşimini artırmak ve kullanıcının görüntüleme geçmişine ve tercihlerine göre başlıklar için görseller oluşturmak üzere kişiselleştirilmiş film başlıkları ve görseller oluşturmak amacıyla akış hizmetleri tarafından kullanılır. Sistem daha sonra bir başlığın çiziminin binlerce varyasyonunu oluşturur ve kullanıcının dikkatini en çok hangi sürümün çektiğini belirlemek için bunları test eder. Bazı durumlarda, TV dizileri için kişiselleştirilmiş sanat eserleri, kişiselleştirilmiş sanat eseri olmayan şovlarla karşılaştırıldığında tıklama oranlarını ve izlenme oranlarını önemli ölçüde artırdı.

Bu yazıda, kişiselleştirilmiş bir avatar çözümü oluşturmak için Stabil Difüzyon gibi üretken yapay zeka modellerini nasıl kullanabileceğinizi gösteriyoruz. Amazon Adaçayı Yapıcı ve aynı anda çok modelli uç noktalarla (MME'ler) çıkarım maliyetinden tasarruf edin. Çözüm, aşağıdaki ekran görüntülerinde gösterildiği gibi, kendinize ait 10-12 görsel yükleyerek, kişiselleştirilmiş bir modele nasıl ince ayar yapabileceğinizi ve ardından herhangi bir metin istemine dayalı olarak avatarlar oluşturabileceğinizi gösterir. Bu örnek kişiselleştirilmiş avatarlar oluştursa da, belirli nesnelere veya stillere ince ayar yaparak tekniği herhangi bir yaratıcı sanat nesline uygulayabilirsiniz.

Build a personalized avatar with generative AI using Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai. Build a personalized avatar with generative AI using Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Çözüme genel bakış

Aşağıdaki mimari diyagram, avatar oluşturucumuz için uçtan uca çözümü özetlemektedir.

Build a personalized avatar with generative AI using Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Bu yazının kapsamı ve örnek GitHub kodu yalnızca model eğitimine ve çıkarım düzenlemesine (önceki diyagramdaki yeşil bölüm) odaklanıyoruz. Tam çözüm mimarisine başvurabilir ve sunduğumuz örneğin üzerine inşa edebilirsiniz.

Model eğitimi ve çıkarımı dört adıma ayrılabilir:

  1. Resimleri şuraya yükle: Amazon Basit Depolama Hizmeti (Amazon S3). Bu adımda sizden en az 10 adet yüksek çözünürlüklü görselinizi sağlamanızı rica ediyoruz. Ne kadar çok görüntü olursa sonuç o kadar iyi olur, ancak eğitim de o kadar uzun sürer.
  2. SageMaker eşzamansız çıkarımını kullanarak Stabil Difüzyon 2.1 temel modeline ince ayar yapın. Bu yazının ilerleyen kısımlarında eğitim için çıkarım uç noktası kullanmanın mantığını açıklayacağız. İnce ayar süreci, yüz kırpma, arka plan değişikliği ve model için yeniden boyutlandırma dahil olmak üzere görüntülerin hazırlanmasıyla başlar. Daha sonra modele ince ayar yapmak için büyük dil modelleri (LLM'ler) için parametre açısından verimli bir ince ayar tekniği olan Düşük Sıralı Uyarlama'yı (LoRA) kullanırız. Son olarak, son işlemlerde, ince ayarlanmış LoRA ağırlıklarını çıkarım komut dosyası ve yapılandırma dosyaları (tar.gz) ile paketliyoruz ve bunları SageMaker MME'ler için bir S3 klasör konumuna yüklüyoruz.
  3. GPU'lu SageMaker MME'leri kullanarak ince ayarlı modelleri barındırın. SageMaker, her modele gelen çıkarım trafiğine göre modeli dinamik olarak Amazon S3 konumundan yükleyecek ve önbelleğe alacaktır.
  4. Çıkarım için ince ayarlı modeli kullanın. Sonra Amazon Basit Bildirim Servisi (Amazon SNS) ince ayarın yapıldığını belirten bildirim gönderildiyse, o modeli hemen kullanabilirsiniz. target_model Avatarınızı oluşturmak için MME'yi çağırırken parametre.

Aşağıdaki bölümlerde her adımı daha ayrıntılı olarak açıklayacağız ve bazı örnek kod parçacıklarını inceleyeceğiz.

Görselleri hazırlayın

Kendi görüntülerinizi oluşturmak amacıyla Kararlı Dağılım'da ince ayar yaparak en iyi sonuçları elde etmek için, genellikle farklı açılardan, farklı ifadelerle ve farklı arka planlardan çekilmiş çok sayıda ve çeşitlilikte fotoğraf sağlamanız gerekir. Ancak uygulamamızla artık 10 kadar az girdi görüntüsüyle yüksek kaliteli bir sonuç elde edebilirsiniz. Yüzünüzü her fotoğraftan çıkarmak için otomatik ön işleme de ekledik. İhtiyacınız olan tek şey, birden fazla perspektiften net bir şekilde nasıl göründüğünüzün özünü yakalamaktır. Öne bakan bir fotoğraf, her iki taraftan çekilmiş bir profil fotoğrafı ve aradaki açılardan fotoğraflar ekleyin. Gülümseme, kaşlarını çatma, nötr ifade gibi farklı yüz ifadelerinin yer aldığı fotoğraflara da yer vermelisiniz. İfadelerin bir karışımına sahip olmak, modelin benzersiz yüz özelliklerinizi daha iyi yeniden üretmesine olanak tanır. Giriş görüntüleri, oluşturabileceğiniz avatarın kalitesini belirler. Bunun doğru şekilde yapıldığından emin olmak için, kullanıcıya görüntü yakalama ve yükleme sürecinde rehberlik edecek sezgisel bir ön uç kullanıcı arayüzü deneyimi öneriyoruz.

Aşağıda farklı yüz ifadelerine sahip, farklı açılardan örnek selfie görüntüleri yer almaktadır.

Build a personalized avatar with generative AI using Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Kararlı Difüzyon modeline ince ayar yapın

Görüntüler Amazon S3'e yüklendikten sonra SageMaker eşzamansız çıkarım eğitim sürecimizi başlatmak için uç nokta. Eşzamansız uç noktalar, büyük yüklere (1 GB'a kadar) ve uzun işlem sürelerine (1 saate kadar) sahip çıkarım kullanım senaryolarına yöneliktir. Ayrıca SageMaker barındırmanın otomatik ölçeklendirme gibi diğer yerel özelliklerine ek olarak istekleri sıraya koymak için yerleşik bir sıraya alma mekanizması ve Amazon SNS aracılığıyla bir görev tamamlama bildirim mekanizması sağlar.

İnce ayar, çıkarım amaçlı bir kullanım durumu olmasa da, yerleşik sıraya alma ve bildirim mekanizmaları nedeniyle burada SageMaker eğitim işleri yerine onu kullanmayı seçtik. yönetilen otomatik ölçeklendirmeHizmet kullanılmadığında ölçeği 0 örneğe düşürme yeteneği de dahil. Bu, ince ayar hizmetini çok sayıda eşzamanlı kullanıcıya kolayca ölçeklendirmemize olanak tanır ve ek bileşenleri uygulama ve yönetme ihtiyacını ortadan kaldırır. Ancak, 1 GB veri kapasitesi ve 1 saatlik maksimum işlem süresi gibi dezavantajları da beraberinde getiriyor. Testlerimizde, bir ml.g20xlarge örneğinde yaklaşık 10 giriş görüntüsüyle oldukça iyi sonuçlar elde etmek için 5.2 dakikanın yeterli bir süre olduğunu bulduk. Ancak SageMaker eğitimi, daha büyük ölçekli ince ayar işleri için önerilen yaklaşım olacaktır.

Eşzamansız uç noktayı barındırmak için birkaç adımı tamamlamamız gerekir. İlki model sunucumuzu tanımlamaktır. Bu yazı için şunu kullanıyoruz: Büyük Model Çıkarım Kabı (LMI). LMI, yüksek performanslı, programlama dilinden bağımsız bir model hizmet çözümü olan DJL Serving tarafından desteklenmektedir. Bu seçeneği seçtik çünkü SageMaker yönetilen çıkarım kapsayıcısında Hugging Face gibi ihtiyaç duyduğumuz birçok eğitim kütüphanesi zaten mevcut difüzörler ve Hızlandırmak. Bu, konteyneri ince ayar işimize göre özelleştirmek için gereken iş miktarını büyük ölçüde azaltır.

Aşağıdaki kod parçacığı, örneğimizde kullandığımız LMI kapsayıcısının sürümünü gösterir:

inference_image_uri = ( f"763104351884.dkr.ecr.{region}.amazonaws.com/djl-inference:0.21.0-deepspeed0.8.3-cu117"
)
print(f"Image going to be used is ---- > {inference_image_uri}")

Buna ek olarak bir de sahip olmamız gerekiyor. serving.properties Kullanılacak çıkarım motoru, model yapısının konumu ve dinamik toplu işlem de dahil olmak üzere sunum özelliklerini yapılandıran dosya. Son olarak, bir şeye sahip olmalıyız model.py Modeli çıkarım motoruna yükleyen ve modelden veri giriş ve çıkışını hazırlayan dosya. Örneğimizde, şunu kullanıyoruz: model.py Daha sonraki bir bölümde daha ayrıntılı olarak açıklayacağımız ince ayar işini başlatmak için dosyayı kullanın. İkisi de serving.properties ve model.py dosyalar şurada verilmiştir training_service klasör.

Model sunucumuzu tanımladıktan sonraki adım, asenkron çıkarımımızın nasıl sunulacağını tanımlayan bir uç nokta konfigürasyonu oluşturmaktır. Örneğimiz için, yalnızca maksimum eşzamanlı çağrı sınırını ve çıkış S3 konumunu tanımlıyoruz. İle ml.g5.2xlarge Örneğin, bellek yetersiz (OOM) istisnasıyla karşılaşmadan aynı anda iki modele kadar ince ayar yapabildiğimizi bulduk ve bu nedenle max_concurrent_invocations_per_instance 2'ye kadar. Farklı bir ayarlama parametreleri kümesi veya daha küçük bir bulut sunucusu türü kullanıyorsak bu sayının ayarlanması gerekebilir. Başlangıçta bunu 1'e ayarlamanızı ve GPU bellek kullanımını izlemenizi öneririz. Amazon Bulut İzleme.

# create async endpoint configuration
async_config = AsyncInferenceConfig( output_path=f"s3://{bucket}/{s3_prefix}/async_inference/output" , # Where our results will be stored max_concurrent_invocations_per_instance=2, notification_config={   "SuccessTopic": "...",   "ErrorTopic": "...", }, #  Notification configuration
)

Son olarak konteyner bilgilerini, model dosyalarını ve paketlerini paketleyen bir SageMaker modeli oluşturuyoruz. AWS Kimlik ve Erişim Yönetimi (IAM) rolünü tek bir nesneye dönüştürün. Model, daha önce tanımladığımız uç nokta yapılandırması kullanılarak dağıtılır:

model = Model( image_uri=image_uri, model_data=model_data, role=role, env=env
) model.deploy( initial_instance_count=1, instance_type=instance_type, endpoint_name=endpoint_name, async_inference_config=async_inference_config
) predictor = sagemaker.Predictor( endpoint_name=endpoint_name, sagemaker_session=sagemaker_session
)

Uç nokta hazır olduğunda, eşzamansız uç noktayı çağırmak ve ince ayar işlemini başlatmak için aşağıdaki örnek kodu kullanırız:

sm_runtime = boto3.client("sagemaker-runtime") input_s3_loc = sess.upload_data("data/jw.tar.gz", bucket, s3_prefix) response = sm_runtime.invoke_endpoint_async( EndpointName=sd_tuning.endpoint_name, InputLocation=input_s3_loc)

SageMaker'daki LMI hakkında daha fazla ayrıntı için bkz. DJLServing ve DeepSpeed ​​model paralel çıkarımını kullanarak büyük modelleri Amazon SageMaker'da dağıtın.

Çağrımdan sonra, eşzamansız uç nokta ince ayar işimizi sıraya koymaya başlar. Her iş şu adımlardan geçer: görüntüleri hazırlayın, Dreambooth ve LoRA ince ayarını yapın ve model yapıtlarını hazırlayın. İnce ayar sürecine daha derinlemesine bakalım.

Görselleri hazırlayın

Daha önce de belirttiğimiz gibi girdi görüntülerinin kalitesi, ince ayar yapılan modelin kalitesini doğrudan etkiler. Avatar kullanım durumu için modelin yüz özelliklerine odaklanmasını istiyoruz. Kullanıcıların tam boyut ve içerikte özenle seçilmiş görseller sağlamasını zorunlu kılmak yerine, bu yükü hafifletmek için bilgisayarla görme tekniklerini kullanarak bir ön işleme adımı uyguluyoruz. Ön işleme adımında öncelikle her görüntüdeki en büyük yüzü izole etmek için bir yüz algılama modeli kullanıyoruz. Daha sonra görüntüyü modelimiz için gereken 512 x 512 piksel boyutuna kırpıp dolduruyoruz. Son olarak, yüzü arka plandan bölümlere ayırıyoruz ve rastgele arka plan varyasyonları ekliyoruz. Bu, yüz özelliklerinin vurgulanmasına yardımcı olarak modelimizin arka plan yerine yüzün kendisinden öğrenmesine olanak tanır. Aşağıdaki resimler bu süreçteki üç adımı göstermektedir.

Build a personalized avatar with generative AI using Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai. Build a personalized avatar with generative AI using Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai. Build a personalized avatar with generative AI using Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.
1 Adım: Bilgisayarla görme kullanarak yüz algılama 2 Adım: Görüntüyü 512 x 512 piksele kadar kırpın ve doldurun Adım 3 (İsteğe Bağlı): Arka plan varyasyonunu segmentlere ayırın ve ekleyin

Dreambooth ve LoRA'da ince ayar

İnce ayar için Dreambooth ve LoRA tekniklerini birleştirdik. Dreambooth, benzersiz bir tanımlayıcı kullanarak bir nesneyi modelin çıktı alanına yerleştirerek ve modelin dil görüş sözlüğünü genişleterek Kararlı Difüzyon modelinizi kişiselleştirmenize olanak tanır. Adı verilen bir yöntemi kullanır ön koruma modelin konunun sınıfına (bu durumda bir kişiye) ilişkin anlamsal bilgisini korumak ve son görüntü çıktısını iyileştirmek için sınıftaki diğer nesneleri kullanmak. Dreambooth, konunun yalnızca birkaç girdi görüntüsüyle yüksek kaliteli sonuçları bu şekilde elde edebilir.

Aşağıdaki kod parçacığı bizim girdilerimizi gösterir. trainer.py avatar çözümümüz için sınıf. Seçtiğimize dikkat edin <<TOK>> benzersiz tanımlayıcı olarak. Bu, modelin sözlüğünde zaten bulunabilecek bir adın seçilmesini önlemek için bilerek yapılır. Ad zaten mevcutsa, modelin konuyu öğrenmesi ve ardından yeniden öğrenmesi gerekir; bu da zayıf ince ayar sonuçlarına yol açabilir. Konu sınıfı şu şekilde ayarlandı: “a photo of person”Bu, ince ayar süreci sırasında ek girdi olarak öncelikle insanların fotoğraflarını oluşturarak önceden korumayı mümkün kılar. Bu, model, önceki koruma yöntemini kullanarak bir kişinin önceki bilgisini korumaya çalıştığı için aşırı uyumun azaltılmasına yardımcı olacaktır.

status = trn.run(base_model="stabilityai/stable-diffusion-2-1-base", resolution=512, n_steps=1000, concept_prompt="photo of <<TOK>>", # << unique identifier of the subject learning_rate=1e-4, gradient_accumulation=1, fp16=True, use_8bit_adam=True, gradient_checkpointing=True, train_text_encoder=True, with_prior_preservation=True, prior_loss_weight=1.0, class_prompt="a photo of person", # << subject class num_class_images=50, class_data_dir=class_data_dir, lora_r=128, lora_alpha=1, lora_bias="none", lora_dropout=0.05, lora_text_encoder_r=64, lora_text_encoder_alpha=1, lora_text_encoder_bias="none", lora_text_encoder_dropout=0.05
)

Yapılandırmada bir dizi bellek tasarrufu seçeneği etkinleştirilmiştir; bunlar arasında fp16, use_8bit_adamve gradyan birikimi. Bu, bellek alanını 12 GB'nin altına düşürür; bu da aynı anda iki modele kadar ince ayar yapılmasına olanak tanır. ml.g5.2xlarge örneği.

LoRA, ağırlıkların çoğunu donduran ve önceden eğitilmiş LLM'nin belirli katmanlarına küçük bir adaptör ağı bağlayarak, daha hızlı eğitime ve optimize edilmiş depolamaya olanak tanıyan LLM'ler için etkili bir ince ayar tekniğidir. Kararlı Difüzyon için bağdaştırıcı, çıkarım hattının metin kodlayıcısına ve U-Net bileşenlerine eklenir. Metin kodlayıcı, giriş istemini U-Net modeli tarafından anlaşılan gizli bir alana dönüştürür ve U-Net modeli, sonraki yayılma sürecinde görüntüyü oluşturmak için gizli anlamı kullanır. İnce ayarın çıktısı sadece text_encoder ve U-Net adaptör ağırlıkları. Çıkarım zamanında bu ağırlıklar, ince ayar sonuçlarını yeniden oluşturmak için temel Kararlı Difüzyon modeline yeniden eklenebilir.

Aşağıdaki şekiller orijinal yazar tarafından sağlanan LoRA ince ayarının ayrıntılı diyagramıdır: Cheng-Han Chiang, Yung-Sung Chuang, Hung-yi Lee, “AACL_2022_tutorial_PLMs,” 2022

Build a personalized avatar with generative AI using Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai. Build a personalized avatar with generative AI using Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Her iki yöntemi birleştirerek, büyüklük sırasına göre daha az parametreyi ayarlarken kişiselleştirilmiş bir model oluşturmayı başardık. Bu, çok daha hızlı bir eğitim süresine ve GPU kullanımının azalmasına neden oldu. Ek olarak depolama, tam Stabil Difüzyon modeli için 70 GB'a kıyasla adaptör ağırlığının yalnızca 6 MB olmasıyla optimize edildi; bu da %99'luk bir boyut küçültmeyi temsil ediyor.

Model eserlerini hazırlayın

İnce ayar tamamlandıktan sonra, son işleme adımı, modelin geri kalanının NVIDIA Triton için dosya sunmasıyla LoRA ağırlıklarını TARlayacaktır. Bir Python arka ucu kullanıyoruz; bu, Triton yapılandırma dosyasının ve çıkarım için kullanılan Python betiğinin gerekli olduğu anlamına gelir. Python betiğinin adlandırılması gerektiğini unutmayın model.py. Nihai model TAR dosyası aşağıdaki dosya yapısına sahip olmalıdır:

|--sd_lora |--config.pbtxt |--1 |--model.py |--output #LoRA weights |--text_encoder |--unet |--train.sh

GPU'lu SageMaker MME'leri kullanarak ince ayarlı modelleri barındırın

Modellere ince ayar yapıldıktan sonra kişiselleştirilmiş Stabil Difüzyon modellerini SageMaker MME kullanarak barındırıyoruz. SageMaker MME, tek bir uç noktanın arkasındaki tek bir konteynerde birden fazla modelin barındırılmasına olanak tanıyan güçlü bir dağıtım özelliğidir. Kaynak kullanımını optimize etmek, maliyetlerden tasarruf etmek ve binlerce uç noktayı yönetmenin operasyonel yükünü en aza indirmek için modellerinize yönelik trafiği ve yönlendirmeyi otomatik olarak yönetir. Örneğimizde GPU örnekleri üzerinde çalışıyoruz ve SageMaker MME'ler Triton Sunucusunu kullanan GPU'yu destekliyor. Bu, tek bir GPU cihazında birden fazla modeli çalıştırmanıza ve hızlandırılmış bilgi işlem avantajından yararlanmanıza olanak tanır. SageMaker MME'lerde Stabil Difüzyonun nasıl barındırılacağı hakkında daha fazla ayrıntı için bkz. Stable Diffusion modelleriyle yüksek kaliteli görüntüler oluşturun ve bunları Amazon SageMaker ile uygun maliyetli bir şekilde dağıtın.

Örneğimizde, soğuk başlatma durumlarında ince ayarlı modellerin daha hızlı yüklenmesi için ek optimizasyon yaptık. Bu, LoRA'nın adaptör tasarımı sayesinde mümkündür. Temel model ağırlıkları ve Conda ortamları tüm ince ayarlı modeller için aynı olduğundan, bu ortak kaynakları barındırma kapsayıcısına önceden yükleyerek paylaşabiliriz. Geriye yalnızca Triton yapılandırma dosyası olan Python arka ucu (model.py) ve LoRA bağdaştırıcı ağırlıklarının ilk çağrıdan sonra Amazon S3'ten dinamik olarak yüklenmesini sağlar. Aşağıdaki şemada yan yana bir karşılaştırma sağlanmaktadır.

Build a personalized avatar with generative AI using Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Bu, model TAR dosyasının boyutunu yaklaşık 6 GB'tan 70 MB'a önemli ölçüde azaltır ve dolayısıyla yükleme ve paketin açılması çok daha hızlıdır. Örneğimizde ön yüklemeyi yapmak için, Python'un yardımcı programı olan arka uç modelini oluşturduk. models/model_setup. Komut dosyası, temel Stabil Difüzyon modelini ve Conda ortamını Amazon S3'ten tüm ince ayarlı modeller arasında paylaşmak üzere ortak bir konuma kopyalar. Görevi gerçekleştiren kod pasajı aşağıdadır:

def initialize(self, args): #conda env setup self.conda_pack_path = Path(args['model_repository']) / "sd_env.tar.gz" self.conda_target_path = Path("/tmp/conda") self.conda_env_path = self.conda_target_path / "sd_env.tar.gz" if not self.conda_env_path.exists(): self.conda_env_path.parent.mkdir(parents=True, exist_ok=True) shutil.copy(self.conda_pack_path, self.conda_env_path) #base diffusion model setup self.base_model_path = Path(args['model_repository']) / "stable_diff.tar.gz" try: with tarfile.open(self.base_model_path) as tar: tar.extractall('/tmp') self.response_message = "Model env setup successful." except Exception as e: # print the exception message print(f"Caught an exception: {e}") self.response_message = f"Caught an exception: {e}"

Daha sonra ince ayarı yapılan her model, konteyner üzerindeki paylaşılan konuma işaret edecektir. Conda ortamına şurada atıfta bulunulmaktadır: config.pbtxt.

name: "pipeline_0"
backend: "python"
max_batch_size: 1 ... parameters: { key: "EXECUTION_ENV_PATH", value: {string_value: "/tmp/conda/sd_env.tar.gz"}
}

Kararlı Difüzyon temel modeli şuradan yüklenir: initialize() her birinin işlevi model.py dosya. Daha sonra kişiselleştirilmiş LoRA ağırlıklarını unet'e uyguluyoruz ve text_encoder Her ince ayarlı modeli yeniden oluşturmak için model:

... class TritonPythonModel: def initialize(self, args): self.output_dtype = pb_utils.triton_string_to_numpy( pb_utils.get_output_config_by_name(json.loads(args["model_config"]), "generated_image")["data_type"]) self.model_dir = args['model_repository'] device='cuda' self.pipe = StableDiffusionPipeline.from_pretrained('/tmp/stable_diff', torch_dtype=torch.float16, revision="fp16").to(device) # Load the LoRA weights self.pipe.unet = PeftModel.from_pretrained(self.pipe.unet, unet_sub_dir) if os.path.exists(text_encoder_sub_dir): self.pipe.text_encoder = PeftModel.from_pretrained(self.pipe.text_encoder, text_encoder_sub_dir)

Çıkarım için ince ayarlı modeli kullanın

Artık MME uç noktasını çağırarak ince ayarlı modelimizi deneyebiliriz. Örneğimizde gösterdiğimiz giriş parametreleri şunları içerir: prompt, negative_prompt, ve gen_args, aşağıdaki kod parçacığında gösterildiği gibi. Sözlükteki her girdi öğesinin veri türünü ve şeklini ayarlayıp bunları bir JSON dizesine dönüştürüyoruz. Son olarak, dize yükü ve TargetModel avatar resminizi oluşturma isteğine iletilir.

import random prompt = """<<TOK>> epic portrait, zoomed out, blurred background cityscape, bokeh, perfect symmetry, by artgem, artstation ,concept art,cinematic lighting, highly detailed, octane, concept art, sharp focus, rockstar games, post processing, picture of the day, ambient lighting, epic composition""" negative_prompt = """
beard, goatee, ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, blurry, bad anatomy, blurred, watermark, grainy, signature, cut off, draft, amateur, multiple, gross, weird, uneven, furnishing, decorating, decoration, furniture, text, poor, low, basic, worst, juvenile, unprofessional, failure, crayon, oil, label, thousand hands """ seed = random.randint(1, 1000000000) gen_args = json.dumps(dict(num_inference_steps=50, guidance_scale=7, seed=seed)) inputs = dict(prompt = prompt, negative_prompt = negative_prompt, gen_args = gen_args) payload = { "inputs": [{"name": name, "shape": [1,1], "datatype": "BYTES", "data": [data]} for name, data in inputs.items()]
} response = sm_runtime.invoke_endpoint( EndpointName=endpoint_name, ContentType="application/octet-stream", Body=json.dumps(payload), TargetModel="sd_lora.tar.gz",
)
output = json.loads(response["Body"].read().decode("utf8"))["outputs"]
original_image = decode_image(output[0]["data"][0])
original_image

Temizlemek

Gereksiz masraflardan kaçınmak amacıyla bu gönderinin parçası olarak sağlanan kaynakları silmek için not defterinin temizleme bölümündeki talimatları izleyin. Bakınız Amazon SageMaker Fiyatlandırması çıkarım örneklerinin maliyetiyle ilgili ayrıntılar için.

Sonuç

Bu yazıda SageMaker'da Stable Diffusion kullanarak kişiselleştirilmiş bir avatar çözümünün nasıl oluşturulacağını gösterdik. Önceden eğitilmiş bir modele yalnızca birkaç görüntüyle ince ayar yaparak, her kullanıcının bireyselliğini ve kişiliğini yansıtan avatarlar oluşturabiliriz. Bu, kullanıcılar için özelleştirilmiş ve benzersiz deneyimler oluşturmak için üretken yapay zekayı nasıl kullanabileceğimize dair birçok örnekten sadece biri. Olasılıklar sonsuzdur ve sizi bu teknolojiyi denemeye ve yaratıcı süreci geliştirme potansiyelini keşfetmeye teşvik ediyoruz. Bu yazının bilgilendirici ve ilham verici olduğunu umuyoruz. Örneği denemenizi ve sosyal platformlarda #sagemaker #mme #genai etiketlerini kullanarak kreasyonlarınızı bizimle paylaşmanızı öneririz. Ne yaptığınızı görmeyi çok isteriz.

Stabil Difüzyona ek olarak, birçok başka üretken AI modeli de mevcuttur. Amazon SageMaker Hızlı Başlangıç. Bakın Amazon SageMaker JumpStart'ı kullanmaya başlarken yeteneklerini keşfetmek için.


Yazarlar Hakkında

Build a personalized avatar with generative AI using Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.James Wu AWS'de Kıdemli AI/ML Uzman Çözüm Mimarıdır. müşterilerin AI/ML çözümleri tasarlamasına ve oluşturmasına yardımcı olur. James'in çalışması, bilgisayar vizyonu, derin öğrenme ve kurum genelinde ML'yi ölçeklendirmeye ilgi duyan çok çeşitli ML kullanım durumlarını kapsar. AWS'ye katılmadan önce James, 10 yılı mühendislik ve 6 yılı pazarlama ve reklamcılık sektörlerinde olmak üzere 4 yılı aşkın bir süredir mimar, geliştirici ve teknoloji lideriydi.

Build a personalized avatar with generative AI using Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Simon Zamarin ana odak noktası müşterilerin veri varlıklarından değer elde etmelerine yardımcı olan bir AI / ML Çözümleri Mimarıdır. Simon boş zamanlarında aileyle vakit geçirmekten, bilim kurgu okumaktan ve çeşitli DIY ev projeleri üzerinde çalışmaktan hoşlanıyor.

Build a personalized avatar with generative AI using Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.vikram elango Virginia ABD'de bulunan Amazon Web Services'te AI/ML Uzman Çözüm Mimarıdır. Vikram, finans ve sigorta sektörü müşterilerine geniş ölçekte makine öğrenimi uygulamaları oluşturma ve dağıtma konusunda tasarım ve düşünce liderliği konusunda yardımcı olur. Kendisi şu anda doğal dil işleme, sorumlu yapay zeka, çıkarım optimizasyonu ve makine öğreniminin kuruluş çapında ölçeklendirilmesi konularına odaklanmaktadır. Boş zamanlarında ailesiyle birlikte seyahat etmekten, yürüyüş yapmaktan, yemek pişirmekten ve kamp yapmaktan hoşlanıyor.

Build a personalized avatar with generative AI using Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Lana Çang AWS WWSO Yapay Zeka Hizmetleri ekibinde içerik denetimi, bilgisayar görüşü ve doğal dil işleme için yapay zeka ve makine öğrenimi konusunda uzmanlaşmış bir Kıdemli Çözüm Mimarıdır. Uzmanlığıyla AWS AI/ML çözümlerini tanıtmaya ve müşterilerin sosyal medya, oyun, e-ticaret ve reklamcılık ve pazarlama dahil olmak üzere çeşitli sektörlerde iş çözümlerini dönüştürmelerine yardımcı olmaya kendini adamıştır.

Build a personalized avatar with generative AI using Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Saurabh Trikande Amazon SageMaker Inference için Kıdemli Ürün Yöneticisidir. Müşterilerle çalışma konusunda tutkulu ve makine öğrenimini demokratikleştirme hedefiyle motive oluyor. Karmaşık makine öğrenimi uygulamaları, çok kiracılı makine öğrenimi modelleri, maliyet optimizasyonları ve derin öğrenme modellerinin dağıtımını daha erişilebilir hale getirmeyle ilgili temel zorluklara odaklanıyor. Saurabh boş zamanlarında yürüyüş yapmaktan, yenilikçi teknolojiler hakkında bilgi edinmekten, TechCrunch'ı takip etmekten ve ailesiyle vakit geçirmekten hoşlanıyor.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi