更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群

A/B 测试是在相同的环境下,通过随机的抽样把对照组和控制组进行区分,并分别实行新旧两种策略,结合一定的统计方法来控制随机抽样中带来的随机误差,得出两种策略的对比情况,从而可以准确的对新策略效果进行评估。

A/B 测试具有小流量、低风险、抗干扰的特点,随机控制变量并对结果进行量化,以达到准确的评估效果,具有科学性和严谨性。目前 A/B 测试可以通过一些实验平台来进行大规模应用,通过统计策略的评估方法进行因果推断的新标准。

字节跳动的 A/B 测试平台叫做 DataTester,这个平台在字节内部已经服务了 500 +多条业务线,在线上开的实验总量超过了 150 万个,同时线上运行的实验数有 3 万多个个,并且这些数字仍在持续上涨中。

在字节,A/B 测试是业务决策的基础功能,任何产品上线前都需要做小流量的验证。所有的团队倾向于把产生的每一个新想法都拿去做假设,用一个又一个 A/B 测试去不断验证,甚至是推翻修正,持续的进行迭代,最终推动业务的增长。小到一条站外推送的消息,大到整个技术底层架构的优化修改,都会做 A/B 测试。

在字节,A/B 测试被应用最广泛的是内容推荐、营销活动、运营策略、产品功能以及技术优化这几个方面。“万物皆可 A/B”是字节的理念,甚至是抖音和西瓜视频这两个产品的取名,都和 A/B 测试有关。

字节跳动的 A/B 实验平台长什么样?

DataTester 目前已经正式通过火山引擎对外服务,它基于先进的底层算法,提供科学分流能力,提供智能的统计引擎,实验结果可靠有效,助力业务决策。通过火山引擎对外发布的 DataTester,无论对字节内部还是对外,都使用一样的产研团队和技术方案,其基础功能大致相同。唯一不同的是由于内外部服务的客户不同存在的一些微小差异。

例如对外增加了许多场景化的监控模板,而内部则可能有更多相对高级的功能。因为 A/B 测试的整个系统除了在数据链路上有一些数据产品常见的特征之外,它与业务系统也有更多的连接。

一站式全栈多场景实验平台的 DataTester 框架整体分成了 5 层。

在应用层,DataTester 服务的行业非常广泛,除了互联网行业之外,还包括金融、消费品、零售行业、汽车行业,包括泛互联网行业里面的一些细分的子领域。这些客户在日常很多的工作场景中都是可以做 A/B 测试的。这些场景抽象下来主要包括广告优化、落地页营销活动优化和用户 push 流程、画布触达优化的实验。

下面 4 层是 DataTester 怎么去和应用层进行接入来提供服务的。在接入层和会话层。通过 DataTester 的分流服务来聚合客户或内部业务的各种线上触点来进行对接,包括但不限于服务端,客户端,甚至是一些小程序和其他广告投放触点的接入。

外部的主要接入方式是通过 SDK 来进行接入,接入 SDK 的同时也会打通数据上报和数据采集的流程。同时 DataTester 也会通过分流服务,把分流的结果要下发到相应的配置,最后返回给这些应用的服务端或客户端,实现一个接入的过程。

最中间也是 DataTester 最重要的一个功能层。可以划分为三大模块,一大模块是实验管理的相关的模块,包括实验管控、从实验的涉及到发布的全流程,还包括了实验的报告,实验报告里面也包括了非常丰富的分析功能,以及相关的实验的工具。这是 DataTester 最基础的一个部分。

第二块是智能发布(Feature Flag),DataTester 怎么去生效不同的策略,便捷地做实验的配置、生效和发布。第三块是场景化的应用,包括了一些智能化的应用,DataTester 其主要的功能层也是在这一块。

最后的数据层,DataTester 除了 SDK 的采集之外,还支持数据集成的能力,包括但不限于有客户端的用户行为、服务端的埋点,以及一些业务的第三方数据。同时 DataTester 也会产出一个用户进组的信息,来把业务的数据和用户进组的数据链接在一起来,去计算适应的指标。

目前,在外部客户的服务上,DataTester 已覆盖推荐、广告、搜索、UI、产品功能等业务场景,提供从实验设计、实验创建、指标计算、统计分析到最终评估上线等贯穿整个实验生命周期的服务。来自得到、美的、凯叔讲故事 APP 等企业客户,已经通过火山引擎 DataTeser 开启了用数据驱动科学决策的道路。

点击跳转 火山引擎A/B测试DataTester了解更多

