Я начал использовать конвейеры Kubeflow для запуска обработки данных, обучения и прогнозирования для проекта машинного обучения, и я использую InputPath и OutputhPath для передачи больших файлов между компонентами.
Я хотел бы знать, как, если это возможно, установить путь, по которому OutputPath будет искать файл в компоненте, и где InputPath будет загружать файл в компонент.
В настоящее время код хранит их в заранее определенном месте (например, data/my_data.csv
), и было бы идеально, если бы я мог «сказать» InputPath / OutputPath, что это файл, который он должен копировать, вместо того, чтобы переименовать все файлы в соответствии с тем, что ожидает OutputPath, как показано ниже минимального примера.
@dsl.pipelines(name='test_pipeline')
def pipeline():
pp = create_component_from_func(func=_pre_process_data)()
# use pp['pre_processed']...
def pre_process_data(pre_processed_path: OutputPath('csv')):
import os
print('do some processing which saves file to data/pre_processed.csv')
# want to avoid this:
print('move files to OutputPath locations...')
os.rename(f'data/pre_processed.csv', pre_processed_path)
Естественно, я бы предпочел не обновлять код в соответствии с соглашением об именах конвейера Kubeflow, так как это выглядит как очень плохая практика мне.
Спасибо!