带你全方面了解字节 A/B 实验的文化与工具
更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【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 实验的文化与工具的更多相关文章
- vue ios自带拼音全键输入法模糊查询兼容性问题
ios的自带拼音全键会在输入框中输入拼音,直接在输入框用@keyup="autoInput()"的话,在监听输入事件的时候安卓显示正常, ios就会出现输入显示数据不灵敏 解决办法 ...
- “全栈2019”Java第三章:安装开发工具IntelliJ IDEA
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 让自己写的电子笔记连文带图全平台兼容(MarkDown图片显示兼容)
目录 一.工具使用 语言使用:MarkDown 简介 使用原因 使用方法 软件使用:Typora 简介 环境设置搭建 1)搭建图床 2)配置PicGo 3)配置typora 4)测试 图片上传测试 平 ...
- 最全面的Java字节byte操作,处理Java基本数据的转换及进制转换操作工具,流媒体及java底层开发项目常用工具类
前言:用于处理Java基本数据的转换及进制转换操作工具 一.实现功能 1.int与byte互转 2.int与byte[]互转 3.short与byte互转 4.short与byte[]互转 5.16位 ...
- sql数据库带补全终端命令
mysql pip install mycli pgsql pip install pgcli 都是python脚本,记录备忘.
- iOS-系统自带navigationController-最全设置
// 导航栏背景色 self.navigationController.navigationBar.barTintColor = [UIColor orangeColor]; // 设置push出来的 ...
- MySQL十种锁,一篇文章带你全解析
MySQL有两个核心的知识点,索引和锁.前几篇文章已经详细讲解了MySQL索引实现机制,今天再一起学习一下MySQL的锁. 1 为什么要加锁? 当多个事务并发操作同一批数据的时候,如果不加锁,就无法保 ...
- 最强最全干货分享:Android开发书籍、教程、工具等
最全干货分享,本文收集整理了Android开发所需的书籍.教程.工具.资讯和周刊各种资源,它们能让你在Android开发之旅的各个阶段都受益. 入门<Learning Android(中文版)& ...
- DedeCMS全版本通杀SQL注入漏洞利用代码及工具
dedecms即织梦(PHP开源网站内容管理系统).织梦内容管理系统(DedeCms) 以简单.实用.开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,近日,网友 ...
- 带你开发一款给Apk中自己主动注入代码工具icodetools(开凿篇)
一.前言 从这篇開始咋们開始一个全新的静态方式逆向工具icodetools的实现过程.这个也是我自己第一次写的个人认为比較实用的小工具,特别是在静态方式逆向apk找关键点的时候.兴许会分为三篇来具体介 ...
随机推荐
- 各种flex布局,拿来即用用过的都说好
开发过程中,很多布局,用antd的栅格还是不灵活,flex弹性布局会更好用 Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 注意 ...
- windows上时间项目时间正常,Ubuntu16.04上时间错误
项目本次测试时间正常,放到服务器上时间差8个小时 1.查看Ubuntu系统时间,发现时间设置错误 date -R 该命令会把我们系统的时间还有时区显示出来,我们是属于东八区,如下图: 如果不是 +08 ...
- [C++]P5024 树形DP 保卫王国
树形DP 保卫王国P5024 前置知识 1.邻接表 + Dfs(深度优先搜索) 2.基础DP(如 01背包 ) 3.最小公共祖先(LCA) LCA我有写过Blog 首先解读一下题意 城市即为节点 每个 ...
- Kubernetes:kube-apiserver 之启动流程(二)
接着 Kubernetes:kube-apiserver 之启动流程(一) 加以介绍. 1.2.2 创建 APIExtensions Server 创建完通用 APIServer 后继续创建 APIE ...
- 【scipy 基础】--积分和微分方程
对于手工计算来说,积分计算是非常困难的,对于一些简单的函数,我们可以直接通过已知的积分公式来求解,但在更多的情况下,原函数并没有简单的表达式,因此确定积分的反函数变得非常困难. 另外,相对于微分运算来 ...
- 如何在Notepad++中轻松删除包含指定文本的字符串
如果你需要在大量文本中删除指定模式的字符串,可以使用Notepad++中的正则表达式功能.下面是一个示例,让你可以快速学会如何删除包含指定文本的字符串.我们将使用以下示例字符串: This is a ...
- DFS深搜小谈
前几天有人跟我说,啊,说dfs一搜搜着搜着就把自己搜蒙了,说一写dfs就要dfs(int a,int b,int c),括号里面放一堆东西.啊今天我要澄清一下,dfs其实没有你想的那么复杂. dfs这 ...
- 生产实践:Redis与Mysql的数据强一致性方案
公众号「架构成长指南」,专注于生产实践.云原生.分布式系统.大数据技术分享. 数据库和Redis如何保持强一致性,这篇文章告诉你 目的 Redis和Msql来保持数据同步,并且强一致,以此来提高对应接 ...
- 用友NCC产品API使用指南
轻易云用友NCC产品API集成专题 open api简介 Open API即开放API,也称开放平台. 所谓的开放API(OpenAPI)是服务型网站常见的一种应用,网站的服务商将自己的网站服务封装成 ...
- .NET开源的处理分布式事务的解决方案
前言 在分布式系统中,由于各个系统服务之间的独立性和网络通信的不确定性,要确保跨系统的事务操作的最终一致性是一项重大的挑战.今天给大家推荐一个.NET开源的处理分布式事务的解决方案基于 .NET St ...