Но нет объяснения того, почему я должен использовать тот или иной, например, для загрузки на основе контейнера, мне нужно сгенерировать push-изображение докера и загрузить в конвейер yaml со спецификацией, но с функцией на основе, мне нужно только импортировать функцию.
Здесь есть некоторые заблуждения.
Под капотом есть только один вид компонентов - компонент на основе контейнера (есть также графические компоненты, но здесь это не имеет значения).
Однако большинству наших пользователей нравится python и не нравится сборка контейнеров. Вот почему я разработал функцию под названием «Легкие компоненты python», которая генерирует ComponentSpec / component.yaml
из исходного кода функции python. Сгенерированный компонент в основном запускает python3 -u -c '<your function>; <command-line parsing>' arg1 arg2 ...
.
Существует заблуждение, что функциональные компоненты отличаются от component.yaml
файлов.
Нет, это тот же формат. Вы должны сохранить сгенерированный компонент в файл для совместного использования: create_component_from_func(my_func, output_component_file='component.yaml')
. После того, как ваш код стабилизируется, вы должны загрузить код и component.yaml
на GitHub или другое место и использовать load_component_from_url
для загрузки этого component.yaml
в конвейеры.
Проверьте файлы component.yaml
в репозитории KFP. Более половины файлов component.yaml
- это облегченные компоненты - они созданы из функций Python.
component.yaml
предназначены для совместного использования компонентов. Они декларативны, переносимы, индексируются, безопасны, не зависят от языка и т. Д. Вы всегда должны публиковать component.yaml
файлы. Если component.yaml
сгенерирован из функции python, то рекомендуется поставить component.py
рядом, чтобы компонент можно было легко регенерировать при внесении изменений.
Решение о том, создавать ли компонент с использованием функции Lightweight python component или нет, очень просто:
Вы кодируете автономную функцию Python (еще не программу CLI)? Вы не хотите строить, толкать и обслуживать контейнеры? Если да, то функция компонента Lightweight python (create_component_from_func
) может помочь вам и сгенерировать component.yaml
для вас.
В противном случае напишите component.yaml
самостоятельно.
person
Ark-kun
schedule
09.06.2021