Представьте модели как версионируемые ресурсы, а длительные inference/evaluation — как отдельные задания со статусами. Удаление и изменение должны проверять ownership.
Создание API‑эндпоинтов для управления ML‑моделями
Представьте модели как версионируемые ресурсы, а длительные inference/evaluation — как отдельные задания со статусами. Удаление и изменение должны проверять ownership.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Разработать набор HTTP‑ручек, позволяющих выполнять базовые операции оркестрации моделей машинного обучения.
Требования:
- Получить список доступных моделей.
- Удалить выбранную модель из списка.
- Добавить новую модель.
- Применить (запустить) модель.
- Оценить качество модели.
- Обновить параметры модели.
Ответ
Представьте модели как версионируемые ресурсы, а длительные inference/evaluation — как отдельные задания со статусами. Удаление и изменение должны проверять ownership.
Минимальный контракт:
GET /models— список с пагинацией.POST /models— регистрация артефакта, 201.DELETE /models/{id}— удаление или пометка недоступности.PATCH /models/{id}— разрешённые настройки с проверкой версии.POST /models/{id}/predictions— запуск применения.POST /models/{id}/evaluations— оценка на указанном датасете.GET /jobs/{id}— состояние длительной операции.
Задания возвращают 202 и job_id, тяжёлая работа идёт в worker. Фиксируйте версию модели, датасета и параметры, ограничивайте ресурсы и повторы. Не допускайте выполнения произвольного кода из недоверенного артефакта. Обновление весов лучше оформлять новой версией, не перезаписывая историю оценок.