大型的机器学习系统有哪些常见的技术债?

机器学习系统与其他服务的区别是什么?技术债的特征有什么不一样?如何防止技术债的堆积?
关注者
295
被浏览
26,164
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

谢大佬邀~

我理解的技术债,就是过去没做好的事导致后续解决成本很高的一些问题。我是一个算法,说说我的视角看到的吧。

分类边界模糊。nlp场景很多都会遇到分类相关的问题,简单的文本分类,甚至包括实体抽取,语义相似度其实都可以广义的理解为分类问题,在实际场景,分类方案构建的时候,其实无论是算法自己还是甚至产品,其实都对分类的边界非常模糊,当然简单的典型的可以快速精准解决,随着问题的明确,模型和数据探索到了这些模糊的区域,往往会产生一些导致模型算法方案要大改的情况,这会产生巨大的成本,究其原因是前期对边界模糊导致的,早期尽可能地熟悉数据,了解具体问题的场景,不说完全,至少能很大程度避免。

数据词典模型等资源的管理。项目前期数据少词典少模型也少,而且任务紧急,很可能会出现忽略资源管理的情况,随着词典的多样化,数据来源,特点的丰富,模型的复杂化,再开始管理就会非常痛苦,推送环境,热更新配置,回滚方案等,很可能会积重难返。

日志系统的管理。这个其实和词典数据模型的管理问题类似,要尽早规划,recordid的规范化写入,约束日志的格式等等。

性能的提早规划。现在流行的nlp算法很多都是大规模的,不会大规模预训练语言模型都不好意思说自己会nlp,然而实际上,并非所有场景都允许你用,这里只谈性能一个问题,在线机器能不能扛得住这个耗时这个并发,这是个可行性问题,见过很多很多人辛辛苦苦调教了个很牛的bert然后上不了线的尴尬情况,到头来还是得找textcnn,bilstm-crf,因为小模型信息容量学习能力的不足,几乎又是重头来过,时间浪费了。这我感觉算技术债,不过还的周期比较短罢了。

先聊这些,发现了再补充,引以为戒。