A/B实验

实验室管理

实验室是一组流量的集合,可以是一个实验室,也可以创建多个实验室。

必须要有 base 实验室,流量会优先匹配非 base 实验室,当流量没有匹配到实验室时,会进入 base 实验室进行兜底。

新增

image-20230301105835841

  • 场景名称:实验室所属场景

  • 名称:自定义名称

  • 介绍:实验室的详细描述

  • 实验室类型:

    • base 实验室:兜底实验室

    • 非 base 实验室:优先匹配非 base 实验室

  • 运行环境:对应引擎的运行环境,日常(daily), 预发(prepub),生产(product)

  • 实验室桶类型:

    • UID分桶:根据 uid 的末尾数字分桶

    • UID HASH:根据 uid 的 hash 值分桶

    • 过滤条件分桶:kv 表达式分桶,如 gender=man

  • 桶数量:此实验室分得的桶数,总数为100

  • 桶号:分得的桶的编号

  • 配置:实验室自定义配置

  • 调试用户:调试用户可以不经过匹配,直接进入此实验室

    • 手动输入:可以输入多个,以逗号分隔

    • 人群 ID:一组 uid 的集合,需要提前在【人群管理】中创建

输入并选择所需配置,点击【确认】按钮即可。

上线/下线

将实验室状态更改为”上线”/”下线”,此时引擎的流量可以进入此实验室

层管理

进入【层管理】来管理分层信息。可以添加单层,也可以多层。多层之间流量是正交的,可以有效复用流量。

比如要添加召回层,如下:

image-20230301110822977

克隆

克隆功能可以将当前实验室克隆到其他环境。

image-20230301110922811

  • 选择环境:要克隆到的目的环境

  • 是否克隆试验组:是否将属于此实验室的试验组也克隆到目的环境

实验组管理

通过【实验组管理】可以创建实验。实验组是一个逻辑概念,里面包含具体的实验,比如基准实验和对比实验,对比实验可以添加多个。

新增

image-20230301111704807

  • 场景列表:此实验组所属场景

  • 实验室:此实验组所属实验室

  • 层:此实验组所属层

  • 实验组名称:自定义名称

  • 实验组介绍:实验组详细描述

  • 实验组类型:

    • 普通实验组:

    • 智能实验组:上线的所有的实验均分流量

  • AA 实验组:

    • 不需要:

    • 需要:会创建一个影子实验

  • 责任人:创建者

  • 调试用户:调试用户可以跳过分桶规则,直接进入此实验室

    • 手动输入:可以输入多个,以逗号分隔

    • 人群 ID:一组 uid 的集合,需要提前在【人群管理】中创建

  • 人群定向:

    • 所有人:相当于不设置匹配规则

    • 自定义:自定义表达式

    • 人群 ID:一组 uid 的集合,需要提前在【人群管理】中创建

  • 分流方式:

    • 用户 ID:按照用户 ID 进行分桶

    • 时间段:按照时间段进行分桶

  • 实验组配置:

image-20230301112101787

基准实验

  • 实验名称:自定义名称

  • 实验介绍:关于此实验的详细描述

  • 实验流量:此实验所占流量,总数为 100

  • 调试用户:含义同实验组中相同

  • 实验配置:若引擎命中此实验,会优先加载并使用此配置,支持召回、过滤、粗排、精排等的配置

普通实验

参数意义同上。

克隆

将此实验组克隆到目的场景/实验室/层

人群管理

人群管理提供的是一个用户集合的功能,类似于用户白名单功能,可以在【实验室管理】、【实验组管理】中选择使用

新增

image-20230301153910109

  • 人群名称:自定义名称

  • 人群描述:详细描述

  • 人群标签:可以自定义人群标签

  • 人群导入:可以手动输入,可以通过文件上传

人群管理

【人群管理】可以对创建的某个条目中的人群 ID 进行增加、删除、查看,可以管理多个批次

指标配置

【指标配置】分为【离线指标】和【实时指标】,两者的配置基本一样。此处以【离线指标】为例

新增单一指标

