事件驱动架构EDA能清除机器学习中标签干扰噪音


事件驱动的设计是一种可以实际解决机器学习中标签噪音问题的解决方案:
首先,我们需要定义与标签相关的所有数据。我们甚至添加了仍在研究中的数据点,但将来可能与我们的标签相关。
这部分内容有点探索性,因为我们在多个数据库中拥有大量数据,而没有一个人能完全了解这一切。作为一名架构师,我必须与多个团队进行研究,最终遇到了40多个不同事件,这些事件起源于系统的不同部分,对于我们的模型训练非常重要。
这些事件我们该怎么办?选择我们的事件消息传递技术(Kafka)之后,我们确保所有事件都将从每个微服务流到相同的位置(主题topic)。
这些主题中的每个主题均按订单ID进行分区。这样,将新事件发布到主题时,实际上会将其附加到主题的一个分区中。具有相同顺序ID的事件将写入同一分区,并且Kafka保证,给定主题分区的任何使用者都将始终以与写入时完全相同的顺序读取该分区的事件。此功能对于项目的成功至关重要。
标签消费使用的是Kafka Streams的消费者,允许开发有状态流处理。您可以对不同的DSL进行编程以计算您的状态。我们可以过滤,映射,分组,聚合和加入不同的主题,并计算标签(状态)。
在发布最终结果(标签)之后,我们最终得到了应用程序本身的消费者(实时流)和另一个用于脱机目的的消费者。
请注意,这是使用Kafka的特定解决方案,但是也可以使用其他流式解决方案。
确保我们的事件驱动设计确实解决了这个问题:

  • 可变字段:-现在我们的数据科学家将能够随时访问数据,而不用担心所做的更改。
  • 多个字段:我们现在有了一个单一的事实来源,可以解决多个数据库中多个员工的多个字段的问题。消费者将数据保存在哪里都没有关系

点击标题