知乎/文章
2 分钟

[ML 1分钟]第一个模型能跑通就不错了

作者

创建于

发布于知乎/文章

有业务能上机器学习模型了,算法工程师小月开心地不行。毕竟作为一名机器学习工程师,口袋子藏着无数陈年老模型:线性模型、树模型、深度模型、增强学习,要啥有啥。业务一来,恨不得立刻就掏出最炫酷的模型,一步到位。

但是,第一个模型,一定要简单

正当小月兴奋着呢,经理大圆泼了一瓢冷水,“第一个模型,一定要简单”。

第一个次迭代往往是提升最大的之一,简单模型即可,不需要特别。而且实际上,模型上线遇到的工程问题会比你想象的更多。在上线之前,一定要想好一些问题:

  • 如何在线下生成一些结果,来观察是否符合预期?
  • 什么样的结果是好,什么样的结果是坏?那些指标可以用来观察?如何获得这些指标?
  • 如何将模型整合到系统中?绝大多数时候预生成结果存在数据库中永远比实时计算的架构要简单很多。

上线的过程中可能遇到的问题数不胜数,接口问题、性能问题、业务逻辑 Bug 等等。尽量把不同服务的边界定义清楚,确保能够不同团队能够各自 debug。

模型简单,特征也简单

简单的模型也要搭配简单的特征。

  • 选取统计类特征,而非算法生成的特征,比如第一个版本不要用 Embedding 做特征。
  • 减少特征种类,选取直觉上符合预期的特征。
  • 尽量降低对于复杂数据生成管道的依赖,选择简单的数据。

测试过程中要观察:

  • 线上下的数据是否一致
  • 特征是否正确地输入到了模型中
  • 模型学习出来的权重是否符合预期
  • 线上和线下模型是否能够获取同一份特征数据

指标不降就能上线

简单的模型开发起来当然不复杂,但是联调所花费的时间真的超过了小月的预期。好在算法端几乎没有什么问题,一切就绪,可以AB测试。

小月对于新模型的期待很高,但是经理又给他降了降温,指标有可能也是中性的。但是,中性也是符合预期的,该上线就上线。我们的精力应该花在如何进入下一步迭代模型,而不应该再争论是否一定要正向才能上线了。

上线永远是快乐的!小月准备去吃一顿九美元的炸鸡自助庆祝一下