Amazon SageMaker를 사용하여 생성 AI로 개인화된 아바타 구축 | 아마존 웹 서비스

Amazon SageMaker를 사용하여 생성 AI로 개인화된 아바타 구축 | 아마존 웹 서비스

제너레이티브 AI는 엔터테인먼트, 광고, 그래픽 디자인을 포함한 다양한 산업에서 크리에이티브 프로세스를 향상하고 가속화하기 위한 공통 도구가 되었습니다. 청중을 위해 보다 개인화된 경험을 제공하고 최종 제품의 전반적인 품질을 향상시킵니다.

생성 AI의 중요한 이점 중 하나는 사용자를 위한 고유하고 개인화된 경험을 생성하는 것입니다. 예를 들어 스트리밍 서비스에서 제너레이티브 AI를 사용하여 개인화된 영화 제목과 영상을 생성하여 시청자 참여를 높이고 사용자의 시청 기록과 선호도를 기반으로 제목의 영상을 구축합니다. 그런 다음 시스템은 타이틀 아트워크의 수천 가지 변형을 생성하고 이를 테스트하여 사용자의 관심을 가장 많이 끄는 버전을 결정합니다. 경우에 따라 TV 시리즈의 개인화된 아트워크는 개인화된 아트워크가 없는 프로그램에 비해 클릭률과 시청률이 크게 증가했습니다.

이 게시물에서는 Stable Diffusion과 같은 생성 AI 모델을 사용하여 개인화된 아바타 솔루션을 구축하는 방법을 시연합니다. 아마존 세이지 메이커 동시에 다중 모델 엔드포인트(MME)로 추론 비용을 절감합니다. 이 솔루션은 10~12개의 자신의 이미지를 업로드하여 다음 스크린샷과 같이 텍스트 프롬프트를 기반으로 아바타를 생성할 수 있는 개인화된 모델을 미세 조정할 수 있는 방법을 보여줍니다. 이 예에서는 개인화된 아바타를 생성하지만 특정 개체 또는 스타일을 미세 조정하여 창의적인 예술 생성에 이 기술을 적용할 수 있습니다.

Amazon SageMaker를 사용하여 생성 AI로 개인화된 아바타 구축 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함. Amazon SageMaker를 사용하여 생성 AI로 개인화된 아바타 구축 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

솔루션 개요

다음 아키텍처 다이어그램은 아바타 생성기를 위한 종단 간 솔루션을 간략하게 설명합니다.

Amazon SageMaker를 사용하여 생성 AI로 개인화된 아바타 구축 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

이 게시물의 범위와 예제 GitHub 코드 모델 교육 및 추론 오케스트레이션(이전 다이어그램의 녹색 부분)에만 초점을 맞춥니다. 전체 솔루션 아키텍처를 참조하고 제공된 예제를 기반으로 빌드할 수 있습니다.

모델 교육 및 추론은 네 단계로 나눌 수 있습니다.

  1. 에 이미지 업로드 아마존 단순 스토리지 서비스 (아마존 S3). 이 단계에서는 최소 10장의 고해상도 이미지를 제공해야 합니다. 이미지가 많을수록 결과는 좋아지지만 학습 시간이 길어집니다.
  2. SageMaker 비동기 추론을 사용하여 Stable Diffusion 2.1 기본 모델을 미세 조정합니다. 이 게시물의 뒷부분에서 학습을 위해 추론 끝점을 사용하는 근거를 설명합니다. 미세 조정 프로세스는 얼굴 자르기, 배경 변형 및 모델 크기 조정을 포함하여 이미지를 준비하는 것으로 시작됩니다. 그런 다음 대규모 언어 모델(LLM)을 위한 매개변수 효율적인 미세 조정 기술인 LoRA(Low-Rank Adaptation)를 사용하여 모델을 미세 조정합니다. 마지막으로 사후 처리에서 추론 스크립트 및 구성 파일(tar.gz)로 미세 조정된 LoRA 가중치를 패키징하고 SageMaker MME용 S3 버킷 위치에 업로드합니다.
  3. GPU와 함께 SageMaker MME를 사용하여 미세 조정된 모델을 호스팅합니다. SageMaker는 각 모델에 대한 추론 트래픽을 기반으로 Amazon S3 위치에서 동적으로 모델을 로드하고 캐시합니다.
  4. 추론을 위해 미세 조정된 모델을 사용합니다. 후 아마존 단순 알림 서비스 (Amazon SNS) 미세 조정 알림이 전송되면 해당 모델을 제공하여 즉시 사용할 수 있습니다. target_model 아바타를 생성하기 위해 MME를 호출할 때 매개변수.

