Đạt được khả năng lưu trữ có độ trễ thấp cho các mô hình ML dựa trên cây quyết định trên Máy chủ suy luận NVIDIA Triton trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Đạt được khả năng lưu trữ có độ trễ thấp cho các mô hình ML dựa trên cây quyết định trên Máy chủ suy luận NVIDIA Triton trên Amazon SageMaker

Việc triển khai mô hình học máy (ML) có thể có những yêu cầu rất khắt khe về hiệu suất và độ trễ đối với các doanh nghiệp ngày nay. Các trường hợp sử dụng như phát hiện gian lận và đặt quảng cáo là những ví dụ trong đó mili giây có ý nghĩa quan trọng và rất quan trọng đối với sự thành công của doanh nghiệp. Cần phải đáp ứng các thỏa thuận cấp độ dịch vụ (SLA) nghiêm ngặt và một yêu cầu thông thường có thể yêu cầu nhiều bước như tiền xử lý, chuyển đổi dữ liệu, logic lựa chọn mô hình, tổng hợp mô hình và xử lý hậu kỳ. Ở quy mô lớn, điều này thường có nghĩa là duy trì lưu lượng truy cập lớn trong khi vẫn duy trì độ trễ thấp. Các mẫu thiết kế phổ biến bao gồm các quy trình suy luận nối tiếp, tập hợp (thu thập phân tán) và quy trình công việc logic nghiệp vụ, dẫn đến việc hiện thực hóa toàn bộ quy trình công việc của yêu cầu dưới dạng Đồ thị tuần hoàn có hướng (DAG). Tuy nhiên, khi quy trình làm việc trở nên phức tạp hơn, điều này có thể dẫn đến tăng thời gian phản hồi tổng thể, từ đó có thể tác động tiêu cực đến trải nghiệm của người dùng cuối và gây nguy hiểm cho các mục tiêu kinh doanh. Triton có thể giải quyết các trường hợp sử dụng này trong đó nhiều mô hình được cấu thành trong một đường ống với các tensor đầu vào và đầu ra được kết nối giữa chúng, giúp bạn giải quyết các khối lượng công việc này.

Khi bạn đánh giá các mục tiêu của mình liên quan đến suy luận mô hình ML, nhiều tùy chọn có thể được xem xét, nhưng rất ít tùy chọn có khả năng và được chứng minh bằng Amazon SageMaker với Máy chủ suy luận Triton. SageMaker với Máy chủ suy luận Triton là lựa chọn phổ biến của nhiều khách hàng vì nó được xây dựng nhằm mục đích tối đa hóa thông lượng và mức sử dụng phần cứng với độ trễ suy luận cực thấp (một mili giây). Nó có nhiều khung ML được hỗ trợ (bao gồm TensorFlow, PyTorch, ONNX, XGBoost và NVIDIA TensorRT) và các chương trình phụ trợ cơ sở hạ tầng, bao gồm GPU NVIDIA, CPU và Suy luận AWS. Ngoài ra, Máy chủ suy luận Triton được tích hợp với SageMaker, một dịch vụ ML toàn diện được quản lý hoàn toàn, cung cấp các tùy chọn suy luận theo thời gian thực cho việc lưu trữ mô hình.

Trong bài đăng này, chúng tôi sẽ hướng dẫn cách triển khai khối lượng công việc tổng hợp phát hiện gian lận cho SageMaker với Máy chủ suy luận Triton.

Tổng quan về giải pháp

Điều cần thiết đối với bất kỳ dự án nào là phải có danh sách các yêu cầu và ước tính nỗ lực để ước tính tổng chi phí của dự án. Điều quan trọng là ước tính lợi tức đầu tư (ROI) hỗ trợ cho quyết định của tổ chức. Một số cân nhắc cần cân nhắc khi chuyển khối lượng công việc sang Triton bao gồm:

