Chúng ta đang sống trong thời kỳ thú vị, với các thông báo về công nghệ tiên tiến hàng tuần. OpenAI vừa phát hành mô hình chuyển văn bản thành hình ảnh tiên tiến DALLE 2.
Chỉ một số người có được quyền truy cập sớm vào hệ thống AI mới có thể tạo ra đồ họa thực tế từ các mô tả ngôn ngữ tự nhiên. Nó vẫn đóng cửa cho công chúng.
Ổn định AI sau đó phát hành Khuếch tán ổn định model, một biến thể mã nguồn mở của DALLE2. Sự ra mắt này đã thay đổi mọi thứ. Mọi người trên internet đã công bố kết quả nhanh chóng và ngạc nhiên trước nghệ thuật hiện thực.
Khuếch tán ổn định là gì?
Khuếch tán ổn định là một mô hình học máy có khả năng tạo hình ảnh từ văn bản, thay đổi hình ảnh tùy thuộc vào văn bản và điền thông tin chi tiết vào hình ảnh có độ phân giải thấp hoặc độ chi tiết thấp.
Nó đã được đào tạo trên hàng tỷ bức ảnh và có thể mang lại kết quả tương đương với DALL-E2 và giữa hành trình. AI ổn định đã phát minh ra nó, và nó được công bố rộng rãi vào ngày 22 tháng 2022 năm XNUMX.
Nhưng với nguồn lực tính toán hạn chế của địa phương, mô hình Khuếch tán ổn định mất nhiều thời gian để tạo ra những bức ảnh chất lượng cao. Chạy mô hình trực tuyến bằng cách sử dụng nhà cung cấp đám mây cung cấp cho chúng tôi nguồn tài nguyên tính toán gần như vô hạn và cho phép chúng tôi thu được kết quả xuất sắc nhanh hơn nhiều.
Lưu trữ mô hình như một dịch vụ vi mô cũng cho phép các ứng dụng sáng tạo khác dễ dàng khai thác tiềm năng của mô hình mà không cần phải đối phó với sự phức tạp của việc chạy các mô hình ML trực tuyến.
Trong bài đăng này, chúng tôi sẽ cố gắng trình bày cách phát triển một mô hình khuếch tán ổn định và triển khai nó cho AWS.
Xây dựng và triển khai Khuếch tán ổn định
BentoML và Amazon Web Services EC2 là hai tùy chọn để lưu trữ mô hình Khuếch tán Ổn định trực tuyến. BentoML là một khuôn khổ mã nguồn mở để mở rộng quy mô học máy dịch vụ. Với BentoML, chúng tôi sẽ xây dựng một dịch vụ phân tán đáng tin cậy và triển khai nó lên AWS EC2.
Chuẩn bị môi trường và tải xuống mô hình khuếch tán ổn định
Cài đặt các yêu cầu và sao chép kho lưu trữ.
Bạn có thể chọn và tải xuống mô hình Khuếch tán ổn định. Độ chính xác đơn phù hợp với CPU hoặc GPU có VRAM lớn hơn 10GB. Độ chính xác một nửa là lý tưởng cho các GPU có VRAM dưới 10GB.
Xây dựng sự khuếch tán ổn định
Chúng tôi sẽ xây dựng một dịch vụ BentoML để phục vụ mô hình đằng sau một API RESTful. Ví dụ sau sử dụng mô hình độ chính xác duy nhất để dự đoán và mô-đun service.py để kết nối dịch vụ với logic nghiệp vụ. Chúng tôi có thể hiển thị các chức năng dưới dạng API bằng cách gắn thẻ chúng bằng @ svc.api.
Hơn nữa, chúng ta có thể xác định các loại đầu vào và đầu ra của API trong các tham số. Ví dụ: điểm cuối txt2img nhận đầu vào JSON và tạo ra đầu ra Hình ảnh, trong khi điểm cuối img2img chấp nhận Hình ảnh và đầu vào JSON và trả về đầu ra Hình ảnh.
Một StableDiffusionRunnable định nghĩa logic suy luận cần thiết. Runnable chịu trách nhiệm chạy các phương thức đường ống txt2img của mô hình và gửi các đầu vào liên quan. Để chạy logic suy luận mô hình trong các API, một Runner tùy chỉnh được xây dựng từ StableDiffusionRunnable.
Sau đó, sử dụng lệnh sau để bắt đầu dịch vụ BentoML để thử nghiệm. Địa phương chạy các Mô hình khuếch tán ổn định suy luận về CPU khá chậm chạp. Mỗi yêu cầu sẽ mất khoảng 5 phút để xử lý.
Văn bản thành hình ảnh
Kết xuất văn bản thành hình ảnh
Tệp bentofile.yaml xác định các tệp cần thiết và các tệp phụ thuộc.
Sử dụng lệnh dưới đây để tạo bento. Bento là định dạng phân phối cho dịch vụ BentoML. Nó là một kho lưu trữ độc lập chứa tất cả dữ liệu và cấu hình cần thiết để bắt đầu dịch vụ.
Hộp bento Khuếch tán Ổn định đã hoàn thành. Nếu bạn không thể tạo bento đúng cách, đừng hoảng sợ; bạn có thể tải xuống mô hình dựng sẵn bằng các lệnh được liệt kê trong phần tiếp theo.
Xây dựng trước mô hình
Sau đây là các mô hình trước khi xây dựng:
Triển khai mô hình khuếch tán ổn định sang EC2
Để triển khai bento tới EC2, chúng tôi sẽ sử dụng bentoctl. bentoctl có thể cho phép bạn triển khai bento của mình đến bất kỳ nền tảng đám mây sử dụng Terraform. Để tạo và áp dụng tệp Terraform, hãy cài đặt toán tử AWS EC2.
Trong tệp config.yaml triển khai, việc triển khai đã được định cấu hình. Vui lòng chỉnh sửa theo yêu cầu của bạn. Bento được triển khai theo mặc định trên máy chủ g4dn.xlarge với Học kĩ càng AMI GPU PyTorch 1.12.0 (Ubuntu 20.04) AMI ở khu vực miền tây 1.
Tạo tệp Terraform ngay bây giờ. Tạo hình ảnh Docker và tải nó lên AWS ECR. Tùy thuộc vào băng thông của bạn, việc tải lên hình ảnh có thể mất nhiều thời gian. Khi triển khai bento tới AWS EC2, hãy sử dụng tệp Terraform.
Để truy cập giao diện người dùng Swagger, hãy kết nối với bảng điều khiển EC2 và mở địa chỉ IP công cộng trong trình duyệt. Cuối cùng, nếu dịch vụ BentoML Khuếch tán Ổn định không còn được yêu cầu nữa, hãy xóa triển khai.
Kết luận
Bạn sẽ có thể thấy SD và các mô hình đồng hành của nó hấp dẫn và mạnh mẽ như thế nào. Thời gian sẽ cho biết liệu chúng ta sẽ lặp lại khái niệm này xa hơn hay chuyển sang các phương pháp tiếp cận phức tạp hơn.
Tuy nhiên, hiện có những sáng kiến đang được tiến hành để đào tạo các mô hình lớn hơn với các điều chỉnh để nắm bắt tốt hơn môi trường xung quanh và các chỉ dẫn. Chúng tôi đã cố gắng phát triển dịch vụ Khuếch tán ổn định bằng BentoML và đã triển khai nó cho AWS EC2.
Chúng tôi có thể chạy mô hình Khuếch tán ổn định trên phần cứng mạnh hơn, tạo ảnh với độ trễ thấp và mở rộng ra ngoài một máy tính duy nhất bằng cách triển khai dịch vụ trên AWS EC2.
Bình luận