目录

关于算法落地常见流程记录

背景

我做了一个大模型相关的项目,但是很不正规,正常开发完后其实是需要单元测试,测试人员测试。然后测试服上线,最后正式服上线。

但是这个大模型的相关项目,测试流程很不完整,基本是在乱来。

  1. 没有严格的测试流程,导致有一些bug。(比如代码覆盖率不到100%)
  2. 没有AB实验,那么改了方案,准确率有没有提升也不知道。方案的好坏也无从得知(我自己是靠case去反复修的)

后端开发的测试上线流程

  • 单元测试:测试某个模块功能是否正常
  • 集成测试:测试不同模块之间的协调是否正常
  • 功能测试:业务是否满足要求
  • 性能测试
  • 用户验收测试
  • 部署(灰度上线)
  • 持续监控告警

算法开发上线流程

  • 数据手机与处理
  • 模型研发
  • 离线测试,(测试集验证集)
  • 在线A/B测试: 上线前常进行A/B测试,比较新老算法在真实用户数据下的表现差异,确定新算法是否优于旧算法。
  • 持续监控告警

AB实验

从问题到解决方案上来认识 ab 实验

1、人群做不到绝对的均匀,只能通过 HASH 算法,结合一定的流量来解决。

2、通过 AA 实验,来提前确定人群素质的不均匀。最终的实验数据结合 AA 实验数据来确定最终效果。

3、设计出正交垂直域,正交阈内多个层,每个层内放可能相互影响的实验,层内互斥,层间正交,保留垂直域,为要求精准的实验留出流量,来解决实验间相互影响的问题。

一个CASE

A/B 实验流程大致如下:

1. 实验环境准备

  • Dev 流水线自动测试:每次代码提交(commit)都会自动触发测试,确保基本功能和逻辑的正确性。在代码合并(merge)时,也会触发自动测试,保证代码的整体质量。

2. A/B 实验的平台配置

  • 大盘流量分层:ks的 A/B 实验平台会将用户流量进行“世界分层”,确保实验策略在较小的流量范围内先行测试。例如,某个实验策略会在最低层级的分层中生效,流量通常控制在 5%-10% 之间,确保风险可控。

  • 实验组与对照组:实验组和对照组的用户分流会在平台建立分层时进行重分配,以保证每个组的用户流量和基础特征(如活跃度、行为特征等)相对一致,从而能够有效地比较实验效果。

3. 实验流程

  • AA 实验:在策略上线前进行 AA 实验。通过对比实验组和对照组的指标,确保在不施加策略的情况下,两个组的表现没有显著差异。这样可以确认分组过程没有偏差。

  • AB 实验在策略上线后,实验组开始应用新策略,对比实验组和对照组的差异来评估策略的效果。

4. 实验分析

  • 双重差分:A/B 实验结果使用双重差分(Difference-in-Differences)方法来评估策略的生效情况。这个方法可以排除实验前后其他变量对结果的干扰,提供更准确的效果评估。

  • 置信度和 P 值:实验平台会自动计算置信度()和 P 值,以确定结果是否具有统计学上的显著性。开发人员和实验执行者只需要观察这些指标即可。

    • P 值表示实验结果是偶然出现的概率。它衡量了实验组与对照组之间差异的显著性。如果P值很小,说明实验组和对照组之间的差异不太可能是由随机因素引起的。
    • 置信度表示我们对实验结果有多大的把握
    • P 值 = 1 - 置信度

5. 指标观测

  • 作为开发者或实验执行者,主要的任务是观测实验指标,比如点击率、留存率、转化率等。实验平台会自动计算和展示相关的统计结果。

总结:

  • 标准化测试流程:自动化的 dev 流水线测试,确保代码质量。
  • 分流机制:平台进行世界分层,控制实验流量比例,并保证实验组与对照组的流量一致性。
  • 双重差分与置信度:利用双重差分评估策略效果,平台自动提供统计分析。

ref

从不均匀性角度浅析AB实验 | 京东云技术团队_A/B 测试_京东科技开发者_InfoQ写作社区

「我在淘天做技术」智能对话新纪元:百万日活对话机器人的 LLM 落地实践_百万日活对话机器人的llm落地-CSDN博客