Ước lượng nỗ lực là chìa khóa trong phát triển phần mềm và phép đo của nó thường dựa trên đầu vào không đầy đủ, không chắc chắn và ồn ào. Khối lượng công việc ML cũng không khác. Nhiều yếu tố sẽ ảnh hưởng đến kiến ​​trúc cho suy luận ML, một số trong đó bao gồm:

  • Ngân sách độ trễ phía khách hàng – Nó chỉ định thời gian chờ đợi tối đa có thể chấp nhận được của chuyến đi khứ hồi phía máy khách đối với phản hồi suy luận, thường được biểu thị bằng phần trăm. Đối với khối lượng công việc yêu cầu mức độ trễ gần hàng chục mili giây, việc truyền mạng có thể trở nên tốn kém, do đó, sử dụng các mô hình ở biên sẽ phù hợp hơn.
  • Kích thước phân phối tải trọng dữ liệu – Tải trọng, thường được gọi là nội dung tin nhắn, là dữ liệu yêu cầu được truyền từ máy khách đến mô hình, cũng như dữ liệu phản hồi được truyền từ mô hình đến máy khách. Kích thước tải trọng thường có tác động lớn đến độ trễ và cần được xem xét.
  • Định dạng dữ liệu – Điều này chỉ định cách gửi tải trọng đến mô hình ML. Định dạng có thể được con người đọc được, chẳng hạn như JSON và CSV, tuy nhiên cũng có các định dạng nhị phân, thường được nén và có kích thước nhỏ hơn. Đây là sự cân bằng giữa chi phí nén và kích thước truyền, nghĩa là chu kỳ CPU và độ trễ được thêm vào để nén hoặc giải nén nhằm tiết kiệm byte được truyền qua mạng. Bài đăng này cho thấy cách sử dụng cả định dạng JSON và nhị phân.
  • Ngăn xếp phần mềm và các thành phần cần thiết – Ngăn xếp là tập hợp các thành phần hoạt động cùng nhau để hỗ trợ ứng dụng ML, bao gồm hệ điều hành, thời gian chạy và các lớp phần mềm. Triton đi kèm với các khung ML phổ biến được tích hợp sẵn, được gọi là phụ trợ, chẳng hạn như ONNX, TensorFlow, FIL, OpenVINO, Python nguyên gốc và các loại khác. Bạn cũng có thể viết một phụ trợ tùy chỉnh cho các thành phần cây nhà lá vườn của riêng bạn. Bài đăng này đề cập đến mô hình XGBoost và quá trình xử lý trước dữ liệu mà chúng tôi chuyển sang các chương trình phụ trợ FIL và Python Triton do NVIDIA cung cấp tương ứng.

Tất cả những yếu tố này sẽ đóng vai trò quan trọng trong việc đánh giá khối lượng công việc của bạn hoạt động như thế nào, nhưng trong trường hợp sử dụng này, chúng tôi tập trung vào công việc cần thiết để di chuyển các mô hình ML của bạn sang được lưu trữ trong SageMaker với Máy chủ suy luận Triton. Cụ thể, chúng tôi sử dụng một ví dụ về nhóm phát hiện gian lận bao gồm mô hình XGBoost với logic tiền xử lý được viết bằng Python.

Máy chủ suy luận NVIDIA Triton

Máy chủ suy luận Triton đã được thiết kế từ đầu để cho phép các nhóm triển khai, chạy và mở rộng quy mô các mô hình AI đã được đào tạo từ bất kỳ khung nào trên cơ sở hạ tầng dựa trên GPU hoặc CPU. Ngoài ra, nó đã được tối ưu hóa để cung cấp khả năng suy luận hiệu suất cao trên quy mô lớn với các tính năng như phân khối động, chạy đồng thời, cấu hình mô hình tối ưu, tập hợp mô hình và hỗ trợ truyền phát đầu vào.

Sơ đồ sau đây cho thấy một ví dụ về quy trình tổng hợp NVIDIA Triton.

Đạt được khả năng lưu trữ có độ trễ thấp cho các mô hình ML dựa trên cây quyết định trên Máy chủ suy luận NVIDIA Triton trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Khối lượng công việc phải tính đến các khả năng mà Triton cung cấp cùng với dịch vụ lưu trữ SageMaker để tối đa hóa lợi ích được cung cấp. Ví dụ: Triton hỗ trợ HTTP cũng như API C, cho phép linh hoạt cũng như tối ưu hóa tải trọng khi cần thiết. Như đã đề cập trước đó, Triton hỗ trợ một số khung phổ biến, bao gồm TensorFlow, PyTorch, ONNX, XGBoost và NVIDIA TensorRT. Các khung này được hỗ trợ thông qua các chương trình phụ trợ của Triton và trong trường hợp hiếm hoi là chương trình phụ trợ không hỗ trợ trường hợp sử dụng của bạn, Triton cho phép bạn tự triển khai và tích hợp nó một cách dễ dàng.

