Exafunction hỗ trợ AWS Inferentia để khai thác hiệu suất giá tốt nhất cho suy luận máy học PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Exafunction hỗ trợ AWS Inferentia để mở khóa hiệu suất giá tốt nhất cho suy luận máy học

Trên tất cả các ngành, các mô hình máy học (ML) ngày càng chuyên sâu hơn, quy trình công việc ngày càng phức tạp hơn và khối lượng công việc đang hoạt động ở quy mô lớn hơn. Nỗ lực và nguồn lực đáng kể được đưa vào để làm cho các mô hình này chính xác hơn vì khoản đầu tư này trực tiếp dẫn đến các sản phẩm và trải nghiệm tốt hơn. Mặt khác, làm cho các mô hình này chạy hiệu quả trong sản xuất là một công việc không tầm thường thường bị bỏ qua, mặc dù đây là chìa khóa để đạt được các mục tiêu về hiệu suất và ngân sách. Trong bài đăng này, chúng tôi đề cập đến cách Exafunction và Suy luận AWS làm việc cùng nhau để khai thác khả năng triển khai dễ dàng và tiết kiệm chi phí cho các mô hình ML trong sản xuất.

chức năng ngoại lệ là một công ty khởi nghiệp tập trung vào việc hỗ trợ các công ty thực hiện ML trên quy mô lớn một cách hiệu quả nhất có thể. Một trong những sản phẩm của họ là ExaTriển khai, một giải pháp SaaS dễ sử dụng để phục vụ khối lượng công việc ML trên quy mô lớn. ExaDeploy phối hợp hiệu quả khối lượng công việc ML của bạn trên các tài nguyên hỗn hợp (CPU và bộ tăng tốc phần cứng) để tối đa hóa việc sử dụng tài nguyên. Nó cũng đảm nhiệm việc tự động thay đổi quy mô, tính toán vị trí đặt máy chủ, sự cố mạng, khả năng chịu lỗi, v.v. để đảm bảo việc triển khai hiệu quả và đáng tin cậy. Dựa trên AWS Inferentia Phiên bản Amazon EC2 Inf1 được xây dựng nhằm mục đích mang lại chi phí mỗi lần suy luận thấp nhất trong đám mây. ExaDeploy hiện hỗ trợ các phiên bản Inf1, cho phép người dùng nhận được cả mức tiết kiệm dựa trên phần cứng của máy gia tốc và mức tiết kiệm dựa trên phần mềm của quá trình ảo hóa và điều phối tài nguyên được tối ưu hóa trên quy mô lớn.

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

Cách ExaDeploy giải quyết hiệu quả triển khai

Để đảm bảo sử dụng hiệu quả các tài nguyên điện toán, bạn cần xem xét phân bổ tài nguyên phù hợp, tự động thay đổi quy mô, đồng vị trí điện toán, quản lý độ trễ và chi phí mạng, khả năng chịu lỗi, lập phiên bản và khả năng tái tạo, v.v. Ở quy mô lớn, mọi sự kém hiệu quả đều ảnh hưởng nghiêm trọng đến chi phí và độ trễ, và nhiều công ty lớn đã giải quyết những điểm kém hiệu quả này bằng cách xây dựng đội ngũ nội bộ và chuyên môn. Tuy nhiên, sẽ không thực tế đối với hầu hết các công ty khi đảm nhận chi phí tổ chức và tài chính này để xây dựng phần mềm tổng quát không phải là năng lực cốt lõi mong muốn của công ty.

ExaDeploy được thiết kế để giải quyết các vấn đề khó khăn về hiệu quả triển khai này, bao gồm cả những vấn đề gặp phải trong một số khối lượng công việc phức tạp nhất, chẳng hạn như trong các ứng dụng Xe tự hành và xử lý ngôn ngữ tự nhiên (NLP). Trên một số khối lượng công việc ML lô lớn, ExaDeploy đã giảm hơn 85% chi phí mà không ảnh hưởng đến độ trễ hoặc độ chính xác, với thời gian tích hợp chỉ bằng một ngày kỹ sư. ExaDeploy đã được chứng minh là có khả năng tự động thay đổi quy mô và quản lý hàng nghìn phiên bản tài nguyên bộ tăng tốc phần cứng đồng thời mà không làm suy giảm hệ thống.

