Logo Zephyrnet

Cách Amazon Search đạt được suy luận T5 có độ trễ thấp, thông lượng cao với NVIDIA Triton trên AWS

Ngày:

Tầm nhìn của Amazon Search là cho phép khách hàng tìm kiếm dễ dàng. Sửa lỗi chính tả của chúng tôi giúp bạn tìm thấy những gì bạn muốn ngay cả khi bạn không biết chính xác chính tả của các từ dự định. Trước đây, chúng tôi sử dụng thuật toán máy học (ML) cổ điển với kỹ thuật tính năng thủ công để sửa lỗi chính tả. Để tạo ra bước nhảy vọt thế hệ tiếp theo về hiệu suất sửa lỗi chính tả, chúng tôi đang áp dụng một số phương pháp tiếp cận học sâu, bao gồm cả các mô hình nối tiếp trình tự. Các mô hình học sâu (DL) đòi hỏi nhiều tính toán cả về đào tạo và suy luận, và những chi phí này trong lịch sử đã khiến các mô hình DL trở nên không thực tế trong bối cảnh sản xuất ở quy mô của Amazon. Trong bài đăng này, chúng tôi trình bày kết quả của một thử nghiệm tối ưu hóa suy luận trong đó chúng tôi vượt qua những trở ngại đó và đạt được 534% tốc độ suy luận cho Máy biến áp T5 ôm mặt phổ biến.

Thách thức

Máy biến áp chuyển văn bản thành văn bản (T5, Khám phá các giới hạn của việc học chuyển giao với một máy biến đổi văn bản thành văn bản thống nhất, Reffel và cộng sự) là kiến ​​trúc mô hình xử lý ngôn ngữ tự nhiên (NLP) tiên tiến nhất. T5 là một kiến ​​trúc đầy hứa hẹn để sửa lỗi chính tả, mà chúng tôi thấy rằng nó hoạt động tốt trong các thử nghiệm của mình. Các mô hình T5 dễ dàng nghiên cứu, phát triển và đào tạo, nhờ vào các khuôn khổ học tập sâu mã nguồn mở và các nghiên cứu liên tục trong học tập và doanh nghiệp.

Tuy nhiên, thật khó để đạt được suy luận ở cấp độ sản xuất, độ trễ thấp với T5. Ví dụ: một suy luận duy nhất với PyTorch T5 mất 45 mili giây trên một trong bốn GPU NVIDIA V100 Tensor Core trang bị phiên bản Amazon Elastic Compute Cloud (EC2) p3.8xlarge. (Tất cả các số suy luận được báo cáo dành cho đầu vào là 9 mã thông báo và đầu ra là 11 mã thông báo. Độ trễ của kiến ​​trúc T5 nhạy cảm với cả độ dài đầu vào và đầu ra.)

Suy luận T5 có độ trễ thấp, tiết kiệm chi phí trên quy mô lớn là một khó khăn đã biết đã được một số khách hàng AWS ngoài Amazon Search báo cáo, điều này thúc đẩy động lực của chúng tôi để đóng góp bài đăng này. Để đi từ thành tựu khoa học, ngoại tuyến thành dịch vụ sản xuất hướng đến khách hàng, Amazon Search phải đối mặt với những thách thức sau:

  • Độ trễ - Cách nhận ra suy luận T5 trong độ trễ P50 dưới 99 mili giây
  • Thông lượng - Cách xử lý các yêu cầu suy luận đồng thời quy mô lớn
  • Hiệu quả chi phí - Làm thế nào để kiểm soát chi phí

Trong phần còn lại của bài đăng này, chúng tôi giải thích cách ngăn xếp tối ưu hóa suy luận NVIDIA — cụ thể là NVIDIA TenorRT trình biên dịch và mã nguồn mở Máy chủ suy luận NVIDIA Triton—Giải quyết những thách thức đó. Đọc Thông cáo báo chí của NVIDIA để tìm hiểu về các bản cập nhật.

NVIDIA TensorRT: Giảm chi phí và độ trễ với tối ưu hóa suy luận