Sơ đồ sau đây là một ví dụ về kiến ​​trúc NVIDIA Triton.

NVIDIA Triton trên SageMaker

Lưu trữ SageMaker dịch vụ là tập hợp các tính năng của SageMaker nhằm mục đích làm cho việc triển khai và phục vụ mô hình dễ dàng hơn. Nó cung cấp nhiều tùy chọn để dễ dàng triển khai, tự động mở rộng quy mô, giám sát và tối ưu hóa các mô hình ML phù hợp với các trường hợp sử dụng khác nhau. Điều này có nghĩa là bạn có thể tối ưu hóa việc triển khai của mình cho tất cả các kiểu sử dụng, từ liên tục và luôn sẵn sàng với các tùy chọn không máy chủ, đến nhu cầu suy luận tạm thời, lâu dài hoặc hàng loạt.

Bên dưới hệ thống lưu trữ SageMaker còn có bộ Bộ chứa học tập sâu (DLC) suy luận SageMaker, được đóng gói sẵn với phần mềm máy chủ mô hình thích hợp cho khung ML được hỗ trợ tương ứng. Điều này cho phép bạn đạt được hiệu suất suy luận cao mà không cần thiết lập máy chủ mô hình. Đây thường là khía cạnh kỹ thuật phức tạp nhất khi triển khai mô hình và nói chung không nằm trong bộ kỹ năng của nhà khoa học dữ liệu. Máy chủ suy luận Triton hiện đã có có sẵn trên các DLC của SageMaker.

Sự đa dạng của các tùy chọn, tính mô-đun và sự dễ sử dụng của các khung phân phối khác nhau khiến SageMaker và Triton trở thành một đối thủ mạnh mẽ.

Hỗ trợ phụ trợ NVIDIA FIL

Với Phiên bản 22.05 phát hành của Triton, NVIDIA hiện hỗ trợ các mô hình forest được đào tạo bởi một số khung ML phổ biến, bao gồm XGBoost, LightGBM, Scikit-learn và cuML. Khi sử dụng phần phụ trợ FIL cho Triton, bạn nên đảm bảo rằng các tạo phẩm mô hình mà bạn cung cấp được hỗ trợ. Ví dụ: FIL hỗ trợ model_type xgboost, xgboost_json, lightgbm, hoặc là treelite_checkpoint, cho biết mô hình được cung cấp lần lượt ở định dạng nhị phân XGBoost, định dạng JSON XGBoost, định dạng văn bản LightGBM hay định dạng nhị phân Treelite.

Hỗ trợ phụ trợ này rất cần thiết để chúng tôi sử dụng trong ví dụ của mình vì FIL hỗ trợ các mô hình XGBoost. Điều cần cân nhắc duy nhất cần kiểm tra là đảm bảo rằng mô hình mà chúng tôi triển khai hỗ trợ các định dạng nhị phân hoặc JSON.

Ngoài việc đảm bảo rằng bạn có định dạng mô hình phù hợp, cần cân nhắc những điều khác. Phần phụ trợ FIL cho Triton cung cấp các tùy chọn có thể định cấu hình để nhà phát triển điều chỉnh khối lượng công việc của họ và tối ưu hóa hiệu suất chạy mô hình. Cấu hình dynamic_batching cho phép Triton giữ các yêu cầu phía máy khách và phân nhóm chúng ở phía máy chủ, để sử dụng hiệu quả tính toán song song của FIL nhằm suy luận toàn bộ lô cùng nhau. tùy chọn max_queue_delay_microseconds cung cấp khả năng kiểm soát an toàn về thời gian Triton chờ đợi để tạo thành một lô. FIL đi kèm với trình giải thích Shapley, có thể được kích hoạt bằng cấu hình treeshap_output; tuy nhiên, bạn nên nhớ rằng đầu ra của Shapley sẽ ảnh hưởng đến hiệu suất do kích thước đầu ra của nó. Một khía cạnh quan trọng khác là storage_type để cân bằng giữa dung lượng bộ nhớ và thời gian chạy. Ví dụ: sử dụng bộ lưu trữ dưới dạng SPARSE có thể giảm mức tiêu thụ bộ nhớ, trong khi DENSE có thể làm giảm hiệu suất chạy mô hình của bạn với chi phí sử dụng bộ nhớ cao hơn. Việc quyết định lựa chọn tốt nhất cho từng tùy chọn này tùy thuộc vào khối lượng công việc và ngân sách độ trễ của bạn, vì vậy chúng tôi khuyên bạn nên xem xét kỹ hơn tất cả các tùy chọn trong Câu hỏi thường gặp về phụ trợ FILdanh sách các cấu hình có sẵn trong FIL.

