实际上,在机器学习管道的组件中,我们明确指定了输入和输出。
例如,在TFX中,statisticgen从examplegen获取输入并输出一些统计数据。因此,输入和输出是明确的,这在所有组件中都是相同的。那么,为什么我们需要编排器呢?如果有人知道,请帮帮我?
回答:
在现实项目中,一切可能会复杂得多:
- 输入数据可能来自不同的来源:数据库、文件系统、第三方服务。因此,我们需要在开始处理数据之前进行传统的ETL(提取、转换、加载)。
-
你可以在一个管道中使用不同的技术。例如,使用Spark作为预处理工具,之后你可能需要使用带有GPU的实例来进行模型训练。
-
最后但同样重要的是,在生产环境中,你需要关注更多的事情。例如数据验证、模型评估等。我写了一篇单独的文章,关于如何使用Apache Airflow来组织这部分工作。