Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung)
85

Thủ thuật

Kỹ sư Baseten giải mã 'Biên hiệu quả' trong suy luận LLM và các kỹ thuật tối ưu hóa

(giờ Việt Nam)

Tóm tắt AI

Bài viết phân tích khung 'Biên hiệu quả' của LLM, chia các kỹ thuật tối ưu thành hai nhóm: cân bằng giữa độ trễ và thông lượng, hoặc đẩy xa giới hạn hiệu suất để đạt hiệu quả tổng thể cao hơn.

Bản dịch AI

The efficient frontier of LLM inference

Trong ngành AI, chúng tôi mượn thuật ngữ “efficient frontier” (đường biên hiệu quả) từ các nhà kinh tế học. Chúng tôi sử dụng nó để nói về việc quản lý các sự đánh đổi, phổ biến nhất là sự đánh đổi giữa chi phí và năng lực của các mô hình. Một mô hình được gọi là “frontier model” nếu nó cung cấp mức độ thông minh cao nhất ở một mức chi phí hoặc quy mô nhất định.

Một đường biên hiệu quả thể hiện phạm vi các kết hợp tối ưu khi đánh đổi giữa hai kết quả có giá trị trong một môi trường bị hạn chế về tài nguyên.

Chúng tôi cũng có các đường biên hiệu quả trong kỹ thuật suy luận (inference engineering). Thông thường, điều này được thể hiện dưới dạng sự đánh đổi giữa độ trễ (latency) và thông lượng (throughput - yếu tố quyết định chi phí), mặc dù chúng ta cũng có thể đánh đổi chất lượng lấy thông lượng (thông qua quantization, distillation và pruning) hoặc trí thông minh lấy tốc độ (dưới dạng cấp độ suy luận).

Có hai loại kỹ thuật dành cho các kỹ sư suy luận:

Các kỹ thuật thực hiện sự đánh đổi giữa hai yếu tố để di chuyển một triển khai dọc theo đường biên hiệu quả.

Các kỹ thuật đẩy toàn bộ đường biên ra xa hơn cho một triển khai nhất định, tạo ra hiệu quả tổng thể cao hơn, có thể được phân bổ cho bất kỳ kết quả nào mang lại lợi ích nhất.

Cả hai loại kỹ thuật này đều có giá trị.

Việc có thể nhắm mục tiêu vào bất kỳ điểm nào dọc theo đường biên hiệu quả bằng cách thực hiện các sự đánh đổi là rất hữu ích. Từ bỏ tốc độ trên mỗi người dùng giúp xây dựng các pipeline có thông lượng cao, chi phí thấp cho các khối lượng công việc theo lô (batch workloads). Hy sinh thông lượng để cải thiện tốc độ là điều hợp lý khi những người dùng nhạy cảm với độ trễ có mức độ sẵn sàng chi trả cao.

Và tất nhiên, việc đẩy toàn bộ đường biên ra xa hơn là vô cùng hữu ích. Việc mở khóa thêm hiệu quả tạo ra những lợi ích có thể được phân bổ để giảm độ trễ, tăng thông lượng hoặc kết hợp cả hai.

Bài viết này trình bày chi tiết những kỹ thuật kỹ thuật suy luận nào cho phép bạn nhắm mục tiêu vào một điểm trên đường biên và những kỹ thuật nào đẩy toàn bộ đường biên ra xa hơn. Đối với bài viết này, chúng ta sẽ giả định rằng chúng ta đang chạy một LLM như GLM-5.3 hoặc Kimi K3 cho việc lập trình tác tử (agentic coding) với tính năng KV cache reuse được bật và định tuyến tối ưu nhận biết KV (KV-aware routing).

Các kỹ thuật quản lý sự đánh đổi

Đạt được một mục tiêu nhất định trong sản xuất thường không nằm ở việc khám phá ra một phương pháp mới lạ nào đó mà nằm ở việc tìm ra tập hợp cấu hình phù hợp với bản chất của lưu lượng truy cập.

Các kỹ thuật quản lý sự đánh đổi cho phép bạn nhắm mục tiêu vào một kết quả dọc theo đường biên hiệu quả.

Trong thực tế, đường biên hiệu quả rất gập ghềnh. Thay vì một đường thẳng mượt mà, liên tục giữa các kết quả, những thay đổi nhỏ có thể tạo ra tác động lớn. Các điểm cắt này thường không trực quan và phải được khám phá theo kinh nghiệm thông qua các đợt quét (sweeps).

Kích thước lô (Batch sizing)

Sự đánh đổi rõ ràng nhất giữa độ trễ và thông lượng đến từ kích thước lô. Một lô là số lượng yêu cầu được xử lý đồng thời. Mặc dù token-level continuous batching có nghĩa là không có độ trễ do chờ đợi các lô bắt đầu, nhưng kích thước lô được cấu hình sẽ quyết định độ trễ trên mỗi người dùng và thông lượng tổng thể.

Với kích thước lô nhỏ, độ trễ trên mỗi người dùng rất tuyệt vời, nhưng tổng số token được tạo ra trên mỗi GPU lại ít. Điều này có nghĩa là chi phí trên mỗi token khá cao. Tăng kích thước lô sẽ tạo ra tác dụng ngược lại: độ trễ trên mỗi người dùng tệ hơn, nhưng thông lượng tổng thể tốt hơn với chi phí thấp hơn.

Chiến lược song song hóa (Parallelism strategy)

