17 January 2022

在公司内典型的算法研发会经历以下阶段:问题调研、算法设计实现、收益预估、部署和测试、A/B实验开启、A/B实验正向、上线。

七个阶段

问题调研

弄清楚问题的定义,比如优化目标是什么,有哪些可调整的变量。

另外也需要明确现状以及可改进方向。

算法设计实现

设计新方法来更好地解决问题,例如变量如何调整。

这一阶段的结果是确定可行的优化方案。

收益预估

在发起工程配合之前,通过线下仿真或测试等手段表明新的算法会有收益。

最好给出量化的预估,例如某个指标具体提升多少。

部署和测试

对于服务端,将服务搭建运行起来,提供可调用的接口。 对于客户端,集成到SDK或App,生成某个版本。 各环节联调跑通,完成上线前的测试,能够发布。

这部分开始,需要算法工程师和其他开发工程师配合进行了。

A/B实验开启

开启A/B实验意味着工程开发和准备工作均已完成,业务方已经接入,各方合作运转起来。

实验开启后,新算法已经在实际环境生效,虽然流量或覆盖度一开始还比较小。

A/B实验正向

实验进行过程中可能需要根据结果进行多次的归因和迭代。迭代过程可能包括上述各个阶段新的更改。

如果算法真的可靠,最终实验应该取得正向收益,达到上线条件。

上线

脱离实验状态,新算法全量生效,得到实际收益,成为新的“现状”。

这是本轮算法研发的终点。虽然有时只能针对拆分出的部分子集上线,不过也算是告一段落了。

后续可以进行新一轮算法研发,可以认为重新经历以上的各个阶段。

四个完成时间节点

上述七个阶段每个都有起始时间。 下一阶段的开始不一定需要等上一阶段结束,但这些阶段的完成时间一般是按先后顺序的。 另外,算法设计实现、收益预估大多可以一起完成;部署和测试、A/B实验开启大多可以一起完成;A/B实验正向、上线通常情况下也是相差不远的。 因此也可以简化为以下四个关键的完成节点:

  1. 完成问题调研;
  2. 完成算法设计和收益预估;
  3. 完成部署和实验开启;
  4. 完成实验正向并上线。

如果各个节点都按时完成,也就实现了祝词中常说的:工作顺利!

顺便也祝身体健康。