机器学习与工程化

前言

从接触机器学习/深度学习一开始,我们看到的就是各种数学公式,算法和模型。毫无疑问,这些理论性的工作是ML的坚实基础,也是非常值得深究的领域。但是,这里,我想多说一些点关于机器学习工程化的东西。在工业界,机器学习是用来解决实际问题的,比较常见的像广告CTR预估,推荐系统等。相对算法来说,机器学习的工程化工作,同样决定了这个模型的价值,而且影响不小。

在线服务

大多数刚接触ML的同学,对ML的整个流程认识其实是不全的。缺的这一环,就是模型上线,也就是模型对外提供预测的服务。模型真正实时的对外提供服务,才意味着发挥着作用和价值。

简单来说,机器学习的在线服务就是一个server使用模型,根据实时提交来的数据,返回predict的结果。跟所有的在线服务一样,它面临着同样的问题,延迟,吞吐量和稳定性。即使有一个非常准确的模型,它的判断逻辑非常复杂,每一次predict都会带来巨大的开销,那这个模型也是无法在线上使用的。基于这个情况,简单的LR模型,是工业界比较青睐的模型,尽管它准确性比其他复杂模型稍差一点,但是在线服务的性能好,能带来更多的收益。

那么我们在这方面的工程化需要关注什么呢?第一,和其他在线服务一样,关注它的各个性能指标,如95、99延迟等等。第二,如何提前知道一个模型的性能指标。这里性能并不是指AUC,准确率这类,而是影响着predict的指标,比如特征维数,模型大小等。模型的大小(对于LR模型来说,其实也是特征维数)影响了加载时的gc,查找权重的时间开销。LR模型做预测时,相当于就是拿特征去查表,然后得到各个特征的分数,求和。主要的开销就是查表。工程化需要做的就是,在确定模型上线会对线上服务带来影响地情况下,拦截住模型更新,这需要是一种自动化的工作。

数据的管理

类似的,大多数刚接触ML的同学都是从一个干净的数据开始自己的ML之旅的。这样的坏处就是,让人忽略了一个重要的事情,数据源可能会有问题。

一个发挥着巨大作用的机器学习系统,往往它是每天不断更新的,我们称之为“自学习”。每天产生了大量的上游数据(简便起见,称之为数据源),这些数据喂到了一个旧的模型,得到一个更好的新的模型。每天的新的数据会不会出现问题呢?答案,当然会。这些数据时时是在变化的,它受用户的请求而变化,也受上游系统的逻辑而影响。对于我们(消费这些数据的人)来说,我们需要做的是,如何最快地检测上游数据出现问题,避免脏数据污染当前的模型。当然,污染之后,如何恢复也是一个工程上需要考虑的问题。我们需要了解数据源,知道它的数据规模、分布、极值等等统计指标,在消费它们之前发现是否有异常。是的,这需要工程化,自动地完成。

前面提到了,当模型被污染了,我们需要快速恢复。最基本的,我们要有快速回退模型版本的机制。其次,我们要感知和管理数据的版本,当数据恢复时,通过一整套操作,切入到一个较早的时间点,重新训练,更新。

我们可以将数据源,特征数据,模型都看成是数据,那么,我们需要做的管理工作就很多了,当然,最后能做到(功能)的也很多。

线上线下的一致性

一致性非常重要,它意味着,线下训练的模型实实在在地能在线上起作用。举个例子,假设离线训练时,拿到的某个数据和线上拿到的不一样,同一个用户,线下标记为男,线上拿到的是女,那这个模型在predict的时候,在“性别”这个特征上肯定是没用了。线上线下不一致的原因有很多,我们需要做的是,从工程上消除部分不一致,如线上线下代码复用,代码版本管理(线上线下版本同步),数据重构只存一份(备份另说)等等。另外,工程上,我们需要提供发现不一致的机制。一些不一致比较细微,宏观上并不能发现,但是实际上它却实实在在的在影响着效果,长期下来,带来的损失还是比较大的。

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

推荐阅读更多精彩内容