更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【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. 会自动写代码的AI大模型来了!仅10秒就写出一个飞机大战游戏!

    一.写在前面 昨天分享了一款可以帮我们写代码的插件CodeGeex,其实能帮我们解决大部分问题,讲道理已经很好了对不对? but,他就是最好的插件吗? 肯定不是,这不又让我又发现了一款可以平替的插件T ...

  2. CSS 样式书写顺序及规范

    作者:WangMin 格言:努力做好自己喜欢的每一件事 在项目中,大部分前端程序员都没有按照良好的CSS书写规范来写CSS代码,每次写css样式都是用到什么就在样式表后添加什么,完全没有考虑到样式属性 ...

  3. Intellij IDEA开发Scala程序

    前言 Intellij IDEA是一款功能强大的集成开发环境(IDE),可用于开发各种编程语言,包括Scala.Scala是一种功能强大的静态类型编程语言,它结合了面向对象和函数式编程的特性. 本文我 ...

  4. C语言水仙花数

    #include<stdio.h> void main() { int i, j, k, n=100;//分别设置三个数和一个三位数 for(i=1;i<=9;i++) //一个一个 ...

  5. Netty源码学习5——服务端是如何读取数据的

    系列文章目录和关于我 零丶引入 在前面<Netty源码学习4--服务端是处理新连接的&netty的reactor模式>的学习中,我们了解到服务端是如何处理新连接的,即注册Serve ...

  6. Git 安装与配置教程

    一.下载Git 1.官网地址 下载地址 2.下载 二.安装 1.下载完成后,直接点击安装包安装,即可. 2.开始安装,然后下一步 3.可以在此处自定义地址,然后下一步 3.选择组件 此处默认即可,但我 ...

  7. 从0开始用Maven

    一.Maven的介绍即相关概念 Maven是一款构建和管理Java项目的工具,它将项目开发和管理过程抽象成一个项目对象模型(POM),提供了一种统一的项目结构. Maven官网 1.为什么使用Mave ...

  8. VSCode个性化的配置

    1.下载插件 Eclipse快捷键(我以前用Eclipse习惯了,大家不需要) Premitter Vetur koroFileHeader 2.修改VSCode设置 3.粘贴下面的代码 { &quo ...

  9. Kernel Memory 入门系列:文档预处理

    Kernel Memory 入门系列:文档预处理 Embedding为我们提供了问题理解和文档检索的方法,但是面对大量的文档,如果在用于提问的时候再进行文档的Embedding的话,那这个过程是非常耗 ...

  10. 现代 CPU 技术发展

    介绍 这篇文章主要是介绍CPU技术的发展,包括最近几十年CPU性能提升和半导体工艺发展,当前技术发展方向.希望可以帮助软件开发者理解CPU指令集和组成运行原理.CPU性能提升的现状和瓶颈.CPU技术发 ...