Giới hạn tốc độ (Rate Limiting) và Ngắt mạch (Circuit Breakers) trong các Hệ thống AI
Các hệ thống AI phân tán rất phức tạp. Chúng xử lý khối lượng yêu cầu khổng lồ và quá trình suy luận mô hình (model inference) nặng nề. Bạn phụ thuộc vào các cụm GPU, cơ sở dữ liệu và các API bên thứ ba. Chỉ cần một thành phần lỗi hoặc một đợt tăng đột biến lưu lượng truy cập cũng có thể làm sập toàn bộ hệ thống của bạn.
Bạn cần hai công cụ để bảo vệ hệ thống của mình: rate limiting và circuit breakers.
Rate Limiting Rate limiting ngăn chặn một người dùng hoặc một dịch vụ đơn lẻ sử dụng quá nhiều tài nguyên. Nó đảm bảo quyền truy cập công bằng cho tất cả mọi người.
Các phương pháp phổ biến:
- Token Bucket: Tốt nhất cho AI. Nó cho phép các đợt hoạt động ngắn (bursts) trong khi vẫn duy trì mức trung bình ổn định.
- Leaky Bucket: Duy trì một luồng yêu cầu liên tục.
- Fixed Window: Đơn giản nhưng có thể gây ra sự tăng đột biến vào đầu một cửa sổ mới.
- Sliding Window: Chính xác hơn so với fixed window.
Mẹo chuyên gia cho AI: Hãy giới hạn theo số lượng token, thay vì chỉ giới hạn theo số lượng yêu cầu. Một prompt với 4.000 token sẽ tiêu tốn nhiều tài nguyên hơn một prompt chỉ có 10 token.
Circuit Breakers Một circuit breaker giám sát các lệnh gọi đến các dịch vụ như máy chủ GPU hoặc cơ sở dữ liệu vector của bạn. Nếu một dịch vụ thất bại quá nhiều lần, bộ ngắt mạch sẽ mở (open). Nó sẽ dừng ngay lập tức tất cả các lệnh gọi đến dịch vụ đó. Điều này giúp ngăn chặn việc sập toàn bộ hệ thống.
Mạch hoạt động theo ba trạng thái:
- Closed (Đóng): Mọi thứ đang hoạt động bình thường.
- Open (Mở): Dịch vụ đang gặp lỗi. Các lệnh gọi sẽ thất bại ngay lập tức (fail fast) hoặc sử dụng một phương án dự phòng (fallback).
- Half-Open (Nửa mở): Hệ thống kiểm tra dịch vụ để xem liệu nó đã phục hồi hay chưa.
Các thực hành tốt nhất:
- Theo dõi các lệnh gọi chậm. Nếu một LLM mất quá nhiều thời gian, hãy coi đó là một lỗi.
- Phân loại các loại lỗi. Đừng kích hoạt bộ ngắt mạch cho các lỗi từ phía người dùng như 400 Bad Request. Chỉ kích hoạt nó cho các lỗi kết nối hoặc hết thời gian chờ (timeout).
Cộng đồng học tập tùy chọn: https://t.me/GyaanSetuAi