image-20230301154731875

  • 指标名称:指标的名称

  • 指标描述:指标的详细描述

  • 数据源类型:数据源的类型

  • 来源数据源:数据的源表

  • 所属场景:指标所属场景

  • 指标统计周期:T-N 的计算方式( T 为 today)

  • 结果数据来源:

    • 选择已有结果表:可以选择已经存在的结果表,并将结果写入到此表

    • 自动生成结果表:需要选择数据源,会自动在所选数据源中创建结果表并写入

  • 指标定义:指标的定义,内置了一些模版,若不满足,也可直接输入,如:sum(clilck)

新增衍生指标

点击【新增衍生指标】,弹出如下配置界面:

image-20230301155041236

  • 指标名称:自定义名称

  • 指标描述:指标的详细描述

  • 结果数据表:要写入的数据表

  • 指标定义:两个原子指标的加减乘除

数据重跑

指标配置好之后,默认是每天早上 6 点运行,如果运行失败了,或者上游数据没有产出,导致结果为空,可以使用【数据重跑】

选择要重跑的指标,点击【数据重跑】

image-20230301155321931

选择要重跑的日期即可。

重跑的任务状态可以到【报表运行日志】进行查看。

指标测试

指标诊断

此功能主要是检测数据源表和数据结果表的格式

数据源表格式如下:

字段名称

字段含义

是否必填

说明

user_id

用户 id

用户标识,应和引擎中的 user 的业务意义一致

exp_id

实验 id

引擎返回的实验 id,通过埋点回流

维度字段

维度字段,如 os,sex

可以根据维度字段过滤对应的指标,如只想查看 Android 系统的点击率,可将所属字段设置为维度字段

计算字段

计算字段,如 show_count,click_count…

要参与计算的字段,如曝光数,点击数,观看市场等

dt

日期分区

格式 yyyyMMdd

hh

小时分区

离线指标否/实时指标是

24 小时制,00-23

数据结果表

字段名称

字段含义

是否必填

说明

exp_id

实验 id

引擎返回的实验 id,通过埋点回流

维度字段

维度字段,如 os,sex

某个指标的数据源表和数据结果表的维度字段应该是相同的

metric_name

创建的指标的指标名称

指标名称

metric_value

指标的值

float64 值

dt

日期字段

格式 yyyyMMdd

hh

小时字段

离线指标否/实时指标是

24 小时制,00-23

指标预警

指标预警功能可以设置一个阈值,当指标的波动大于此阈值时,会通过指定的方式发送告警信息,目前只支持钉钉渠道。

image-20230302144339103

  • webhook:在钉钉群内创建机器人时,可以得到一个 webhook,注意,要使用 自定义关键词  方式并设置 预警 这个关键字

实验报表

实验报表分为离线报表和实时报表,分别对应离线指标和实时指标,报表的查看可以通过通过级联选择,选择到某个实验组,来查看此实验组各个实验的指标值以及与 base 实验的差异。

image-20230307151352453

这里还可以设置维度,比如根据操作系统来区分实验效果。不设置维度值,会把此维度的所有维度值结果展示出来。

报表运行日志

报表运行日志,展示的是离线指标的运行日志,其中 Message 字段展示的是任务运行的详细信息,里面包含指标计算的 SQL 等信息。

诊断任务

目前指标诊断分为 4 种诊断任务,分别为:

  • 指标排序:在用户粒度统计实验指标并排序, 保留前N个结果

  • 指标分布:统计用户粒度的实验指标分布

  • 维度分析:对维度字段分布的统计, 仅支持离散取值的字段

  • 多桶用户:串桶用户的实验链路和串桶用户数量

下面以指标排序为例讲解诊断步骤:

新建任务

image-20230307142929814

  • 任务类型:选择指标排序

  • 任务名称:自定义名称

  • 数据表类型:数据表所在的数据源类型

  • 数据表:待分析的数据表,需提前在【数据表管理】中注册

  • 指标选择:待分析的指标

  • 排序 ID 字段:排序的ID字段, user_id 或者 item_id

  • topN设置:记录统计指标排名的TOP个数

任务运行

创建完成之后,勾选已有的任务,点击【数据重跑】,选择补数据周期,点击确认即可

任务日志

在【任务日志】页面可以看到数据诊断任务的运行日志

诊断报告

在【诊断任务/任务管理】页面,点击相应任务的【报告】,可以查看具体任务的诊断报告