Các bước để lưu trữ mô hình trên triton

Hãy xem trường hợp sử dụng phát hiện gian lận của chúng tôi làm ví dụ về những điều cần cân nhắc khi chuyển khối lượng công việc sang Triton.

Xác định khối lượng công việc của bạn

Trong trường hợp sử dụng này, chúng tôi sử dụng mô hình phát hiện gian lận trong quá trình thanh toán của khách hàng bán lẻ. Quy trình suy luận đang sử dụng thuật toán XGBoost với logic tiền xử lý bao gồm việc chuẩn bị dữ liệu cho quá trình tiền xử lý.

Xác định các số liệu hiệu suất hiện tại và mục tiêu cũng như các mục tiêu khác có thể áp dụng

Bạn có thể thấy rằng thời gian suy luận từ đầu đến cuối của bạn mất quá nhiều thời gian để có thể chấp nhận được. Mục tiêu của bạn có thể là tăng độ trễ từ hàng chục mili giây sang độ trễ một chữ số cho cùng một lượng yêu cầu và thông lượng tương ứng. Bạn xác định rằng phần lớn thời gian được sử dụng cho quá trình xử lý trước dữ liệu và mô hình XGBoost. Các yếu tố khác như mạng và kích thước tải trọng đóng vai trò tối thiểu trong chi phí liên quan đến thời gian suy luận từ đầu đến cuối.

Làm việc ngược lại để xác định xem Triton có thể lưu trữ khối lượng công việc của bạn dựa trên yêu cầu của bạn không

Để xác định xem Triton có thể đáp ứng yêu cầu của bạn hay không, bạn cần chú ý đến hai lĩnh vực chính cần quan tâm. Đầu tiên là đảm bảo rằng Triton có thể phân phát với tùy chọn giao diện người dùng có thể chấp nhận được, chẳng hạn như API HTTP hoặc C.

Như đã đề cập trước đây, điều quan trọng là phải xác định xem Triton có hỗ trợ phần phụ trợ có thể phục vụ các tạo phẩm của bạn hay không. Triton hỗ trợ một số phụ trợ được thiết kế riêng để hỗ trợ các khung khác nhau như PyTorch và TensorFlow. Kiểm tra để đảm bảo rằng mô hình của bạn được hỗ trợ và bạn có định dạng mô hình phù hợp mà Triton mong đợi. Để thực hiện việc này, trước tiên hãy kiểm tra xem phần phụ trợ Triton hỗ trợ những định dạng mô hình nào. Trong nhiều trường hợp, điều này không yêu cầu bất kỳ thay đổi nào đối với mô hình. Trong các trường hợp khác, mô hình của bạn có thể yêu cầu chuyển đổi sang định dạng khác. Tùy thuộc vào định dạng nguồn và đích, có nhiều tùy chọn khác nhau, chẳng hạn như chuyển đổi một Tệp dưa chuột Python để sử dụng định dạng điểm kiểm tra nhị phân của Treelite.

Đối với trường hợp sử dụng này, chúng tôi xác định FIL phụ trợ có thể hỗ trợ mô hình XGBoost mà không cần thay đổi và chúng tôi có thể sử dụng Chương trình phụ trợ Python cho quá trình tiền xử lý. Với tính năng tổng hợp của Triton, bạn có thể tối ưu hóa hơn nữa khối lượng công việc của mình bằng cách tránh các cuộc gọi mạng tốn kém giữa các phiên bản lưu trữ.

Lập kế hoạch và ước tính công sức cần thiết để sử dụng Triton cho hosting

Hãy nói về kế hoạch chuyển mô hình của bạn sang Triton. Mỗi lần triển khai Triton đều yêu cầu những điều sau:

  • Các tạo phẩm mô hình được yêu cầu bởi chương trình phụ trợ Triton
  • Tập tin cấu hình Triton
  • Một thư mục kho lưu trữ mô hình có cấu trúc phù hợp

