Trộn liên tục
Phân nhóm liên tục là một kỹ thuật phân phối giúp thêm và xóa các yêu cầu khỏi từng mã thông báo theo lô đang chạy, thay vì đợi toàn bộ lô cố định kết thúc.
Tổng quan
It keeps the GPU constantly busy and sharply increases how many users an AI model can serve at once.
Lặn sâu
GPU nhanh nhất khi chúng xử lý nhiều yêu cầu cùng lúc trong một đợt. Cách tiếp cận đơn giản, phân nhóm tĩnh, nhóm một nhóm yêu cầu cố định, chạy tất cả chúng cho đến khi hoàn thành, sau đó bắt đầu đợt tiếp theo. Vấn đề: đầu ra của mô hình ngôn ngữ có độ dài rất khác nhau, do đó, các yêu cầu ngắn sẽ kết thúc sớm và các vị trí của chúng không hoạt động trong khi lô chờ đợi yêu cầu dài nhất, lãng phí chu kỳ GPU và trì hoãn các yêu cầu mới đến. Phân khối liên tục (còn gọi là phân khối trong chuyến bay hoặc phân lớp lặp lại, được phổ biến bởi bài báo Orca và được sử dụng trong vLLM, TensorRT-LLM và TGI) hoạt động ở mức độ chi tiết của một bước giải mã duy nhất. Sau khi mỗi mã thông báo được tạo, các chuỗi đã hoàn thành sẽ thoát khỏi lô và các yêu cầu mới đến sẽ được đưa vào ngay lập tức. Điều này giúp cho lô luôn đầy và GPU bão hòa, thường tăng thông lượng lên nhiều lần với độ trễ thấp hơn cho người dùng đang chờ.
Hiểu biết kỹ thuật
Sự thay đổi chính là từ việc phân nhóm toàn bộ yêu cầu sang phân nhóm các lần lặp riêng lẻ. Ở mỗi bước giải mã, bộ lập lịch sẽ xây dựng tập hoạt động: nó chạy một lượt chuyển tiếp trên tất cả các chuỗi đang diễn ra, phát ra mỗi chuỗi một mã thông báo, loại bỏ bất kỳ mã thông báo nào đạt đến mã thông báo cuối chuỗi hoặc giới hạn độ dài và chấp nhận các yêu cầu xếp hàng đợi để lấp đầy các vị trí được giải phóng. Việc ghép nối tính năng này với bộ nhớ KV linh hoạt của PagedAttention giúp việc chèn và xóa các chuỗi trong quá trình hoạt động trở nên rẻ hơn vì bộ nhớ đệm của mỗi chuỗi nằm trong các khối độc lập.
Tác động chiến lược
Chi phí và ngân sách
Các quyết định về kiến trúc sẽ thúc đẩy hiệu suất và chi phí vận hành trong nhiều năm.
Quyết định rõ ràng hơn
Giáo dục kỹ thuật giúp các nhóm chọn nhóm phù hợp chứ không chỉ nhóm mới nhất.
Kiểm soát chất lượng
Lựa chọn kỹ thuật tốt hơn làm giảm sự cố về độ tin cậy trong sản xuất.
Tương lai của việc trộn liên tục
Việc phân mẻ liên tục hiện là tiêu chuẩn trong việc phân phát LLM sản xuất. Công việc trong tương lai sẽ tinh chỉnh bộ lập lịch: tách giai đoạn điền trước nặng về điện toán khỏi giai đoạn giải mã nhẹ hơn (phân chia), điền trước theo khối để tránh trì hoãn giải mã, chính sách ưu tiên và công bằng cho khối lượng công việc hỗn hợp, đồng thời kết hợp chặt chẽ hơn với giải mã suy đoán để nhiều mã thông báo nháp được xác thực trên mỗi bước. Mục tiêu là thu được số lượng mã thông báo tối đa mỗi giây trên mỗi GPU trong khi vẫn giữ độ trễ phản hồi riêng lẻ ở mức thấp và có thể dự đoán được.
Triển khai trong thế giới thực
API trò chuyện thừa nhận tin nhắn của người dùng mới gửi vào lô đang chạy ngay lập tức thay vì xếp chúng vào hàng tiếp theo
Loại bỏ một câu trả lời ngắn đã hoàn thành giữa đợt và lấp đầy vị trí của nó để GPU không bao giờ nhàn rỗi chờ đợi trong một thế hệ dài
Kết hợp phân nhóm liên tục với PagedAttention của vLLM để chèn và xóa chuỗi với chi phí thấp ở mỗi bước giải mã
Dịch vụ hoàn thiện mã duy trì số lượng mã thông báo cao mỗi giây trong lưu lượng truy cập lớn, có độ dài thay đổi bằng cách giữ cho lô đầy đủ
Rủi ro & lan can
Tối ưu hóa một điểm chuẩn có thể che giấu những điểm yếu của hệ thống rộng hơn.
Chi phí cơ sở hạ tầng và bảo trì thường được đánh giá thấp.
Khoảng cách về bảo mật và khả năng quan sát có thể tăng lên khi hệ thống trở nên phức tạp hơn.
Lộ trình thực hiện
Xác định các mục tiêu về độ trễ, chất lượng và chi phí trước khi triển khai.
Điểm chuẩn trong điều kiện tải và dữ liệu thực tế.
Giám sát thiết bị về lỗi, độ lệch và tác động của người dùng.
Chuẩn bị đường dẫn khôi phục và ứng phó sự cố trước khi mở rộng quy mô.
Tiếp tục khám phá
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Continuous Batching quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Hướng dẫn tiếp theo
Kubernetes cho khối lượng công việc ML
Câu hỏi thường gặp
What is Continuous Batching?
Phân nhóm liên tục là một kỹ thuật phân phối giúp thêm và xóa các yêu cầu khỏi từng mã thông báo theo lô đang chạy, thay vì đợi toàn bộ lô cố định kết thúc. Nó giữ cho GPU luôn bận rộn và tăng mạnh số lượng người dùng mà một mô hình AI có thể phục vụ cùng một lúc.
Điểm yếu chính của việc phân nhóm tĩnh (cố định) để phục vụ LLM là gì?
Vì độ dài đầu ra khác nhau nên các chuỗi đã hoàn thành sẽ không hoạt động cho đến khi chuỗi chậm nhất hoàn thành, gây lãng phí chu kỳ GPU và trì hoãn các yêu cầu mới.
Việc phân nhóm liên tục thêm và xóa yêu cầu ở mức độ chi tiết nào?
Tính năng bó liên tục (cấp độ lặp) cập nhật tập hợp hoạt động sau mỗi bước giải mã, do đó, nó hoạt động theo từng mã thông báo thay vì theo toàn bộ yêu cầu.
Khi một chuỗi kết thúc ở giữa đợt theo đợt liên tục, điều gì xảy ra với vị trí của nó?
Các trình tự đã hoàn tất sẽ bị loại bỏ và các yêu cầu đang chờ sẽ được đưa vào ngay lập tức, giữ cho lô luôn đầy và GPU luôn bận rộn.
Kỹ thuật nào kết hợp một cách tự nhiên với việc tạo khối liên tục để làm cho việc chèn/xóa các chuỗi trở nên rẻ tiền?
PagedAttention lưu trữ bộ nhớ đệm KV của mỗi chuỗi trong các khối độc lập, do đó, việc thêm hoặc xóa một chuỗi trong lúc đang thực hiện sẽ không làm ảnh hưởng đến bộ nhớ của người khác.
Bài nghiên cứu nào thường được ghi nhận là phổ biến việc phân nhóm cấp độ lặp (liên tục)?
Bài viết của Orca đã giới thiệu việc lập kế hoạch ở cấp độ lặp lại và ý tưởng này đã được áp dụng bởi các hệ thống phục vụ như vLLM, TGI và TensorRT-LLM.