MarkTechPost
85

Thủ thuật

Hướng dẫn kiểm chuẩn mô hình LLM phân tán với NVIDIA srt-slurm và phân tích Pareto

(giờ Việt Nam)

Tóm tắt AI

Bài viết hướng dẫn cách sử dụng khung srt-slurm của NVIDIA để tự động hóa quy trình kiểm chuẩn LLM trên cụm SLURM, từ thiết lập cấu hình YAML đến phân tích hiệu năng tối ưu.

Bản dịch AI

Validating Distributed LLM Serving Benchmarks with NVIDIA srt-slurm, SLURM Recipes, Parameter Sweeps, and Pareto Analysis

Trong bài hướng dẫn này, chúng ta sẽ khám phá framework srt-slurm của NVIDIA và tìm hiểu cách sử dụng srtctl để chuyển đổi các cấu hình YAML khai báo thành các quy trình benchmark SLURM có khả năng tái lập cho việc phục vụ LLM phân tán. Chúng ta sẽ thiết lập dự án trong Google Colab, kiểm tra kiến trúc nội bộ, xác định cấu hình cụm, chạy thử (dry-run) các công thức (recipe) có sẵn và tùy chỉnh, đồng thời mô hình hóa việc triển khai tách biệt prefill-and-decode cho DeepSeek-R1. Chúng ta cũng sẽ tạo các tham số quét (parameter sweeps), tương tác với Python API có định kiểu, xác thực các cấu hình đã mở rộng và phân tích kết quả benchmark mô phỏng thông qua đường biên Pareto giữa thông lượng và độ trễ. Mặc dù Colab không cung cấp môi trường SLURM thực tế, chúng ta sử dụng nó như một không gian làm việc phát triển thực tiễn để hiểu, xác thực và chuẩn bị các công thức benchmark cấp độ sản xuất trước khi gửi chúng đến một cụm GPU thực tế.

Chúng ta chuẩn bị môi trường Colab bằng cách nhập các mô-đun cần thiết và xác định các hàm hỗ trợ có thể tái sử dụng để thực thi lệnh và định dạng phần. Chúng ta sao chép (clone) kho lưu trữ NVIDIA srt-slurm, cài đặt nó ở chế độ chỉnh sửa (editable mode) và hiển thị thư mục nguồn của nó cho môi trường Python đang hoạt động. Sau đó, chúng ta chuyển đến thư mục kho lưu trữ và xác minh rằng giao diện dòng lệnh srtctl đã được cài đặt chính xác.

Chúng ta kiểm tra cấu trúc kho lưu trữ để hiểu cách srtctl tổ chức các công cụ dòng lệnh, lược đồ (schema), backend, mẫu (template), công thức (recipe) và các thành phần phân tích. Sau đó, chúng ta tạo một tệp srtslurm.yaml cục bộ chứa các mặc định của cụm mô phỏng, bí danh container, cài đặt GPU và đường dẫn mô hình. Chúng ta sử dụng cấu hình này để giải quyết các tham chiếu công thức trong Colab mà không cần truy cập vào một cụm SLURM thực tế.

Chúng ta chạy thử công thức mocker có sẵn để kiểm tra cách srtctl xác thực cấu hình và tạo ra các tệp tin gửi (submission artifacts) cho SLURM mà không cần thực thi một benchmark thực tế. Sau đó, chúng ta xác định một công thức DeepSeek-R1 nâng cao giúp tách biệt khối lượng công việc prefill và decode trên các node và worker pool độc lập. Chúng ta xác thực cấu hình SGLang đã tách biệt này thông qua một lần chạy thử khác và kiểm tra cách các tham số phục vụ được chuyển đổi thành các tập lệnh công việc (job scripts).