다음 섹션에서 각 단계를 자세히 설명하고 일부 샘플 코드 스니펫을 살펴봅니다.

이미지 준비

Stable Diffusion을 미세 조정하여 자신의 이미지를 생성하여 최상의 결과를 얻으려면 일반적으로 다양한 각도, 다양한 표정 및 배경에서 다양한 사진을 대량으로 제공해야 합니다. 그러나 구현을 통해 이제 10개의 입력 이미지만으로 고품질 결과를 얻을 수 있습니다. 또한 각 사진에서 얼굴을 추출하는 자동 전처리를 추가했습니다. 필요한 것은 여러 관점에서 명확하게 보이는 방식의 본질을 포착하는 것입니다. 정면을 향한 사진, 양쪽 측면에서 찍은 프로필 사진, 그리고 그 사이의 각도에서 찍은 사진을 포함하세요. 미소, 찌푸림, 중립적인 표정과 같은 다양한 표정의 사진도 포함해야 합니다. 표정을 혼합하면 모델이 고유한 얼굴 특징을 더 잘 재현할 수 있습니다. 입력 이미지는 생성할 수 있는 아바타의 품질을 나타냅니다. 이 작업이 제대로 수행되도록 하려면 이미지 캡처 및 업로드 프로세스를 통해 사용자를 안내하는 직관적인 프런트 엔드 UI 환경을 권장합니다.

다음은 서로 다른 얼굴 표정으로 서로 다른 각도에서 셀카 이미지의 예입니다.

Amazon SageMaker를 사용하여 생성 AI로 개인화된 아바타 구축 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

안정적인 확산 모델 미세 조정

이미지가 Amazon S3에 업로드된 후 다음을 호출할 수 있습니다. SageMaker 비동기 추론 교육 프로세스를 시작하는 끝점. 비동기 엔드포인트는 대용량 페이로드(최대 1GB)와 긴 처리 시간(최대 1시간)이 있는 추론 사용 사례를 위한 것입니다. 또한 Auto Scaling과 같은 SageMaker 호스팅의 다른 기본 기능 외에도 요청을 대기열에 추가하기 위한 기본 제공 대기열 메커니즘과 Amazon SNS를 통한 작업 완료 알림 메커니즘을 제공합니다.

미세 조정은 추론 사용 사례가 아니지만 내장된 대기열 및 알림 메커니즘과 관리형 자동 확장, 서비스를 사용하지 않을 때 0 인스턴스로 축소하는 기능을 포함합니다. 이를 통해 미세 조정 서비스를 많은 수의 동시 사용자로 쉽게 확장할 수 있으며 추가 구성 요소를 구현하고 관리할 필요가 없습니다. 그러나 1GB 페이로드와 최대 처리 시간이 1시간이라는 단점이 있습니다. 테스트에서 우리는 ml.g20xlarge 인스턴스에서 약 10개의 입력 이미지로 합리적으로 좋은 결과를 얻는 데 5.2분이 충분한 시간이라는 것을 발견했습니다. 그러나 SageMaker 교육은 대규모 미세 조정 작업에 권장되는 접근 방식입니다.

비동기 엔드포인트를 호스트하려면 여러 단계를 완료해야 합니다. 첫 번째는 모델 서버를 정의하는 것입니다. 이 게시물에서는 다음을 사용합니다. 대형 모델 추론 컨테이너 (LMI). LMI는 프로그래밍 언어에 구애받지 않는 고성능 모델 제공 솔루션인 DJL Serving으로 구동됩니다. SageMaker 관리형 추론 컨테이너에는 Hugging Face와 같이 필요한 교육 라이브러리가 이미 많이 있기 때문에 이 옵션을 선택했습니다. 디퓨저가속. 이렇게 하면 미세 조정 작업을 위해 컨테이너를 사용자 지정하는 데 필요한 작업량이 크게 줄어듭니다.