Các tính năng chính của ExaDeploy bao gồm:

  • Chạy trong đám mây của bạn: Không có mô hình, đầu vào hoặc đầu ra nào của bạn rời khỏi mạng riêng của bạn. Tiếp tục sử dụng giảm giá nhà cung cấp đám mây của bạn.
  • Tài nguyên máy gia tốc được chia sẻ: ExaDeploy tối ưu hóa các trình tăng tốc được sử dụng bằng cách cho phép nhiều mô hình hoặc khối lượng công việc chia sẻ tài nguyên của trình tăng tốc. Nó cũng có thể xác định xem nhiều khối lượng công việc có đang triển khai cùng một mô hình hay không, sau đó chia sẻ mô hình trên các khối lượng công việc đó, từ đó tối ưu hóa trình tăng tốc được sử dụng. Khả năng tự động cân bằng lại và thoát nút của nó tối đa hóa việc sử dụng và giảm thiểu chi phí.

Exafunction hỗ trợ AWS Inferentia để khai thác hiệu suất giá tốt nhất cho suy luận máy học PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

  • Mô hình triển khai serverless có thể mở rộng: ExaDeploy tự động thay đổi quy mô dựa trên độ bão hòa tài nguyên của máy gia tốc. Tự động giảm tỷ lệ xuống 0 hoặc lên tới hàng nghìn tài nguyên.
  • Hỗ trợ cho nhiều loại tính toán: Bạn có thể giảm tải các mô hình học sâu từ tất cả các khung ML chính cũng như mã C++ tùy ý, nhân CUDA, hoạt động tùy chỉnh và các hàm Python.
  • Đăng ký và lập phiên bản mô hình động: Có thể đăng ký và chạy các mô hình hoặc phiên bản mô hình mới mà không cần phải xây dựng lại hoặc triển khai lại hệ thống.
  • Thực thi điểm-điểm: Máy khách kết nối trực tiếp với tài nguyên máy gia tốc từ xa, cho phép độ trễ thấp và thông lượng cao. Họ thậm chí có thể lưu trữ trạng thái từ xa.
  • Thực thi không đồng bộ: ExaDeploy hỗ trợ thực thi mô hình không đồng bộ, cho phép máy khách song song hóa tính toán cục bộ với công việc tài nguyên của máy gia tốc từ xa.
  • Đường ống từ xa chịu lỗi: ExaDeploy cho phép khách hàng tự động tổng hợp các tính toán từ xa (mô hình, tiền xử lý, v.v.) vào các đường ống với đảm bảo khả năng chịu lỗi. Hệ thống ExaDeploy xử lý các lỗi nhóm hoặc nút bằng tính năng khôi phục và phát lại tự động, do đó các nhà phát triển không bao giờ phải suy nghĩ về việc đảm bảo khả năng chịu lỗi.
  • Giám sát vượt trội: ExaDeploy cung cấp các chỉ số Prometheus và bảng điều khiển Grafana để trực quan hóa việc sử dụng tài nguyên của máy gia tốc và các chỉ số hệ thống khác.

ExaDeploy hỗ trợ AWS Inferentia

Các phiên bản Amazon EC2 Inf1 dựa trên AWS Inferentia được thiết kế cho khối lượng công việc suy luận chuyên sâu về học sâu. Các phiên bản này cung cấp thông lượng lên tới 2.3 lần và tiết kiệm tới 70% chi phí so với thế hệ phiên bản suy luận GPU hiện tại.

