Trí thông minh dữ liệu tạo

Kiến trúc sư ứng dụng AI SaaS tổng quát được cá nhân hóa trên Amazon SageMaker

Ngày:

Bối cảnh AI đang được định hình lại bởi sự gia tăng của các mô hình tổng hợp có khả năng tổng hợp dữ liệu chất lượng cao, chẳng hạn như văn bản, hình ảnh, âm nhạc và video. Khóa học hướng tới dân chủ hóa AI đã giúp phổ biến hơn nữa AI tổng quát sau các bản phát hành nguồn mở cho các họ mô hình nền tảng như BERT, T5, GPT, CLIP và gần đây nhất là Khuếch tán ổn định. Hàng trăm ứng dụng phần mềm dưới dạng dịch vụ (SaaS) đang được phát triển xung quanh các mô hình được đào tạo trước này, được phục vụ trực tiếp cho khách hàng cuối hoặc được tinh chỉnh trước trên cơ sở từng khách hàng để tạo nội dung cá nhân và độc đáo (chẳng hạn như hình đại diện, chỉnh sửa ảnh cách điệu, nội dung trò chơi điện tử, văn bản dành riêng cho miền, v.v.). Với tốc độ đổi mới công nghệ và sự phổ biến của các trường hợp sử dụng mới cho AI tổng quát, các nhà cung cấp SaaS gốc AI sắp tới và các công ty khởi nghiệp trong phân khúc B2C cần chuẩn bị mở rộng quy mô ngay từ ngày đầu tiên và đặt mục tiêu rút ngắn thời gian đưa sản phẩm ra thị trường bằng cách giảm hoạt động. trên cao càng nhiều càng tốt.

Trong bài đăng này, chúng tôi xem xét các yêu cầu kỹ thuật và cân nhắc thiết kế ứng dụng để tinh chỉnh và cung cấp các mô hình AI siêu cá nhân hóa trên quy mô lớn trên AWS. Chúng tôi đề xuất một kiến ​​trúc dựa trên quản lý đầy đủ Amazon SageMaker đào tạo và phục vụ các tính năng cho phép các nhà cung cấp SaaS phát triển ứng dụng của họ nhanh hơn, cung cấp chất lượng dịch vụ và tăng hiệu quả chi phí.

Phạm vi giải pháp và yêu cầu

Trước tiên, hãy xác định phạm vi cho các ứng dụng AI SaaS chung được cá nhân hóa:

Tiếp theo, hãy xem xét các yêu cầu kỹ thuật và quy trình làm việc cho một ứng dụng hỗ trợ tinh chỉnh và phục vụ hàng nghìn mô hình được cá nhân hóa tiềm năng. Quy trình công việc thường bao gồm hai phần:

  • Tạo một mô hình được cá nhân hóa thông qua tinh chỉnh nhẹ mô hình được đào tạo trước cơ sở
  • Lưu trữ mô hình được cá nhân hóa cho các yêu cầu suy luận theo yêu cầu khi người dùng quay lại

Một trong những cân nhắc cho phần đầu tiên của quy trình làm việc là chúng ta nên chuẩn bị cho lưu lượng người dùng không thể đoán trước và tăng đột biến. Ví dụ, mức sử dụng cao nhất có thể phát sinh do các bản phát hành mô hình nền tảng mới hoặc các bản giới thiệu tính năng SaaS mới. Điều này sẽ đặt ra nhu cầu dung lượng GPU không liên tục lớn, cũng như nhu cầu khởi chạy công việc tinh chỉnh không đồng bộ để hấp thụ lưu lượng truy cập tăng đột biến.

Đối với mô hình lưu trữ, khi thị trường tràn ngập các ứng dụng SaaS dựa trên AI, tốc độ dịch vụ trở thành yếu tố phân biệt. Trải nghiệm người dùng linh hoạt, mượt mà có thể bị suy giảm do cơ sở hạ tầng khởi động chậm hoặc độ trễ suy luận cao. Mặc dù các yêu cầu về độ trễ suy luận sẽ phụ thuộc vào trường hợp sử dụng và kỳ vọng của người dùng, nhưng nhìn chung, việc cân nhắc này dẫn đến ưu tiên lưu trữ mô hình thời gian thực trên GPU (trái ngược với các tùy chọn lưu trữ chỉ dành cho CPU chậm hơn). Tuy nhiên, lưu trữ mô hình GPU thời gian thực có thể nhanh chóng dẫn đến chi phí vận hành cao. Do đó, điều quan trọng đối với chúng tôi là xác định chiến lược lưu trữ sẽ ngăn chi phí tăng tuyến tính với số lượng mô hình được triển khai (người dùng đang hoạt động).

