Các foundaton model ngày càng được các doanh nghiệp ứng dụng rộng rãi trong việc tạo văn bản , hình ảnh, nhạc giúp phát triển ứng dụng/sản phẩm mới. Tuy nhiên, việc triển khai các mô hình lớn như Stable Diffusion tốn nhiều thời gian và gây khó khăn. Chính vì vậy, Google Cloud đã giới thiệu cách xây dựng mô hình Stable Diffusion chỉ trong 4 bước với Vertex AI và PyTorch. Hãy cùng Cloud Ace tìm hiểu nhé.
PyTorch là framework được Stability AI sử dụng trên Stable Diffusion v1.5.
Vertex AI là nền tảng machine learning với các công cụ và CSHT được thiết kế để giúp doanh nghiệp tăng tốc và mở rộng quy mô ML trong sản xuất. Doanh nghiệp có thể triển khai mô hình PyTorch Stable Diffusio (v1.5) chỉ trong 4 bước sau:
TorchServe là một công cụ dễ dàng và linh hoạt cho các mô hình PyTorch. Model được triển khai cho Vertex AI sử dụng TorchServe để xử lý các yêu cầu và trả về phản hồi. Người dùng phải tạo một trình xử lý TorchServe tùy chỉnh để tải model artifact lên Vertex AI.
Tạo tệp trình xử lý trong thư mục với các model artifact khác, như sau: model_artifacts/handler.py.
Sau khi tạo tệp xử lý, người dùng phải đóng gói trình xử lý dưới dạng tệp lưu trữ mô hình (MAR). Tệp đầu ra phải được đặt tên model.mar.
!torch-model-archiver \
-f \
--model-name <your_model_name> \
--version 1.0 \
--handler model_artifacts/handler.py \
--export-path model_artifacts
Bước tiếp theo là tải model artifacts lên GCS như: tệp mô hình hoặc trình xử lý. Ưu điểm của việc lưu trữ các thành phần trên GCS giúp theo dõi các thành phần trong một bộ chứa trung tâm.
BUCKET_NAME = "your-bucket-name-unique" # @param {type:"string"}
BUCKET_URI = f"gs://{BUCKET_NAME}/"
# Will copy the artifacts into the bucket
!gsutil cp -r model_artifacts $BUCKET_URIKhi đã tải model artifacts lên một bộ chứa GCS, người dùng có thể tải PyTorch model lên Vertex AI Model Registry. Người dùng sẽ có cái nhìn tổng quan về các mô hình của mình để có thể tổ chức, theo dõi và đào tạo các phiên bản mới tốt hơn. Để làm điều này, họ có thể sử dụng Vertex AI SDK và pre-built PyTorch container của Google Cloud.
from google.cloud import aiplatform as vertexai
PYTORCH_PREDICTION_IMAGE_URI = (
"us-docker.pkg.dev/vertex-ai/prediction/pytorch-gpu.1-12:latest"
)
MODEL_DISPLAY_NAME = "stable_diffusion_1_5-unique"
MODEL_DESCRIPTION = "stable_diffusion_1_5 container"
vertexai.init(project='your_project', location='us-central1',
staging_bucket=BUCKET_NAME)
model = aiplatform.Model.upload(
display_name=MODEL_DISPLAY_NAME,
description=MODEL_DESCRIPTION,
serving_container_image_uri=PYTORCH_PREDICTION_IMAGE_URI,
artifact_uri=BUCKET_URI,
)
Sau khi mô hình đã được tải lên Vertex AI Model Registry, người dùng có thể lấy mô hình đó và triển khai nó tới Vertex AI Endpoint. Họ có thể sử dụng Bảng điều khiển hoặc Vertex AI SDK.
Ví dụ: triển khai mô hình trên GPU NVIDIA Tesla P100 và máy n1-standard-8. Người dùng có thể chỉ định loại máy.
ENDPOINT_DISPLAY_NAME = f"my-stable-diffusion-endpoint"
endpoint = aiplatform.Endpoint.create(display_name=ENDPOINT_DISPLAY_NAME)
model.deploy(
endpoint=endpoint,
deployed_model_display_name=MODEL_DISPLAY_NAME,
machine_type="n1-standard-8",
accelerator_type="NVIDIA_TESLA_P100",
accelerator_count=1,
traffic_percentage=100,
deploy_request_timeout=1200,
sync=True,
)
Tìm hiểu thêm về chương trình ưu đãi Google Cloud Platform tại Cloud Ace's Promotion
Cloud Ace - Managed Service Partner của Google Cloud