𝗥𝗮𝘁𝗲 𝗟𝗶𝗺𝗶𝘁𝗶𝗻𝗴 𝗮𝗻𝗱 𝗖𝗶𝗿𝗰𝘂𝗶𝘁 𝗕𝗿𝗲𝗮𝗸𝗲𝗿𝘀 𝗶𝗻 𝗔𝗜 𝗦𝘆𝘀𝘁𝗲𝗺𝘀
Распределенные AI-системы сложны. Они обрабатывают огромные объемы запросов и тяжелые вычисления (inference) моделей. Вы полагаетесь на GPU-кластеры, базы данных и сторонние API. Один неисправный компонент или резкий скачок трафика может обрушить всю вашу систему.
Чтобы защитить свою систему, вам нужны два инструмента: ограничение частоты запросов (rate limiting) и автоматические выключатели (circuit breakers).
Rate Limiting Rate limiting не позволяет одному пользователю или сервису потреблять слишком много ресурсов. Это обеспечивает справедливый доступ для всех.
Общие методы:
- Token Bucket (Корзина токенов): Лучший вариант для AI. Он допускает кратковременные всплески активности, сохраняя при этом стабильный средний показатель.
- Leaky Bucket (Дырявое ведро): Поддерживает постоянный поток запросов.
- Fixed Window (Фиксированное окно): Просто, но может вызывать всплески в начале нового окна.
- Sliding Window (Скользящее окно): Более точный метод, чем фиксированные окна.
Совет для AI: ограничивайте использование по количеству токенов, а не только по количеству запросов. Один промпт с 4 000 токенов потребляет больше ресурсов, чем промпт с 10 токенами.
Circuit Breakers Circuit breaker отслеживает вызовы к таким сервисам, как ваш GPU-сервер или векторная база данных. Если сервис дает сбой слишком много раз, «предохранитель» размыкается (opens). Это немедленно прекращает все вызовы к этому сервису, предотвращая полный крах системы.
Цепь проходит через три состояния:
- Closed (Замкнуто): Все работает в штатном режиме.
- Open (Разомкнуто): Сервис работает со сбоями. Вызовы мгновенно возвращают ошибку или используют резервный вариант (fallback).
- Half-Open (Полуразомкнуто): Система проверяет сервис, чтобы узнать, восстановил ли он работу.
Лучшие практики:
- Отслеживайте медленные вызовы. Если LLM отвечает слишком долго, считайте это сбоем.
- Разделяйте типы ошибок. Не размыкайте цепь из-за ошибок пользователя, таких как 400 Bad Request. Делайте это только при ошибках соединения или таймаутах.
Optional learning community: https://t.me/GyaanSetuAi