Я настраиваю InferenceService с помощью Argo и KFServing с Amazon EKS (Kubernetes). Важно знать, что у нашей команды есть один кластер EKS на среду, а это означает, что в нашем кластере может быть несколько приложений, которые мы не контролируем.
Вот что мы настроили на данный момент
- Мы загружаем в Amazon ECR образ докера, который содержит нашу логику для обучения и развертывания нашей модели.
- Мы используем
argo
для отправки рабочих процессов, с которых начинается обучение в №1. При установке argo в наш кластер kubernetes мы замечаем, что его компоненты иногда назначаются узлам GPU. - Мы также используем KFServing. KFServing позволяет нам автоматически масштабировать наш графический процессор вверх и вниз, в частности масштабирование до нуля, когда он не используется. Компоненты в KFServing также назначаются узлам графического процессора при их применении в нашем кластере.
Текущая настройка, которая у нас есть для №2 и №3 (см. Выше), похоже, запрещает масштабирование KFServing до нуля. Нас беспокоит, что наличие этих компонентов в графическом процессоре не позволит графическому процессору масштабироваться.
Какие модули необходимо назначить нашим узлам графического процессора?
(Вариант 1) Нужно ли нам назначать только наш модуль рабочего процесса argo и отталкивать остальных?
-- OR --
(Вариант 2) Требуются ли другие компоненты kfserving в узле GPU для правильной работы?
Вариант 1. Как предотвратить попадание всех модулей в наши узлы графического процессора, кроме модуля рабочего процесса argo? Напоминаем, что у нас есть другие приложения, которые мы не можем контролировать, поэтому добавляем привязки узлов для каждого модуля кажется нереальным.
Вариант 2: Как узлы GPU масштабируются до нуля, если в этих узлах GPU есть компоненты kfserving? У меня сложилось впечатление, что уменьшение масштаба означает, что в узле нет модулей.