Я хотел бы иметь возможность создать конвейер Kubeflow, который позволяет пользователям устанавливать выделенные ресурсы для запуска. Конечный результат будет примерно таким:
Возможно определение параметров трубопровода; однако синтаксис параметров конвейера не соответствует регулярному выражению проверки, используемому Kubeflow для предварительной обработки своего определения YAML.
В качестве примера, используя параметры значений на снимке экрана, я могу жестко закодировать ресурсы, выделенные конвейеру, добавив это в определение YAML конвейера:
resources:
limits: {nvidia.com/gpu: 1}
requests: {cpu: 16, memory: 32G}
Однако я хочу использовать параметры конвейера для определения этих распределений для каждого прогона. Что-то вроде:
resources:
limits: {nvidia.com/gpu: '{{inputs.parameters.gpu_limit}}'}
requests: {cpu: '{{inputs.parameters.cpu_request}}', memory: '{{inputs.parameters.memory_request}}'}
Когда я использую второе определение ресурсов конвейера, создание конвейера не удается, потому что Kubeflow не может проанализировать этот параметр ресурса, поскольку синтаксис входного параметра '{{input.parameters.parameter}}'
не соответствует регулярному выражению ^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
.
{
"error_message":"Error creating pipeline: Create pipeline failed: Failed to get parameters from the workflow: InvalidInputError: Failed to parse the parameter.: error unmarshaling JSON: while decoding JSON: quantities must match the regular expression '^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$'",
"error_details":"Error creating pipeline: Create pipeline failed: Failed to get parameters from the workflow: InvalidInputError: Failed to parse the parameter.: error unmarshaling JSON: while decoding JSON: quantities must match the regular expression '^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$'"
}
Кто-нибудь нашел обходной путь для этой проблемы, или я пытаюсь заставить Kubeflow делать то, для чего он не создан? Определение и использование параметров конвейера, как во втором примере, работает для других частей определения конвейера (например, аргументов или команд для запуска в контейнере Docker).