Các LLM ngày nay có quy mô hàng trăm tỷ hoặc hàng nghìn tỷ tham số và phải được phân bổ trên nhiều GPU. Cách chúng được chia sẻ, hoặc song song hóa, trên các GPU có thể thúc đẩy độ trễ hoặc thông lượng.

Song song hóa chia nhỏ các mô hình lớn trên nhiều GPU.

Đối với các triển khai nhạy cảm với độ trễ, hãy tập trung vào việc tăng Tensor Parallelism (TP). Mặc dù TP có giao tiếp all-to-all tốn kém, nhưng nó hiệu quả trong việc giảm độ trễ vì các thao tác này diễn ra nhanh chóng qua các kết nối NVLink băng thông cao.

Expert Parallelism (EP) có thể giúp ích cho cả độ trễ và thông lượng. Mức độ EP thấp hơn thường gắn liền với độ trễ tốt hơn, trong khi EP rộng, bao gồm cả EP trên toàn bộ rack GPU, thường hỗ trợ thông lượng cao hơn.

Một kỹ thuật song song hóa khác để cải thiện thông lượng là Attention Data Parallelism (ADP). Kỹ thuật này sao chép các lớp attention để tính toán song song, giúp tăng thông lượng hệ thống nhưng phải đánh đổi bằng tốc độ trên mỗi yêu cầu.

Lượng tử hóa (Quantization)

Lượng tử hóa, hay việc chạy một mô hình với mức độ chính xác thấp hơn trong trọng số, kích hoạt và/hoặc giá trị KV cache, giúp cải thiện cả độ trễ và thông lượng. Một mô hình đã được lượng tử hóa sẽ đẩy đường biên hiệu quả ra xa hơn trong các sự đánh đổi khi phục vụ (serving).

Tuy nhiên, lượng tử hóa tạo ra một tập hợp các sự đánh đổi mới giữa chất lượng và hiệu quả phục vụ. Đây là một đường biên đặc biệt gập ghềnh, nơi có thể cải thiện đáng kể hiệu quả phục vụ mà gần như không làm giảm chất lượng mô hình, đặc biệt là khi sử dụng các định dạng số dấu phẩy động siêu nhỏ (microscaling) như MXFP4 và NVFP4.

Các kỹ thuật di chuyển đường biên

Đây là những kỹ thuật tạo nên các tiêu đề báo chí. Cải thiện hiệu suất tổng thể là phần thú vị nhất của kỹ thuật suy luận.

Các kỹ thuật đẩy đường biên ra xa hơn tạo ra những lợi ích phổ quát.

Phần tốt nhất là các kỹ thuật này thường cộng hưởng với nhau. Ví dụ, tăng gấp đôi hiệu suất từ phần cứng tốt hơn trong khi cũng tăng gấp đôi hiệu suất từ phần mềm tốt hơn có nghĩa là cải thiện gấp bốn lần hiệu suất phục vụ tổng thể, có thể được phân bổ cho cả độ trễ và thông lượng.

Tối ưu hóa kernel và cải thiện runtime

Một CUDA kernel là một hàm cấp thấp thực thi một phần của quá trình suy luận, như nhân ma trận. Cải thiện hiệu suất của các kernel riêng lẻ, cũng như hiệu suất end-to-end của một forward pass trong công cụ suy luận, có nghĩa là cần ít tài nguyên hơn để tạo ra mỗi token. Những lợi ích về hiệu quả này cộng hưởng trong toàn bộ stack và đẩy đường biên hiệu suất ra xa hơn.

Để biết thêm về hiệu suất ở cấp độ kernel, hãy đọc bài viết tuyệt vời này của thực tập sinh Baseten, Brian Li.

Giải mã suy đoán (Speculative decoding)

Giải mã suy đoán là quá trình đoán các token mà một mô hình có thể tạo ra, sau đó xác thực những dự đoán đó. Khi giải mã suy đoán còn mới, nó đặt ra sự đánh đổi giữa độ trễ và thông lượng: việc suy đoán rất tốn kém, độ dài chuỗi ngắn và tỷ lệ chấp nhận thấp, nghĩa là giải mã suy đoán chỉ khả thi ở kích thước lô nhỏ.

Ngày nay, các kỹ thuật như EAGLE-3, DSpark và DFlash vẫn cạnh tranh tài nguyên với vòng lặp mô hình chính, phần nào giới hạn kích thước lô tối đa. Tuy nhiên, nhờ hiệu suất mạnh mẽ của các kỹ thuật này, đặc biệt là trong việc tạo mã nơi các chuỗi token đầu ra tương đối dễ dự đoán, chúng mang lại hiệu quả nhờ bỏ qua các forward pass, bên cạnh việc giảm độ trễ thô dưới dạng nhiều token hơn trên mỗi giây cho mỗi người dùng.

Phân tách (Disaggregation)

Phân tách P/D (Prefill/Decode), hay việc tách biệt quá trình prefill và decode sang các worker chuyên dụng, là một chiến lược để tối ưu hóa các triển khai LLM khối lượng lớn. Việc chạy prefill và decode độc lập có nghĩa là các worker có thể được tối ưu hóa cho các đặc điểm riêng biệt của từng giai đoạn suy luận, và tỷ lệ giữa worker prefill và decode có thể được điều chỉnh để phù hợp với độ dài chuỗi đầu vào/đầu ra và tỷ lệ cache hit từ lưu lượng truy cập đến.

Trong thực tế, phân tách thường hữu ích nhất để tăng thông lượng trong khi vẫn giữ nguyên hoặc cải thiện nhẹ độ trễ.

Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung). Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. 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.