Chúng tôi sẽ trình bày một ví dụ về cách tạo các phần phụ thuộc triển khai này ở phần sau của bài đăng này.

Chạy kế hoạch và xác nhận kết quả

Sau khi tạo các tệp và thành phần cần thiết trong kho lưu trữ mô hình có cấu trúc phù hợp, bạn cần điều chỉnh quá trình triển khai của mình và kiểm tra nó để xác thực rằng hiện tại bạn đã đạt được số liệu mục tiêu của mình.

Tại thời điểm này, bạn có thể sử dụng Đề xuất suy luận của SageMaker để xác định loại phiên bản điểm cuối nào phù hợp nhất với bạn dựa trên yêu cầu của bạn. Ngoài ra, Triton còn cung cấp các công cụ giúp tối ưu hóa bản dựng để có hiệu suất tốt hơn.

Thực hiện

Bây giờ hãy xem chi tiết thực hiện. Để làm được điều này, chúng tôi đã chuẩn bị hai cuốn sổ tay cung cấp ví dụ về những gì có thể xảy ra. Các cuốn sổ đầu tiên hiển thị quá trình đào tạo của mô hình XGBoost nhất định cũng như logic tiền xử lý được sử dụng cho cả thời gian đào tạo và suy luận. Các cuốn sổ thứ hai cho thấy cách chúng tôi chuẩn bị các tạo phẩm cần thiết để triển khai trên Triton.

Sổ ghi chép đầu tiên hiển thị sổ ghi chép hiện có mà tổ chức của bạn sử dụng NHANH CHÓNG bộ thư viện và hạt nhân RAPIDS Conda. Phiên bản này chạy trên loại phiên bản G4DN do AWS cung cấp, loại phiên bản này được tăng tốc GPU bằng cách sử dụng bộ xử lý NVIDIA T4.

Đạt được khả năng lưu trữ có độ trễ thấp cho các mô hình ML dựa trên cây quyết định trên Máy chủ suy luận NVIDIA Triton trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Các tác vụ tiền xử lý trong ví dụ này được hưởng lợi từ khả năng tăng tốc GPU và sử dụng nhiều thư viện cuML và cuDF. Một ví dụ về điều này là trong đoạn mã sau, trong đó chúng tôi hiển thị mã hóa nhãn phân loại bằng cuML. Chúng tôi cũng tạo ra một label_encoders.pkl mà chúng ta có thể sử dụng để tuần tự hóa các bộ mã hóa và sử dụng chúng để xử lý trước trong thời gian suy luận.

Đạt được khả năng lưu trữ có độ trễ thấp cho các mô hình ML dựa trên cây quyết định trên Máy chủ suy luận NVIDIA Triton trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Sổ ghi chép đầu tiên kết thúc bằng việc huấn luyện mô hình XGBoost của chúng tôi và lưu các tạo phẩm tương ứng.

Đạt được khả năng lưu trữ có độ trễ thấp cho các mô hình ML dựa trên cây quyết định trên Máy chủ suy luận NVIDIA Triton trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Đạt được khả năng lưu trữ có độ trễ thấp cho các mô hình ML dựa trên cây quyết định trên Máy chủ suy luận NVIDIA Triton trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Trong trường hợp này, mã đào tạo đã tồn tại và không cần thay đổi mô hình tại thời điểm đào tạo. Ngoài ra, mặc dù chúng tôi đã sử dụng khả năng tăng tốc GPU để xử lý trước trong quá trình đào tạo nhưng chúng tôi dự định sử dụng CPU để xử lý trước tại thời điểm suy luận. Chúng tôi sẽ giải thích thêm sau trong bài viết.

Bây giờ chúng ta hãy chuyển sang sổ ghi chép thứ hai và nhớ lại những gì chúng ta cần để triển khai Triton thành công.

Đầu tiên, chúng ta cần các tạo phẩm mô hình mà chương trình phụ trợ yêu cầu. Các tệp mà chúng tôi cần tạo cho nhóm này bao gồm:

  • Các tạo phẩm tiền xử lý (model.py, label_encoders.pkl)
  • Các tạo phẩm mô hình XGBoost (xgboost.json)

