在Jupyter笔记本中构建模型是一回事 , 但是如何让数千甚至数百万人使用该模型就是另一码事了 。根据最近在Cloud Native活动上的讨论情况来看 , 大公司以外的多数人并不知道如何做到这一点 。
二八定律
机器学习中也有一个二八定律 , 我们有一个20%的规则 , 这个规则的意思是我们要把20%的时间花在学习上 。
事实证明 , 这段学习时间是宝贵的 。比如说ULMFiT的使用率超过BERT就源于20%时间的规则 , 20%的时间用来学习 , 意味着剩下80%的时间将用于核心项目 。
- 80%的核心产品(机器学习专业服务) 。
- 20%与核心产品相关的新事物 。
论文需要精读
这是一个粗略的指标 , 但是在你探索过一些数据集和实验现象后 , 你就会明白它是一种客观事实 。这个概念来源于Zinf/Price定律 , 即在同一主题中,半数的论文为一群高生产力作者所撰写,这一作者集合的数量约等于全部作者总数的平方根 。换句话说 , 在每年数以千计的提交中 , 你可能会发现10篇开创性的论文 , 在这10篇开创性的论文中 , 有5篇可能来自同一所研究所或作者 。
如何紧跟时代的潮流?你无法跟上每一个新的突破 , 你最好扎实掌握和运用一些基本原理 , 这些基本原理经受住了时间的考验 , 新突破需要依靠原创性的突破 , 然后便是需要新的探索与开发 。
做自己的怀疑论者
您可以通过怀疑自己来处理探索与开发问题 。探索与开发问题是尝试新事物和复用已有模型成果之间的两难选择 。
开发自己的模型
运行你已经使用的模型并获得高精度结果然后将其作为新基准报告给团队是很容易的 。但是如果你得到了一个好的结果 , 记得反复再反复地检查你的成果 , 并让你的团队也这样做 , 因为你是一名工程师、科学家 。
探索新的事物
20%时间的标准在这里也有用武之地 , 但是时间分配如果是70/20/10会更好 。也许你在核心产品上花费70% , 在核心产品的构造上花费20% , 在探索上花费10% , 不过探索的东西可能不会起作用 , 我本人从来没有试过这个方法 , 但这是我正朝着这个方向发展的 。
先积跬步 , 后至千里
不积跬步无以至千里 , 先建立一些小事 , 这样就能快速理解一个新的概念 , 你可以使用自己的数据集或者不相关的小数据 , 在一个小团队中 , 成功的诀窍是先成功一小步 , 然后快速迭代 。
一起来玩橡皮鸭呀
【一位算法工程师给初学者的一封信】很多程序员可能知道一种小黄鸭调试法(也称橡皮鸭)调试法 , 这个概念说的是在调试代码的时候随身携带一只小黄鸭 , 然后详细地向它解释每行代码 。可能很多读者会觉得好笑 , 这是有原理依据的 , 类似有一种叫做cone of answer的常见现象 , 比如:你的朋友向你咨询问题 , 等说到一半的时候他已经找到问题所在 , 徒留一脸茫然的你...总的来说 , 当你试图向别人表述自己的问题的过程中 , 自然地也在促使自己去调整思路 , 这种方法对程序员同样适用 。
橡皮鸭方法是同事Ron教会我的 , 遇到问题的时候 , 坐下来盯着代码可能会解决问题 , 但也有可能不会, 此时 , 不如用队友的语言重述 , 就像你的橡皮鸭 。
“Ron , 我正在尝试遍历这个数组 , 并通过循环另一个数组以及跟踪它的状态来尝试跟踪这个数组的状态 , 然后我想将这些状态组合成一个元组列表 。”
“循环中的循环?你为什么不把它矢量化呢?“
“我能这样做吗?”
“让我们来看看 。”
“...”迁移学习很重要
你不需要从底层重构模型 , 这个问题来自于机器学习工程与软件工程的融合 。除非您的数据问题非常具体 , 否则许多主要问题非常相似 , 分类 , 回归 , 时间序列预测 , 推荐系统 。
推荐阅读
- 老年人学起来!冬季锻炼遵循三原则
- 来月经流鼻血怎么回事
- 面试时写不出排序算法?看这篇就够了
- 剩茶洗头可缓解头皮潮湿瘙痒
- 网络工程师必须了解的ARP知识
- 前端开发工程师必会的5种网页布局方式
- 夏天吃苦养生?需慎重
- 作为网络工程师必须牢记的几个命令
- 百度近期算法调整,“未能抓取成功”不收录怎么办?
- 限流算法之漏桶算法、令牌桶算法