基于dbt的机器学习:流畅的过程衔接

DBT 继承了我们在 SQL 上的工作,在数据工程师、数据分析工程师和任何数据角色之间构建了一个优雅、通用的、操作友好的环境。工具和工作流的统一在数据组织内为不同团队之间创建了互操作性。

就像在接力赛中一样,在过程的各个阶段都有明确的交接点和明确的所有权。但截止目前,还有一个环节仍然痛苦且不确定:机器学习(ML)工程师和数据分析工程师之间的衔接。

根据我的经验,ML工程和数据分析工程之间的初始协作工作流程开始时很强大,但最终在维护阶段变得混乱。这最终导致项目变得无法使用和被遗忘。

在本文中,我们将探讨 ML 工程和数据分析工程之间的现实接力棒,并强调哪里容易出问题。ML工程和数据分析工程工作流程中存在所有权问题。幸运的是,现代数据堆栈MDS使接力棒传递更加顺畅。这篇文章将引导您完成最近的一个项目,在那里我能够亲眼看到这些系统如何协同工作,以提供为长期准确性和可维护性而构建的模型。

一、以前的工作衔接是什么样子的?

作为一名数据分析工程师,我与一位 ML 工程师配对,以分析确定公司客户流失趋势,以及我们可以采取哪些措施来防止这种情况。我们努力寻找一个解决方案,并向客户业务主管展示,1 个月后我们满怀希望完成了方案,但最新的数据更改导致模型漂移,因此 ML 工程师找到一些问题供数据工程师/数据分析工程师修复...循环往复,3个月后,没有人记得我们这样做了。这听起来熟悉吗?

发生这种情况是因为“正常”的做事方式缺乏长期和明确的所有权。但是这些故障是如何发生的呢?

事情是这样的

经过一些初步规划,我知道我们将这些原始数据存在于数据仓库,我们共同努力的这个起点很容易理解。我编写了 dbt 转换来调整这些原始数据并加入了几个表一起基于对重要变量的直觉:每日活跃使用情况、用户数量、支付金额、历史使用情况等。

ML工程师从这里介入。她习惯于在Python、 pandas和scikit-learn中进行统计和预处理。在她打开她的Jupyter Notebook之前,我们进行了一次对话,意识到可以通过dbt完成相同的工作。预处理可以通过这个开源dbt包dbt-ml-preprocessing来完成。

ML 工程师完成了预处理步骤(想想:one-hot encoding, feature scaling, imputation)。她使用 SQL 将 dbt 模型(表)读入 Jupyter Notebook以执行模型训练。在迭代机器学习模型和跟踪模型拟合(想想:AUC/Precision/Recall (用于分类))之后,她在 dbt 创建的表上运行模型,并将预测结果作为数据库中的表输出。为了保持文档整洁,她在 dbt 项目中配置了一个源来反映此预测结果表。它并不直观,但比将其排除在 dbt 文档之外要好。

最后,她在此表的顶部创建了一个仪表板,以向最终用户宣传模型随时间推移的准确性。为了安排这个,我们去找数据工程师,每天早上8点在Airflow中将上述内容串在一起,并完成。

过程哪里出了问题

让我们分析一下我们在故事中看到的待完成的工作。

编辑

要完成的工作预期成果角色

提取原始数据并将其加载到数据库中SQL 就绪数据数据工程师

转换数据以供业务用户使用数据是连贯的,可以从中做出决策分析工程师、机器学习工程师

使用结构化的表格数据统一实用的工作流程分析工程师、机器学习工程师

在 SQL 中工作统一实用的工作流程分析工程师、机器学习工程师

为用户提供文档,以了解数据输出是如何创建的以及如何使用它们数据的信任和上下文分析工程师、机器学习工程师

测试转换后的数据输出可信数据分析工程师

测试预处理数据输出可信数据机器学习工程师

训练和部署机器学习模型(主要使用 python)做出预测性决策机器学习工程师

随时间推移测试和维护机器学习表输出证明预测结果与现实相符,即使数据输入随时间变化数据工程师、分析工程师、机器学习工程师???

接力棒随着时间的推移而发展,需求分析和叙事是数据分析工程师和ML工程师引以为豪的容易达成共识的事情,但机器学习输出工作流的维护和验证是我们并不引以为豪的事情。发生这种情况是因为我们错过了一些关键的东西:从长远来看,我们没有统一谁应该做什么(想想:源数据变化通过转换>预处理>训练步骤级联>监控性能。难怪最终用户在 1 个月后对我们的结果耸了耸肩。

让我们把这个简单化:

“当数据发生变化时,谁使数据和机器学习管道随着时间的推移可维护?”

如果我们把这个问题做好了,机器学习投入适用将变得更容易

二、技术发展如何弥合数据分析工程和机器学习之间的差距?

让我们进一步关注这个问题:对于工作流程中的“随时间推移的维护”问题,

ML 模型漂移是由数据质量还是模型逻辑引起的?

将机器学习引入 SQL 工作流

如果。。。SQL可以做的比我们认为的更多,甚至应该做的更多?

http://mindsdb.com:MindsDB是使用SQL语法创建预测模型的基于数据库之上的开源产品,机器学习计算发生在MindsDB层。

Continual.ai:直接创建 dbt 模型来预测结果。根据您的 dbt 模型配置评估要使用的 ML 模型,机器学习计算发生在这一层和数据仓库中。

fal.ai:fal使 dbt 和 python 可互操作。

这将如何改变我的故事?

数据分析工程师和ML工程师会在SQL上更加团结。无论长管道在何处破裂(ELT-ML),SQL将是我们一起找出问题的切入点。对于简单的机器学习问题(例如,线性回归,分类),在ML工程师的建议和审查下,数据分析工程师会更容易理解甚至拥有完整的管道。

除了在出现问题后解决问题之外,此工作流还将避免构建 ML 运维工作所涉及的大部分复杂性:大量额外的基础设施(想想: python 代码在哪里运行?)作为一名 ML 工程师,我希望生活在一个可以从一个控制平面管理探索、训练、版本控制和推理的世界里。在数仓内进行机器学习有可能使之成为现实。

编辑

数据分析工程师和ML工程师将在整个工作流程的同一个dbt项目中工作,而不仅仅是其中的一部分。我们会将 python 脚本与 dbt 配置对齐,以获得更好的谱系。

当事情出错时,弄清楚SQL更改如何通知python更改,反之亦然。不需要关心python代码在哪个基础设施上运行。将机器学习逻辑与 dbt 逻辑保持一致会更容易。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容