Giải pháp xây dựng

Trước khi chúng tôi mô tả kiến ​​trúc được đề xuất, hãy thảo luận về lý do tại sao SageMaker rất phù hợp với các yêu cầu ứng dụng của chúng tôi bằng cách xem xét một số tính năng của nó.

Đầu tiên, Đào tạo SageMakerLưu trữ web API mang lại lợi ích về năng suất của các công việc đào tạo được quản lý hoàn toàn và triển khai mô hình, để các nhóm phát triển nhanh có thể tập trung nhiều thời gian hơn vào các tính năng và sự khác biệt của sản phẩm. Ngoài ra, mô hình khởi chạy và quên của các công việc Đào tạo SageMaker hoàn toàn phù hợp với tính chất nhất thời của các công việc tinh chỉnh mô hình đồng thời trong giai đoạn giới thiệu người dùng. Chúng ta thảo luận thêm về các cân nhắc về đồng thời trong phần tiếp theo.

Thứ hai, SageMaker hỗ trợ các tùy chọn lưu trữ hỗ trợ GPU duy nhất để triển khai các mô hình deep learning trên quy mô lớn. Ví dụ: Máy chủ suy luận NVIDIA Triton, một phần mềm suy luận mã nguồn mở hiệu suất cao, đã được tích hợp nguyên bản vào hệ sinh thái SageMaker vào năm 2022. Tiếp theo đó là việc ra mắt hỗ trợ GPU cho các điểm cuối đa mô hình SageMaker, cung cấp khả năng mở rộng, chi phí thấp -độ trễ và cách hiệu quả về chi phí để triển khai hàng nghìn mô hình học sâu sau một điểm cuối duy nhất.

Cuối cùng, khi chúng tôi chuyển sang cấp độ cơ sở hạ tầng, các tính năng này được hỗ trợ bởi các tùy chọn điện toán tốt nhất trong phân khúc. Ví dụ: loại phiên bản G5, được trang bị GPU NVIDIA A10g (dành riêng cho AWS), mang lại tỷ lệ giá trên hiệu suất cao, cho cả đào tạo mô hình và lưu trữ. Nó mang lại chi phí thấp nhất trên mỗi FP32 FLOP (một thước đo quan trọng về lượng điện toán bạn nhận được trên mỗi đô la) trên bảng phiên bản GPU trên AWS và cải thiện đáng kể so với loại phiên bản GPU có chi phí thấp nhất trước đó (G4dn). Để biết thêm thông tin, hãy tham khảo Đạt được thông lượng suy luận ML cao hơn bốn lần với chi phí mỗi lần suy luận thấp hơn ba lần với các phiên bản Amazon EC2 G5 cho các mô hình NLP và CV PyTorch.

Mặc dù kiến ​​trúc sau đây thường áp dụng cho các trường hợp sử dụng AI tổng quát khác nhau, nhưng hãy lấy việc tạo văn bản thành hình ảnh làm ví dụ. Trong trường hợp này, một ứng dụng tạo hình ảnh sẽ tạo một hoặc nhiều mô hình tùy chỉnh, được tinh chỉnh cho từng người dùng của nó và những mô hình đó sẽ có sẵn để tạo hình ảnh theo thời gian thực theo yêu cầu của người dùng cuối. Sau đó, quy trình làm việc của giải pháp có thể được chia thành hai giai đoạn chính, như hiển nhiên từ kiến ​​trúc. Giai đoạn đầu tiên (A) tương ứng với quá trình giới thiệu của người dùng—đây là khi một mô hình được tinh chỉnh cho người dùng mới. Trong giai đoạn thứ hai (B), mô hình tinh chỉnh được sử dụng để suy luận theo yêu cầu.

kiến trúc đề xuất

Chúng ta hãy đi qua các bước trong kiến ​​trúc một cách chi tiết hơn, như được đánh số trong sơ đồ.

1. Kiểm tra tình trạng mô hình