다음 코드 스니펫은 예제에서 사용한 LMI 컨테이너의 버전을 보여줍니다.

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}")

그 외에도, 우리는 serving.properties 사용할 추론 엔진, 모델 아티팩트의 위치, 동적 일괄 처리를 포함하여 제공 속성을 구성하는 파일입니다. 마지막으로, 우리는 model.py 모델을 추론 엔진에 로드하고 모델에서 데이터 입력 및 출력을 준비하는 파일입니다. 이 예에서는 다음을 사용합니다. model.py 파일을 사용하여 미세 조정 작업을 시작합니다. 자세한 내용은 이후 섹션에서 설명합니다. 둘 다 serving.propertiesmodel.py 파일은 training_service 폴더에 있습니다.

모델 서버를 정의한 후의 다음 단계는 비동기 추론이 제공되는 방법을 정의하는 끝점 구성을 만드는 것입니다. 이 예에서는 최대 동시 호출 제한과 출력 S3 위치만 정의합니다. 와 더불어 ml.g5.2xlarge 예를 들어 메모리 부족(OOM) 예외를 만나지 않고 동시에 최대 XNUMX개의 모델을 미세 조정할 수 있음을 발견했습니다. max_concurrent_invocations_per_instance 2. 다른 조정 매개변수 집합이나 더 작은 인스턴스 유형을 사용하는 경우 이 숫자를 조정해야 할 수 있습니다. 처음에 이것을 1로 설정하고 다음 단계에서 GPU 메모리 사용률을 모니터링하는 것이 좋습니다. 아마존 클라우드 워치.

# 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
)

마지막으로 컨테이너 정보, 모델 파일 및 AWS 자격 증명 및 액세스 관리 (IAM) 역할을 단일 객체로 변환합니다. 모델은 앞에서 정의한 끝점 구성을 사용하여 배포됩니다.

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
)

엔드포인트가 준비되면 다음 샘플 코드를 사용하여 비동기 엔드포인트를 호출하고 미세 조정 프로세스를 시작합니다.

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의 LMI에 대한 자세한 내용은 다음을 참조하십시오. DJLServing 및 DeepSpeed ​​모델 병렬 추론을 사용하여 Amazon SageMaker에 대규모 모델 배포.

호출 후 비동기 엔드포인트는 미세 조정 작업을 대기열에 넣기 시작합니다. 각 작업은 다음 단계를 통해 실행됩니다. 이미지 준비, Dreambooth 및 LoRA 미세 조정 수행, 모델 아티팩트 준비. 미세 조정 프로세스에 대해 자세히 살펴보겠습니다.

이미지 준비

앞에서 언급했듯이 입력 이미지의 품질은 미세 조정된 모델의 품질에 직접적인 영향을 미칩니다. 아바타 사용 사례의 경우 모델이 얼굴 특징에 집중하기를 원합니다. 사용자에게 정확한 크기와 콘텐츠의 신중하게 선별된 이미지를 제공하도록 요구하는 대신 컴퓨터 비전 기술을 사용하여 이러한 부담을 완화하는 전처리 단계를 구현합니다. 전처리 단계에서는 먼저 얼굴 감지 모델을 사용하여 각 이미지에서 가장 큰 얼굴을 분리합니다. 그런 다음 모델에 필요한 512 x 512 픽셀 크기로 이미지를 자르고 패딩합니다. 마지막으로 배경에서 얼굴을 분할하고 임의의 배경 변형을 추가합니다. 이렇게 하면 얼굴 특징을 강조하여 모델이 배경이 아닌 얼굴 자체에서 학습할 수 있습니다. 다음 이미지는 이 프로세스의 세 단계를 보여줍니다.

Amazon SageMaker를 사용하여 생성 AI로 개인화된 아바타 구축 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함. Amazon SageMaker를 사용하여 생성 AI로 개인화된 아바타 구축 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함. Amazon SageMaker를 사용하여 생성 AI로 개인화된 아바타 구축 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.
1 단계 : 컴퓨터 비전을 사용한 얼굴 감지 2 단계 : 이미지를 512 x 512픽셀로 자르고 채웁니다. 3단계(선택 사항): 분할 및 배경 변형 추가