带你全方面了解字节 A/B 实验的文化与工具的更多相关文章

  1. vue ios自带拼音全键输入法模糊查询兼容性问题

    ios的自带拼音全键会在输入框中输入拼音,直接在输入框用@keyup="autoInput()"的话,在监听输入事件的时候安卓显示正常, ios就会出现输入显示数据不灵敏 解决办法 ...

  2. “全栈2019”Java第三章:安装开发工具IntelliJ IDEA

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  3. 让自己写的电子笔记连文带图全平台兼容(MarkDown图片显示兼容)

    目录 一.工具使用 语言使用:MarkDown 简介 使用原因 使用方法 软件使用:Typora 简介 环境设置搭建 1)搭建图床 2)配置PicGo 3)配置typora 4)测试 图片上传测试 平 ...

  4. 最全面的Java字节byte操作,处理Java基本数据的转换及进制转换操作工具,流媒体及java底层开发项目常用工具类

    前言:用于处理Java基本数据的转换及进制转换操作工具 一.实现功能 1.int与byte互转 2.int与byte[]互转 3.short与byte互转 4.short与byte[]互转 5.16位 ...

  5. sql数据库带补全终端命令

    mysql pip install mycli pgsql pip install pgcli 都是python脚本,记录备忘.

  6. iOS-系统自带navigationController-最全设置

    // 导航栏背景色 self.navigationController.navigationBar.barTintColor = [UIColor orangeColor]; // 设置push出来的 ...

  7. MySQL十种锁,一篇文章带你全解析

    MySQL有两个核心的知识点,索引和锁.前几篇文章已经详细讲解了MySQL索引实现机制,今天再一起学习一下MySQL的锁. 1 为什么要加锁? 当多个事务并发操作同一批数据的时候,如果不加锁,就无法保 ...

  8. 最强最全干货分享:Android开发书籍、教程、工具等

    最全干货分享,本文收集整理了Android开发所需的书籍.教程.工具.资讯和周刊各种资源,它们能让你在Android开发之旅的各个阶段都受益. 入门<Learning Android(中文版)& ...

  9. DedeCMS全版本通杀SQL注入漏洞利用代码及工具

    dedecms即织梦(PHP开源网站内容管理系统).织梦内容管理系统(DedeCms) 以简单.实用.开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,近日,网友 ...

  10. 带你开发一款给Apk中自己主动注入代码工具icodetools(开凿篇)

    一.前言 从这篇開始咋们開始一个全新的静态方式逆向工具icodetools的实现过程.这个也是我自己第一次写的个人认为比較实用的小工具,特别是在静态方式逆向apk找关键点的时候.兴许会分为三篇来具体介 ...

随机推荐

  1. 一篇文章带你掌握测试基础语言——Python

    一篇文章带你掌握测试基础语言--Python 本篇文章针对将Python作为第二语言的用户观看(已有Java或C基础的用户) 因为之前学习过Java语言,所以本篇文章主要针对Python的特征和一些基 ...

  2. 文心一言 VS 讯飞星火 VS chatgpt (132)-- 算法导论11.2 4题

    四.用go语言,说明在散列表内部,如何通过将所有未占用的槽位链接成一个自由链表,来分配和释放元素所占的存储空间.假定一个槽位可以存储一个标志.一个元素加上一个或两个指针.所有的字典和自由链表操作均应具 ...

  3. dsBlog前后台博客系统

    博客简介:本博客采用Spring Boot + LayUI做为基础,进行的博客系统开发,与boot+vue相比,更为适合开发简单的系统,并且更容易上手,简单!高效!更易上手! Spring Boot ...

  4. [WPF]动手写一个简单的消息对话框

    消息对话框是UI界面中不可或缺的组成部分,用于给用户一些提示,警告或者询问的窗口.在WPF中,消息对话框是系统原生(user32.dll)的MessageBox,无法通过Style或者Template ...

  5. 在TCP四次挥手中,为什么客户端发送FIN后,还可以发送报文

    在TCP四次挥手中,为什么客户端发送FIN后,还可以发送报文 首先回顾下四次挥手的过程. 第一次挥手:客户端停止发送数据,主动关闭 TCP 连接,处于FIN_WAIT1状态,等待服务端确认. 第二次挥 ...

  6. VScode 中利用virtualenv建立 Python 虚拟环境

    ! https://zhuanlan.zhihu.com/p/638114885 VScode 建立 Python 虚拟环境 主要目的:创建一个与默认 python 版本不同的 python 虚拟环境 ...

  7. idea用不了 idea.bat文件闪退

    由于idea的智能,在破解之后会留下一些问题,根据网上搜出来的解决办法. 1.C:\Users\dell\AppData\Roaming\JetBrains\IntelliJIdea2022.2 在这 ...

  8. python在使用过程中安装库的方法

    背景: 在学习python的过程中难免会出现python解释器中没有所需要的库,这时我们就要自行的去安装这些库了:当然如果使用的anaconda集成环境的话在安装python一些依赖环境中会简单不少( ...

  9. TCP/IP协议---三次握手和四次挥手

    TCP首部的数据格式 其中, 源端口号和目的端口号各占16位,端口范围1~65535.1024以下为知名端口,1024~65535是供用户使用.源端口,目的端口,源ip,目的ip这四个值唯一确定一个T ...

  10. JXNU acm选拔赛 壮壮的数组

    壮壮的数组 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submiss ...