Khi người dùng tương tác với dịch vụ, trước tiên, chúng tôi kiểm tra xem đó có phải là người dùng cũ đã được đưa vào dịch vụ và có các mẫu được cá nhân hóa sẵn sàng để phân phát hay không. Một người dùng có thể có nhiều mô hình được cá nhân hóa. Ánh xạ giữa người dùng và các mô hình tương ứng được lưu trong Máy phát điện Amazon, đóng vai trò là kho lưu trữ siêu dữ liệu không liên quan, không có máy chủ, được quản lý hoàn toàn, dễ truy vấn, không tốn kém và có thể mở rộng. Ở mức tối thiểu, chúng tôi khuyên bạn nên có hai bảng:

  • Một để lưu trữ ánh xạ giữa người dùng và mô hình. Điều này bao gồm ID người dùng và tạo tác mô hình Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) URI.
  • Một cái khác để phục vụ như một hàng đợi, lưu trữ các yêu cầu tạo mô hình và trạng thái hoàn thành của chúng. Điều này bao gồm ID người dùng, ID công việc đào tạo mô hình và trạng thái, cùng với siêu tham số và siêu dữ liệu liên quan đến đào tạo.

2. Hướng dẫn người dùng và tinh chỉnh mô hình.

Nếu không có mô hình nào được tinh chỉnh cho người dùng trước đó, thì ứng dụng sẽ tải các hình ảnh đã tinh chỉnh lên Amazon S3, kích hoạt một AWS Lambda để đăng ký một công việc mới vào bảng DynamoDB.

Một hàm Lambda khác truy vấn bảng để tìm công việc mới và khởi chạy công việc đó bằng chương trình Đào tạo SageMaker. Nó có thể được kích hoạt cho mỗi bản ghi bằng cách sử dụng Luồng Amazon DynamoDB, hoặc theo lịch trình sử dụng Sự kiện Amazon (một mẫu được khách hàng AWS dùng thử và kiểm tra, bao gồm cả nội bộ tại Amazon). Theo tùy chọn, hình ảnh hoặc lời nhắc có thể được chuyển để suy luận và được xử lý trực tiếp trong công việc Đào tạo SageMaker ngay sau khi mô hình được đào tạo. Điều này có thể giúp rút ngắn thời gian đưa những hình ảnh đầu tiên trở lại ứng dụng. Khi hình ảnh được tạo ra, bạn có thể khai thác cơ chế đồng bộ điểm kiểm tra trong SageMaker để tải các kết quả trung gian lên Amazon S3. Liên quan đến khởi động công việc đồng thời, SageMaker API CreateTrainingJob hỗ trợ tốc độ yêu cầu là một mỗi giây, với tốc độ chụp liên tục lớn hơn có sẵn trong thời gian lưu lượng truy cập cao. Nếu bạn cần khởi chạy nhiều hơn một tác vụ tinh chỉnh mỗi giây (TPS), thì bạn có các tùy chọn và điều khiển sau:

  • Sử dụng Bể ấm được quản lý bởi SageMaker, cho phép bạn giữ lại và sử dụng lại cơ sở hạ tầng được cung cấp sau khi hoàn thành công việc đào tạo để giảm độ trễ khởi động nguội đối với khối lượng công việc lặp đi lặp lại.
  • Thực hiện các lần thử lại trong chức năng Lambda công việc khởi chạy của bạn (hiển thị trong sơ đồ kiến ​​trúc).
  • Cuối cùng, nếu tỷ lệ yêu cầu tinh chỉnh luôn ở trên 1 TPS, bạn có thể khởi chạy N tinh chỉnh song song với một công việc Đào tạo SageMaker duy nhất bằng cách yêu cầu một công việc với num_instances=Kvà truyền bá công việc trên các trường hợp khác nhau. Một ví dụ về cách bạn có thể đạt được điều này là chuyển một danh sách các tác vụ sẽ được chạy dưới dạng tệp đầu vào cho tác vụ đào tạo và mỗi phiên bản xử lý một tác vụ hoặc đoạn khác nhau của tệp này, được phân biệt bằng mã định danh số của phiên bản (có trong tài nguyênconfig.json). Hãy nhớ rằng các tác vụ riêng lẻ không nên khác nhau nhiều về thời lượng đào tạo, để tránh trường hợp một tác vụ duy nhất giữ cho toàn bộ cụm hoạt động lâu hơn mức cần thiết.

Cuối cùng, mô hình tinh chỉnh được lưu, kích hoạt chức năng Lambda chuẩn bị phần mềm để phân phát trên điểm cuối đa mô hình SageMaker. Tại thời điểm này, người dùng có thể được thông báo rằng quá trình đào tạo đã hoàn tất và mô hình đã sẵn sàng để sử dụng. tham khảo Quản lý yêu cầu phụ trợ và thông báo giao diện người dùng trong các ứng dụng web không có máy chủ để biết các phương pháp hay nhất về điều này.