ExaDeploy hiện hỗ trợ AWS Inferentia và chúng cùng nhau mở khóa hiệu suất gia tăng và tiết kiệm chi phí đạt được thông qua tăng tốc phần cứng được xây dựng có mục đích và điều phối tài nguyên được tối ưu hóa trên quy mô lớn. Hãy xem xét các lợi ích kết hợp của ExaDeploy và AWS Inferentia bằng cách xem xét khối lượng công việc ML hiện đại rất phổ biến: khối lượng công việc điện toán hỗn hợp, theo lô.

Đặc điểm khối lượng công việc giả định:

  • 15 mili giây tiền xử lý/hậu xử lý chỉ dành cho CPU
  • Suy luận mô hình (15 mili giây trên GPU, 5 mili giây trên AWS Inferentia)
  • 10 khách hàng, mỗi khách hàng thực hiện yêu cầu cứ sau 20 ms
  • Chi phí tương đối gần đúng của CPU:Inferentia:GPU là 1:2:4 (Dựa trên giá Theo yêu cầu của Amazon EC2 cho c5.xlarge, inf1.xlarge và g4dn.xlarge)

Bảng dưới đây cho thấy mỗi tùy chọn hình thành như thế nào:

Thành lập Nguồn lực cần thiết Phí Tổn Độ trễ
GPU không có ExaDeploy 2 CPU, 2 GPU trên mỗi máy khách (tổng cộng 20 CPU, 20 GPU) 100 30 ms
GPU với ExaDeploy 8 GPU được chia sẻ trên 10 máy khách, 1 CPU cho mỗi máy khách 42 30 ms
AWS Inferentia không có ExaDeploy 1 CPU, 1 AWS Inferentia cho mỗi khách hàng (tổng cộng 10 CPU, 10 Inferentia) 30 20 ms
AWS Inferentia với ExaDeploy 3 AWS Inferentia được chia sẻ trên 10 máy khách, 1 CPU cho mỗi máy khách 16 20 ms

Ví dụ về ExaDeploy trên AWS Inferentia

Trong phần này, chúng ta sẽ xem qua các bước để định cấu hình ExaDeploy thông qua một ví dụ với các nút inf1 trên mô hình BERT PyTorch. Chúng tôi đã thấy thông lượng trung bình là 1140 mẫu/giây đối với mô hình cơ sở bert, điều này chứng tỏ rằng ExaDeploy đã giới thiệu rất ít hoặc không có chi phí hoạt động cho mô hình đơn lẻ, kịch bản khối lượng công việc đơn lẻ này.

Bước 1: Thiết lập một Dịch vụ Kubernetes đàn hồi của Amazon (Amazon EKS) cụm

Một cụm Amazon EKS có thể được đưa lên cùng với Mô-đun AWS địa hình. Ví dụ của chúng tôi, chúng tôi đã sử dụng một inf1.xlarge cho AWS Inferentia.

Bước 2: Thiết lập ExaDepoy