Dreambooth 및 LoRA 미세 조정

미세 조정을 위해 Dreambooth와 LoRA의 기술을 결합했습니다. Dreambooth를 사용하면 고유 식별자를 사용하여 모델의 출력 도메인에 주제를 포함하고 모델의 언어 비전 사전을 확장하여 Stable Diffusion 모델을 개인화할 수 있습니다. 라는 방법을 사용합니다. 사전 보존 주제 클래스(이 경우에는 사람)에 대한 모델의 의미론적 지식을 보존하고 클래스의 다른 객체를 사용하여 최종 이미지 출력을 개선합니다. 이것이 Dreambooth가 대상의 몇 가지 입력 이미지만으로 고품질 결과를 얻을 수 있는 방법입니다.

다음 코드 스니펫은 trainer.py 아바타 솔루션을 위한 클래스입니다. 우리가 선택한 공지 <<TOK>> 고유 식별자로. 이는 모델의 사전에 이미 있을 수 있는 이름을 선택하지 않기 위해 의도적으로 수행됩니다. 이름이 이미 존재하는 경우 모델은 주제를 학습 해제한 다음 다시 학습해야 하므로 미세 조정 결과가 좋지 않을 수 있습니다. 과목 수업은 다음과 같이 설정됩니다. “a photo of person”, 미세 조정 프로세스 중에 추가 입력으로 입력할 사람의 사진을 먼저 생성하여 사전 보존을 가능하게 합니다. 이것은 모델이 사전 보존 방법을 사용하여 사람의 이전 지식을 보존하려고 시도함에 따라 과적합을 줄이는 데 도움이 됩니다.

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
)

다음을 포함하여 여러 가지 메모리 절약 옵션이 구성에서 활성화되었습니다. fp16, use_8bit_adam, 기울기 누적. 이렇게 하면 메모리 공간이 12GB 미만으로 줄어들어 하나의 시스템에서 동시에 최대 XNUMX개의 모델을 미세 조정할 수 있습니다. ml.g5.2xlarge 예.

LoRA는 대부분의 가중치를 동결하고 작은 어댑터 네트워크를 미리 훈련된 LLM의 특정 계층에 연결하여 더 빠른 훈련과 최적화된 저장을 허용하는 LLM을 위한 효율적인 미세 조정 기술입니다. 안정적인 확산의 경우 어댑터가 추론 파이프라인의 텍스트 인코더 및 U-Net 구성 요소에 연결됩니다. 텍스트 인코더는 입력 프롬프트를 U-Net 모델이 이해하는 잠재 공간으로 변환하고 U-Net 모델은 잠재된 의미를 사용하여 후속 확산 과정에서 이미지를 생성합니다. 미세 조정의 출력은 단지 text_encoder 및 U-Net 어댑터 무게. 추론 시 이러한 가중치를 기본 Stable Diffusion 모델에 다시 연결하여 미세 조정 결과를 재현할 수 있습니다.

아래 그림은 원저자가 제공한 LoRA 미세 조정의 세부 다이어그램입니다. Cheng-Han Chiang, Yung-Sung Chuang, Hungyi Lee, “AACL_2022_tutorial_PLMs,” 2022

Amazon SageMaker를 사용하여 생성 AI로 개인화된 아바타 구축 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함. Amazon SageMaker를 사용하여 생성 AI로 개인화된 아바타 구축 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

두 가지 방법을 결합하여 개인화된 모델을 생성하면서 훨씬 적은 수의 매개변수를 조정할 수 있었습니다. 그 결과 훈련 시간이 훨씬 빨라지고 GPU 활용도가 감소했습니다. 또한 전체 Stable Diffusion 모델의 경우 70GB에 비해 어댑터 무게가 6MB에 불과하여 스토리지가 최적화되어 크기가 99% 감소했습니다.

모델 아티팩트 준비

미세 조정이 완료되면 후처리 단계에서 NVIDIA Triton용 파일을 제공하는 나머지 모델로 LoRA 가중치를 타르화합니다. 우리는 Python 백엔드를 사용합니다. 즉, Triton 구성 파일과 추론에 사용되는 Python 스크립트가 필요합니다. Python 스크립트의 이름을 지정해야 합니다. model.py. 최종 모델 TAR 파일의 파일 구조는 다음과 같아야 합니다.

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