Các khuôn khổ học tập sâu rất thuận tiện để lặp lại nhanh chóng trên khoa học và đi kèm với nhiều chức năng để lập mô hình khoa học, tải dữ liệu và tối ưu hóa đào tạo. Tuy nhiên, hầu hết các công cụ đó là không tối ưu để suy luận, điều này chỉ yêu cầu một tập hợp toán tử tối thiểu cho các hàm kích hoạt và nhân ma trận. Do đó, có thể đạt được những lợi ích đáng kể bằng cách sử dụng một ứng dụng chuyên biệt, chỉ dành cho dự đoán thay vì chạy suy luận trong khung phát triển học sâu.

NVIDIA TensorRT là một SDK cho phép suy luận học sâu hiệu suất cao. TensorRT cung cấp cả thời gian chạy được tối ưu hóa, sử dụng nhân tối ưu hóa mức thấp có sẵn trên GPU NVIDIA và biểu đồ mô hình chỉ suy luận, sắp xếp lại phép tính suy luận theo thứ tự được tối ưu hóa.

Trong phần sau, chúng tôi sẽ nói về các chi tiết xảy ra đằng sau TensorRT và cách nó tăng tốc hiệu suất.

  1. Giảm độ chính xác tối đa hóa thông lượng với FP16 hoặc INT8 bằng cách lượng hóa các mô hình trong khi vẫn duy trì độ chính xác.
  2. Layer và Tensor Fusion tối ưu hóa việc sử dụng bộ nhớ GPU và băng thông bằng cách kết hợp các nút trong nhân để tránh độ trễ khởi chạy nhân.
  3. Tự động điều chỉnh hạt nhân chọn các lớp dữ liệu và thuật toán tốt nhất dựa trên nền tảng GPU mục tiêu và hình dạng nhân dữ liệu.
  4. Bộ nhớ căng động giảm thiểu dung lượng bộ nhớ bằng cách giải phóng bộ nhớ tiêu thụ không cần thiết của các kết quả trung gian và tái sử dụng bộ nhớ cho bộ căng một cách hiệu quả.
  5. Thực thi đa luồng sử dụng thiết kế có thể mở rộng để xử lý nhiều luồng đầu vào song song với các luồng CUDA chuyên dụng.
  6. Thời gian kết hợp tối ưu hóa mạng nơ-ron lặp lại theo từng bước thời gian với các hạt nhân được tạo động.

T5 sử dụng các lớp biến áp làm khối xây dựng cho kiến ​​trúc của nó. Bản phát hành mới nhất của NVIDIA TensorRT 8.2 giới thiệu các tính năng tối ưu hóa mới cho kiểu máy T5 và GPT-2 để suy luận trong thời gian thực. Trong bảng sau, chúng ta có thể thấy tốc độ tăng với TensorRT trên một số mẫu T5 công khai chạy trên các phiên bản Amazon EC2G4dn, được cung cấp bởi GPU NVIDIA T4 và phiên bản EC2 G5, được hỗ trợ bởi GPU NVIDIA A10G.

 

Mô hình Sơ thẩm Độ trễ Pytorch đường cơ sở (mili giây) Độ trễ TensorRT 8.2 (mili giây) Tăng tốc so với đường cơ sở HF
FP32 FP32 FP16 FP32 FP16
Mã hoá decoder Kết thúc đến Kết thúc Mã hoá decoder Kết thúc đến Kết thúc Mã hoá decoder Kết thúc đến Kết thúc Kết thúc đến Kết thúc Kết thúc đến Kết thúc
t5-nhỏ g4dn.xlarge 5.98 9.74 30.71 1.28 2.25 7.54 0.93 1.59 5.91 407.40% 519.34%
g5.xlarge 4.63 7.56 24.22 0.61 1.05 3.99 0.47 0.80 3.19 606.66% 760.01%
cơ sở t5 g4dn.xlarge 11.61 19.05 78.44 3.18 5.45 19.59 3.15 2.96 13.76 400.48% 569.97%
g5.xlarge 8.59 14.23 59.98 1.55 2.47 11.32 1.54 1.65 8.46 530.05% 709.20%

Để biết thêm thông tin về tối ưu hóa và nhân rộng hiệu suất được đính kèm, hãy tham khảo Tối ưu hóa T5 và GPT-2 cho Suy luận theo thời gian thực với NVIDIA TensorRT.