3. Phục vụ theo yêu cầu của người dùng

Nếu một mô hình đã được tinh chỉnh trước đó cho người dùng, thì đường dẫn sẽ đơn giản hơn nhiều. Ứng dụng gọi điểm cuối đa mô hình, chuyển tải trọng và ID mô hình của người dùng. Mô hình đã chọn được tải động từ Amazon S3 vào ổ đĩa và bộ nhớ GPU của phiên bản điểm cuối (nếu nó không được sử dụng gần đây; để biết thêm thông tin, hãy tham khảo Cách thức hoạt động của các điểm cuối đa mô hình) và được sử dụng để suy luận. Đầu ra của mô hình (nội dung được cá nhân hóa) cuối cùng được trả lại cho ứng dụng.

Đầu vào và đầu ra của yêu cầu phải được lưu vào S3 để người dùng tham khảo trong tương lai. Để tránh ảnh hưởng đến độ trễ của yêu cầu (thời gian được tính từ thời điểm người dùng đưa ra yêu cầu cho đến khi phản hồi được trả về), bạn có thể thực hiện việc tải lên này trực tiếp từ ứng dụng khách hoặc cách khác là trong mã suy luận của điểm cuối.

Kiến trúc này cung cấp tính không đồng bộ và đồng thời là một phần của yêu cầu giải pháp.

Kết luận

Trong bài đăng này, chúng tôi đã xem xét các điểm cần cân nhắc để tinh chỉnh và phục vụ các mô hình AI siêu cá nhân hóa trên quy mô lớn, đồng thời đề xuất một giải pháp linh hoạt, tiết kiệm chi phí trên AWS bằng SageMaker.

Chúng tôi không đề cập đến trường hợp sử dụng đào tạo trước mô hình lớn. Để biết thêm thông tin, hãy tham khảo Đào tạo phân tán trong Amazon SageMakerDữ liệu phân đoạn song song, cũng như các câu chuyện về cách khách hàng AWS đã đào tạo các mô hình lớn trên SageMaker, chẳng hạn như AIX NUMXAI ổn định.


Về các tác giả

João Moura là Kiến trúc sư giải pháp chuyên gia AI/ML tại AWS, có trụ sở tại Tây Ban Nha. Anh ấy giúp khách hàng đào tạo mô hình deep learning và tối ưu hóa suy luận, đồng thời giúp xây dựng các nền tảng ML quy mô lớn trên AWS một cách rộng rãi hơn. Anh ấy cũng là người tích cực đề xuất các giải pháp ML mã thấp và phần cứng chuyên dụng cho ML.

Tiến sĩ Alexander Arzhanov là một Kiến trúc sư Giải pháp Chuyên gia về AI / ML có trụ sở tại Frankfurt, Đức. Anh ấy giúp khách hàng AWS thiết kế và triển khai các giải pháp ML của họ trên toàn khu vực EMEA. Trước khi gia nhập AWS, Alexander đã nghiên cứu về nguồn gốc của các nguyên tố nặng trong vũ trụ của chúng ta và bắt đầu đam mê ML sau khi sử dụng nó trong các tính toán khoa học quy mô lớn của mình.

Olivier Cruchant là Kiến trúc sư Giải pháp Chuyên gia về Học máy tại AWS, có trụ sở tại Pháp. Olivier giúp khách hàng của AWS - từ các công ty khởi nghiệp nhỏ đến các doanh nghiệp lớn - phát triển và triển khai các ứng dụng học máy ở cấp độ sản xuất. Trong thời gian rảnh rỗi, anh ấy thích đọc các tài liệu nghiên cứu và khám phá vùng hoang dã với bạn bè và gia đình.

Heiko Hotz là Kiến trúc sư giải pháp cấp cao về AI & Machine Learning, tập trung đặc biệt vào xử lý ngôn ngữ tự nhiên (NLP), mô hình ngôn ngữ lớn (LLM) và AI tổng quát. Trước khi đảm nhận vai trò này, ông là Trưởng phòng Khoa học Dữ liệu cho Dịch vụ Khách hàng Châu Âu của Amazon. Heiko giúp khách hàng của chúng tôi thành công trong hành trình AI/ML của họ trên AWS và đã làm việc với các tổ chức trong nhiều ngành, bao gồm bảo hiểm, dịch vụ tài chính, truyền thông và giải trí, chăm sóc sức khỏe, tiện ích và sản xuất. Khi rảnh rỗi, Heiko đi du lịch nhiều nhất có thể.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img