Xác định sản phẩm bàn giao biện minh cho việc thuê của bạn
Đối với xử lý tệp, hãy xác định khối lượng cần duyệt, định dạng đầu ra và quy tắc tiếp tục. Một tệp đã hoàn thành phải được nhận biết mà không cần đọc lại toàn bộ quá trình thực thi. Đối với một dịch vụ tương tác, hãy xác định kích thước tối đa của yêu cầu, thời gian chấp nhận được và hành vi khi đạt tới giới hạn năng lực. Cùng một mô hình có thể đòi hỏi hai cách tổ chức rất khác nhau tùy theo những ràng buộc này.
Hãy giữ một mẫu đại diện với các trường hợp ngắn, thông thường và gần với giới hạn của bạn. Trong một pipeline embeddings, hãy gắn mỗi vector với định danh và phiên bản của đầu vào tương ứng. Trong sinh văn bản, hãy ghi lại các tham số sinh được dùng để đánh giá. Bạn phải có khả năng giải thích sự khác biệt về kết quả mà không quy ngay cho GPU.
Chọn bộ nhớ cho toàn bộ khối lượng suy luận
Kích thước các tệp của mô hình không mô tả hết bộ nhớ được dùng trong quá trình suy luận. Cũng cần tính đến các tensor tạm thời, đầu vào, đầu ra được giữ lại và, đối với các mô hình liên quan, bộ nhớ đệm key và value của cơ chế attention. Bộ nhớ đệm này có thể trở nên đáng kể khi chuỗi dài ra hoặc khi nhiều yêu cầu được xử lý cùng lúc.
Hãy bắt đầu bằng một card mà bộ nhớ cho phép chạy thử đại diện của bạn với một biên độ đã đo lường. Các mô hình 24, 32, 48, 80 GB và hơn nữa đáp ứng những nhu cầu khác nhau; không có dung lượng nào đảm bảo rằng một mô hình nhất định sẽ chạy được với mọi thiết lập. Giảm độ chính xác hoặc lượng tử hóa có thể thay đổi dấu chân bộ nhớ, nhưng buộc bạn phải kiểm tra khả năng hỗ trợ của phần mềm và chất lượng đầu ra trên chính đầu vào của bạn.
Chọn GPU tương thích với chuỗi phần mềm của bạn
Hãy liệt kê engine suy luận, các toán tử đặc thù của nó và những extension mà bạn phụ thuộc trước khi chọn phần cứng. Một ứng dụng PyTorch có thể cung cấp nhiều đường thực thi, trong khi một extension chuyên dụng chỉ hỗ trợ một đường. Hãy kiểm tra toàn bộ chuỗi trên CUDA cho NVIDIA hoặc trên ROCm cho AMD, kể cả việc tải mô hình và tiền xử lý.
Hãy giữ một lệnh tối giản chạy xuyên suốt pipeline cho đến khi ghi ra một kết quả. Chỉ sau đó mới bật từng tối ưu hóa một. Mỗi thay đổi về độ chính xác, biên dịch hay engine đều phải giữ một phép kiểm tra chất lượng có thể so sánh được. Một lần tải thành công chứng tỏ các trọng số đọc được; nó không chứng tỏ rằng mọi đường tính toán cần thiết đều hoạt động.
Điều chỉnh batch theo mục tiêu xử lý của bạn
Ví dụ về phương pháp: lập ba nhóm văn bản theo độ dài, rồi xử lý mỗi nhóm với batch 1, 2 và 4 đầu vào. Các kích thước này chỉ là điểm thử nghiệm, không phải khuyến nghị phổ quát. Với mỗi tổ hợp, hãy ghi lại số đầu vào đã hoàn thành, tổng thời gian, bộ nhớ tối đa quan sát được và các lỗi. Hãy dừng tiến trình khi xuất hiện một giới hạn thay vì che giấu các thất bại trong một giá trị trung bình.
Đối với một dịch vụ tương tác, hãy thêm thời gian chờ trong hàng đợi. Một batch lớn hơn có thể thay đổi thông lượng và độ trễ mà một yêu cầu cảm nhận được; chỉ một giá trị trung bình là không đủ để lựa chọn. Đối với xử lý ngoại tuyến, hãy đảm bảo rằng việc gom nhóm không làm xáo trộn thứ tự kết quả. Cuối cùng, hãy chọn một cấu hình tuân thủ tiêu chí chất lượng và ràng buộc độ trễ của bạn.
Chuyển sang nhiều GPU nếu ứng dụng của bạn biết phân chia công việc
Nếu mỗi bản sao của mô hình vừa trên một card, bạn có thể tổ chức nhiều worker tiêu thụ các phân vùng đầu vào khác nhau. Khi đó cần phối hợp các định danh, việc tiếp tục và việc thu thập đầu ra. Nếu mô hình phải được chia giữa các card, hãy dùng một chiến lược song song hóa được engine của bạn hỗ trợ và kiểm tra các yêu cầu giao tiếp của nó.
Số lượng đặt mua mô tả số lượng phần cứng, không phải batch của ứng dụng hay một vùng nhớ hợp nhất. Với B200, một lô gồm hai card; với các gói khác, một lô gồm một card. Hãy nêu rõ trong hồ sơ của bạn số lượng worker dự kiến, phần đầu vào giao cho mỗi worker và cách xác nhận rằng một công việc đã thực sự hoàn tất.
Chọn khoảng thời gian bao gồm các bước kiểm tra và xuất dữ liệu
Với lần thuê đầu tiên 3 ngày, hãy đặt mục tiêu giới hạn: cài đặt, kiểm chứng pipeline và tạo ra kết quả đầu tiên có thể dùng được. Thời lượng 7 ngày có thể dùng để thử nhiều biến thể hơn; 30 ngày để lặp lại một quy trình và củng cố việc vận hành nó. Đây là những cách tổ chức công việc, không phải cam kết về thời gian thực thi.
Khi kết thúc, hãy lưu lại trọng số hoặc phiên bản của chúng, cấu hình, các kiểm tra chất lượng, các chỉ số thực tế đạt được và kết quả đã xuất. Bạn tự chủ động lựa chọn phần mềm và quy trình xử lý của mình; Kernodeck không kiểm tra nội dung của chúng. Hãy tự chuẩn bị quyền truy cập, bản sao lưu và các quyền cần thiết để sử dụng mô hình và dữ liệu.