GPU와 함께 SageMaker MME를 사용하여 미세 조정된 모델 호스팅

모델을 미세 조정한 후 SageMaker MME를 사용하여 개인화된 Stable Diffusion 모델을 호스팅합니다. SageMaker MME는 단일 엔드포인트 뒤의 단일 컨테이너에서 여러 모델을 호스팅할 수 있는 강력한 배포 기능입니다. 모델에 대한 트래픽 및 라우팅을 자동으로 관리하여 리소스 활용을 최적화하고 비용을 절감하며 수천 개의 엔드포인트를 관리하는 운영 부담을 최소화합니다. 이 예에서는 GPU 인스턴스에서 실행하고 SageMaker MME는 Triton 서버를 사용하여 GPU를 지원합니다. 이를 통해 단일 GPU 장치에서 여러 모델을 실행하고 가속화된 컴퓨팅을 활용할 수 있습니다. SageMaker MME에서 Stable Diffusion을 호스팅하는 방법에 대한 자세한 내용은 다음을 참조하십시오. Stable Diffusion 모델로 고품질 이미지를 생성하고 Amazon SageMaker로 비용 효율적으로 배포.

이 예에서는 콜드 스타트 ​​상황에서 미세 조정된 모델을 더 빠르게 로드하기 위해 추가 최적화를 수행했습니다. 이는 LoRA의 어댑터 설계로 인해 가능합니다. 기본 모델 가중치와 Conda 환경은 미세 조정된 모든 모델에서 동일하기 때문에 이러한 공통 리소스를 호스팅 컨테이너에 미리 로드하여 공유할 수 있습니다. 이렇게 하면 Triton 구성 파일인 Python 백엔드(model.py) 및 LoRA 어댑터 가중치는 첫 번째 호출 후 Amazon S3에서 동적으로 로드됩니다. 다음 다이어그램은 병렬 비교를 제공합니다.

Amazon SageMaker를 사용하여 생성 AI로 개인화된 아바타 구축 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

이렇게 하면 모델 TAR 파일이 약 6GB에서 70MB로 크게 줄어 로드 및 압축 해제가 훨씬 빨라집니다. 예제에서 사전 로드를 수행하기 위해 다음에서 유틸리티 Python 백엔드 모델을 생성했습니다. models/model_setup. 이 스크립트는 기본 Stable Diffusion 모델과 Conda 환경을 Amazon S3에서 공통 위치로 복사하여 미세 조정된 모든 모델에서 공유합니다. 다음은 작업을 수행하는 코드 스니펫입니다.

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}"

그런 다음 미세 조정된 각 모델은 컨테이너의 공유 위치를 가리킵니다. Conda 환경은 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"}
}

Stable Diffusion 기본 모델은 initialize() 각각의 기능 model.py 파일. 그런 다음 개인화된 LoRA 가중치를 unet에 적용하고 text_encoder 미세 조정된 각 모델을 재현하는 모델:

... 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)

추론을 위해 미세 조정된 모델 사용

이제 MME 끝점을 호출하여 미세 조정된 모델을 시도할 수 있습니다. 예제에서 노출한 입력 매개변수는 다음과 같습니다. prompt, negative_promptgen_args, 다음 코드 스니펫과 같이. 각 입력 항목의 데이터 유형과 모양을 사전에 설정하고 JSON 문자열로 변환합니다. 마지막으로 문자열 페이로드 및 TargetModel 아바타 사진 생성 요청에 전달됩니다.

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

정리

노트북의 정리 섹션에 있는 지침에 따라 이 게시물의 일부로 프로비저닝된 리소스를 삭제하여 불필요한 요금이 부과되지 않도록 하십시오. 인용하다 Amazon SageMaker 요금 추론 인스턴스의 비용에 대한 자세한 내용은

결론