Điều quan trọng cần lưu ý là việc biên dịch bảo toàn độ chính xác của mô hình, vì nó hoạt động trên môi trường suy luận và lập lịch tính toán, khiến khoa học mô hình không bị thay đổi - không giống như việc nén loại bỏ trọng lượng như chưng cất hoặc cắt tỉa. NVIDIA TensorRT cho phép kết hợp biên dịch với lượng tử hóa để đạt được nhiều lợi ích hơn nữa. Lượng tử hóa mang lại lợi ích gấp đôi trên phần cứng NVIDIA gần đây: nó làm giảm mức sử dụng bộ nhớ và cho phép sử dụng NVIDIA Tensor Core, các ô dành riêng cho DL chạy ma trận hợp nhất-nhân-cộng với độ chính xác hỗn hợp.

Trong thử nghiệm của Amazon Search với mô hình Ôm mặt T5, việc thay thế PyTorch bằng TensorRT để suy luận mô hình sẽ tăng tốc độ lên 534%.

NVIDIA Triton: Phục vụ suy luận thông lượng cao, độ trễ thấp

Các giải pháp phục vụ mô hình hiện đại có thể chuyển đổi các mô hình được đào tạo ngoại tuyến thành các sản phẩm hỗ trợ ML hướng đến khách hàng. Để duy trì chi phí hợp lý ở quy mô như vậy, điều quan trọng là phải tiếp tục phân phối chi phí thấp (xử lý HTTP, tiền xử lý và hậu xử lý, giao tiếp CPU-GPU) và tận dụng đầy đủ khả năng xử lý song song của GPU.

NVIDIA Triton là một phần mềm phục vụ suy luận đề xuất hỗ trợ rộng rãi thời gian chạy mô hình (NVIDIA TensorRT, ONNX, PyTorch, XGBoost trong số những phần mềm khác) và các phần mềm phụ trợ cơ sở hạ tầng, bao gồm GPU, CPU và Suy luận AWS.

Các học viên ML yêu thích Triton vì nhiều lý do. Khả năng phân lô động của nó cho phép tích lũy các yêu cầu suy luận trong khoảng thời gian trễ do người dùng xác định và trong kích thước lô tối đa do người dùng xác định, để suy luận GPU được phân lô, phân bổ chi phí giao tiếp CPU-GPU. Lưu ý rằng phân phối động xảy ra phía máy chủ và trong các khung thời gian rất ngắn, để ứng dụng khách yêu cầu vẫn có trải nghiệm gọi đồng bộ, gần thời gian thực. Người dùng Triton cũng được hưởng khả năng thực thi mô hình đồng thời của nó. GPU là bộ xử lý đa nhiệm mạnh mẽ vượt trội trong việc thực hiện song song khối lượng công việc đòi hỏi nhiều tính toán. Triton tối đa hóa việc sử dụng và thông lượng GPU bằng cách sử dụng các luồng CUDA để chạy nhiều phiên bản mô hình đồng thời. Các phiên bản mô hình này có thể là các mô hình khác nhau từ các khuôn khổ khác nhau cho các trường hợp sử dụng khác nhau hoặc bản sao trực tiếp của cùng một mô hình. Điều này có nghĩa là cải thiện thông lượng trực tiếp khi bạn có đủ bộ nhớ GPU nhàn rỗi. Ngoài ra, vì Triton không bị ràng buộc với một khuôn khổ phát triển DL cụ thể, nó cho phép các nhà khoa học thể hiện hoàn toàn bản thân, bằng công cụ mà họ lựa chọn.

Với Triton trên AWS, Amazon Search hy vọng sẽ phục vụ tốt hơn Amazon.com khách hàng và đáp ứng các yêu cầu về độ trễ với chi phí thấp. Sự tích hợp chặt chẽ giữa thời gian chạy TensorRT và máy chủ Triton tạo điều kiện cho trải nghiệm phát triển. Sử dụng cơ sở hạ tầng đám mây AWS cho phép tăng hoặc giảm quy mô trong vài phút dựa trên các yêu cầu về thông lượng, đồng thời duy trì độ tin cậy và bảo mật cao.

