Endpoint Candidates: оценка и продвижение инференс-эндпоинтов

Источник: Modal•

Endpoint Candidates: оценка и продвижение инференс-эндпоинтов

Тестируйте и продвигайте инференс-эндпоинты для оценки качества, задержки, пропускной способности и стоимости.

Оптимизация задержки, пропускной способности и стоимости — основа современной инженерии инференса. Без тестирования и измерений эти показатели невозможно надежно улучшить.

Мы уже некоторое время занимаемся производительностью инференса и создаем несколько новых инструментов, которые помогут вам оптимизировать собственные серверы инференса, начиная с Endpoint Candidates.

Endpoint Candidates позволяют развертывать альтернативные версии для ваших Dedicated Endpoints, чтобы вы могли оценить влияние на качество, задержку, пропускную способность и стоимость. Каждый кандидат может зеркалировать рабочую среду, обрабатывая часть производственного трафика, пока Modal управляет базовой инфраструктурой. Когда вы будете готовы, продвиньте своего кандидата в продакшн через панель управления.

С помощью Candidates вы можете тестировать новые чекпоинты моделей — или даже совершенно другие модели — без необходимости создавать собственную инфраструктуру для зеркалирования трафика и развертывания. Endpoint Candidates теперь общедоступны для всех рабочих пространств Modal.

Начало работы

Чтобы создать нового кандидата, начните с существующего Dedicated Endpoint в вашей среде Modal. Выберите «Create candidate», чтобы выбрать открытую модель из каталога Modal или использовать собственные веса из репозитория Hugging Face или тома Modal Volume.

Как только ваш кандидат будет готов, настройте выборку трафика, чтобы начать зеркалирование производственного трафика на него. Продакшн продолжает обрабатывать каждый исходный запрос и возвращать ответ, который видят ваши пользователи.

Используйте панель управления для проверки метрик инференса кандидата, включая задержку и пропускную способность, а также запускайте тесты производительности, чтобы понять его поведение под нагрузкой. У каждого кандидата также есть свой URL, поэтому вы можете запускать свои существующие оценки для проверки качества вывода.

Когда будете готовы, продвиньте кандидата через панель управления. Modal начнет развертывание в продакшн по существующему URL эндпоинта. Ваши другие кандидаты останутся доступными, поэтому вы сможете продолжать тестировать их независимо.

Endpoint Candidates используют стандартные тарифы Modal на вычисления, включая вычисления, используемые для зеркалируемых запросов.

Поддержание работы продакшна

Одной из сложных задач при создании зеркалирования трафика было предотвращение задержек в продакшне из-за медленных зеркал. Когда несколько кандидатов получают копии большого запроса, они могут считывать данные с разной скоростью. Прокси-сервер может в конечном итоге буферизировать значительные объемы данных в ожидании более медленных кандидатов.

Чтобы решить эту проблему, мы расширили наш прокси на базе Pingora, чтобы разветвлять каждый поток запросов в отдельный ограниченный буфер для каждого кандидата, получающего копию. Каждое зеркало считывает данные независимо: если поступает новый фрагмент, а буфер заполнен, прокси отменяет этот зеркалируемый запрос, в то время как продакшн и другие зеркала продолжают работу.

Но ограниченный буфер для каждого зеркала все еще оставляет проблему: загруженный прокси может зеркалировать множество запросов одновременно. Поэтому мы также ограничиваем объем данных тела запроса, сохраняемых зеркалами внутри каждого процесса прокси. Они совместно используют фрагменты тела запроса, поэтому каждый фрагмент учитывается только один раз в рамках этого бюджета.

Удаление фрагмента из буфера не обязательно освобождает его память, так как сетевая запись может все еще удерживать его. Мы продолжаем учитывать этот фрагмент до тех пор, пока последнее зеркало не освободит его. Если добавление следующего фрагмента приведет к превышению бюджета, прокси отменяет зеркала этого запроса, пока исходный запрос продолжается.

Зеркалирование по своей сути является «лучшим из возможных»: зеркалируемые запросы могут быть отброшены при нагрузке, чтобы продакшн не ждал медленного или неисправного кандидата.

Что дальше

Мы расширяем возможности создания и оценки кандидатов: от большего контроля над размещением вычислений и рецептами обслуживания до более богатых представлений метрик для сравнения развертываний.

Мы также работаем над автоматизацией большей части этого экспериментирования. Когда мы представили Auto Endpoints, мы описали нашу работу по автоматизации оптимизации инференса. Candidates дают этим оптимизациям возможность проявить себя: это способ для Modal тестировать многообещающие изменения на вашем трафике, а затем отображать измеренные улучшения задержки, пропускной способности или стоимости.

О чём эта статья

Ещё в разделе «AI и машинное обучение»

Все →

Ещё от Modal