이 게시물에서는 SageMaker에서 Stable Diffusion을 사용하여 개인화된 아바타 솔루션을 만드는 방법을 시연했습니다. 사전 학습된 모델을 몇 개의 이미지로 미세 조정하여 각 사용자의 개성과 성격을 반영하는 아바타를 생성할 수 있습니다. 이는 제너레이티브 AI를 사용하여 사용자에게 맞춤화되고 고유한 경험을 제공하는 방법에 대한 많은 예 중 하나일 뿐입니다. 가능성은 무궁무진하므로 이 기술을 실험하고 창의적인 프로세스를 향상할 수 있는 잠재력을 탐색하는 것이 좋습니다. 이 게시물이 유익하고 고무적이었기를 바랍니다. 예제를 시도하고 소셜 플랫폼에서 해시태그 #sagemaker #mme #genai를 사용하여 창작물을 공유하는 것이 좋습니다. 우리는 당신이 무엇을 만드는지 보고 싶습니다.

Stable Diffusion 외에도 많은 다른 생성 AI 모델을 사용할 수 있습니다. Amazon SageMaker 점프스타트. 인용하다 Amazon SageMaker JumpStart 시작하기 그들의 능력을 탐구하기 위해.


저자에 관하여

Amazon SageMaker를 사용하여 생성 AI로 개인화된 아바타 구축 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.제임스 우 AWS의 수석 AI/ML 전문가 솔루션 아키텍트입니다. 고객이 AI/ML 솔루션을 설계하고 구축할 수 있도록 지원합니다. James의 작업은 컴퓨터 비전, 딥 러닝, 기업 전반에 걸친 ML 확장에 대한 주요 관심과 함께 광범위한 ML 사용 사례를 다룹니다. AWS에 합류하기 전에 James는 엔지니어링 분야에서 10년, 마케팅 및 광고 산업 분야에서 6년을 포함하여 4년 넘게 건축가, 개발자 및 기술 리더였습니다.

Amazon SageMaker를 사용하여 생성 AI로 개인화된 아바타 구축 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.사이먼 자 마린 고객이 데이터 자산에서 가치를 추출하도록 돕는 데 주력하는 AI / ML 솔루션 설계자입니다. 여가 시간에 Simon은 가족과 함께 시간을 보내고, SF를 읽고, 다양한 DIY 하우스 프로젝트 작업을 즐깁니다.

Amazon SageMaker를 사용하여 생성 AI로 개인화된 아바타 구축 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.비크람 엘랑고 미국 버지니아에 본사를 둔 Amazon Web Services의 AI/ML 전문 솔루션 아키텍트입니다. Vikram은 설계, 사고 리더십을 통해 금융 및 보험 산업 고객이 기계 학습 애플리케이션을 대규모로 구축하고 배포할 수 있도록 지원합니다. 그는 현재 자연어 처리, 책임 있는 AI, 추론 최적화 및 전사적 ML 확장에 주력하고 있습니다. 여가 시간에는 가족과 함께 여행, 하이킹, 요리, 캠핑을 즐깁니다.

Amazon SageMaker를 사용하여 생성 AI로 개인화된 아바타 구축 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.장라나 콘텐츠 조정, 컴퓨터 비전 및 자연어 처리를 위한 AI 및 ML을 전문으로 하는 AWS WWSO AI Services 팀의 선임 솔루션 아키텍트입니다. 그녀는 전문 지식을 바탕으로 AWS AI/ML 솔루션을 홍보하고 고객이 소셜 미디어, 게임, 전자 상거래, 광고 및 마케팅을 포함한 다양한 산업에서 비즈니스 솔루션을 혁신하도록 지원하는 데 전념하고 있습니다.

Amazon SageMaker를 사용하여 생성 AI로 개인화된 아바타 구축 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.사우라브 트리칸데 Amazon SageMaker Inference의 수석 제품 관리자입니다. 그는 고객과 함께 일하는 데 열정적이며 기계 학습의 민주화라는 목표에 동기를 부여합니다. 그는 복잡한 ML 애플리케이션, 다중 테넌트 ML 모델 배포, 비용 최적화 및 딥 러닝 모델 배포의 접근성 향상과 관련된 핵심 과제에 중점을 둡니다. 여가 시간에 Saurabh는 하이킹, 혁신적인 기술 학습, TechCrunch 팔로우, 가족과 함께 시간 보내기를 즐깁니다.

타임 스탬프 :

더보기 AWS 기계 학습