Cách AWS giảm rào cản gia nhập

Trong khi Amazon Search tiến hành thử nghiệm này trên cơ sở hạ tầng Amazon EC2, các dịch vụ AWS khác vẫn tồn tại để tạo điều kiện phát triển, đào tạo và lưu trữ các giải pháp học sâu hiện đại.

Ví dụ: AWS và NVIDIA đã hợp tác để phát hành một triển khai có quản lý của Máy chủ suy luận Triton trong Amazon SageMaker ; để biết thêm thông tin, hãy xem Triển khai AI nhanh chóng và có thể mở rộng với Máy chủ suy luận NVIDIA Triton trong Amazon SageMaker. AWS cũng hợp tác với Hugging Face để phát triển tích hợp được quản lý, tối ưu hóa giữa Amazon SageMaker và Hugging Face Transformers, khung mã nguồn mở mà từ đó mô hình Amazon Search T5 được tạo ra; Đọc thêm tại https://aws.amazon.com/machine-learning/hugging-face/.

Chúng tôi khuyến khích những khách hàng có ứng dụng phục vụ học tập sâu về CPU và GPU nhạy cảm với độ trễ nên xem xét NVIDIA TensorRT và Triton trên AWS. Hãy cho chúng tôi biết những gì bạn xây dựng!

Đam mê học sâu và xây dựng các giải pháp dựa trên học sâu cho Tìm kiếm trên Amazon? Kiểm tra của chúng tôi trang nghề nghiệp.


Về các tác giả

RJ là một kỹ sư trong nhóm Search M5 dẫn đầu nỗ lực xây dựng các hệ thống học sâu quy mô lớn để đào tạo và suy luận. Ngoài giờ làm việc, anh ấy khám phá các món ăn ẩm thực khác nhau và chơi các môn thể thao dùng vợt.

Hemant Pugaliya là một Nhà Khoa học Ứng dụng tại Tìm kiếm M5. Anh ấy làm việc trên việc áp dụng xử lý ngôn ngữ tự nhiên mới nhất và nghiên cứu học tập sâu để cải thiện trải nghiệm của khách hàng khi mua sắm trên Amazon trên toàn thế giới. Các mối quan tâm nghiên cứu của anh ấy bao gồm xử lý ngôn ngữ tự nhiên và hệ thống máy học quy mô lớn. Ngoài công việc, anh ấy thích đi bộ đường dài, nấu ăn và đọc sách.

Andy Sun là Kỹ sư phần mềm và Trưởng nhóm Kỹ thuật về Sửa lỗi Chính tả Tìm kiếm. Các mối quan tâm nghiên cứu của anh ấy bao gồm tối ưu hóa độ trễ suy luận học sâu và xây dựng nền tảng thử nghiệm nhanh. Ngoài công việc, anh ấy thích làm phim và nhào lộn.

Lê Cải là Kỹ sư phần mềm tại Amazon Search. Anh ấy làm việc để cải thiện hiệu suất Sửa lỗi chính tả tìm kiếm để giúp khách hàng có trải nghiệm mua sắm của họ. Anh ấy đang tập trung vào suy luận trực tuyến hiệu suất cao và tối ưu hóa đào tạo phân tán cho mô hình học sâu. Ngoài công việc, anh ấy thích trượt tuyết, đi bộ đường dài và đi xe đạp.

Anthony Ko hiện đang làm kỹ sư phần mềm tại Search M5 Palo Alto, CA. Anh ấy làm việc về việc xây dựng các công cụ và sản phẩm để triển khai mô hình và tối ưu hóa suy luận. Ngoài công việc, anh ấy thích nấu ăn và chơi các môn thể thao dùng vợt.

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.

Anish Mohan là một Kiến trúc sư Máy học tại NVIDIA và là trưởng nhóm kỹ thuật cho các cam kết ML và DL với khách hàng của mình ở khu vực Seattle rộng lớn hơn.

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ổ.

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.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img

Trò chuyện trực tiếp với chúng tôi (chat)

Chào bạn! Làm thế nào để tôi giúp bạn?