- Python для логики преобразования и вывода модели
- YAML для конфигурации (гиперпараметры, пути к модели, размеры пакетов)
- JSON Schema для проверки структур входных и выходных данных
- Bash/shell для оркестрации и пошагового управления
- Дикт Python, возвращенный на этапе предварительной обработки, не соответствует схеме JSON, ожидаемой на следующем этапе — обнаруживается во время выполнения, в середине конвейера, после 45 минут вычислений.
- Значение конфигурации YAML анализируется как строка, когда конвейер ожидает целое число — никаких ошибок до вызова модели. не удалось
- Изменение схемы на шаге N автоматически нарушает шаг N+2, поскольку нет механизма проверки совместимости во время определения
- Pydantic модели на каждой границе этапа (добавляет шаблон, по-прежнему только во время выполнения)
- Проверка jsonschema в точках входа в конвейер (не обнаруживает несоответствия между шагами)
- Строгая типизация с помощью mypy в коде Python (не распространяется на схему YAML или JSON)
- Пользовательские классы-оболочки для обеспечения соблюдения контрактов между шагами (поддерживается, но подробный)
Существует ли стандартный шаблон, инструмент или структура, обеспечивающая совместимость типов независимо от этих границ — в идеале во время определения, а не во время выполнения? В частности:
- Можно ли проверить тип вывода шага конвейера A на тип ввода шага B перед запуском конвейера?
- Существует ли какой-либо инструмент, который рассматривает весь конвейер (конфигурация + схема + логика + оркестровка) как однотипный артефакт?