Chúng ta thực thi ví dụ về tham số quét và kiểm tra các cấu hình công việc riêng lẻ được tạo từ không gian tìm kiếm Cartesian của nó. Chúng ta tải công thức tùy chỉnh của mình thông qua Python API có định kiểu và kiểm tra mô hình, độ chính xác, cấu trúc liên kết GPU, cài đặt benchmark và các giá trị liệt kê được hỗ trợ. Chúng ta cũng lập trình để mở rộng các mẫu quét và xác minh cách mỗi tổ hợp tham số ảnh hưởng đến cấu hình backend được tạo ra.

Chúng ta mô phỏng các quan sát benchmark cho hai biến thể chunked-prefill ở các mức độ đồng thời tăng dần. Chúng ta tính toán thông lượng đại diện trên mỗi GPU và các giá trị độ trễ giữa các token để mô hình hóa sự bão hòa và mức tăng độ trễ thường thấy trong các hệ thống phục vụ phân tán. Sau đó, chúng ta trực quan hóa các kết quả này trong một biểu đồ kiểu Pareto để so sánh thông lượng và khả năng phản hồi giữa các cấu hình.

Chúng ta phác thảo quy trình sản xuất mà chúng ta tuân theo khi chuyển các công thức đã được xác thực từ Colab sang một cụm GPU dựa trên SLURM thực tế. Chúng ta xem xét các lệnh được sử dụng để thiết lập môi trường, xác thực trước khi chạy (preflight validation), gửi công việc, thực thi quét, giám sát, phân tích bảng điều khiển và so sánh thử nghiệm. Chúng ta cũng nhấn mạnh tính tái lập bằng cách khai báo các phiên bản mô hình, danh tính container và phiên bản framework bên trong mỗi công thức benchmark.

Tóm lại, chúng ta đã xây dựng được sự hiểu biết toàn diện về cách srtctl cấu trúc, xác thực, mở rộng và chuẩn bị các benchmark phục vụ LLM phân tán để thực thi trên cơ sở hạ tầng SLURM. Chúng ta đã đi từ việc cài đặt cơ bản và kiểm tra kho lưu trữ đến các cấu hình phục vụ tách biệt nâng cao, quét tham số Cartesian, truy cập lược đồ theo lập trình và phân tích kết quả benchmark. Chúng ta cũng đã thấy cách các lần chạy thử giúp hiển thị các tệp tin công việc được tạo ra và giúp phát hiện các vấn đề cấu hình trước khi các tài nguyên cụm đắt đỏ được phân bổ. Với quy trình này, chúng ta có thể tự tin chuyển các công thức đã xác thực của mình sang một cụm GPU NVIDIA thực tế, thực hiện kiểm tra trước khi chạy, gửi các công việc benchmark, giám sát quá trình thực thi, so sánh dấu vân tay thử nghiệm và phân tích các đánh đổi về hiệu suất một cách có thể tái lập.

Xem mã nguồn đầy đủ tại đây. Ngoài ra, hãy thoải mái theo dõi chúng tôi trên Twitter và đừng quên tham gia SubReddit ML 150k+ của chúng tôi và Đăng ký nhận Bản tin của chúng tôi. Khoan đã! Bạn có dùng Telegram không? Bây giờ bạn cũng có thể tham gia cùng chúng tôi trên Telegram.

Cần hợp tác với chúng tôi để quảng bá GitHub Repo HOẶC trang Hugging Face HOẶC Bản phát hành sản phẩm HOẶC Hội thảo trực tuyến, v.v.? Hãy kết nối với chúng tôi.

Sana Hassan, thực tập sinh tư vấn tại Marktechpost và là sinh viên bằng kép tại IIT Madras, có niềm đam mê áp dụng công nghệ và AI để giải quyết các thách thức trong thế giới thực. Với sự quan tâm sâu sắc đến việc giải quyết các vấn đề thực tiễn, cô mang đến một góc nhìn mới mẻ cho sự giao thoa giữa AI và các giải pháp trong đời sống thực.

LLMNVIDIASLURMHạ tầng AIHiệu năng
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ MarkTechPost. Liên kết bài gốc ở phía trên. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.