Bước thứ hai là thiết lập ExaDeploy. Nhìn chung, việc triển khai ExaDeploy trên các phiên bản inf1 rất đơn giản. Quá trình thiết lập hầu hết tuân theo quy trình tương tự như trên các phiên bản bộ xử lý đồ họa (GPU). Sự khác biệt chính là thay đổi thẻ mô hình từ GPU thành AWS Inferentia và biên dịch lại mô hình. Ví dụ: di chuyển từ phiên bản g4dn sang inf1 bằng giao diện lập trình ứng dụng (API) của ExaDeploy chỉ cần thay đổi khoảng 10 dòng mã.

  • Một phương pháp đơn giản là sử dụng Exafunction's Mô-đun AWS Kubernetes của Terraform or biểu đồ mũ lái. Chúng triển khai các thành phần ExaDeploy cốt lõi để chạy trong cụm Amazon EKS.
  • Biên dịch mô hình thành định dạng tuần tự hóa (ví dụ: TorchScript, mô hình đã lưu TF, ONNX, v.v.). Đối với AWS Inferentia, chúng tôi đã làm theo hướng dẫn này.
  • Đăng ký mô hình đã biên dịch trong kho lưu trữ mô-đun của ExaDeploy.
    with exa.ModuleRepository(MODULE_REPOSITORY_ADDRESS) as repo:
       repo.register_py_module(
           "BertInferentia",
           module_class="TorchModule",
           context_data=BERT_NEURON_TORCHSCRIPT_AS_BYTES,
           config={
               "_torchscript_input_names": ",".join(BERT_INPUT_NAMES).encode(),
               "_torchscript_output_names": BERT_OUTPUT_NAME.encode(),
               "execution_type": "inferentia".encode(),
           },
       )

  • Chuẩn bị dữ liệu cho mô hình (nghĩa là không ExaDeploy-specific).
    tokenizer = transformers.AutoTokenizer.from_pretrained(
       "bert-base-cased-finetuned-mrpc"
    )
    
    batch_encoding = tokenizer.encode_plus(
       "The company Exafunction is based in the Bay Area",
       "Exafunction’s headquarters are situated in Mountain View",
       max_length=MAX_LENGTH,
       padding="max_length",
       truncation=True,
       return_tensors="pt",
    )

  • Chạy mô hình từ xa từ máy khách.
    with exa.Session(
       scheduler_address=SCHEDULER_ADDRESS,
       module_tag="BertInferentia",
       constraint_config={
           "KUBERNETES_NODE_SELECTORS": "role=runner-inferentia",
           "KUBERNETES_ENV_VARS": "AWS_NEURON_VISIBLE_DEVICES=ALL",
       },
    ) as sess:
       bert = sess.new_module("BertInferentia")
       classification_logits = bert.run(
           **{
               key: value.numpy()
               for key, value in batch_encoding.items()
           }
       )[BERT_OUTPUT_NAME].numpy()
    
       # Assert that the model classifies the two statements as paraphrase.
       assert classification_logits[0].argmax() == 1

ExaDeploy và AWS Inferentia: Cùng nhau tốt hơn

AWS Inferentia đang mở rộng ranh giới về thông lượng cho suy luận mô hình và mang lại chi phí mỗi lần suy luận thấp nhất trên đám mây. Nói như vậy, các công ty cần có sự phối hợp phù hợp để tận hưởng các lợi ích về hiệu suất giá của Inf1 trên quy mô lớn. Phục vụ ML là một vấn đề phức tạp, nếu được giải quyết nội bộ, đòi hỏi kiến ​​thức chuyên môn không phù hợp với mục tiêu của công ty và thường làm chậm tiến độ sản phẩm. ExaDeploy, giải pháp phần mềm triển khai ML của Exafunction, đã nổi lên như một công ty hàng đầu trong ngành. Nó phục vụ ngay cả những khối lượng công việc ML phức tạp nhất, đồng thời cung cấp trải nghiệm tích hợp mượt mà và sự hỗ trợ từ một nhóm đẳng cấp thế giới. Cùng với nhau, ExaDeploy và AWS Inferentia mở khóa hiệu năng tăng cường và tiết kiệm chi phí cho khối lượng công việc suy luận trên quy mô lớn.

Kết luận

Trong bài đăng này, chúng tôi đã chỉ cho bạn cách Exafunction hỗ trợ AWS Inferentia cho ML hiệu suất. Để biết thêm thông tin về cách xây dựng ứng dụng với Exafunction, hãy truy cập chức năng ngoại lệ. Để biết các phương pháp hay nhất về xây dựng khối lượng công việc học sâu trên Inf1, hãy truy cập Phiên bản Amazon EC2 Inf1.


Về các tác giả

Nicholas Jiang, Kỹ sư phần mềm, Exafunction

Jonathan Ma, Kỹ sư phần mềm, Exafunction

Prem Nair, Kỹ sư phần mềm, Exafunction

Anshul Ramachandran, Kỹ sư phần mềm, Exafunction

Shruti Koparkar, Sr. Giám đốc tiếp thị sản phẩm, AWS

Dấu thời gian:

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