课代表立正的官方Podcast
深度访谈,有用干货,亲身验证的「真本事」
Superlinear Academy创始人,Maven Top AI Instructor
前Statsig布道师(OpenAI收购),腾讯副总监,Meta,Amazon;康奈尔经济学博士
社区:Superlinear.Academy
课程:ai-builders.com
个人:lizheng.ai
大家好,今天我跟大家聊一下我来了Facebook以后觉得很让我惊讶的一点
就是在FacebookAbtesting是多么容易做
这个事情其实可能如果你只在Facebook工作的话你就觉得世界就应该是这个样子的
如果你在别的公司做你可能都想象不到Abtesting竟然可以这么容易做
那我从亚尔逊来到Facebook对我来说是一个还蛮吃惊的事情的
大家有的时候没有充分理解Abtesting这么容易做到底会导致什么后果
在我的看来就是Abtesting导致Facebook的程序很特别爱加班
和甚至特别快的背后的推手
包括整个Facebook现在公司文化就是比如说它会更扁平一点
或者说大家更叫做Mirrorocracy
就是以这个结果来说而不是以职绩来说
比如说你在Facebook你是看不到其他人的职绩的
所以大家很多时候你要influence别人必须要靠你做出来的东西的结果
而不是去靠谁的职绩刚好或者说谁待的时间长来去说服别人
这种Mirrorocracy叫这个公司文化包括Facebook里边很多东西特别特别透明
就是比如说我的code谁都可以来search谁都可以来看
我发的所有东西谁都可以来看
这在有的公司其实是很难想象的
我知道有些公司你做出来的model你是不能让别人看见的
然后别人就各种来challenge你或者怎样反正因为出于各种原因
你是不能被别人看见的
在Facebook所有的东西你发的东西你做的东西都是很透明的
这些东西归根结底我觉得都可以被这个AB testing这么容易做
来解释一部分或者影响一部分
那我这就来稍稍第一我来解释一下Facebook的AB testing为什么这么容易做
第二跟其他公司稍稍做一个比较
第三再解释一下我为什么觉得这样做可以影响公司的很多文化
那就从第一个开始讲Facebook为什么AB testing这么容易做
因为这件事情稍稍有点复杂我会省略很多技术细节我就大概讲一下分三点
一个是它本身技术上就是engineering的技术上enable了这件事情
第二是它的数据的infrastructure enable了这件事情
第三是它的business model enable了这件事情
那我们就一个一个说啊
从技术的角度来说Facebook和其他公司最大区别是它有一个叫mono repo的东西
就是repo就是你在github上的那个repository
在Facebook你的整个Facebook其实是一个repository
它叫mono repo嘛
你就可以把它想象成是你可以一个压缩包打包下来
然后这就是整个Facebook
你这个打包下来运行了以后你就可以直接再造一个Facebook
在绝大多数的其他公司不是这样的
在其他的公司绝大多数的其他公司
它是有很多很多个不同的repo
可能是以人为单位team为单位organization为单位
但是总之就是我们这一拨人我们这一个项目
我们去做了一个repo
我们规范一个输入和输出
然后其他team也做类似的事情
做一个repo规范输出输出
然后我们互相调用然后我们互相解决问题
比如说我的business可以输入一些东西
然后输出一些其他的东西给别人
别人就来调用我
给我一个规定格式的输入
然后我再把他需要得到的结果输出给别人
两种模式吧都各有好处各有坏处
这就先不展开了
但是monorepo最后就导致你在test上
你在做testing特别简单
因为你下载下来了就是现在的生产环境
你不需要去setup整个任何的这个
你不需要去setup很多东西
你就可以直接在生产环境上
去setup你的incremental feature
和incremental test
所以就让这个AP testing
从技术根本上变得非常简单
这是一
如果有机会的话我们可以展开再多聊一下
而且我觉得我希望我可能请一个
程序员朋友来聊一下
就是我在这聊也不会聊得太深
第二就是数据infrastructure的支持
这里边既有login存储
调用的支持
然后也有tool和data culture的支持
你在facebook大家login是做得特别特别好
而且它的整个pipeline都做得很好
然后你调用数据的服务器
然后你的这些语言
包括数据结构什么都做得很好
所以很多时候你在前台是感受不到这些事情的
但是要做好这件事情其实是很难
因为你对于facebook这种提量
尤其比如说session level data
然后这些数据
就是几pb很快就到几pb了
然后你要把它存储起来
然后能快速调用的话
是一件非常难的
by the way在facebook有一个特别厉害的东西
叫scrubar
就是你一个tb级pb级的数据
你可以实现秒级的调用
如果你在不准其他数据的情况下
你可以真的是可以看real time的data
就是我比如说我要上这个
我要在facebook做一些行为
然后我就会有一些login
然后我去这个table
我直接就可以看到我在几秒前做了什么事情
这个东西就是在一个其他公司
如果你没有这个infrastructure很难想象
总之就是facebook数据做得很好的一个体现
那它在这些数据之上
它又专门针对ab testing
去做了很多相应的工序
比如说deltoy
quick experiment
gk这些东西
gitkeeper就是可以让你
一方面很简单的理解ab testing是什么
并且进行的相应的setup
另外一方面去检查你的这些setup对不对
在后面就是当你这个ab testing做出来之后
它有一些把能自动化的东西都自动化了
也就是说
你到底要看你影响了什么数据
你要看什么样的guardrail数据
甚至它会自动帮你去说
这些guardrail数据你需要看
然后它有一些很好的图形界面
告诉你说你现在应该到哪一步了
你应该去看一下
比如说你的exposure是不是inbalance
然后你看一下
你要去analys
你要analys一下你的结果
很多时候就是一个senior engineer
很多时候都可以自己从头到尾
把这个experiment自己setup
然后自己去解读
然后自己去make a recommendation
然后会有这个数据科学家和他们
有的时候帮助他们一起去develop hypothesis
有的时候去帮他们看一下他们的结果
和这个是否验证了hypothesis
是不是还有什么东西没有考虑到
有的时候比如说结果和你的预期不符
那我们怎么样去通过deep dive
或者是看一些其他的东西
去看一下到底是为什么
这也是数据科学家们很重要的工作
但是总之就是
所有的这些东西
都让每一个engineer有能力去setup
和最后去setup A-B testing
然后最后得到结果
去support to launch一个新的东西
engineer也是这样去设计他们的工作的
比如说一个engineer
他去做一个新的feature的话
那他就会从怎么样去design A-B testing开始
所以说在Facebook很多新的东西
就很像一个hackathon
就是engineer,designer,pn,ds
什么的凑在一起
说我们应该做一个这个东西
然后第二天夸就做好了
已经上实验了
然后两个周三个周
这个实验结果就出来了
如果好的话就可以直接上线
不需要你什么大佬跑过来告诉我要做什么
很多时候就都真的是一个button map的
这种small incremental
当然了这种模式有的时候也会带来一些问题
但是我们现在是解释这件事情
就先不解释这件事情
第三是他的business model enable了这个
就是比如说亚马逊他不想做A-B testing
其实想做的
亚马逊还有了那么多经济学家
就是因为你做不了A-B testing的情况下
只能让经济学家来做有一些cause of influence
可是亚马逊的business model
是你给商家和消费者提供服务
是有真金白银的
Facebook它是一个免费的产品
Facebook,Instagram,WhatsApp,Messenger
都是免费给大家用的
然后它是靠广告来赚钱的
那这种情况下
他就允许
喜欢法律允许
道德允许
或者怎样
就是允许他做各种各样的tests
给用户不同的experience
因为归根结底
这是一个免费产品
所以说就是
这在法律或者说是在这个
法律或者说是在商业模式上
也扫清了很多A-B testing的障碍
因为其实setup A-B testing
有的时候是会有一个伦理的问题的
就是你可能你知道experience A好
experience B不好的话
你必须要给所有的人experience A
尤其是你在收费的情况下
所以就是说这个A-B testing
不是适合每一个企业来做
但是在不能做A-B testing的情况下
确实经济学家
做这个reduce form causal inference
很多时候也能帮助你
从数据中得到因果关系
那是另外一个topic来讲的
今天就先不讲
总之123就是
技术上数据上
数据包括数据文化
和这个商业模式上
都让这个
都让Facebook的工程师们
可以很快很方便
并且很鼓励他去set up A-B testing
这也就是看到了
在Facebook上的A-B testing
特别特别多
你几乎没有一个人
你在用这个APP的时候
得到的体验是一样的
就是几千几万个A-B testing
都在同时进行
这可能有的时候也不好
但是总之到现在
几千几万个A-B testing
同时进行的情况下
你的这个产品
大体上还是可用的
它本身也还是挺牛逼的一件事情
那好
那刚刚说了A-B testing可以做
那我就把Facebook和其他公司的
这个因为能做A-B testing
导致文化上的差异
给稍稍对比一下
就比如说你在亚努逊这样的公司
你要立项是吧
因为你做一个东西会很慢
刚刚说了Facebook有model repo
加上工程师
这里边工程师可能平均水平有差异
但是我觉得差异并没有那么大
但是你在Facebook
你就是我要改一个东西
我下下来我直接改了
没有人阻止你干这件事情
只要你去做experiment
你能follow a standard protocol
or procedure
没有人会阻止你这件事情
但是在亚马逊你想吗
你的这个东西是大家互相调用的
dependency特别强
牵一发动全身
很多时候有一些东西你是考虑不到的
所以说你要做什么东西呢
你就要先跟你的调用你的
或者说你被调用你的人
或者说你调用的人进行一些沟通是吧
我不会我这改了一个什么东西
去breaking你的pipeline
在那之后呢
你要去跟大队要资源
因为你要去做这些东西呢
它时间很长
你要完了资源以后呢
你开始去做
在这个时候你在很多情况下
又不能去做AB testing
所以说你做这个东西
到底为什么值得做
你是要靠说和大家进行一个judgment
而不是靠数据结果去说话
不能靠一个
非常credible的causal experiment来说话
那最后就是说
最后就把你的很多时间
都用在立项这个点了
而不是去真正做这件事情的这个点
我会看到一些很多
显而易见的问题的话
它很快就被纠正了
但是在亚马逊
很多很显而易见的问题
没有马上被纠正
就是这个文化最后导致的问题
甚至这些文化导致的问题
不光体现在你的产品本身
你甚至体现在公司文化上
就是在亚马逊我记得很清楚
就是大家说frugal
就是你的那个USB的UB key
很多电脑现在都是type-c了
然后你的UB key还是type-a
这样就导致你拿那个UB key的时候
你还有专门去买一个转接口
这个事我觉得很不make sense
但是你提了没有用
找谁了
然后大家也没有改
就是这种显而易见的
我觉得会造成不效率的事情没有改
我觉得这就是有一些公司文化上的差异
就是你在Facebook这件事情
可能就会有一个人说
那我就去把它改掉了
然后大家就去改了
在亚马逊可能就
你要往上走几轮再往下走几轮
然后这件事情
对于任何要做这件事情的人来说
性价比都不是非常高
那可能就不做了
那这个话题可能其实又有点多
那我们就再找个机会再详细展开吧
我们今天还是围绕在EB testing上
那EB testing的最后一个点
就是它对工程师的promotion的影响
或者说为什么大家觉得Facebook工程师这么拼
就是大家是有这样一个普遍的观感的
就是有一个四项线
四个大厂的四项线
就是微软谷歌亚马逊Facebook
然后Facebook是钱多事多
谷歌是钱多事少
微软是钱少事少
然后亚马逊是钱少事多
这开玩笑
但是很多知道这些大厂的人
可能也会后心一笑
就是代表了一种情况
那Facebook为什么它钱多事多呢
就是或者说为什么Facebook升值快
我其实不知道平均升值哪更快一点
但是大家普遍观感是Facebook升值快
因为在Facebook确实有一些case
它会让那些年轻人升得特别特别快
比如说我之前合作的engineer manager
他是本科和研究生
打起来四年读完了
然后是一个二十三四岁的小伙子
进了Facebook
三年连升三级
就三年连升三级
这在亚马逊的话
你五年升三级的话
一般都还是比较快的吧
三年连升三级
然后这也不是
我身边有好多学长或者朋友
他们在很年轻三十岁左右的时候
三十多岁的时候就已经是L7 L8
他们是L6 L7
那对应在亚马逊的话就是L7 L8
这种情况在其他的厂确实是比较少见的
就是为什么会有这种outlier
为什么会有升到这么快的缘故呢
就是我说的
你在Facebook里的impact是非常透明的
所以说它不是靠你积累时间
很多时候大家就是靠成果说话
就是我说的这个mirror tocracy
你能找到一个high impact的项目
然后你能去把它做出来
然后你可以用AB testing的这种大fraumwork
再加上一些其他的东西
去justify你的结果
然后这个东西确实是
大家都认可的一个很重要的东西
那你就可以升值
merces你在其他公司
如果你没有这整个一套的流程体系的话
你可能你做一些东西
你首先要老板同意
然后最后把它做出来了以后
credit未必是你头上的
因为说实话真的就是推动这个项目立项
然后推动它能往前走
本身是一件很难的情况下的话
很多时候你credit应该是share给这些人
不光是做这个东西的人
而且Facebook这种你所有的东西
可以被量化
然后是一个meritocracy的这个框架之下
让你的反馈变得特别特别快
就是你做一个东西
你瞬间就知道你做这个东西的结果是什么
其实就像我们小时候做题一样
我们小时候做题的时候
就你做错了
做对做错了你学习了
马上有一个反馈
那你有直接反馈的情况下
你就非常有动力继续去往前做对吧
去做更多的题
拿更高的分数
因为你相信一分更运一分收获
那在这种情况下
就会给这个工作的同学们
一个很强的内心的自虚力
这就是我在Facebook看到的现状
我觉得这个现状当然有好有不好
可是我还是觉得这确实是
企业管理也好
或者说是
可是我觉得确实这是代表了
企业未来的一个前进方向
就是它带来的那些不好的地方
可能应该有办法去克服
但是它的这个好处
实在是太overwhelming了
包括你的每一个人的产出
是可以被客观量化的
你的做出来一个东西
我们是有一个非常非常科学的方法
去来讲述这个东西到底是好还是不好
对我们用户是更有价值了
还是更没有价值了
这个事本身完全outway
所有的带来的不好的影响
那我觉得就是
先跟大家share一下这些东西
如果大家有讨论的话
欢迎跟我讨论
因为我毕竟我带的公司还算是比较少的
如果你在其他公司看到了
关于A,B testing的不同实践
或者说你觉得A,B testing在你那不好
也欢迎跟我一起讨论一下
那我们下期再见