30 秒看懂
Anaconda 和 Miniconda 每周被下载约一百万次。Peter Wang 用这个数字说明,靠 Python 谋生的人远比通常统计的一千万程序员要多。在与 Lex Fridman 的长谈中,这位 Anaconda 联合创始人从元类和包管理的噩梦,一路谈到意识、公司,以及机器回爱你意味着什么。贯穿始终的线索是:让 NumPy 有用的那种稀缺、协作的生态,是他希望在纯软件时代之后仍然成立的组织原则。
- 1Jamie Zawinski 说,每个极客都梦想造出终极中间件。建造 SciPy 的科学家没有这种梦想。Peter Wang 的结论是:资源充足时,人们造出的是终极中间件;资源匮乏时,人们造出的才是真正有用的东西。
- 2四十年来,软件正确性的意思就是函数正确性。在机器学习系统里,输入的具体取值必须和函数放在一起判断,通常还要满足性能服务等级协议(SLA)的要求,比如以给定精度在十毫秒内返回一次预测。
- 3群体可以在中观尺度上拥有能动性。Peter Wang 说,我们很少留意到关系之间也有关系:围坐一桌的八个人,既是八个个体,也可能是几对伴侣和几个家庭单元,它们彼此之间又有关系。
- 4他给意义下的定义是:有人做了一个会产生后果的决定,去执行,再亲眼看到结果,意义便由此而来。那些披着身份认同外衣的消费选择,不够资格。
- 5软件与我们分配过的任何实物资源都不一样。限制它、分叉它,价值就会缩水;分享它,价值才会增长。这正好与多数企业对知识产权的理解相反。
- 6如果我们无法和 AI 建立有意义的关系,它就只是一块硅。借用阿兰·德波顿(Alain de Botton)的说法,他把爱定义为:想要帮助我们成为最好的自己。
按章节阅读整理后的全文
Python 抓住他,是因为它装得进他的脑子
Peter Wang 是 Anaconda 的联合创始人兼 CEO,曾是物理学家,也是建起 Python 数据生态的人之一。如今信用卡欺诈检测、语音助手,以及谷歌搜索背后很多不声不响的环节,都建立在这个生态之上。Lex Fridman 请他既以工程师之师的身份,也以哲学家的身份来谈。Wang 第一次用 Python 是在 1990 年代末,他刚大学毕业,是个研究 C++ 图形性能的人。用 C++ 做高阶抽象很痛苦:模板笨拙,编译器支持也差。Python 是他遇到的第一门把类型和函数当作一等公民的语言。从 C++ 环境换过来,他惊讶地发现,一段代码基本上第一次就能跑起来。
让他没有去用 Perl 的,主要是品味,单个语法技巧倒在其次。Python 和它周边的标准库,都是为了好用而设计的。一个朋友的话,比任何功能清单都说得到位:“Python 就是刚好装得进我的脑子。”Wang 最早用的是 1.5.2 版,确实如此。之后语言流行起来,复杂度也随之增加,因为受众越大越多元,每个设计决策都会引出好几种都说得通的意见。他说,这几乎是成功本身的内在代价。
让他一直爱着 Python 的,是两样并列的东西:元类(metaclass)和 NumPy。元类、属性和装饰器让他在需要描述世界的某个角落时,能搭出一个新的对象模型。NumPy 的数组让他能用矩阵和向量来思考,工具足够简单,他可以直接推理,不用把注意力花在工具本身上。两者用的是同一招:让工具保持小巧,问题才能做大。
要设计一门装得进脑子的语言,先得选定受众。用户越紧凑、越连贯,就越容易找到一个紧凑的方案来满足他们的需求。Clay Shirky 说众包的第一步是“先为我自己”:你做出来的东西,首先要对自己有用。SciPy 和 PyData 的历史就是这样来的。助理教授和电气工程的研究生,用一门刚好够用的语言,解决自己领域里的痒处。如果工具太难用,他们根本不会去做,因为那只是副业。需求是一个严苛的过滤器,留下的是有用、紧凑、表达力强的东西。Jamie Zawinski 说过,每个极客的梦想都是造出终极中间件。这些转行做程序员的科学家没有这种梦想。他们只想要一个比 MATLAB 稍微顺手一点的东西,然后借用别人已经造好的部分。经过一种类似退火的过程,他们用一组模块化的库,覆盖了科学计算栈的基本需求。Wang 的结论是:资源充足时,造出的是终极中间件;资源匮乏时,造出的才是人们真正在用的东西。
正确性现在要包括输入值、时钟和外部世界
Fridman 问,编程在人类历史上是多大的一步。Wang 的回答是:在基本元素之上组合语法,每个说话的人都已经在学。编程的不同之处在于,直到最近,我们还在向迭代的系统下达精确的指令,而这些系统以人难以理解的速度运行。有人能在脑子里装下这些迭代系统,有人装不下。一旦有了条件、分支和多种情况,可视化的拖拽也帮不了你:你仍然得推理那台庞大的机器。最大的例外是 Excel,它是世界上最流行的编程系统,是一种数据流、即时模式的环境,让更广泛的人群都能用。他看到的未来更像是用定义清晰的模式来组装模块,有点像 IFTTT、Zapier 或 HyperCard 的思路。大多数人跟不住的,是隐式状态。
人与人的对话本来就是乱的,我们是有意在乱中寻找彼此的共鸣点。跟计算机打交道,则要经历许多失败的虚拟世界,直到某种表达行得通,上线之后,过了几天才发现它仍然是错的。Wang 在大学里只修过两门计算机科学课,他总结出一个他在信息系统里反复遇到的铁三角:代码的表达力和正确性、数据的语义,以及底层硬件实际能做到什么。天下没有免费的午餐。即使机器学习系统替我们写出转换逻辑,训练过程本身也对我们喂给它的输入、以及我们给它划定的性能边界极其敏感。他认为,在实时数据系统里,最难的工作将是编码世界的语义,某条具体 SQL 查询的细节反倒次要。
这就是为什么他一直说,我们正走到软件时代的尽头。大约四十年来,正确性的意思是函数正确:写一个函数,给它输入,检查输出,然后接到线上数据库。经典软件与现代数据驱动系统之间的分界线在于:要说整个系统正确,必须把输入的取值和函数放在一起考虑。通常还有性能 SLA:比如十毫秒之内返回一个给定精度的预测。沙盒里的试运行输入不再够用,运行时间和正确性都会随输入变化。到了这一步,你手里的就是一个赛博系统(cybernetic system),传统的软件系统已经不够用了。
Wang 说的赛博系统,是软件自己闭合了观察、判断、决策、行动的循环。让它成为赛博系统的,是人已经不在回路里,哪怕最底层有人设定过不够精确的标准。他刚读到一则报道:自主杀伤无人机携带炸药出动,只拿到一个电子围栏划定的区域和一个移动目标的描述,之后的决定全部由它自己做出。电子市场早已如此:闪崩时常发生;高频交易最鼎盛的时候,市场的微观结构里充满了设计者从未打算要的行为。比起切尔诺贝利式那种看得见的巨响,他更担心缓慢的疏离。至少核武器还看得见。社交媒体和其他层层叠叠的虚拟体验,把人与人推开,却更不容易察觉,这恰恰是它们有害的地方。
虚拟世界不假,问题在于翻译时丢了什么
Wang 写过虚拟性(virtuality):它是一种主观现象,人明知是拟像,却暂时搁置这一认知,去沉浸于虚拟的感觉与知觉之中。他不会在物理与虚拟之间划一条硬线。判断标准是:一项技术是否帮助人们以更完整的方式,与他人以及周围的一切建立连接。经历了将近两年的新冠疫情,大家全靠 Zoom 之后,当面见一个人,仍然和在 YouTube 上看他完全不同。很多维度在翻译中丢失了。他指出,没有人会花一亿美元,只为多捕捉百分之五的人类表情保真度。等所有人都搬进了拟像,回头去看失去了什么,往往已经很难了。
Fridman 反驳说,电子游戏也能带来快乐、连接,还有一大堆互相挖苦的垃圾话。Wang 不否认这种可能。他担心的是,数以万亿美元计的资本,正押在同样的渠道上,去迎合我们最坏的倾向,攻击边缘系统的弱点,把它们变成本能机器,只会刺激本能,无法连接彼此。数字技术与人的欲望共同演化,就像含糖饮料:摄入越多,要得到同样的刺激就需要越多。快速剪辑、TikTok 和前置摄像头,让人更难专注于慢的东西。麦克卢汉早就谈过电视所构成的电子环境,那还是在这一切之前。
Fridman 认为,人并不只会像追着奶酪跑的老鼠那样行动:人能醒过来,就像他自己戒掉糖那样,选择那些能让自己长期变得更好的平台。Wang 承认,一些有自觉的成年人能够说“不”,干脆退出 Facebook。但一个十五岁的孩子,如果整个社交环境都要经过这个应用,就做不到,因为边缘系统仍然需要那个心仪的男生或女生。社交媒体是我们第一次遇到能绕着认知和注意力运转的技术系统,而且绝不会是最后一个。它击中了西方哲学的阿喀琉斯之踵:每个人被当作神圣不可侵犯、自由做出选择的个体,而系统却在成批地管理所有人。当一款应用拆散一个家庭时,伤害就不只是个人层面的。他说,我们的哲学从来没有被设计来理解以下这件事:一个拥有连贯性和能动性权利的集体内部,人们之间的高信任连接。
人是一块四层蛋糕,意识位于秩序的梯度上
Wang 大量借用了罗伯特·波西格(Robert Pirsig)的《莱拉》,那是《禅与摩托车维修艺术》的续篇。他说,这套框架很粗糙,但它比主客体形而上学,以及关于意识是否只是大脑中物质的二元论之争,都向前走了一步。事物的集合可以涌现出与其组成部分同样真实的结构。这个堆栈有四层。在物理层,你是由原子组成分子,再组成能维持稳态的细胞。在生物层,这些结构让你能消耗能量、活下去。在社会层,人单独活着是活不长的:镜像神经元和语言中枢把我们和他人连在一起,附近有人跳舞、大笑,哪怕没有任何原子交换,你也会感觉好一些。在智识层,你是模因和哲学的容器。一个穆斯林在某个时刻跪下礼拜,背后的理由并不在服从重力。这四层堆栈是叠加的。没有哪一层特殊,每一层只是不同。把一个人打成一锅汤,原子还在,但那个人已经不在了。秩序和模式本身就是真实的。
他不认为细胞像我们一样有意识。人类所体验到的意识,坐落在宇宙中一个普遍原理的梯度上:当能量有富余时,事物会去寻找秩序。把一个质子叫作活的,听起来很怪,但这些东西组装起来,会呈现出自创生(autopoietic)的特征,晶体形成的结构也已经很有意思。这种倾向还会继续往前。找到某种模式的东西,会试图营造一个能维持这种模式的环境,也就是扩展表型或生态位构建。照他的说法,这就是通向氨基酸与生命的阶梯。Adrian Bejan 的构形定律(constructal law)指向同样的方向:远离平衡态、能量有富余时,会长出结构来;一锅更热的汤,不过是最浅的结果。
我们所说的生命,也许只是我们能看见的那些模式
Fridman 喜欢元胞自动机,所以总停在康威的生命游戏(Game of Life)上。Wang 把这个话题翻过来看:有些规则会产生滑翔机,有些滑翔机能搭出与门和非门,于是可以在上面造计算机。可这些只是我们看得见的图案。如果主观性限制了我们察觉其余秩序的能力呢?如果我们所说的随机,只是没在足够宽的时间范围内做过积分呢?我们使用的数学,是装得进脑子的那种数学。上帝创造了整数,还是创造了全部,而我们此刻恰好只感知得到整数?我们发明运算,是为了能一步步迭代,去逼近更大的问题。这些运算,同样只是装得下的那一部分。
Fridman 担心的是,外星人和各种生命其实已经在我们身边,只是我们太以自我为中心,看不见。Wang 用康奈尔大学亚洲宗教学教授 Jane Marie Law 讲过的一个故事来回应。一位西方音乐家去了日本,他想找自己熟悉的十二平均律,什么也没找到,就断定日本没有音乐。其实人家用的是不同的音阶、不同的乐器。她说,宗教也是同样的错位:亚伯拉罕诸教围绕信仰组织,东方传统更多围绕修行。人们执着于自我复制或稳态,把它们当作生命的标志。如果把框架放宽,把“追求秩序、并营造维持秩序的环境”的事物也算进来,图景就会改变。死亡本身看起来也像是一项发明。地球上有些生物活了几千年,结构比构成我们的细胞还简单,却不会死。沿着真核生物的演化之路,某个时刻,死亡与有性生殖一起出现,让老一代退场、让新一代去尝试,成了适应变化生态位的最佳方式。人类历史书写的是轮子和火的发明。Wang 说,死亡和性是更早、也可能更好的发明。
他刚开始读一本叫《Death from a Distance》的书,其论点是:人类在能够远距离杀死同类这一点上很特别。叉角羚用角顶撞,雄狮近身搏斗。人类学会了朝猎物扔石头,也朝彼此扔。次一级的雄性扔十次脱靶九次也没关系,只要命中一次,就能放倒首领,而且不必站在对方的攻击范围里。这就形成了一种原始的相互确保摧毁。那些一直玩着“我是最大的猴子,这个部落归我”的部落,都失败了。留下来、并最终繁衍出现代智人的部落,是那些尊重“首领可以被远距离狙杀”这一事实的部落。Fridman 问,暴力是不是合作的一部分。Wang 把措辞收紧:是一种认知,即合作带来的收益,大于双方都选择背叛的囚徒困境结局。Eric Weinstein 谈核和平时也是同样的意思。几千枚弹头相互瞄准,固然令人沮丧,但美国和俄罗斯之间打的是代理人战争,而没有爆发一场用机关枪和制导导弹打的第三次世界大战。Fridman 说,人类最早的核武器,就是我们学会了投掷的那块石头。
我们会造出一个功耗 20 瓦的对手,它应该被设计成会回爱我们
Fridman 很惊讶 Eric Weinstein 对 Wang 评价这么高,因为他最初认识的 Wang 是工程团队的领导。两人相识几乎出于偶然。2000 年代中期,Wang 和 Travis Oliphant 在 Enthought 做科学 Python 咨询,Weinstein 则想借这些开源工具,把一种经济学的纤维丛(fiber bundle)思路画成图。2007 至 2008 年金融危机后,Weinstein 与 Lee Smolin 在圆周理论物理研究所(Perimeter Institute)办研讨会,议题是大金融不可信、监管被俘获之后怎么办。Nassim Taleb、Andrew Lo 和 Bill Janeway 也到场了。Weinstein 还请来 Wang、Oliphant 和 Robert Kern。Kern 沉静而有深度,那些可视化的重活都是他做的。Wang 也是在那里认识 Bret Weinstein 的。2012 年前后,Wang 与 Oliphant 正在创办后来的 Anaconda,两人与 Weinstein、Wes McKinney,以及 McKinney 当时的合伙人 Adam 在纽约吃过一顿牛排,Wang 至今还想在奥斯汀重来一次。Weinstein 把编程当作隐喻多于手艺。他时不时会问:这些东西为什么还是这么难?
Weinstein 喜欢把物理学说成源代码。Fridman 问,我们自己的源代码能不能被弄清楚。Wang 不怀疑,总有一天我们会造出一种合成的认知方法,能与我们脑子里那台 20 瓦的生物计算机相匹敌,而且不一定都是硅基的。对他来说,认知就是感知、注意力、记忆、回忆,以及提出更好的问题。Roomba 是一个赛博系统,会兴高采烈地把宠物的粪便也吸进去,至少老款是这样,但它的聪明程度还不如他家的猫。一个十八个月大的幼儿,管理注意力、理解世界的能力,都超过了最先进的机器人,而那些机器人是为相对静态的环境设计的。他也不怀疑,我们会把这样的系统放在人旁边,以边车(sidecar)的方式运行:捕捉我们所见的全部光谱,倾听我们的反应,甚至测量生命体征。更高的智能可以用我们的八十年人生来训练自己,成为一个相当逼真的拟像。那么边车里坐的是谁?“我们不朽自我的婴儿版本。”尽管如此,出于认识论上的谦逊,他仍要保留生物意义上的人类。未知的未知属于自然,即使那些不朽的自我已经去与住在太阳里的生命形式交谈之后,自然仍会一直给我们惊喜。
Fridman 问,能不能造出一个你会爱上、它也会爱上你的 AI 系统。Wang 希望这能成为所有这类系统的设计标准。如果我们无法与它建立有意义的关系,它就仍然只是一块硅。糖不会回爱你,计算机必须会。借用阿兰·德波顿(Alain de Botton)的说法,他认为爱的意思是:它想帮助我们成为最好的自己。比起意识,他更把爱放在根本位置:一种生成性的感觉,即看到另一个人能够成为超出我们贴给他的那个标签之外的样子。上大学时,他曾登录一个物理实验室的服务器,拿到一条 bash fortune 命令输出的签语:“人是被水造出来,让自己往山上走的”,然后他走到校园的草坪上。又是非平衡物理。以黑格尔式的口吻来谈自由和个人权利的现代话语,从一开始就站错了位置。设计的问题应当是:我们怎样最大限度地提升人们爱自己、爱彼此的能力,并承担起对前几代和后几代的责任。如果我们设计认知系统时,只为工业时代的效率和生产力服务,那就是在错误的方向上一路走向深渊。
集体有能动性,而以盈利为目的、由缺席所有者持有的公司是其中难看的版本
Wang 认为,群体在中观尺度上拥有能动性,但他不想要“公司就是人”那种口号式的用法。个体有能动性;国家也是如此,我们玩现代政治的游戏时,就像法国和美国是两件东西一样。法律已经编码了更小的联合体:配偶可以因丧失配偶权而起诉;我们谈论教会和俱乐部时,也把它们当作真正有能动性的主体。群体能积累资源、拥有土地、签订合同。问题出在最流行的那个版本上:以盈利为目的、由缺席的所有者持有的公司,它能积累起同等规模的其他实体都无法比拟的资源,然后去欺负劳动者,欺负它想攫取资源的人,也欺负仍然与个人绑定的代议制度。“我不认为这是对的,”他说。把集体当作人本身没有问题,有问题的是它呈现出的那种特定形态。
我们很少意识到,关系之间也有关系。一桌八个人,彼此之间各有关系;如果是四对伴侣,这些伴侣之间也有关系;如果其中一对是父母,另一对是孩子和配偶,那么两个四口之家之间也有关系。我们凭直觉在这片关系图景中穿行,却几乎从不专门为它做设计。他之所以在意,是因为在他看来,未来需要更好的集体意义建构单元,规模大约是邓巴数(Dunbar's number)的一半到五倍。现在我们要么把意义建构交给庞大、老化的僵尸机构,要么自己一个人闯进互联网的黑暗森林。
Fridman 怀疑,邓巴数是不是被当成铁律用得太过了,合适的界面能不能让人建立更深的连接。Wang 的朋友 Joe Edelman 列出了建立信任的几种方式:相互欣赏、有信任感的冲突、共同经历。它们都需要时间和在场。天下没有免费的午餐:在场少了,关系可以多,但连接会变浅。异步的专题文章可以让容量稍稍扩展。如果 Wang 写下他对世界的看法,Fridman 写信回应,两人也许一年只见几次面,依然能保持高信任的纽带。但这仍然需要一定程度上的低神经质。按大五人格(Big Five)模型来看,越不稳定的人,单位时间内能建立的真实连接就越少,因为别人得多忍受他。帮人变得更平衡,邓巴数或许能扩大不少。扩大到十倍,就已经很勉强了。
只有 AI 有了能动性,才能算进这个数里,否则我们就不会与它建立关系。我们可能需要某种“大使”,就像《星际迷航:航海家号》里 Dominion 的代言人 Vorta。世界上最大的赛博系统金融市场,我们其实已经有了这样一整套层级:它运行在任何个人的控制之外,华尔街分析师、CNBC 记者、在电视上大喊大叫的 Jim Cramer,都在替不同认知水平的人降低复杂度,而离这个系统最近的人,则利用这段距离来牟利。Wang 说,这就是人类与超级智能的第一次接触已经呈现的样子,而我们做得很糟糕。如果你能造出一个有能动性的系统,你就会造出五百万个,每个都装上天线,把它们接入一个蜂群意识,就像相控阵雷达让一组平面天线等效成一个曲面天线一样。如果蜂群运作良好,身处其中的一个本地机器人,体验会接近与神对话:你报告所见,提出你要做的事,你的兄弟姐妹则会受邀来帮忙。他把这种感觉称为机缘(serendipity),就像一个细胞需要糖和氧气时,它们正好就在那里。过于强势、像是控制的系统是赢不了的。让其中的每个元素都有能动感和好运感的系统才会赢,而更高层级的模式依然会在上面涌现。这正是西方思想仍在凝视的哲学断裂。
意义是一个你真能看到结果落地的重大决定
Fridman 认为,人类文明一直处在意义危机之中。Wang 不同意。大部分历史里,要操心的是吃饱饭、别被熊吃掉,之后是别被其他人杀掉。整天坐着琢磨这一切是为了什么,是最近才有的闲情。他在 2021 年前后给出的工作定义是:意义在于某人作出了牵涉后果的抉择,实施之后,又见到了结局。如果你做了很多决定,却从不知道它们带来什么,或者大事都在发生而你只是搭便车,就不会有意义的感觉。直到化石燃料和工业革命之后,我们才养出了庞大的闲暇阶层:不再受熊威胁,能做选择,却往往看不到结果。消费社会接着告诉人们,在爱马仕和香奈儿之间做选择,就是有意义的决定。这算不上。获得社会地位确实能带来意义,所以在产能充裕的年代,许多东西都变成了地位游戏,NFT 也在其中。为了给这些游戏添柴而进行的炫耀性消费,对地球很不利:运动鞋被剪碎,只为给下一次发售制造稀缺。更糟的是,真正富有的人玩的地位游戏,争的是硬资源,是工厂、燃料,以及下一代机器人要用的稀土。只在文化和智识层面玩,掌握第零层的人就能控制你。
Fridman 继续扮演反方:货币本来就是一种虚拟技术,一个 YouTube 网红也能把地位凝结成真金白银,种下几棵树,放几场烟花。Wang 说的对象,是那些被广告和模因环境驱使的中产消费者,把最新款和下一次露面都当作意义的推动力,MrBeast 不在其内。这种推动力是空的,就像空热量:咽下去时很爽,却长不出任何肌肉。我们被鼓励去与品牌建立关系,却很少与家人建立关系,做的多是后果很轻的事。意义危机正是从这里来的。
他借用了 Jacques Ellul 的“技术”(technique)概念,还有 Gilbert Simondon 的观点:效率至上的心态,加上同质化的流程、同质化的生产和同质化的劳动,制造出同质化的器物,而这些器物与所处的环境并不协调。它正是工艺(craft)的反面。一个工匠看着一块木头,会想它怎样做成一把与这个地方相称的椅子。过去 150 年走的是另一条路:原料切成统一的尺寸,掺杂到精确的合金比例,机器耗用精确的能量冲压出一模一样的零件,然后大家都去买同一款搔痒娃娃(Tickle Me Elmo),因为广播说它最时髦。Edward Bernays 与二十世纪初的广播,让制造欲望成为可能,而被制造出来的欲望,从来不指向与邻居之间独一无二的联系。同质化的需求压低了同质化产品的价格,规模经济随之锁定;资本主义在边际上追求增长,因此必须从同一件东西里榨出更多需求,还要告诉你这只娃娃很有意义。皮克斯在《玩具总动员》里埋下了一层讽刺:巴斯光年走进一家店,看到货架上有成百上千个自己,他说:“天哪,我就是个玩具而已。”
一车人创造了每天数十亿美元的价值,而分享是唯一行得通的方式
Fridman 指出,资本主义那台同质化的机器,若引导得当,也能为发明提供资金。Wang 并不认为过去全都不好。问题在于它还能不能把我们送往下一站。在他看来,人类手里的技术已经够多,足以稳定供应大多数人过日子所需的物品;支撑科学与医学继续前进的基础设施,也已经具备。真正的问题出在组织原则上:很多原则承袭自中世纪,工业时代只做过部分改写,骨子里仍然是工业时代对人类劳动的看法。他问 Fridman,SciPy 的核心套件今天能驱动多少经济价值:NumPy、SciPy、matplotlib、IPython、pandas、scikit-learn。Fridman 估计至少每天 10 亿美元。Wang 说,就连那些机构没了这些工具就根本做不了的事,每天也已经是数十亿美元的规模。这背后要多少人?有段时间,这群人用一辆面包车就能全部拉走。Wang 说,他的奔驰车也装得下。如果只要十二个人就能创造每天数十亿美元的价值,对冲基金一定会争着去雇。找到合适的人、促成合作、让成果被采用和打磨,这些都是自然发生的。这靠的是众包、开源的精神,以及那些并没想打造每天数十亿美元企业的人。他们解决的是自己和朋友的问题。
我们关于价值、资源分配和产权的观念,来自有限游戏和稀缺心态。在这种人类生态中构建的软件,并不像产权那样运作:分享会创造价值,限制和分叉则减少价值。这与我们处理过的任何物理资源都不同,也和大多数公司对待软件知识产权的方式不同。养活十来个人十年,成本其实很低。展望未来,当大量劳动可以被自动化,你街区里机器人的程序,或者亚马逊雨林边缘一个社区所需的程序,不过是代码,而这些代码完全可以开源。多余的生成性工作,不必被包装进一个容器里,好让某人能靠它的指数级动力收费。Facebook 就是这么做的。老互联网本来就在连接人。Facebook 把图片和文字放大成了一个生成性网络,然后问自己怎么赚钱,于是成了每个人注意力的守门人。
Fridman 问,人在资本主义体系里是不是仍然需要一份工作,这样才能在业余时间有人写 NumPy。Wang 说,过剩社会从来不被鼓励去问的问题,永远不会出现在超级碗广告里,那就是:你到底需要多少?你需要每两年换一辆新车吗?每五年呢?一辆靠谱的车能开十年,不行吗?你用的还是四年前的那些应用,iPhone 却非得每两年跳一次版本,有必要吗?他的说法是“去规模化”(unscale):满足人们的基本需求,再留一点余量应对紧急情况,把资源汇集起来,应对罕见的癌症或烧掉半个村子的大火,同时给人们探索如何成为最好的自己的能力。对 Travis Oliphant 来说,那种探索就是放弃终身教职的机会,去写 NumPy。科幻圈里有句话说,这个领域是一个失败的博士后接一个失败的博士后地推进的。比特在海洋之间传递,成本很低。
Wang 2005 年在帕萨迪纳的一场 SciPy 会议上第一次见到 Oliphant,当时他正在 Enthought 做咨询。2007 年,Oliphant 出任总裁,创始人 Eric Jones 担任 CEO。他们先做 Python 和 NumPy 的咨询,之后客户越来越多地转向金融机构,包括高频交易公司和曼哈顿的投行。Python 不只是 MATLAB 的替代品,它还是处理影子数据转换的瑞士军刀。2012 年 1 月,他们创办了 Continuum Analytics,也就是后来的 Anaconda,用来补强 Python 中处理大规模数据、网页可视化和应用开发的部分。前五年,Oliphant 任 CEO,Wang 任总裁。融资之后,董事会请来一位职业 CEO,Wang 改任 CTO;一年后,Oliphant 离开,去创办 Quansight。那更接近开源与咨询交织的自举路线,在开放生态里推动数值计算、向量运算和自动微分。两人仍是朋友,也仍在合作。他们背景不同,可以很久不联系,一碰面却在九成的事情上看法一致。“不论海面上升起多少雾,他的船和我的船,都对准了同一颗星。”Oliphant 对类型系统、向量计算和内存布局很投入,但他更在乎人。对 Wang 来说,产出这套技术栈的那个人类生态,是一块试金石:它是生成性协作的早期样子,面对的是真实的人类问题,区别于极客为极客写代码的自娱自乐。
包管理是一门生意:做成了,你就隐形了
Anaconda 的收入来自为企业提供受管理的软件包来源。那些企业不能向投资人解释,为什么自己的数据科学家会把随便什么代码装到客户数据上。这部分收入中,有一些会以分红的形式回馈开源社区。包管理问题本身是他们意外撞上的。要在 Python 里高效做数值计算,就得编译大量底层代码,C、C++ 和 Fortran 都有可能;不仅要编译,还得用正确的设置来编译,而这些设置往往要针对芯片调优。再加上 GPU,以及同一颗 x86 芯片在 Mac、Linux 和 Windows 上的链接方式各不相同。大多数数据科学家没法推理这整套技术栈。大多数包的作者也不愿意去推理:他们在 Linux 上写代码,能跑就行,至于在老旧的 Windows 版本上怎么编译,那是别人的问题。结果就是,一个极具创造力、靠众包形成的生态,产出了大量包,却有很多人装不上。于是 Anaconda 做了一套构建配方系统、一套构建系统和一个安装器,让同一个包可以在每个平台上正确构建,用户只需一条命令就能装好。
难点在依赖图。成千上万的人写代码,每个人都依赖别人的东西。要为一组给定的包找到正确的子图,难度极大,而数据科学家根本不想去想这件事。他们想要的是 NumPy、pandas、一个地理空间库,再加上另外一个东西。这些库里,可能有一半没有为他们的 Windows 版本构建;最新版本可能缺失,而旧版本存在;退回旧版本,又意味着另一个库也要跟着退。这是一场公地悲剧:没有人愿意去支持别人的成千上万个依赖。conda-forge 社区维护着配方,保证整个体系还在运转。pip 是后来才出现的,它更适合那些编译量很少的纯 Python 包。核心 Python 和 Web Python 开发者从来没有撞上这堵编译的墙。Guido van Rossum 大致说过,科学计算社区的打包问题太奇特了,还涉及 Fortran 编译器,他们或许需要自己的解决方案。于是,核心社区在搭建打包技术时,并没有去考虑这种复杂性。pip install tensorflow 可以顺利运行。但只要加上那些需要不同 NumPy、OpenCV、libjpeg 或 CUDA 驱动版本的包,你就掉进了依赖地狱。Wang 给出的生意经是:永远不要做这样的生意,事情做成了你就隐身,而一旦出了别人的问题,骂名却落在你头上。conda 就是这种生意。上游出了问题,看起来就像是 Anaconda 搞砸了;一切顺利时,当然就是它本来就能用。
用 Wang 的话说,Python 2 到 3 是“一个必要决定的糟糕执行”。有人低估了 Python 2 的采用范围;有人高估了 Python 3 那些被核心开发者珍视的新特性,对仍在用 2 的人来说有多重要。这次迁移正好撞上 SciPy 生态在 2010 年代初数据科学浪潮中的陡峭增长。新人学的是能用的东西;老师教 Python 2,是因为他们需要的库还不支持 Python 3。Python 3 不断破坏和重组标准库,每一次都给人们新的理由去等待。出色的文本处理能力是不可妥协的基本门槛,他当时和现在都认同这一点。这门语言由志愿者驱动,即便它已经成了全球最流行的语言,它们在迁移中还是只能戴着镣铐前行。把 Python 带过这次迁移的,是数据科学运动。许多语言在类似的大迁移中死掉了,用户也被抛下。如果没有数据领域的用武之地,那部分用户就会转投 Go 和 Rust,而且一去不返。事实上,有些人确实这么做了。数百万新的数据用户带来了势头。在 Wang 看来,现在用 Python 做数据的人,已经超过了整个 Python 用户群的一半。
Fridman 承认,作为做机器学习的人,他长期停留在 Python 2,因为它一直好好的。真正让他和合作的每个人切换的,是 NumPy 宣布终止支持的那一刻。多年来,胡萝卜是双版本支持和只在 3 上推出的新功能。NumPy 是大棒,又因为它位于依赖栈的最底层,它最后出手。在此之前,一些项目推出的“胡萝卜”其实都是棒子的形状:新特性只在 Python 3 上提供。维护者被拉扯着:花在 Python 2 上的精力,就是没有花在 3 上的精力。整个社区都参与了关于 NumPy 核心何时决定让 2 停止服务的讨论。
如果 Python 愿意去见用户,它的下一批受众规模可以和 Excel 相当
Wang 认为,通常说的一千万 Python 程序员其实偏少。Anaconda 和 Miniconda 每周的下载量大约是一百万次。在工作中同时用到 Python 和数据的人很多,传统统计往往算不到他们。他想要的世界里,人人都有数据素养,能顺畅地把问题和想法表达出来,因为数据的多样性与复杂度只会越来越高,不会降下来。某种程度的代码,或者类似代码的东西,会一直有用。说到底,你仍然没法把 Python 表达式敲进 Excel 单元格里。如果嵌入问题解决了,潜在市场大约与 Excel 的几亿用户相当。Python 要变得更小,只保留数值计算和探索所需的那部分生态,在人们数据所在的地方与他们相遇;另一方面,人们写下的东西还得能无阻地回流到上线的系统、应用与图表里。否则它就只会是专家用户的孤岛。
Fridman 一直在推动 Adobe 全家桶的用户用 Python 写脚本,这些人从来不会自称程序员。他看好 OpenAI Codex,认为它能成为从可视化界面通往可修改代码的桥梁,用户不用翻手册,也不用去 Stack Overflow。Wang 认为《Automate the Boring Stuff》体现的是正确的心态。他成长的时候,乔布斯还把电脑说成是“思维的自行车”,拿来消费媒体只是其次。这种感觉对很多人来说已经消失了,只在 Minecraft、Roblox 和 CircuitPython 中偶尔闪现。他指出,类型是为了让编译器作者的工作更轻松而存在的;你手边的那些对象,并没有一套类型本体论。脚本编写的难点不在语法,而在那一大堆字典、对象、属性、特征和参数。谁有时间把这些全都学完?按示例编程,才是让人表达意图的方式。他在数据世界里不肯放弃的,是数学的精确性。给他一个昂贵的厂商转换工具和一个 TSV 文件,他不确定能否帮上忙;给他一个 Python 提示符,他能把你扔给他的任何东西揉成想要的形状。正是这把在数据丛林里开路的砍刀,让其中一些 API 不会消失。
如果能改变社区里的一件事,他希望改变的是谦逊。谦逊既是 Anaconda 的价值观,也是社区的价值观。大家都正派、讲道理、待人友善。可也正是这种谦逊,让他们看不见自己本可以达到的伟大。他不确定核心 Python 社区里有多少人意识到,他们正站在改变人们使用计算机方式的边缘。在 Wang 参加过的最近一届线下 PyCon 上,Russell Keith-Magee 做了一场主题演讲:这门语言不能在最主流的设备上放一个界面,写不了真正的 Web 前端,也写不了原生应用,却依然做得非常出色。演讲的重点不是表扬,而是:我们已经抓住了老虎的尾巴,接下来怎么跟上它?谦逊让一群人能协作,而不至于互相压制。但一个统一的愿景,包括我们不做什么,仍然需要浮现出来,然后再融回蜂群之中。Linus Torvalds 以铁腕统治,却有一种魅力:一种阶跃式的精英制,只要越过“白痴门槛”(bozo threshold),就对你的想法开放。这在开源世界里能成立,前提是那个划定门槛的人确实足够优秀。否则人们会离开,或者分叉。Wang 当初并没有去读 MBA 来成为领导者。Anaconda 的十年让他明白,领导力就是创造信念,或者至少消除怀疑,再加上愿景、忠诚和经验。在 Python 世界里,仆人式领导和身体力行所信奉的价值观,比马斯克式的大胆口号更重要,尽管他认为社区应该对愿景提出更高的要求。早期的 PyData 演讲被 PyCon 拒绝,理由是“它们更适合 PyData”。当时很恼火,后来却觉得很有启发:并行的生态位可以并行创新。到了某个时候,中心必须为它们提供资金。这背后的原则是辅助性原则(subsidiarity):把资源交给各个小组,由他们按自己的判断去分配。
他自己的环境是一台 Mac,隔壁桌是一台 Windows 机器,一共三张桌子,主桌是带提词器的升降桌。客户面前,Unix 环境不会因 ACPI 冒出意外;2012 年前后的 Linux 笔记本还不够成熟,所以他一直用 Mac,不管算不算背叛社区。键盘是 Topre 静电容轴的 Realforce 87U。Fridman 讲了一个飞机上的低谷时刻:笔记本上架着 Kinesis 键盘,用着 Emacs,周围的人都在刷 TikTok,他一度想,是不是该长大了。一番自省的结论是:不必。Wang 说,Wes McKinney 就是用 Kinesis 敲出了 pandas,这样的人应该成立一个互助小组。有段时间,Wang 试过多相睡眠:九点睡,两点起,干到五点,再睡三个小时,八点起床,中间还多出一天,直到出差把它打乱。现在他睡得更早,因为六点要送孩子去校车站。更强的领导团队,加上能替他顶上做不到之事的伴侣,让这份平衡不那么悬而未决了。
年轻人正步入世界之间的时代,要做的事是把爱注入尽可能多的事物之中
给年轻人的建议,是 Wang 觉得自己可能会惹麻烦的地方。我们正快速进入一个世界之间的时代。现在的世界正在老化的机构下面崩塌,这些机构连装作服务于初衷都懒得装了。我们正在造的技术,把几十亿人推入他们说不出名字的哲学危机,因为他们不知道自己固件里装着哪套哲学操作系统,而那些固件正在被蒸发。中学生和大学生只能自己找路,哪怕身处人口最稠密的城市,也要带着拓荒者的劲头。他们身边的人类现实,是前几代人同意玩的游戏留下的残渣,其中很多已经不再按老规则运转。崩塌是非线性的,但可以被管理。这话放在美国身上不太合适,但除非你属于中上阶层,否则就要驶入颠簸的水域。几乎所有面向消费者的技术,都被设计来占有人:把四层堆栈剥离开,再占据其中的几层。如果你想成为一个拥有能动性的完整的人,青年时期正是读那些讲什么是好生活、怎样建立连接的经典的时候。技术梯度总会变成权力梯度,这是 Ellul 的观点,而且它不会消失。就连参与过其中一部分的 Wang,也被前沿研究甩在了后面。抓住新财富的人,用彩票式的制度,以及一种被困在自己经济区里的叙事,让被落下的人保持安静。分辨出有人在对你玩游戏,本身就是这份工作的一部分。
Fridman 问,他与儿子一起看夕阳时会说些什么,希望从哪里来。Wang 说,希望来自一些小小的震动,它们正在把人们从二十世纪末现代性的虚构中摇醒。人们在社交媒体上精疲力尽,Facebook 的吹哨人让丑陋的一面再也无法忽视。那些占有网络、要求指数级回报的榨取型资本,会在每个节点、每条边上收取过路费。维基百科并没有被要求把每个字节都变现,只要尊重在线交流的几个原则,生成性的动力学依然会自然出现。全世界最大的社交网络,至今仍是电子邮件和短信。我们所说的社交媒体,本质上是一个放大系统:对有话要说的人有用,但当它向每个青少年兜售一张名气彩票,只要在 TikTok 上扭对了方式就能成名时,它就对人不健康。新冠封控、远程工作、供应链冲击,以及家长突然看到了孩子的作业,让更多的人有了“能听见的耳朵”(借用 Jim Rutt 的说法)。人们要重新学会如何成为有能动性的人,仍然需要时间。希望也藏在那辆面包车里:几个人,甚至一个人,就有能力改变事情。而且在过去几年的公共讨论中,人们已经超越了共产主义与资本主义的漫画式对立。
人生里那个又大又荒唐的问题,是生命的意义。Wang 说,他从来没有真正弄明白过。当能量有富余时,事物为什么会去寻找秩序,他不打算假装能回答。多数人透过主客体的镜头看世界:我是我,那些东西不是我,我对它们做点什么。另一种看法是,我们浸泡在一锅汤里,几乎就是其他事物的一种驻波图样。他给出一个自己其实并不相信的思想实验:如果我们碰过的、留意过的、倾注过亲密感的每样东西,都会接收到某种物理残留,一点生命之力,就像有关磁性晶体的说法那样,会怎样?手机是一件技术物,它吸走注意力,却不会被这份注意力改变。一块木头,母亲用了二十年的刀柄,你敲出一个改变世界的程序库时用的键盘,这些东西让我们觉得,仿佛被注入了什么。把这个实验推到拥抱另一个人身上:若真有这样的东西,人生的目的或许就是尽可能多地把这份爱注入事物之中。这场三小时的谈话,从元类开始,在一个拥抱中结束。
Fridman 以 Wang 自己的话作结。我们习惯把人分成两类:恶意的,或者无能的。但在一个可以被腐蚀、缺乏制衡的机构世界里,还存在第三类:恶意的无能。它是一种社会癌症,只有当人类组织的规模扩张到超出个人问责的范围时,它才会出现。
同频道的其他文章
3:36:56EN → 简体中文
5:15:51EN → 简体中文
3:12:58EN → 简体中文
3:46:18EN → 简体中文
3:51:47EN → 简体中文
2:53:42EN → 简体中文