Phần phụ trợ Python trong Triton yêu cầu chúng tôi sử dụng môi trường Conda làm phần phụ thuộc. Trong trường hợp này, chúng tôi sử dụng phần phụ trợ Python để xử lý trước dữ liệu thô trước khi đưa dữ liệu đó vào mô hình XGBoost đang chạy trong phần phụ trợ FIL. Mặc dù ban đầu chúng tôi sử dụng thư viện RAPIDS cuDF và cuML để thực hiện tiền xử lý dữ liệu (như đã đề cập trước đó bằng GPU của chúng tôi), nhưng ở đây chúng tôi sử dụng Pandas và Scikit-learn làm phần phụ thuộc tiền xử lý cho thời gian suy luận (sử dụng CPU của chúng tôi). Chúng tôi làm điều này vì ba lý do:

  • Để trình bày cách tạo môi trường Conda cho các phần phụ thuộc của bạn và cách đóng gói nó trong định dạng dự kiến bởi chương trình phụ trợ Python của Triton.
  • Bằng cách hiển thị mô hình tiền xử lý chạy trong phần phụ trợ Python trên CPU trong khi mô hình XGBoost chạy trên GPU trong phần phụ trợ FIL, chúng tôi minh họa cách mỗi mô hình trong quy trình tập hợp của Triton có thể chạy trên một phần phụ trợ khung khác nhau và chạy trên các phần cứng khác nhau với các phần cứng khác nhau. cấu hình.
  • Nó nêu bật cách các thư viện RAPIDS (cuDF, cuML) tương thích với các đối tác CPU của chúng (Pandas, Scikit-learn). Bằng cách này, chúng ta có thể chỉ ra cách LabelEncoders được tạo bằng cuML có thể được sử dụng trong Scikit-learn và ngược lại. Lưu ý rằng nếu muốn xử lý trước lượng lớn dữ liệu dạng bảng trong thời gian suy luận, bạn vẫn có thể sử dụng RAPIDS để tăng tốc GPU.

Hãy nhớ lại rằng chúng tôi đã tạo ra label_encoders.pkl tập tin trong sổ ghi chép đầu tiên. Không có gì khác để làm cho việc mã hóa danh mục ngoài việc đưa nó vào model.py tập tin để xử lý trước.

Đạt được khả năng lưu trữ có độ trễ thấp cho các mô hình ML dựa trên cây quyết định trên Máy chủ suy luận NVIDIA Triton trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Để tạo tệp model.py theo yêu cầu của chương trình phụ trợ Triton Python, chúng tôi tuân theo định dạng được yêu cầu bởi chương trình phụ trợ và bao gồm logic Python của chúng tôi để xử lý tensor đến và sử dụng bộ mã hóa nhãn được tham chiếu trước đó. Bạn có thể xem lại hồ sơ được sử dụng cho quá trình tiền xử lý.

Đối với mô hình XGBoost, không cần phải làm gì thêm. Chúng tôi đã đào tạo mô hình trong máy tính xách tay đầu tiên và phần phụ trợ FIL của Triton không yêu cầu thêm nỗ lực nào đối với các mô hình XGBoost.

Tiếp theo, chúng ta cần các tệp cấu hình Triton. Mỗi mô hình trong nhóm Triton yêu cầu một config.pbtxt tài liệu. Ngoài ra, chúng tôi còn tạo ra một config.pbtxt tập tin cho toàn bộ nhóm. Các tệp này cho phép Triton biết siêu dữ liệu về tập hợp với thông tin như đầu vào và đầu ra mà chúng tôi mong đợi cũng như giúp xác định DAG được liên kết với tập hợp.

Cuối cùng, để triển khai một mô hình trên Triton, chúng ta cần thư mục kho lưu trữ mô hình có cấu trúc thư mục phù hợp. Triton có các yêu cầu cụ thể về cách bố trí kho lưu trữ mô hình. Trong thư mục kho lưu trữ mô hình cấp cao nhất, mỗi mô hình có thư mục con riêng chứa thông tin cho mô hình tương ứng. Mỗi thư mục mô hình trong Triton phải có ít nhất một thư mục con bằng số đại diện cho một phiên bản của mô hình. Đối với trường hợp sử dụng của chúng tôi, cấu trúc kết quả sẽ giống như sau.

