什么是好工程
在工程的世界里,无论是实体的建筑还是抽象的金融模型,"好"的定义始终围绕着一个核心——可靠性。正如罗马工程师维特鲁威在其《建筑十书》中所强调的,好的工程需兼顾坚固、实用与美观。
第一原则,别错。
很多人会开发模型,但这其实一点用都没有,实习生也会开发模型,稍微会写代码的学过数学的都会开发模型。拿一个现成的数据集,按照某些流程训练一个模型,太容易了。
然后忘了生产。离线做了一堆乱七八糟的特征处理,没想过线上生产的问题,例如/n和/(n-1)的问题,例如类别变量的mapping,例如各种异常值的处理。还有,网格搜索调参,找到了非常离谱的模型结构,其实都是不懂。
怎么解决呢?你得先有这个意识,知就会行,最后通过一致性验证来保证。开发是一套数据处理和模型打分的逻辑,生产是另一套,只有通过真实的样本验证两种打分的一致性,你才能无限接近100%地杜绝错误。
第二呢,异常的处理,包括性能不足的超时。
异常返回什么,超时返回什么,通过还是拒绝,不同的环节可能都不一样。不是特别强的风险拦截环节其实可以通过,留给决策流中的关键环节去拦截。但关键环节,拿不准的你得拦截。
还有模型所用的字段,解析出现异常,或者接口未查询到,如何处理,不难,但你最好心里有数。
很多时候,你要兼顾某些你当前未知的异常情况,也要优化取数、计算的逻辑,至少得满足超时的性能要求吧。
第三,数据的存储,要考虑到数据的分析、利用、排查问题等各种用途。
如果一切都好,模型分是对的,分布是稳定的,效果又好又稳定,业务指标也很好,什么都不做当然也可能没啥问题。但没有人能保证,不,我保证一定不会这样好。
任何环节出现波动,你一定免不了要来分析模型。分布也好,效果也好,意味着线上调用的模型分需要存储。不仅如此,模型分所用到的字段也应该存储。
关于工程问题,最值得说的就是你要有生产的意识。实践中会有很多问题,没有人能列全,也无此必要。意识本身比知识更重要。
明天就到监控了。你会知道,风控模型从来不是训练一个模型而已。
以上已经说完正题了。耶,我又可以胡说八道些有的没的了。
说到工程,很多人只想到实体工程,但金融工程也是工程。实体工程你知道安全性的重要性,建筑会倒、桥梁会塌、机器会坏、汽车会出故障,金融工程的安全性则很容易被忽视,线上决策的模型策略究竟是不是你线下开发评估的模型策略?
分工导致做模型的只做模型,做策略的做策略,做报表的做报表,搞上线的搞上线,搞营销的搞营销,如果没有很好的机制和意识,很容易有环节出问题,出问题了还很容易甩锅。嘻,工作真容易啊。
金融工程 vs 建筑工程,哪个更有趣?还有开会工程师、excel工程师、word工程师、ppt工程师、sql工程师、python工程师……
别争了。
金融,工程,建筑,计算,固然很重要,那是我们生存的条件;但诗歌,浪漫,爱,是我们生而为人的原因。
本文由人人都是产品经理作者【雷帅】,微信公众号:【雷帅快与慢】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。
题图来自Unsplash,基于 CC0 协议。
- 目前还没评论,等你发挥!