우리는 매주 첨단 기술에 대한 발표와 함께 흥미진진한 시대에 살고 있습니다. OpenAI는 최첨단 텍스트-이미지 모델 DALLE 2를 출시했습니다.
자연어 설명에서 사실적인 그래픽을 생성할 수 있는 새로운 AI 시스템에 대한 조기 액세스 권한을 얻은 사람은 극소수에 불과했습니다. 그것은 여전히 공개되어 있습니다.
Stability AI는 다음을 출시했습니다. 안정적인 확산 모델, DALE2의 오픈 소스 변형. 이번 출시로 모든 것이 바뀌었습니다. 인터넷의 모든 사람들은 빠른 결과를 게시하고 사실적인 예술에 놀랐습니다.
안정확산이란?
안정적인 확산 텍스트에서 이미지를 생성하고, 텍스트에 따라 이미지를 변경하고, 저해상도 또는 저해상도 이미지에 세부 정보를 채울 수 있는 머신 러닝 모델입니다.
수십억 장의 사진에 대해 훈련되었으며 다음과 같은 결과를 제공할 수 있습니다. 달-이 2 및 여행 중. 안정성 AI 그것을 발명했고 22년 2022월 XNUMX일에 공개되었습니다.
그러나 제한된 로컬 계산 리소스로 인해 Stable Diffusion 모델은 고품질 사진을 만드는 데 오랜 시간이 걸립니다. 클라우드 공급자를 사용하여 온라인으로 모델을 실행하면 거의 무한한 계산 리소스를 제공하고 훨씬 더 빨리 우수한 결과를 얻을 수 있습니다.
모델을 마이크로서비스로 호스팅하면 다른 크리에이티브 앱이 ML 모델을 온라인으로 실행하는 복잡성을 처리하지 않고도 모델의 잠재력을 보다 쉽게 활용할 수 있습니다.
이 게시물에서는 안정적인 확산 모델을 개발하고 AWS에 배포하는 방법을 보여 드리겠습니다.
안정적인 확산 구축 및 배포
벤토ML Amazon Web Services EC2는 Stable Diffusion 모델을 온라인으로 호스팅하기 위한 두 가지 옵션입니다. BentoML은 확장을 위한 오픈 소스 프레임워크입니다. 기계 학습 서비스. BentoML을 사용하여 안정적인 분산 서비스를 구축하고 AWS EC2에 배포합니다.
환경 준비 및 안정적인 확산 모델 다운로드
요구 사항을 설치하고 저장소를 복제합니다.
Stable Diffusion 모델을 선택하여 다운로드할 수 있습니다. 단정밀도는 10GB 이상의 VRAM이 있는 CPU 또는 GPU에 적합합니다. 절반 정밀도는 VRAM이 10GB 미만인 GPU에 이상적입니다.
안정적인 확산 구축
우리는 뒤에 있는 모델을 제공하기 위해 BentoML 서비스를 구축할 것입니다. RESTful API. 다음 예제에서는 예측을 위한 단정밀도 모델과 서비스를 비즈니스 로직에 연결하기 위해 service.py 모듈을 사용합니다. @svc.api로 태그를 지정하여 함수를 API로 노출할 수 있습니다.
또한 매개변수에서 API의 입력 및 출력 유형을 정의할 수 있습니다. 예를 들어 txt2img 끝점은 JSON 입력을 수신하고 이미지 출력을 생성하는 반면 img2img 끝점은 이미지 및 JSON 입력을 수락하고 이미지 출력을 반환합니다.
StableDiffusionRunnable은 필수 추론 논리를 정의합니다. runnable은 모델의 txt2img 파이프 메서드를 실행하고 관련 입력을 보내는 역할을 합니다. API에서 모델 추론 로직을 실행하기 위해 사용자 지정 Runner는 StableDiffusionRunnable에서 구성됩니다.
그런 다음 다음 명령을 사용하여 테스트를 위해 BentoML 서비스를 시작합니다. 로컬에서 실행 안정적인 확산 모델 CPU에 대한 추론은 다소 느립니다. 각 요청을 처리하는 데 약 5분이 소요됩니다.
텍스트를 이미지로
텍스트를 이미지로 출력
Bentofile.yaml 파일은 필수 파일 및 종속성을 정의합니다.
아래 명령어를 사용하여 도시락을 만드세요. Bento는 BentoML 서비스의 배포 형식입니다. 서비스를 시작하는 데 필요한 모든 데이터와 구성이 포함된 독립형 아카이브입니다.
안정확산 도시락이 완성되었습니다. 도시락을 제대로 만들지 못했다고 당황하지 마세요. 다음 섹션에 나열된 명령을 사용하여 미리 빌드된 모델을 다운로드할 수 있습니다.
사전 빌드 모델
다음은 사전 빌드 모델입니다.
EC2에 안정적인 확산 모델 배포
벤토를 EC2에 배포하기 위해 우리는 bentoctl을 사용할 것입니다. Bentoctl을 사용하면 모든 벤토에 배포할 수 있습니다. 클라우드 플랫폼 테라폼을 사용하여 Terraform 파일을 빌드하고 적용하려면 AWS EC2 운영자를 설치하십시오.
배포 config.yaml 파일에서 배포가 이미 구성되었습니다. 귀하의 요구 사항에 맞게 자유롭게 편집하십시오. Bento는 기본적으로 g4dn.xlarge 호스트에 배포됩니다. 깊은 학습 us-west-1.12.0 리전의 AMI GPU PyTorch 20.04(Ubuntu 1) AMI.
지금 Terraform 파일을 만드십시오. Docker 이미지를 생성하고 AWS ECR에 업로드합니다. 대역폭에 따라 이미지 업로드에 시간이 오래 걸릴 수 있습니다. Bento를 AWS EC2에 배포할 때 Terraform 파일을 사용합니다.
Swagger UI에 액세스하려면 EC2 콘솔에 연결하고 브라우저에서 퍼블릭 IP 주소를 엽니다. 마지막으로 Stable Diffusion BentoML 서비스가 더 이상 필요하지 않은 경우 배포를 제거합니다.
결론
SD와 그 동반 모델이 얼마나 매혹적이고 강력한지 알 수 있을 것입니다. 시간이 지나면 개념을 계속해서 반복할지 아니면 더 정교한 접근 방식으로 이동할지 알려줄 것입니다.
그러나 현재 주변 환경과 지침을 더 잘 이해할 수 있도록 조정하여 더 큰 모델을 훈련시키기 위한 이니셔티브가 진행 중입니다. BentoML을 사용하여 Stable Diffusion 서비스를 개발하려고 시도했고 이를 AWS EC2에 배포했습니다.
AWS EC2에 서비스를 배포하여 보다 강력한 하드웨어에서 Stable Diffusion 모델을 실행하고 짧은 지연 시간으로 사진을 생성하고 단일 컴퓨터 이상으로 확장할 수 있었습니다.
댓글을 남겨주세요.