Đạt được khả năng lưu trữ có độ trễ thấp cho các mô hình ML dựa trên cây quyết định trên Máy chủ suy luận NVIDIA Triton trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Sau khi có ba điều kiện tiên quyết này, chúng tôi tạo một tệp nén làm gói để triển khai và tải nó lên Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3).

Đạt được khả năng lưu trữ có độ trễ thấp cho các mô hình ML dựa trên cây quyết định trên Máy chủ suy luận NVIDIA Triton trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Bây giờ chúng ta có thể tạo mô hình SageMaker từ kho lưu trữ mô hình mà chúng ta đã tải lên Amazon S3 ở bước trước.

Ở bước này, chúng tôi cũng cung cấp biến môi trường bổ sung SAGEMAKER_TRITON_DEFAULT_MODEL_NAME, chỉ định tên của mô hình sẽ được tải bởi Triton. Giá trị của khóa này phải khớp với tên thư mục trong gói mô hình được tải lên Amazon S3. Biến này là tùy chọn trong trường hợp một mô hình duy nhất. Trong trường hợp mô hình tập hợp, khóa này phải được chỉ định để Triton khởi động trong SageMaker.

Ngoài ra, bạn có thể đặt SAGEMAKER_TRITON_BUFFER_MANAGER_THREAD_COUNT và SAGEMAKER_TRITON_THREAD_COUNT để tối ưu hóa số lượng chủ đề. Cả hai giá trị cấu hình đều giúp điều chỉnh số lượng luồng đang chạy trên CPU của bạn, do đó bạn có thể đạt được mức sử dụng tốt hơn bằng cách tăng các giá trị này cho CPU có số lượng lõi lớn hơn. Trong phần lớn các trường hợp, các giá trị mặc định thường hoạt động tốt nhưng cũng đáng để thử nghiệm xem liệu khối lượng công việc của bạn có thể đạt được hiệu quả cao hơn hay không.

Đạt được khả năng lưu trữ có độ trễ thấp cho các mô hình ML dựa trên cây quyết định trên Máy chủ suy luận NVIDIA Triton trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Với mô hình trước đó, chúng tôi tạo cấu hình điểm cuối trong đó chúng tôi có thể chỉ định loại và số lượng phiên bản mà chúng tôi muốn ở điểm cuối.

Đạt được khả năng lưu trữ có độ trễ thấp cho các mô hình ML dựa trên cây quyết định trên Máy chủ suy luận NVIDIA Triton trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Cuối cùng, chúng tôi sử dụng cấu hình điểm cuối trước đó để tạo điểm cuối SageMaker mới và đợi quá trình triển khai kết thúc. Trạng thái thay đổi thành InService sau khi triển khai thành công.

Đạt được khả năng lưu trữ có độ trễ thấp cho các mô hình ML dựa trên cây quyết định trên Máy chủ suy luận NVIDIA Triton trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Đó là nó! Điểm cuối của bạn hiện đã sẵn sàng để thử nghiệm và xác thực. Tại thời điểm này, bạn có thể muốn sử dụng nhiều công cụ khác nhau để giúp tối ưu hóa loại phiên bản và cấu hình của mình nhằm đạt được hiệu suất tốt nhất có thể. Hình sau đây cung cấp ví dụ về những lợi ích có thể đạt được bằng cách sử dụng chương trình phụ trợ FIL cho mô hình XGBoost trên Triton.

Đạt được khả năng lưu trữ có độ trễ thấp cho các mô hình ML dựa trên cây quyết định trên Máy chủ suy luận NVIDIA Triton trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Tổng kết

Trong bài đăng này, chúng tôi đã hướng dẫn bạn cách triển khai khối lượng công việc tổng hợp XGBoost cho SageMaker với Máy chủ suy luận Triton. Việc chuyển khối lượng công việc sang Triton trên SageMaker có thể mang lại lợi tức đầu tư có lợi. Giống như bất kỳ việc áp dụng công nghệ nào, quy trình và kế hoạch kiểm tra là then chốt và chúng tôi đã trình bày chi tiết quy trình gồm 5 bước để hướng dẫn bạn những điều cần cân nhắc khi di chuyển khối lượng công việc của mình. Ngoài ra, chúng tôi còn đi sâu vào các bước cần thiết để triển khai một nhóm sử dụng tính năng tiền xử lý Python và mô hình XGBoost trên Triton trên SageMaker.

SageMaker cung cấp các công cụ để loại bỏ gánh nặng không phân biệt khỏi từng giai đoạn của vòng đời ML, từ đó tạo điều kiện thuận lợi cho việc thử nghiệm và khám phá nhanh chóng cần thiết để tối ưu hóa hoàn toàn việc triển khai mô hình của bạn. Hỗ trợ lưu trữ SageMaker dành cho Máy chủ suy luận Triton cho phép khối lượng công việc có độ trễ thấp, giao dịch mỗi giây (TPS) cao.

Bạn có thể tìm thấy sổ ghi chép được sử dụng cho ví dụ này trên GitHub.


Giới thiệu về tác giả

Đạt được khả năng lưu trữ có độ trễ thấp cho các mô hình ML dựa trên cây quyết định trên Máy chủ suy luận NVIDIA Triton trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Công viên James là Kiến trúc sư giải pháp tại Amazon Web Services. Anh ấy làm việc với Amazon.com để thiết kế, xây dựng và triển khai các giải pháp công nghệ trên AWS và đặc biệt quan tâm đến AI và học máy. Khi rảnh rỗi, anh ấy thích tìm kiếm những nền văn hóa mới, trải nghiệm mới và cập nhật những xu hướng công nghệ mới nhất.

Đạt được khả năng lưu trữ có độ trễ thấp cho các mô hình ML dựa trên cây quyết định trên Máy chủ suy luận NVIDIA Triton trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái. Gia Hồng Lưu là Kiến trúc sư Giải pháp trong nhóm Nhà cung cấp Dịch vụ Đám mây tại NVIDIA. Anh ấy hỗ trợ khách hàng trong việc áp dụng học máy và các giải pháp AI tận dụng tính toán tăng tốc của NVIDIA để giải quyết các thách thức về đào tạo và suy luận của họ. Trong thời gian rảnh rỗi, anh ấy thích xếp giấy origami, các dự án tự làm và chơi bóng rổ.

Đạt được khả năng lưu trữ có độ trễ thấp cho các mô hình ML dựa trên cây quyết định trên Máy chủ suy luận NVIDIA Triton trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Kshitiz Gupta là Kiến trúc sư Giải pháp tại NVIDIA. Anh ấy thích giáo dục khách hàng đám mây về các công nghệ GPU AI mà NVIDIA cung cấp và hỗ trợ họ tăng tốc các ứng dụng học máy và học sâu. Ngoài công việc, anh ấy thích chạy, đi bộ đường dài và ngắm động vật hoang dã.

Đạt được khả năng lưu trữ có độ trễ thấp cho các mô hình ML dựa trên cây quyết định trên Máy chủ suy luận NVIDIA Triton trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Bruno Aguiar de Melo là Kỹ sư phát triển phần mềm tại Amazon.com, nơi anh giúp các nhóm khoa học xây dựng, triển khai và phát hành khối lượng công việc ML. Anh ấy quan tâm đến thiết bị đo lường và các khía cạnh có thể kiểm soát được trong giai đoạn thiết kế/lập mô hình ML phải được xem xét và đo lường với sự hiểu biết sâu sắc rằng hiệu suất thực thi mô hình cũng quan trọng như hiệu suất chất lượng mô hình, đặc biệt là trong các trường hợp sử dụng hạn chế về độ trễ. Trong thời gian rảnh rỗi, anh thích rượu vang, chơi board game và nấu ăn.

Đạt được khả năng lưu trữ có độ trễ thấp cho các mô hình ML dựa trên cây quyết định trên Máy chủ suy luận NVIDIA Triton trên Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Eliuth Triana là Giám đốc Quan hệ Nhà phát triển tại NVIDIA. Anh kết nối các nhà lãnh đạo sản phẩm, nhà phát triển và nhà khoa học của Amazon và AWS với các nhà công nghệ và nhà lãnh đạo sản phẩm của NVIDIA để tăng tốc khối lượng công việc Amazon ML / DL, sản phẩm EC2 và dịch vụ AWS AI. Ngoài ra, Eliuth còn là một người đam mê đi xe đạp leo núi, trượt tuyết và chơi bài poker.

Dấu thời gian:

Thêm từ Học máy AWS