陈天奇称边缘异构软件适配极其复杂 机器学习编译成大模型降本突围关键

陈天奇:机器学习系统,长期主义,初心,XGBoost,MXNet,TVM,MLC LLM,OctoML|WhynotTV Podcast #3 — WhynotTV

WhynotTV

在 Frontier AI Lab 万卡集群的算力垄断下,学术界与开源社区通过机器学习编译自动适配异构硬件,将是解决大模型端侧推理成本、隐私与定制化瓶颈的必然路径。

AI-assisted summary of 陈天奇:机器学习系统,长期主义,初心,XGBoost,MXNet,TVM,MLC LLM,OctoML|WhynotTV Podcast #3 — original source. Check the original for full context.

Source published:

Detailed notes

## Background 该内容由 Bilibili 频道的 WhynotTV 于 2025 年 9 月 12 日发布,是 WhynotTV 播客的第三期节目。视频简介指出,本期节目深入对话了机器学习系统领域的传奇人物陈天奇,拆解了他过往近 20 年在机器学习系统主线上的开源项目印迹(如 XGBoost、MXNet、TVM、MLC LLM),并走入他的个人成长、底层价值观以及他在科研、创业与教职获得成功后的下一步筹划。

## TL;DR 本期播客全面回顾了著名计算机科学家陈天奇的科研与创业历程。陈天奇分享了他从县城少年的编译器梦出发,在交大 ACM 班打下扎实系统功底,并在图像分类研究中经历两年“零论文”挫折后建立起对失败脱敏的豁达心态;详细拆解了 XGBoost 的极致工程、MXNet 面对工业界巨头的正面交锋,以及 TVM 和 MLC LLM 在深度学习编译与端侧推理上的开创性探索。此外,他还深入探讨了机器学习系统(MLSys)的演化史,并回顾了 OctoML 创业模式的转变与最终被 NVIDIA 收购的历程,阐述了其“把人生视为随机过程并终将收敛于稳态”的长期主义哲学。

## Atmosphere & style 整个播客呈现出一种真诚、深刻且极具力量感的理想主义氛围。面对主持人的细腻走访,陈天奇的表达既有顶尖科学家的理智与清晰,又流露出一种“初生牛犊不怕虎”的纯粹与坦然。节目在回忆 ImageNet 的重大科研挫折与 OctoML 的自我重构时带有令人动容的真诚反思,而在讨论与工业界巨头竞争时又充满了学术开源社区的少年锐气。尤其是当陈天奇谈及需要过去、现在和未来的自己共同记住对理想的承诺时,播客的情感弧线达到了高潮,散发出一种历经风浪后依然坚守一线的务实幸福感。

## Key takeaways - [00:00](https://www.bilibili.com/video/BV1s6pgzLE3y?t=0s) 高二暑假出于兴趣手写Pascal到C语言转译器的经历,极大地激发了陈天奇对计算机底层的兴趣,培养了“不怕干事、敢于尝试”的底气。 - [14:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=899s) 大三开始在ImageNet上死磕受限玻尔兹曼机(RBM)并经历了长达两年的零论文失败,让他意识到不能在正确的问题上锁死并坚持错误的方法,但也对失败脱了敏。 - [29:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=1799s) XGBoost项目的成功关键在于把工程和算法优化做到极致、专注于做好做精单个算法,以及充分借助了全球不同行业开源社区的力量。 - [49:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=2999s) 深度学习框架MXNet在设计之初就确立了极其超前的系统理念,包括Python First、自动调度与并行,以及声明式与命令式的混合式编程范式。 - [49:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=2999s) 面对Google即将推出TensorFlow的竞争,MXNet团队当时作为一群年轻的PhD学生,在“初生牛犊不怕虎”的激情驱使下决定与工业界巨头正面碰一碰。 - [01:04:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=3899s) 在Google Brain实习期间与Ian Goodfellow合作Net2Net项目时,陈天奇在风险与影响力的抉择中,毫不犹豫地选择了风险最大、但潜在影响力也最大的课题。 - [01:09:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=4199s) TVM项目的诞生是为了解决手写算子无法应对庞大硬件异构性的瓶颈,其核心愿景是让机器学习系统不那么复杂,让更少的团队能很快搭建起系统。 - [01:29:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=5399s) 陈天奇将机器学习系统的演进划分为三个阶段:大数据时代(推荐系统主导)、深度学习突破时代(模式识别主导)、大模型时代(系统与模型协同设计主导)。 - [01:34:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=5699s) MLC LLM通过编译技术自动适配异构硬件以应对端侧推理的工程挑战,未来端侧推理的普及将带来类似“从大型机到个人电脑”的个人化转变。 - [01:44:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=6299s) 学术界做机器学习系统虽然缺乏算力,但这反而是一种逼迫人们利用聪明的编译技术去优雅解决问题、变得更有创造力的机会。 - [01:54:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=6899s) 陈天奇加入并共同创立商业初创公司OctoML的动机非常纯粹——为了让TVM开源社区更加成功。开源是极佳的起点,它能帮企业建立标准,但绝非终点。 - [02:04:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=7499s) OctoML为了保证技术面向未来,在支持大模型时推翻了原有的图编译部分并重构了Relax框架,陈天奇认为在自我重构与打补丁之间必须主动选择重构,否则会被技术债反噬。 - [02:09:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=7799s) 作为CMU教授,陈天奇至今仍选择坚守在一线亲自操刀写代码并重构TVM核心,他认为在一线写代码能让自己对技术现状保持敏锐的触觉,这也是让自己感到幸福的方式。 - [02:14:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=8099s) 在AI研究节奏极快的当下,陈天奇依然坚持“以年为单位”的沉淀式研究风格,提倡“编网捕鱼”而非盲目追逐短期热点,坚信学术界对犯错拥有更大的容忍时间尺度。 - [02:19:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=8399s) 陈天奇将人生与科研视为随机过程,坚信长期的时间平均(Time Average)一定会收敛到和付出相称的稳态。 - [02:19:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=8399s) 在充满不确定性的分岔路口,陈天奇选择的底层逻辑是问自己“如果选了这条路并且失败了,我会不会后悔?”,以是否能享受过程和走理想之路作为终极决策标准。 - [02:24:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=8699s) 随着年龄增长、团队变大和拥有的资源变多,未来五到十年最难的事情反而是“保持初心和热情”,需要克服去justify资源和保证团队成功的现实压力,继续接受失败、做高风险的研究。 - [02:24:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=8699s) 对于成功和幸福,陈天奇认为成功最重要的是在技术上影响世界并问心无愧,而最理想的人生状态是解决问题本身以及和志同道合的人并肩作战。

## Detailed walkthrough ### [00:00](https://www.bilibili.com/video/BV1s6pgzLE3y?t=0s) 缘起:从县城少年的编译器梦到交大 ACM 班的系统功底

陈天奇的计算机启蒙始于浙江省一个偏远小县城的普通中学——松阳二中。因为母亲是该校的高中老师,他便顺理成章地在此就读。初中毕业、刚上高中的 2003 年左右,陈天奇觉得“有电脑、能上网、做网页”是一件极其炫酷的事情,于是主动找到了学校的计算机启蒙老师何老师。虽然当时他的初衷是立刻学会做网页,但何老师却塞给了他一本 C 语言编程入门书。

在那个信息相对闭塞的县城里,学校并没有专业的竞赛教练和培训资源。幸运的是,互联网为他打开了一扇大门。陈天奇通过当时著名的信息学奥林匹克(OI)论坛“大龙数”以及各类 Online Judge(OJ)平台获取了丰富的自学资源。高二时,他首次参加全国青少年信息学奥林匹克联赛(NOIP)省赛,虽然初赛遗憾未过,但随后“野路子出家”的他硬是凭借自学在省选比赛中斩获二等奖,并在高三时顺利拿下一等奖。

高中时期最让陈天奇难忘的,是他在高二暑假出于纯粹的兴趣,尝试自己动手写一个编译器。当时主流的竞赛语言是 Pascal,而自学入门的陈天奇只会写 C 语言。为了解决这个问题,他萌生了写一个将 Pascal 转换为 C 语言的转译器(Transpiler)的想法。在没有 GitHub、没有现成教程的年代,他完全在小本本上规划模块交互,在 Windows 和 Linux 系统下手写代码,硬是花了一个暑假折腾出一个能用的版本。这段“初生牛犊不怕虎”的经历,不仅极大地激发了他对计算机系统底层的兴趣,也培养了他“不怕干事、敢于尝试”的底气。

2006 年,作为高考生的陈天奇凭借优异的成绩考入上海交通大学,并主动申请加入了刚刚成立不久、由俞勇老师创办的交大 ACM 班。在宣讲会上,他凭借一份准备极其详尽的个人材料(其精细程度堪比申请博士的 Personal Statement)打动了俞勇老师,顺利入班。ACM 班不仅有着极具挑战性的技术训练(如由历届学长当助教、不断迭代的“从零手写编译器”大作业),更在非技术层面给陈天奇留下了深远的影响。

- **松阳二中**:陈天奇就读的高中,位于浙江省一个小县城,并非省内顶尖名校。 - **大龙数**:当年活跃的 OI 交流论坛,是陈天奇自学编程的重要信息源。 - **低调做人,高调做事**:俞勇老师对 ACM 班学生的教诲,强调在保持谦逊、乐于合作的同时,要在做事上展现出锐气与远大抱负(Ambitious)。 - **学术讲坛**:ACM 班每学期要求学生上台演讲任意主题,这一机制极大地锻炼了陈天奇的公开表达能力与自信心。

---

[14:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=899s) 挫折:ImageNet 上的两年坚守与“错误方法”的教训

进入交大 APEX 实验室后,陈天奇在戴文渊学长的引导下开始接触机器学习,并阅读了 Tom Mitchell 的经典教材《Machine Learning》。大三时,他前往微软亚洲研究院(MSRA)实习,接触了广告算法。回到学校后,实验室的薛贵荣老师向他们推荐了刚刚兴起的“深度学习”。陈天奇和学长林源一拍即合,决定将“受限玻尔兹曼机(RBM)”作为毕业设计的研究方向。

为了加速模型训练,陈天奇开始接触 CUDA 编程。当时实验室只有 CPU 服务器,他们好不容易买来一张 NVIDIA GTX 380 显卡,却发现机箱太小、电源瓦数不够。为了让显卡跑起来,他们索性又买了一个电源放在机箱外面,通过外接电源的方式硬生生搭起了实验室第一台 GPU 服务器。

然而,这段长达两年的科研尝试在学术发表上却是一次彻底的失败。当时李飞飞教授刚刚发布 ImageNet 数据集,陈天奇团队雄心勃勃地试图用受限玻尔兹曼机去挑战图像分类。在没有任何导师指导的情况下,他花了整整六个月用 C++ 和 CUDA 从头手写梯度反向传播(Backpropagation)等底层代码。虽然最终实现了 GPU 加速,但模型的效果始终无法击败传统的 SVM baseline。

事后反思,陈天奇意识到自己犯了一个经典的科研错误:**在正确的问题(ImageNet 与深度学习)上,锁死并坚持了一个错误的方法(受限玻尔兹曼机,而非后来大放异彩的有监督卷积神经网络)**。这段长达两年的“零论文”经历虽然痛苦,却让他脱了敏。他发现“失败了自己也还活得好好的,没什么大不了”,这种对失败的坦然接受,反而让他此后的科研心态更加放得开。

- **GTX 380 / 390**:当年用于搭建第一台 GPU 服务器的显卡型号,CUDA 版本仅为 2.0 左右。 - **KDD Cup**:在经历 ImageNet 的挫折后,陈天奇团队将 RBM 方法应用到推荐系统(Collaborative Filtering)中,并组队参加 KDD Cup,这段经历成为他科研生涯的重要转机,也为他争取到了前往北美深造的机会。 - **科研视野的转变**:李航老师访问 APEX 实验室并做报告,让陈天奇第一次意识到,除了死磕一个问题,世界上还有如此多不同维度的问题可以去解决。

---

[29:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=1799s) 蜕变:从香港实习到华盛顿大学,XGBoost 的诞生

在前往华盛顿大学(UW)攻读博士学位之前,陈天奇在杨强老师和李航老师的支持下,前往香港进行了一段时间的访问和实习。这段经历极大地拓宽了他的科研视野。他意识到,研究者通常分为两类:一类是从方法出发,将一种方法应用到各种场景;另一类则是对某一类实际问题感兴趣,不断寻找不同的方法去解决它。陈天奇明确了自己属于后者——他更渴望创造出能切实解决实际痛点、能 scale up(做大、做快)的系统工具。

在进入华盛顿大学后,陈天奇师从 Carlos Guestrin 教授。当时深度学习刚刚取得突破,学术界都在探讨其成功的原因。陈天奇和导师想要挑战一个假设:深度学习的成功究竟是因为神经网络本身,还是因为其庞大的假设空间(Hypothesis Space)与海量数据的结合?陈天奇认为,如果能将海量数据应用到非线性表达能力极强的树模型(Tree-based models)上,或许能取得不亚于神经网络的效果。然而,当时现有的树模型系统计算速度极慢,成为了研究的瓶颈。为了打破这个瓶颈,陈天奇决定自己动手解决系统问题,这便促成了 XGBoost 的诞生。

XGBoost 推出后迅速风靡全球,成为 Kaggle 等数据科学竞赛中的“大杀器”。陈天奇总结其成功的关键在于三点: 1. **做到极致**:继承了 ACM 班“把事情做到极致”的传统,XGBoost 在工程和算法优化上做到了极致,是当时世界上运行速度最快的梯度提升(Gradient Boosting)系统。 2. **专注**:吸取了早期项目 SVD Feature 功能过于冗余、配置复杂的教训,XGBoost 极其专注于“做好、做精一个算法”。 3. **社区的力量**:开源后,来自全球不同行业的开发者贡献了关键功能。例如一位法国律师为了检测税务欺诈,专门为 XGBoost 贡献了 R 语言的可视化包。

- **Carlos Guestrin**:陈天奇在华盛顿大学的博士导师,给予了他极大的学术自由度,并坚持“No Beamer, only PowerPoint”的原则,要求学生在展示时必须使用直观的视觉图表,而非枯燥的公式堆砌。 - **Missing Value(缺失值自动处理)**:XGBoost 在算法层面的创新之一。传统方法需要人工进行数据清洗和中位数填充,而 XGBoost 允许模型根据历史缺失模式自动学习并决定分类路径,极大地提升了易用性。 - **Lime**:与 XGBoost 同期诞生于 Carlos 实验室的另一项开创性工作,专注于可解释机器学习(Explainable ML),同样获得了极高的学术引用。

---

[49:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=2999s) 激战:MXNet 的多方合流与直面 TensorFlow 的勇气

在 XGBoost 取得成功的同时,深度学习的浪潮已势不可挡。陈天奇对深度学习的热情从未熄灭。在华盛顿大学期间,他与许彬合作开发了 CXXNet,利用 C++ 的模板编程(Expression Template)技术,将复杂的 GPU 矩阵运算压缩并生成内联的 GPU Kernel,极大地简化了深度学习框架的底层开发。

与此同时,学术界和工业界正处于深度学习框架“百花齐放”的战国时代。微软亚洲研究院的张峥、陈敏捷团队在开发 Minerva;林敏在写 Purine;贾扬清的 Caffe 已经开源;李沐团队在做 Parameter Server(参数服务器);张池源在 MIT 用 Julia 编写 Mocha。在各种机缘巧合下,这些充满激情的年轻学者决定合兵一处,吸取各个项目的教训,共同打造一个全新的、面向未来的深度学习框架——MXNet(名字源于 Minerva 与 CXXNet 的结合,意为 MixNet)。

MXNet 在设计之初就确立了几个极其超前的系统理念: 1. **Python First**:不同于 Caffe 以 C++ 为核心、Python 仅作为 wrapper 的设计,MXNet 倡导在 Python 端直接编写和控制框架。 2. **自动调度与并行**:系统能够根据计算图的依赖关系,自动在多卡环境下进行并行的 All-Reduce 通信与计算覆盖。 3. **混合式编程(Imperative vs. Declarative)**:完美融合了声明式(静态计算图,利于优化和部署)与命令式(动态图,利于调试)两种编程范式。

就在 MXNet 团队紧锣密鼓向前推进时,陈天奇前往 Google Brain 实习。在实习期间,他作为内部测试人员(Dogfood)提前接触到了正在秘密研发的 TensorFlow。得知 Google 即将推出这一“巨无霸”级别的框架,MXNet 团队并没有感到沮丧或退缩。相反,这群年轻人在“初生牛犊不怕虎”的激情驱使下,反而激起了强烈的斗志,决定代表学术界和开源社区,与工业界巨头正面碰一碰。

- **CXXNet**:MXNet 的前身之一,由陈天奇和许彬开发,曾被广泛用于打 Kaggle 比赛。 - **混合编程范式**:MXNet 率先在行业内提出并实现了静态图与动态图的混合编程,这一设计思想后来被 PyTorch 和 TensorFlow 2.0 等框架广泛借鉴。

以下是根据您提供的视频转录文本第二部分( -)整理的详细、忠实且富有现场感的走访式笔记。

---

### [59:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=3599s) MXNet 的诞生、辉煌与落幕 在 TensorFlow 官方发布(大约是 2015 或 2016 年的 NeurIPS 期间)前后,MXNet 也正式发布了。当时虽然已经有了 LuaTorch,但 PyTorch 尚未诞生,因此 MXNet 决定采用“Python First”的路线,在当时是一个非常独特且前瞻的特性。MXNet 团队成员大多是当时在各大名校攻读 PhD 的学生,包括在 CMU 的李沐、在 UW 的陈天奇、在 U-Lab 的谢俊源、在 MIT 的张词源以及在 NUS 的林敏和 NYU 的敏捷。一群极具想法的 PhD 聚在一起做项目,并没有产生太多的个人利益冲突,大家纯粹是觉得这个事情有价值、感兴趣,便志同道合地聚在一起往前走。MXNet 投的第一篇 workshop 论文,作者署名也是完全按照字母顺序(alphabetical)排列的。

在这其中,李沐(穆哥)是推动项目成功的中流砥柱。他付出了巨大的努力与牺牲,为了让 MXNet 成功,他毕业后选择去了 Amazon,这也促使 Amazon 在很长一段时间内大力推动 MXNet 的应用与开发。此外,NVIDIA 也在相当长的一段时间里持续为 MXNet 贡献代码。这是因为在所有开源框架中,MXNet 在多卡并行性能上一直是最优秀的,甚至在 PyTorch 诞生后的一段时间内依然保持领先。NVIDIA 为了在 MLPerf 跑分中拿到最好成绩,一直使用 MXNet,直到后来 ResNet 不再那么流行。

尽管 MXNet 曾如此巅峰,但如今它已慢慢淡出历史舞台,不再维护。陈天奇从中吸取到了极其宝贵的教训:“一定要把用户体验做到极致,这一点是非常非常重要的。”当时团队在用户体验和性能之间,天真地觉得“我全都要”,但实际上应该先选择用户体验。此外,工程开发力量的瓶颈也是一大痛点,仅靠当时的人手,去支撑每一代 GPU 的性能迭代是远远不够的。这也直接启发了陈天奇后来转向深度学习编译(TVM)的研究。

- **MXNet 核心团队成员及学校**:李沐(CMU)、陈天奇(UW)、谢俊源(U-Lab)、张词源(MIT)、林敏(NUS)、敏捷(NYU)。 - **MXNet 的技术优势**:在多卡并行性能上长期处于顶尖地位,曾是 NVIDIA 跑分(MLPerf)的御用框架。 - **生态转变的尝试**:MXNet 2.0 曾尝试全面转向命令式模式(Imperative Mode)并兼容 PyTorch,李沐也曾推出 GluonCV 和 GluonNLP 等早期非常好用的项目(类似于后来的 Hugging Face),但由于 PyTorch 社区已经足够壮大,MXNet 最终未能挽回局势。

### [01:04:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=3899s) Google Brain 实习与 Net2Net 的高风险抉择 在 MXNet 之后,陈天奇去往 Google Brain 度过了一个暑假的实习。当时 Ian Goodfellow 刚加入 Google Brain,生成对抗网络(GAN)甚至还没有彻底大火。陈天奇非常幸运地成为了 Ian 的第一个实习生。Ian 是一位非常开放(open-minded)的导师,当陈天奇表达自己对“终身学习”(Lifelong Learning)感兴趣时,两人一拍即合。他们当时共同的愿景是:要让智能越来越强大,模型必须能够演化,其容量(capacity)需要随着时间变大。

为了解决如何让一个训练好的小模型快速、无损地“生长”为一个大模型(bootstrap)的问题,他们开展了 Net2Net 项目。在讨论选题时,Ian 在会议室的白板上画了一个二维坐标系,横纵坐标分别是“风险(Risk)”和“影响力(Impact)”。陈天奇毫不犹豫地选择了那个风险最大、但潜在影响力也最大的课题。陈天奇认为,虽然每个人选择不同,但他经历过很多失败,觉得“再失败一次也没有那么差”,而且人的时间是有限的,应该“almost always”去选择自己真正想做、有挑战的高风险高回报方向。

- **Net2Net 的核心研究问题**:如何将一个已经训练好的小神经网络,在保留其原有能力的前提下,快速扩展(scaling up)成一个容量更大的大模型。 - **科研态度**:做想做的事情最重要,它不一定非要有立竿见影的 Impact,但必须是自己真正有热情的。

### [01:09:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=4199s) 机器学习编译的萌芽与 TVM 的“荒岛建楼” 在 UW 读 PhD 的第三年,陈天奇在撰写关于机器学习系统的文章时,曾想出一个可以用低于线性复杂度训练更深模型的方法。但他的导师 Carlos Guestrin 却对他说,这个东西投出去可能也就是个 NeurIPS 的 Poster,他不应该做这种平庸的研究,而应该去做“Best Paper 级别”的、更深度的研究。Carlos 认为这个方向是 promising 的,但需要设计一个更自动化的方法来选择重计算(recomputation)。虽然陈天奇当时精力有限没能继续深入,但他深刻体会到了“挑选题要挑得深”的重要性。

随后,TVM 项目应运而生。陈天奇始终有一个愿望:“让机器学习系统不那么复杂,让更少的团队通过正确的技术,很快地去搭建一个机器学习系统。”在经历 CXNet 和 MXNet 后,他发现手写算子(kernel)成为了巨大的瓶颈。即使是简单的矩阵乘法,面对不同的数据排布(如 NHWC 或 NCHW)以及不同的硬件形态,最优的算子实现都完全不同,根本“干不过来”。受图像处理编译工具 Halide 的启发,陈天奇决定采用机器学习编译的技术路线,自动生成这些算子。

当时这个领域还是一片荒野,陈天奇形容这就像是在“荒岛上建楼”。他与做体系结构(Architecture)的合作者 Terry 合作,尝试将编译器与 FPGA 上的深度学习加速器(NPU)结合起来。

- **TVM 的研发周期**:从 GTC 回来的 4 月份开始筹备,到第二年 3 月份跑通第一个 Demo,整整写了 11 个月的代码。 - **技术灵感来源**:TVM 早期复用了部分 Halide 的设计。 - **Carlos 的科研教诲**:做一件平庸的事情和做一件重要的事情,花的时间几乎是一样的,所以一定要挑正确且深刻的问题。

### [01:14:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=4499s) 摸着石头过河:设计 VTA 虚拟张量加速器 在开发 TVM 的过程中,陈天奇团队面临着对 NPU 硬件设计并不熟悉的挑战,但他凭借着在 ACM 班从头搭 CPU 和编译器的“初生牛犊不怕虎”的经历,并没有感到恐慌。当时谷歌的 TPU 论文刚发布,外界对 TPU 的具体细节知之甚少。陈天奇团队决定“摸着石头过河”,自己为 NPU 设计了一套指令集。

他们发现,NPU 硬件最核心的瓶颈在于“内存读写”与“计算”这两个操作必须同时进行。当时大部分 NPU 都是完全硬化的(hardware-wired),不可编程,只支持单一的卷积功能。而陈天奇从编译器的角度出发,设计了 VTA(Versatile Tensor Accelerator,通用张量加速器)。VTA 引入了微指令集,将复杂的矩阵乘法分解为更小的步骤,并利用“超线程”(hyperthreading)的概念,通过硬件队列(Queue)和信号(Signal)机制,让一个线程在做内存读写的同时,另一个线程进行计算,从而完美实现了流水线重叠(overlap)。

- **VTA (Versatile Tensor Accelerator)**:一种具有可编程微指令集的虚拟 NPU 架构,支持算子分解与硬件流水线优化。 - **超线程机制在 NPU 中的应用**:通过硬件级别的 Signal 机制防止读写与计算冲突,这种异步编程的思想在如今 NVIDIA 的最新架构中也能看到影子。

### [01:19:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=4799s) 保持初心的勇气与 TVM 的自我革新 当被问及这种“初生牛犊不怕虎”、不断跨界并最终成为领域专家的风格时,陈天奇提到了交大敖平老师曾说过的话:“挑问题非常重要,平庸问题和重要问题花的时间是一样的。”他坦言,尝试新事物永远是“不舒服”(uncomfortable)的,即使到了今天,他依然会感到紧张,面临的挑战甚至更大。

TVM 大约在 2017、2018 年左右发布,并在 2020 年前后(OctoML 成立初期)迎来了社区最黄金的年代。面对如今 PyTorch 推出 `torch.compile`、谷歌拥有 XLA、以及 OpenAI 推出 Triton 的竞争格局,陈天奇对 TVM 的定位依然非常清晰。他认为,大模型部署到各种边缘设备上的工程瓶颈依然没有被解决,硬件的异构性和每一代 GPU 编程模式的变化让问题变得更加复杂。TVM 正在通过自我革新(reinventing),向更垂直、更简化的方向发展,例如通过 WebLLM 和 MLC LLM,将大语言模型直接编译并运行在浏览器网页、手机端以及车载设备上。

- **TVM 的演进心态**:不追求一成不变的解决方案,而是追求框架本身的“可演化性”,已经历了数个大版本的重构。 - **生态整合新动向**:TVM 最近正在尝试将基本的函数调用规范单独抽象出来,以便在 PyTorch、JAX 等其他框架之间实现更方便的相互调用。

### [01:29:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=5399s) 机器学习系统(MLSys)的十五年演化史 陈天奇将过去 15 到 20 年机器学习系统的演进划分为三个关键阶段: 1. **大数据时代(推荐系统主导)**:以 Netflix Challenge 为标志,数据量从几百个点跃升至上亿级别,今日头条等应用借此起家。这一时期的代表系统包括百度内部的大规模线性回归系统(如凤巢)、开源的 Apache Spark 以及陈天奇自己开发的 XGBoost。这些工具解决了“如何把海量数据用起来”的问题。 2. **深度学习突破时代(模式识别主导)**:Alex Krizhevsky 凭借极强的 Hacker 能力,手写了 CUDA ConvNet,用两块 GPU 训练了一个星期,打破了当时“实验只能跑几分钟”的固有认知。随后贾扬清开发了 Caffe,极大地推动了计算机视觉领域对深度学习的采纳。再到后来的 MXNet、TensorFlow 和 PyTorch,将原本需要写两万行 CUDA 代码、耗时六个月的模型开发,缩短到了只需几分钟、写几行 Python 代码即可完成。 3. **大模型时代(协同设计主导)**:系统走到了台前。模型的设计必须与系统协同考虑(Co-design),系统不仅要支撑超大规模的训练(scale up),还要解决极低延迟、极低成本的部署(deploy)。

- **MLSys 的学科定位**:它是一个像数据库系统一样、完全由“问题驱动”的学科。 - **未来 MLSys 的重要方向**:大模型优化、硬件适配与软件 Bring-up 瓶颈的消除、Agent 系统的系统级支持,以及“用 AI 来优化机器学习系统工程本身”(AI for MLSys)。

### [01:34:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=5699s) 端测推理(MLC LLM)与大模型时代的系统挑战 为了深入探索大语言模型的实际优化瓶颈,陈天奇团队推出了 MLC LLM 项目。这是一个利用 TVM 编译技术实现的、跨云端与端测的统一推理引擎,目前已成功在 iPhone、安卓手机、AMD 显卡和 MacBook 上部署了 Llama 2 等大模型。

针对“端测推理是否真的有需求”这一疑问,陈天奇认为,虽然目前大部分推理都发生在云端,但随着预训练技术的边际效应递减,大家会越来越关注成本(Cost)、隐私(Privacy)和定制化(Specialization)。如果本地端测模型的能力能够达到“够用”的临界点,整个格局就会发生像“从大型机(Mainframe)到个人电脑(PC)”那样的个人化转变。

面对大模型结构趋同(如 Transformer 统治市场,少数几个大模型占据 99% 流量)是否会导致 MLSys 社区衰败的问题,陈天奇给出了否定的回答。他指出,复杂度的来源是双向的:一方面是模型,另一方面是硬件。为了追求极致的效率,每一代芯片都在走向专用化(Specialized),其底层的软件适配极其复杂。DeepSeek 针对其特定应用场景和硬件环境进行的协同设计并取得极高效率,就是一个最好的证明。

- **MLC LLM 的核心价值**:通过编译技术自动适配异构硬件,避免了为每个平台手写算子的人力黑洞。 - **Hardware Lottery(硬件彩票)**:硬件的物理特性限制了模型的发展走向,但也倒逼系统与模型进行更深度的绑定与创新。

### [01:44:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=6299s) 学术界做 MLSys 的生存之道与开源信仰 在 Frontier AI Lab(如 OpenAI、Anthropic)动辄拥有万卡甚至十万卡集群的今天,学术界在算力规模上确实存在两到三个数量级的差距。但陈天奇认为,“缺乏资源也是一种逼迫人们变得更有创造力的机会(Lack of resource is also an opportunity to make people more creative)”。大公司可以派 100 个人去用蛮力解决一个通道适配问题,而学校必须用聪明的编译技术去优雅地解决。

此外,开源社区的共建(如 vLLM、FlashAttention 等源自高校但风靡业界的项目)以及像 CMU 联合建立的拥有百卡级别最新 GPU 的 Flame Center,都为学术界提供了充足的研究空间。陈天奇建议年轻的 PhD 应该去寻找那些垂直领域的痛点,例如他们去年针对 Agent 结构化数据生成(JSON 格式化输出)开发的 `exllamav2` / `SGLang` 相关的 `XGrammar` 项目,如今已成为开源社区的事实标准。

作为开源与开放科学(Open Source & Open Science)的坚定信仰者,陈天奇认为开源对高校研究至关重要。在工业界,新人往往只能负责大系统的一个小螺丝钉;而在博士期间主导一个开源项目,能给学生提供从头架构一个大系统的宝贵机会。

- **开源的代价**:开源并不是免费的,它需要研究者花费大量时间去看 Issue、修 Bug、与社区互动,这在传统的学术评价体系(发论文)中并没有直接的产出。 - **社区构建的核心**:技术本身要正确且让人信服,同时需要持续的 Passion 去 build trust。如果一个项目火了之后突然不维护了,社区就会失去信任。

### [01:54:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=6899s) 创立 OctoML 的初心:为了开源社区的繁荣 OctoML 是一个基于 TVM 开源项目成立的商业初创公司。陈天奇坦言,他当时决定加入并共同创立 OctoML 的动机非常纯粹,甚至在商业上显得有些“不合常规”——他是为了让 TVM 开源社区更加成功,才去做了这个 Startup。

对于“开源项目做得太好,会导致商业公司卖不出去产品”的常见困境(例如一些基于开源框架的初创公司面临的商业化瓶颈),陈天奇有着非常豁达的看法。他认为,几乎所有初创公司起步时想做的事情,和最后真正做成的事情,一定是不一样的。Databricks 起步于 Spark,但如今 Spark 已经不是其最主要的商业收入来源。开源是一个极佳的起点,它能帮你快速拿到社区反馈、建立行业标准和影响力,但它绝不是终点。

- **商业化路径**:基于开源做 Startup 并没有天生的劣势,它只是一种不同的路径。像 Red Hat 和 Databricks 都是这条路径上非常成功的典范。

[01:59:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=7199s) OctoML 的商业模式演变与创业中的“人”

陈天奇回顾了 OctoML(以下简称 Octo)商业模式的几次重大转变。在公司创立之初,大模型尚未如今日般火爆,团队最初的设想是通过机器学习编译技术,帮助用户将模型优化并快速部署到更多的硬件上。因此,早期的潜在客户主要是硬件厂商以及有机器学习部署需求的企业。然而在大约两年前,公司做出了一个非常明确的转型,开始转向提供机器学习部署服务,类似于如今 Fireworks、Together 等 API 服务商的角色。此时,机器学习编译退居幕后,成为支撑这一服务更好、更快运行的核心技术。

在转型后,Octo 的主要业务变成了帮助客户大规模部署模型(例如在云端高效部署 Llama),并最终演变为端点业务(Endpoint Business),即直接提供 Llama 等模型的 API 供客户调用。面对这一竞争极其激烈的市场,大家都在拼谁的推理成本更低、API 更便宜。尽管在产品形态上仍有创新空间(例如加入 Multi-LoRA 推理),但陈天奇坦言,这与他最初加入 Octo 时设想的赚钱方式大相径庭。不过,他对此早有心理准备。在加入 Octo 之前,他曾观察过导师创办的初创公司 Turi(最初做大规模图处理软件 GraphLab,到被收购时已完全转型为数据科学平台)。他深知,创业开始做的事情与最终做成的事情往往大不相同,只要在这个过程中能找到协同效应(Synergy Point),做出好技术并推动开源社区发展,就是一件好事。

在谈到创业中未曾预料到的教训时,陈天奇强调,技术之外的“人”的因素(Human Factor)至关重要。如何与人交流、如何在大型团队中扮演领导角色,以及如何顺应时代发展快速进行技术转型、敢于自我重塑(Reinvent Yourself),都是极大的挑战。此外,陈天奇在创立 Octo 之初就非常明确自己不想当 CEO,因为 CEO 需要放弃很多技术专注度,而他的热情始终在做优秀的技术上。在 Octo,他第一年全职负责基础技术构建,之后则主要负责大方向和下一代技术的研究。

- **商业模式转变**:从最初的“机器编译加速与多硬件部署”转型为“直接提供模型 API 服务的 Endpoint 业务”。 - **CEO 角色的选择**:陈天奇明确拒绝担任 CEO,选择专注于技术方向与研究。 - **创业核心教训**:人际沟通与团队领导力(Human Factor)的重要性,不亚于技术本身。

---

[02:04:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=7499s) 技术重构的阵痛与 NVIDIA 收购后的新征程

在技术路线的坚持上,陈天奇提到,为了保证技术能够“面向未来”(Future Proof),团队在 TVM 编译技术上进行了数轮迭代。特别是在支持大语言模型(LLM)时,他们几乎推翻了原有的图编译部分,重新构建了一个名为 Relax 的框架(CMU 的同学也参与了相关开源工作)。这种“推翻重来”的决定在当时并不能得到所有人的认可,因为现有的技术虽然有坑,但短期内能解决问题。在“花时间自我重构”与“直接打补丁”之间,陈天奇毅然选择了前者。他认为,如果不主动重构,终有一天会被技术债(Technical Debt)反噬。

从 2019 年 Octo 创立到 2024 年底宣布被 NVIDIA 收购,这五年多的创业历程以被巨头收购告终。陈天奇表示,在埋头做事时他从未预设过退出方式,但现在回看,加入 NVIDIA 是一个非常好的机会。目前他们整个团队在 NVIDIA 负责机器学习编译工作,而 NVIDIA 收购 Octo 的一大原因正是为了加强其在 AI 编译器(AI Compiler)方向的力量。在 NVIDIA,跨越数据中心 GPU(如 Blackwell)到边缘计算芯片(如 Thor)的跨代、跨平台部署问题依然存在,因此“通用部署”(Universal Deployment)的研究依然极具价值,开源社区也仍有空间去推动可移植部署的发展。

当被问及如果重来一次会做出什么不同的选择时,陈天奇认为很难假设,因为每一个选择和承诺都是旅程的一部分,伴随着正反两面的教训。在战略(Strategy)层面,除了寻找产品与市场契合度(Product Market Fit)之外,他坚信“做优秀的技术始终是没有错的”。如果两年前 Octo 还在继续优化 ResNet,结局会非常惨烈。技术必须不断突破和革新。虽然他自认带有一点理想主义,但这段创业经历让他变得更加现实,学会了如何通过现实的方式去更好地实现理想。

- **Relax 框架**:为了支持大模型,推翻原有图编译技术而重构的全新编译器框架。 - **NVIDIA 收购背景**:NVIDIA 旨在增强其 AI 编译器方向的技术实力;陈天奇团队目前在 NV 内部继续攻克跨平台部署难题。 - **技术卓越性**:陈天奇坚信技术必须不断自我革命,不能抱残守缺。

---

[02:09:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=7799s) 坚守一线的教授与 Cursor 辅助的重构

作为 CMU 的教授,陈天奇在临近博士毕业时决定投身学术界,因为他热爱科研的未知性,享受与学生一起解决新问题,并热爱教学。在过去五年中,他大约将 80% 的精力放在教职上,20% 放在创业公司。尽管这两个身份都偏向于定方向和管理,但他依然非常怀念并期待能有当一个硬核、高强度写代码的独立贡献者(Individual Contributor)的时光。他表示,自己目前的首要任务是支持团队成员,但只要有必要,他随时愿意“下沉到一线”(On the Ground)。

陈天奇透露,自己至今仍会抽时间写代码,其 GitHub 提交记录虽然不那么频繁,但依然是绿色的。在过去的一年里,他几乎从底层(Ground Up)重新编写了 TVM 最核心的部分。由于这是一次长达半年以上的重构,代码在本地修改期间无法通过所有测试,因此没有频繁提交。许多教授在入职第一天起就不再写代码,但陈天奇因为觉得“好玩”而选择坚守一线。他提到,AI 工具的出现极大地降低了一线重构的难度,他目前正在使用 Cursor。

他认为,在一线写代码能让他对技术现状保持敏锐的触觉(Get a Good Sense of What's Going On)。虽然不同的人有不同的“超能力”(Super Power),有的人擅长 CEO 式的宏观领导,而像 Jeff Dean 这样的人则通过一手的一线经验(First-hand Experience)来推动技术突破。陈天奇选择了一线写代码这种让自己感到幸福的方式。他开玩笑说,也许未来 AI Agent 会替代所有的编码需求,写代码将彻底变成一种“娱乐性”(Recreational)的活动。

- **教职与创业的平衡**:80% 精力用于 CMU 教研,20% 用于 Octo 的高层技术指导。 - **一线重构 TVM**:陈天奇在过去一年亲自操刀,从底层重构 TVM 核心代码,历时半年以上。 - **开发工具**:使用 Cursor 等 AI 辅助工具,认为 AI 极大地赋能了一线硬核重构。

---

[02:14:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=8099s) 沉淀式研究与应对 2025 年 AI 变革的挑战

在精力管理方面,陈天奇并不认为自己的产出绝对高效。在学术发表上,他会有意识地“少做一些项目”,以便集中精力深挖有价值的方向。在 CMU 期间,他对 Octo 的日常运营基本不参与,这得益于他有优秀的联合创始人负责 Day-to-day 运营,以及非常独立的博士生在推动研究。

针对当前 AI 研究节奏极快、三四个月就迭代一个项目的现状,陈天奇依然坚持“以年为单位”的沉淀式研究风格。他用“捕鱼”打比方:一种方式是拿着叉子看鱼游过去就去叉,往往叉不准;另一种方式是默默编织一张网,等鱼群来临时自然能捕到。优秀的工作需要积淀,看似快速推出的成果,背后往往是多年积累的爆发。面对 2025 年 AI 和机器学习系统(MLSys)研究的新挑战,虽然算力资源竞争激烈,但他认为“从第一性原理(First Principle)出发”依然是每个时代通用的解题思路。他回忆起 20 年前刚入行时,有文员感叹支持向量机(SVM)的优化方法已经非常完美、好问题都被做光了,但事实证明,每个时代都会涌现出全新的、更重要的问题。

在导师风格上,陈天奇深受 Carlos Guestrin 的影响,强调做有深度的、有影响力的工作,并注重论文写作的易读性(Accessible)。同时,得益于当年做 MXNet 的积极经历,他非常鼓励团队合作,致力于将研究项目推动到真正的应用落地(Adoption)阶段。面对业界(如 xAI、OpenAI)对顶尖 MLSys 人才的抢夺,陈天奇吸引优秀学生读博的主张是:读博是一笔“长线投资”(Longer Investment),学术界在自由度以及对“犯错”的容忍时间尺度上,始终比工业界更大,这能给有想法的同学提供更广阔的空间。

- **研究哲学**:不盲目追逐短期热点,提倡“编网捕鱼”式的长期沉淀研究。 - **导师风格**:强调研究的深度、论文的易读性,以及将研究推向实际落地。 - **学术界的优势**:相比工业界,学术界对“犯错”拥有更大的容忍时间尺度和更高的自由度。

---

[02:19:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=8399s) 随机过程的稳态与选择的底层逻辑

陈天奇在 2019 年曾写道,如果明天某种化学反应能解决机器学习系统的问题,他会毫不犹豫地去学习化学。时隔六年,他依然坚持这种“实事求是、解决实际问题”的研究风格。对于李沐在他文章下时隔五年的评论,以及他在十年总结中写下的“随机过程总会收敛到和付出相称的稳态”,陈天奇解释说,这在数学上是一个定理——虽然短期内充满随机与挫折,但长期做时间平均(Time Average)后一定会达到稳态。

在充满不确定性的科研与创业中,坚守长期主义极其困难。一旦选择走出舒适区,遭遇挫折的概率就会大大增加。陈天奇认为,克服挫败感需要接受“失败并不可怕”的事实,并不断给自己鼓励。他的初心非常纯粹:希望让每个人都能创造并使用自己想要的人工智能系统。

回顾人生中每一个看似顺理成章、实则充满分岔路口的选择(如在 XGBoost、MXNet、TVM 之后的抉择),陈天奇的底层逻辑是问自己一个略带理想主义的问题:“如果选了这条路并且失败了,我会不会后悔?”他发现,人们后悔的往往不是有没有获得成功,而是自己有没有选择走那条理想中想走的路。只要能享受过程,即使像他本科时创办的匿名论坛“无可奉告”在半年内被关停、且导致当时绩点不佳,如今回想起来依然是最值得回味、最不后悔的经历。

- **稳态理论**:将人生与科研视为随机过程,坚信长期的时间平均(Time Average)会带来与付出相称的稳态。 - **选择的底层逻辑**:以“即使失败是否会后悔”作为决策的终极标准,带有现实主义路径下的理想主义色彩。 - **初心**:降低 AI 门槛,让每个人都能创造和使用人工智能。

---

[02:24:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=8699s) 保持初心的挑战与对成功的重新定义

站在 2025 年 9 月 5 日这个时间节点上,经历了科研的十年磨一剑、创业的 0 到 1 退出,以及即将获得的教职终身制(Tenure),陈天奇认为未来五到十年最难的事情是“保持初心和热情”。随着年龄增长和见识变广,人往往会开始担心竞争与失败。当年做 MXNet 时,团队完全不担心 TensorFlow 的竞争,有一种“初生牛犊不怕虎”的拼劲;而现在拥有了更多资源、带领着更大的团队,不可避免地会面临如何 justify 资源、如何保证团队成功的现实压力。

尽管如此,陈天奇觉得自己依然是幸运的,因为 CMU 的平台允许他继续做高风险(Risky)的研究。只要愿意接受失败,现在能做的事情其实比十年前更多。对于 AGI(通用人工智能),陈天奇坦言自己对宏观定义并不感兴趣,他更看重其实际应用价值(Pragmatic Usefulness),例如能否让一个人的团队去撬动过去需要 100 人的工作。他的系统研究始终坚持一个方向:用更少的资源、更自动地做更多的事情。

展望未来,陈天奇个人更希望看到一个“百花齐放”、由开源和多元个体主导创新的 AI 世界,但这需要每个人的努力。如果能对过去和未来的自己说话,他希望彼此提醒:“记住自己对自己的承诺,坚持理想往下走。”

对于“成功”与“幸福”,陈天奇也有了新的理解。他认为成功最重要的是“问心无愧”,在技术上影响世界并为大家做出贡献。而最理想的人生状态,则是“和大家一起解决想解决的问题”,无论是以教授、创业者还是程序员的身份,解决问题本身以及与志同道合的人并肩作战,就是最大的乐趣。他希望十年、二十年后的自己,依然是一个“经历了更多次失败,却依然能保持最初心态去迎接挑战”的人。

- **AGI 的务实定义**:不纠结于概念,关注能否切实提高生产力(如一人撬动百人团队)。 - **成功的定义**:在技术上产生影响力,为世界做出贡献,做到问心无愧。 - **未来的期许**:希望未来的自己拥有更多次失败的徽章,但依然保有初生牛犊般的勇气。

## Notable quotes > [00:00](https://www.bilibili.com/video/BV1s6pgzLE3y?t=0s) 可能要反过来,我需要过去的我对现在的我,现在的我对未来的我说,记住自己对自己的承诺,坚持自己的理想,往下走下去 — 陈天奇

> [14:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=899s) 在正确的问题上,锁死并坚持了一个错误的方法 — 陈天奇

> [14:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=899s) 失败了自己也还活得好好的,没什么大不了 — 陈天奇

> [01:09:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=4199s) 做一件事或者做平庸的事情和做一件重要的事情,花的时间几乎是一样的,所以一定要挑正确且深刻的问题 — Carlos Guestrin

> [01:09:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=4199s) 让机器学习系统不那么复杂,让更少的团队通过正确的技术,很快地去搭建一个机器学习系统 — 陈天奇

> [01:19:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=4799s) 挑问题非常重要,平庸问题和重要问题花的时间是一样的 — 敖平

> [01:44:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=6299s) 缺乏资源也是一种逼迫人们变得更有创造力的机会 — 陈天奇

> [02:04:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=7499s) 做优秀的技术始终是没有错的 — 陈天奇

> [02:14:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=8099s) 以年为单位 — 陈天奇

> [02:14:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=8099s) 一种方式是拿着叉子看鱼游过去就去叉,往往叉不准;另一种方式是默默编织一张网,等鱼群来临时自然能捕到 — 陈天奇

> [02:19:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=8399s) 随机过程总会收敛到和付出相称的稳态 — 陈天奇

> [02:19:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=8399s) 如果选了这条路并且失败了,我会不会后悔? — 陈天奇

> [02:19:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=8399s) 人们后悔的往往不是有没有获得成功,而是自己有没有选择走那条理想中想走的路 — 陈天奇

> [02:24:59](https://www.bilibili.com/video/BV1s6pgzLE3y?t=8699s) 和大家一起解决想解决的问题 — 陈天奇

## Mentioned 陈天奇, XGBoost, MXNet, TVM, MLC LLM, OctoML, 松阳二中, 何老师, 大龙数, 俞勇, 上海交通大学, ACM 班, 戴文渊, 薛贵荣, 林源, 李飞飞, ImageNet, 李航, 杨强, 华盛顿大学, Carlos Guestrin, Lime, 许彬, CXXNet, TensorFlow, 张峥, 陈敏捷, Minerva, 林敏, Purine, 贾扬清, Caffe, 李沐, Parameter Server, 张池源, Mocha, PyTorch, 谢俊源, 敏捷, Amazon, NVIDIA, MLPerf, GluonCV, GluonNLP, Ian Goodfellow, Google Brain, Net2Net, Halide, Terry, VTA, TPU, WebLLM, JAX, Triton, XLA, Apache Spark, Alex Krizhevsky, CUDA ConvNet, DeepSeek, vLLM, FlashAttention, Flame Center, XGrammar, SGLang, exllamav2, Databricks, Red Hat, Fireworks, Together, Turi, GraphLab, Relax, Blackwell, Thor, CMU, Cursor, Jeff Dean, xAI, OpenAI, Anthropic

[Source](https://www.bilibili.com/video/BV1s6pgzLE3y)

中文简报

陈天奇:边缘异构软件适配极其复杂,机器学习编译成大模型降本突围关键 在 Frontier AI Lab 万卡集群的算力垄断下,学术界与开源社区通过机器学习编译自动适配异构硬件,将是解决大模型端侧推理成本、隐私与定制化瓶颈的必然路径。 本期播客全面回顾了著名计算机科学家陈天奇的科研与创业历程。陈天奇分享了他从县城少年的编译器梦出发,在交大 ACM 班打下扎实系统功底,并在图像分类研究中经历两年“零论文”挫折后建立起对失败脱敏的豁达心态;详细拆解了 XGBoost 的极致工程、MXNet 面对工业界巨头的正面交锋,以及 TVM 和 MLC LLM 在深度学习编译与端侧推理上的开创性探索。此外,他还深入探讨了机器学习系统(MLSys)的演化史,并回顾了 OctoML 创业模式的转变与最终被 NVIDIA 收购的历程,阐述了其“把人生视为随机过程并终将收敛于稳态”的长期主义哲学。 高二暑假自学手写编译器并进入交大 ACM 班,培养了陈天奇对计算机底层的浓厚兴趣以及“初生牛犊不怕虎”的探索底气。 (0:00) 大三时在 ImageNet 上死磕受限玻尔兹曼机(RBM)并经历长达两年的零论文失败,让他深刻意识到不能在正确问题上固守错误方法,并由此对科研失败彻底脱敏。 (14:59) 在华盛顿大学攻读博士期间,陈天奇通过将工程与算法优化推至极致、专注于打磨单一算法并借助全球开源社区的力量,成功打造出风靡全球的 XGBoost。 (29:59) 在经历深度学习框架 MXNet 的多方合流与实战后,他开创了深度学习编译工具 TVM,致力于化解海量异构硬件上手写算子的巨大瓶颈并大幅降低系统复杂度。 (69:59) 联合创立 OctoML 推动开源商业化并在公司被 NVIDIA 收购后重返底层代码重构,陈天奇始终秉持“随机过程长期收敛于稳态”的长期主义,以“即使失败也不后悔”作为人生的底层决策逻辑。 (114:59)

Reading summary

陈天奇结合其主导开发 XGBoost、MXNet、TVM 以及创立 OctoML 的经历,阐述了以解决工程瓶颈为核心的机器学习系统(MLSys)演进逻辑。他认为,技术突破依赖于对高风险课题的承担与以年为单位的长期沉淀,系统研发必须将用户体验置于首位,并通过主动重构与开源生态来化解持续累积的工程复杂度。 问题驱动的系统哲学与极端性能优化 (29:59) 陈天奇将自己的科研类型界定为“实际问题驱动”,即通过打造能规模化扩展(scale up)的系统工具来突破关键瓶颈。在华盛顿大学攻读博士期间,为验证海量数据结合非线性表达的树模型能否媲美深度学习,他针对当时树模型计算迟缓的系统限制动手攻关,最终促成了 XGBoost 的诞生。 陈天奇总结,XGBoost 的风靡源于三点核心要素:将底层工程与算法优化做到极致以实现顶尖运算速度;吸取早期项目功能冗余的教训、专注打磨单一算法;以及通过开源吸引全球各行业贡献者。他将 15 至 20 年来的 MLSys 划分为三大阶段:推荐系统主导的大数据时代(如凤巢与 XGBoost)、模式识别主导的深度学习框架时代(如 Caffe、MXNet 与 PyTorch),以及当下软硬件协同设计(Co-design)主导的大模型时代。在算力与模型规模爆炸的背景下,消除硬件适配瓶颈与系统工程自优化成为核心命题。 试错脱敏、体验优先与技术的推倒重来 (59:59) 在交大 APEX 实验室期间,陈天奇团队曾花费两年尝试用受限玻尔兹曼机(RBM)挑战 ImageNet 图像分类,耗时六个月纯手工编写 C++ 与 CUDA 底层反向传播代码,最终效果却无法击败传统 SVM。这段“零论文”的挫折让他意识到“在正确问题上锁死错误方法”的代价,但也促成了他对科研失败的心理脱敏,使其日后在面对 Google Brain 的 Net2Net 等高风险选题时更加果决。 这一反思同样体现在框架竞争中。由多校博士联合推动的 MXNet 曾凭借卓越的多卡并行效率长期领跑 MLPerf 评测并获 NVIDIA 支持,但最终淡出历史舞台。陈天奇反思,团队当年在性能与易用性间天真地试图兼得,而未能如 PyTorch 那样坚决将用户体验置于首位;同时,海量硬件手写算子的人力投入成为不可承受之重。这促使他转向深度学习编译器 TVM 的研究,并在此后支持大语言模型时坚决推翻既有图编译体系重构了 Relax 框架。他强调,技术必须敢于主动重构以抵御技术债的反噬。 开源信仰、端侧演进与算力落差下的学术生存 (104:59) 陈天奇于 2019 年参与创立 OctoML,其初衷是为 TVM 开源社区提供支撑。公司历经了从底层编译器硬件部署向端点推理 API 服务的商业模式转型,最终于 2024 年底被 NVIDIA 收购以强化其 AI 编译器能力。陈天奇指出,初创公司的最终形态与起点往往大相径庭,开源虽不是商业终点,却是确立行业标准与获取真实反馈的最佳路径。 面对工业界前沿实验室数十万卡集群的算力鸿沟,陈天奇认为学术界落后两到三个数量级并不意味着出路断绝。大公司可用蛮力堆砌人力适配通道,而资源匮乏反过来会倒逼高校寻求更优雅、通用的编译技术解法。例如其团队研发的跨平台推理引擎 MLC LLM,以及针对大模型结构化输出的 XGrammar,均试图在异构硬件与端侧边缘设备上释放算力。他预测,随着云端预训练边际效应递减,隐私、成本与定制化需求将推动端侧智能出现类似“大型机向个人 PC”演进的范式转移。 “编网捕鱼”沉淀研究与坚守一线代码实践 (139:59) 在快节奏迭代与追逐短期热点的科研环境中,陈天奇倡导“以年为单位”的沉淀式研究。他将这种路径比作“编网捕鱼”:与其盲目用鱼叉追踪游鱼,不如静心结网等待时机成熟。他将科研与人生选择视作数学上的随机过程,坚信短期虽充满不确定性与失败,但经过长时间平均(Time Average)后,最终一定会收敛至与付出相称的稳态。 在做重大决定时,陈天奇的底层标准是“即使失败了自己会不会后悔”。作为卡耐基梅隆大学(CMU)的终身教职教授,他仍坚持保留一线程序员的敏锐嗅觉。在过去一年中,他利用 Cursor 等 AI 辅助工具,历时半年以上亲自操刀从底层重构 TVM 的核心代码。他认为亲自写代码不仅能保持对底层技术的触感,更是带来纯粹乐趣的支柱。 陈天奇对技术的期许落脚于降低门槛,主张通过务实的系统优化让单人团队具备撬动百人工程的生产力。面对 2025 年后技术与硬件的深度绑定,他承认随着身处平台的资源与团队规模扩大,维系早年“初生牛犊不怕虎”的无畏初心会面临现实阻力;学术界与开源社区能否在大模型结构趋同与巨头资源垄断的夹缝中,持续构建多元开放的 AI 系统生态,仍是有待长期检验的命题。

Source quotes

[0:00] 陈天奇: 可能要反过来,我需要过去的我对现在的我,现在的我对未来的我说,记住自己对自己的承诺,坚持自己的理想,往下走下去 [14:59] 陈天奇: 在正确的问题上,锁死并坚持了一个错误的方法 [14:59] 陈天奇: 失败了自己也还活得好好的,没什么大不了 [69:59] Carlos Guestrin: 做一件事或者做平庸的事情和做一件重要的事情,花的时间几乎是一样的,所以一定要挑正确且深刻的问题 [69:59] 陈天奇: 让机器学习系统不那么复杂,让更少的团队通过正确的技术,很快地去搭建一个机器学习系统 [79:59] 敖平: 挑问题非常重要,平庸问题和重要问题花的时间是一样的 [104:59] 陈天奇: 缺乏资源也是一种逼迫人们变得更有创造力的机会 [124:59] 陈天奇: 做优秀的技术始终是没有错的 [134:59] 陈天奇: 以年为单位 [134:59] 陈天奇: 一种方式是拿着叉子看鱼游过去就去叉,往往叉不准;另一种方式是默默编织一张网,等鱼群来临时自然能捕到 [139:59] 陈天奇: 随机过程总会收敛到和付出相称的稳态 [139:59] 陈天奇: 如果选了这条路并且失败了,我会不会后悔? [139:59] 陈天奇: 人们后悔的往往不是有没有获得成功,而是自己有没有选择走那条理想中想走的路 [144:59] 陈天奇: 和大家一起解决想解决的问题

Original transcript

[0:00] 我们刚开始做MXNet的时候完全不会担心TensorFlow能够对我们产生什么的竞争你去做一件比较平庸的问题和一个重要的问题花的时间几乎是一样的时间是有限的所以一定要做想要做的事情我觉得很多时候你的勇气可能是你过去的自己给你自己的约定其实最后你开始startup之后开始要想要做的东西和你后面要做的东西肯定是不一样的所有东西你都必须要能够reinvent yourself还是继续抱着我们原来的技术路线就是继续去优化Resnet这个我觉得最后我们会输得很惨这段经历会让我觉得我会更现实我会知道说怎么样能够通过现实的方式去更好的实现理想我还在一起期待我现在还在一起期待失败也没那么可怕然后要接受可以失败这个事实其实我觉得现在的我最难的事情还是要保持初心哈喽大家好如果你学过机器学习那么你对以下几个名字不会陌生XGBoostMXNetTVMMLCALM而在这几个项目名背后有一个共同的名字它就是本期嘉宾陈天奇过去15年陈天奇把让机器学习模型更轻更快更易部署做成了一条清晰的技术主线对我而言陈天奇不仅仅是AI领域一个响亮的人民它还影响了我对机器学习和科研最早的认知2019年陈天奇写下知乎文章机器学习科研这10年收获上万点赞转眼6年过去了陈天奇在机器学习这条路上已经走了快20年从最早的大数据再到深度学习再到今天的大模型从陈天奇的视角看这20年的激荡会是什么样的风景在这期节目你会听到我和陈天奇会把他的每一个开源项目都拆解清楚也会走进陈天奇的个人经历他年少如何与计算机相遇高二的时候如何自学写编译器在交大ACM班打下系统功底在U-Dub的科研突破到最后同时走向创业和教职两条路更重要的我们还聊到了陈天奇的底层价值观长期主义如何落地如何在不确定性中坚持敢失败的勇气在科研创业教职三条路都获得成功后陈天琪在筹划着什么样的下一步这里是WynetTV Podcast现在请和我一起进入陈天琪的世界在同年的时期在接触计算机和机器学习之前那个时候的你对什么事物最感兴趣我觉得关于就是去大学之前那么我觉得最有趣的经历还是怎么样开始接触计算机的两个人经历就是我是我的高中是在一个浙江省的一个小县城的县中而且他现在就是排名是不是那个县最好的种学原因是因为我母亲他是那边的高中老师然后我们当时觉得就是自己在自己地方上学也挺好的于是就在那个叫松阳二中然后在那个时候其实在初中的时候我们当时就是一开始的时候我开始有点想要接触计算机原因是因为当时觉得这个就是有电脑然后你可以上网有很多人可以做网页非常的酷于是我当时就找到了当时我们计算机的一个启蒙老师他在我叫何老师然后他这个我就问他说你能不能教我学计算机当时我的想法是我可以马上学会做这个做网页然后做很多炫酷的东西然后他给了我一本C语言编程路门那时候你多少岁那时候应该是上初中吧上刚上高中的时候应该是00年左右对差不多应该不是00年我是06年上了大学03年左右03年左右对然后当时就是就开始学习变成条路但是基本上在高中生亚中都没有学会做网络和做游戏基本上就是差不多是差不多是这样子然后而且我当时觉得比较幸运的是其实就是当时其实信息竞赛在网上已经有非常多的资料了就是你可以找到那个OJ当时有一个forum叫做大龙数现在已经大概不在了大龙数对叫大龙数是做OI的那个一个论坛然后因为其实我的秦宏老师他本身不是做比赛这方面他只是就是做交计算机所以其实当时我们在一个线中并没有任何的资源可以去就是就是入门这个东西但是因为现在当时网上有online judge然后有有公开的资源所以基本上我就在那个时候就开始自学这个编程和开始打比赛当时就是然后呃然后当时就是学完之后其实在呃高二的时候因为我当时开始比较晚了就高二的时候去参与 [4:59] NIP就省赛当时我记得比较清楚的是出赛没有过然后后来 somehow去还是去tag along去参加了一下这个最后的那个神选不是不是神选应该是神里面那个比赛然后最后发现最后就拿了二等奖当时然后后来第二年的时候高三的时候是是拿了一等奖就基本上全部是自学这个东西然后所以我就那段时间的经历其实对于我后面选择计算机这条路其实非常的有很大的影响而且我觉得当时就让我感觉到其实因为有互联网它可以让我们比较自由的接触到这些信息可以就是让我一个相当于炒根拳手也可以慢慢的进入到这个领域里面来我觉得that's really amazing然后另外一个比较有趣的事情就是可能因为当时我一开始的时候就不是特别的有点出声牛途那种感觉就是呃其实我在高高二的时候当时就因为自己兴趣嘛就我像当时就尝试开始自己写编译器当时就是就是觉得哎这个东西很苦因为当时我们做那个online judge的时候呢其实是大部分的编程语言在我高中的时候主流的竞赛语言是pass call然后我自己是写C语言当时为什么你写C别人写pass call因为可能纯粹就是因为我的我当时入门的时候就学了C就只有C语言因为我没有正规的比如说我如果说是在一个正常有竞赛教练培训的学校估计当时大家都是all go past school因为that's the standard但是因为我是自己就是野路子出家然后当时又看了C语言所以你学这个计算机精神是自学的对基本上是自学的那当时你是出于自己升学的角度考虑为了未来打算还是你纯兴趣就是一开始纯兴趣当然就是纯兴趣然后有人建议说你为什么要不要去打打赶比赛I think that's very然后其实你刚一个小孩子当时刚开始做这个东西的时候发现你可以这个就教OJ你可以就那个还是非常有reward experience所以就是开始get into it而且当时因为做OI其实还是有一些online community的嘛就大家大家在有论坛大家可以交流我觉得这个会非常的好对然后就是另外一个就是当时我就开始自己学写编译器就当时因为有这个主要的语言是Pascal然后我自己写C所以当时有个想法就是是不是写一个编译器它是transpile就是你把一个Pascal transpile成C然后就是自己堪次堪次的搞了一个暑假最后搞出来一个能用的版本就是这个是可能是一个契机让我开始去对就是比较深入的做计算机有这样的兴趣所以你对计算机的兴趣在这之前有什么影响吗因为可能很多人都喜欢计算机但最后都打游戏玩电子游戏去了你为什么会开始自学编程首先我也喜欢玩电子游戏其实我一直一直都打游戏OK然后而且学计算机的一个motivation就是能够自己创造游戏当然这个motivation一直没有实现的但是就是一个契机就是觉得希望能够自己创造游戏一开始的时候然后当然学进去之后发现这个地方还是有很多有趣的东西于是就开始往这条道路上开始前进了有意思我们上一期的嘉宾胡远明也就是小学的时候就开始做电子游戏了ok ok对对对所以在18岁之前的这段经历来说你现在想起来有没有什么故事或者经历让你觉得时至今日看来对你产生了其实挺深渊的影响对我觉得就是我在高中从零开始打编译器那一个经历其实是也不算编译器其实就是一个mini transpiler那个地方但是就是基本上因为因为我当时的环境是一个就是一个一个一个小地方对吧但是当时所以说也没有一开始没有见识到很多很广的各种各路高手这种感觉但是又因为有互联网可以能够和看到说有很多很多厉害的人在这个世界上面但是反过来说当时总是有一个经历感觉到说我自己可以尝试然后失败了也没有什么关系所以说就比如说自己尝试其实当时做编译戏花了一个暑假其实他从架构到写什么东西都没有现成的教程那个时候应该没有Github你去说没有Github就纯粹就是自己在应该是一开始Windows后来用了Linux上面自己管理这个项目在小本本上面记说我这个地方要有这个模型 [9:59] 这个模块这个模块然后他们应该怎么交互然后对然后就是纯粹的这样子把一个东西搞起来之后感觉对于后面就是就是我觉得是不怕干事情我觉得这一点上面是有很大的影响其实我和包括你的学生和你的一些认识你的人交流他们一直跟我说你给人一种很温和的印象你觉得这种性格是你童年时期与生俱来的吗还是后来的经历慢慢把你塑造成了这样这个我觉得我觉得这个是很难说就是说我觉得至少有一点就是在至少在大学的阶段特别是A3Mandalan经历其实于庸老师他特别注重强调跟我们说你需要低调就能高调做事我觉得这一点对我们影响很大而且的确我觉得在整个职业生涯中接受到各种各样的我觉得很多时候我可以发现首先我觉得要有做事是需要有锐气的就是你在你在去完成一件事情的时候you have to be ambitious对吧但是in the meantime我觉得很多时候你之所能够成一件事情它的因素几乎不全部来自于你自己我接触了很多的人里面我觉得the lesson I learned from them they are humble他们都非常的谦虚知道说其实很多时候你需要你周围的人在一起去合作完成一件事情然后基于这样的假设之后我觉得其实我觉得在更能交流的时候其实需要有一定程度的尊重和能够去Let's collaborate togetherBut also in the meanwhile这个并不代表说我们不要不要能够 be very ambitious并且我们需要能够去challenge the status quo嗯好正好聊到ACM班你是在16年加入06年06年sorry呃在那里读本科对然后那个应该是很早的几期ACM班对不对当时的ACM班是什么样的体验嗯我觉得我还是非常幸运的因为我是我是高考生当时因为我拿了省一根本就没有参加过NOI属于是相当于是在省赛省选都没有参加过基本上就是在省里到省这个级别所以说并没有A3班因为他有近赛省和高考省我是高考考到了交大的店院然后当时高考填字院的时候就是应该是我好像在新闻上面看到了交大ASM班然后后来去自己查了资料发现这个是一个就是是我想要去的地方就是所以就是然后我还记得非常清楚就是当时去交大找于永老师宣讲会他去宣讲会然后我当时也就是比较仔细的准备了我的材料交给了他然后后来于老师也跟我说好像他印象中对我印象比较深刻的是是因为当时我是比其他学生中准备材料最仔细的一个然后就 somehow 就得到了这个机会你的材料是你写的compiler吗并没有就是主要是简历当然其实我在简历里面我有提到说我的原案的经历是什么就是为什么我比较这现在回过来看其实我觉得非常像你去prepare your personal statement for phd application但是当时并没有意识到这一点对当时只是纯粹的想说我需要因为我本身是一个高考生又是在一个名不见经传的地方来的一个这样的一个学生我希望能够be prepared to get the opportunity那这个很有意思你高中花了那么多的时间自学变成大OI然后写compiler一个暑假但你高考完全没有落下你还是正常高考考进了上海交代对是这样子的你当时在你们那个县城是不是当时一直都是全年级第一这种神奕差不多算是吧所以你是开窍很早的就是基本上从小都是一路上来成绩都是最好的那一步应该算是这样子刚刚你提到余庸老师在ICM班的时候一直跟你们强调低调做人高调做事你觉得本科在ACM班的经历对你后来的学术训练也好人生经历也好产生了什么样的影响其实我对ACM班的第一个影响是当时我们现在教学子讲坛就是他ACM班他每年他都会应该每个学期都会让每个学生 [14:59] 上去讲你自己选择的一个topic就是就是可以讲任何东西然后这个是一个给大家表达自己的一个机会我觉得那一段培养是也turns out就是在我去读博士的时候我也当时volunteer第一个讲主会然后我就发现就说其实当时因为交大的那段时间的历练可以让人感觉到自己可以有自信直接出来表达自己对我觉得这一点是在整个培养中non-technical的部分其实反导是最重要的一部分在这里对当然A3班有非常强的technical就是技术方面的培养特别是他在传统里面我觉得非常好一直传承到现在的一点是他的课程设计和大作业就是我们当时有一个叫编译员里大作业现在也一直在上他是基本上是从零开始让大家搭一个编译系from scratch应该是我们的第一届学长他们自己去就并不是老师主导设计这个东西而是第一届学长他们自己去去借鉴了当时北美高校先进的经历然后设计了这个课程设计然后经过几代学生的迭代就每一代都是由学生来去当就上一届的学长来当助教其实就是和instructor然后他们去迭代这个编译编译课程作业然后并且传承给下一代然后那个训练我觉得是非常非常棒就甚至把它放到现在北美高校的标准来看我觉得都是一流的这个训练这个很有意思所以你觉得这样的氛围怎么会有这样的氛围可能就学生自发的找北美的课然后一代一代传下去我觉得很大程度是受于老师的影响就是可能他不一定会告诉我们你技术上面具体要做这件事情但是他其实鼓励学生们去相互的帮助有传承并且可以去我觉得也是也是就和他说高调做事我们希望能够做事就做到能够做到一流我觉得这一点会非常难得可贵所以当时对很多可能你的ACM班同学来说是第一次写编译期但对你来说应该已经是第二次了算是但是我觉得我觉得这个就是他的难度完全不在一个数量级了就是和和一个简单的transpilot比起来当然又有点不太一样原因是因为可能另外一种就原来高中时候的经历像更像是这个乱拳打这个东西但是somehow能够figure out一些东西但是到了就真正开始写大作业的时候当时已经有了一定程度的训练所以说就相对来说当然还是很多时候是靠自己figure out的因为我们当时其实唯一的资料就是前面学长留下来的东西我看到你说你本科期间你就加入了较大的APEX实验室当时就开始接触机器学习了在最早的时候当时你在文章里面写到你说那个时候你对科研是什么这个问题感到非常困惑能不能跟我们分享一下当时的心态第一次接触科研是最大的挑战是什么我觉得进入APEX当时其实选机学习一开始的动机其实非常的简单就当时觉得可以机器可以学习听起来很酷然后我要不要试试看而且当时我们就在看那个Tom Mitchell的Machine Learning 这本书 Tom就其实我们现在的这个呃技术学系的第一任系主任他现在还在 CMU 的时候这个过来的时候我就会跟他说我们很多其实很多的这个技术学系的教授们都是看着那本书长大在这个地方对然后当时对于科研是什么比较困惑的原因其实其实就是我觉得大家进入科研都会有这样的困惑这样的困惑困惑就说我应该怎么样做科研而且我觉得从现在来看其实我觉得那个困惑是非常正常的就是甚至对于你在做一个方向非常久了之后你还是会有这样的困惑特别是因为这是就是对来自于未知吗就是因为科研它的目标就是你要去在未知的uncharted territory去尝试一些东西那么必然它就会就是会有不知道的东西对吧如果说你对一个东西似乎看上去比较清澈因为你在做科研做了一段时间之后可能你会对一个领域相对来说比较清澈熟路了但是其实这个对它的不确定性还是始终存在的地方所以就是当时我不知道的是一 [19:59] 我可以做什么我要做什么然后二后来其实发现其实就是怎么样做其实也不是很清楚你在文章里面提到了一个很有意思的经历我不知道那个是不是你的第一段可言但是你说当时你在用restricted bossman machine对做那个image net的classification当手挫孤大的经历能不能跟我们分享一下就是其实我经过APEX是当时一开始是跟着戴文院学长他现在的就是他现在也做得非常好第四范式这个然后但是我跟他做了差不多一个暑假当时还在入门嘛就是看汤米秋的书在学习写一些东西然后基本上应该是暑假之后他就直接去了百度然后当时其实我们实验室就处在一个相对来说就是学生比老师多很多的状态就是我就不知道要在家要做什么对吧然后后来我记得是就先去了微软亚洲研究院去呃去当时去是学习了做做一些和advertising相关的东西那是大三大三的大三的时候然后后来回来的时候就是当时我们室的薛老师他就跟我们说最近有一个叫做深度学习的东西挺有趣的你们可以看一看然后当时我们就直接去看了ICMO和Nuribus的paper他们有这个当时有一个方法叫限制波尔兹曼基他们应该是AndrewAndrew他们组做的说你可以用限制波尔曼基去学习这个冷脸和其他的pattern我觉得的确挺有趣的我们要不要来做做看其实我和当时实验是一个学长叫林源然后就是我就说我们毕业设计就做这个我就开始做这个东西然后并且因为当时你直接去做卷积网络我们当时都写MetLab就是直接做卷积网络其实非常慢就是你哪怕用了那个FFT的优化它还是非常慢然后当时就觉得这个似乎有一个到CUDA的东西我们先来去学习一下加速当时的机器链CUDA的版本号是多少差不多是2.0还是多少就是我们当时买的是390还是380的GPUGTX380的GPU而且因为当时我们实验室大部分的服务器都是CPU当时根本就没有GPU这个考虑所以我们买了显卡发现塞不进去机箱太小了根本塞不到里面去好像不是因为机箱太小是因为显卡可以塞进去但是电源不够PSU的瓦数不够所以说我们最后的解决方法是我们再买了个电源把它放到了机箱的外面然后再把主板就是等于说接到那个机箱外面的电源再接回那个显卡就是这样搭了我们第一台GPU的服务器在实验室里面但当时应该是0910年对吧对但是用GPU做深度学习当时已经成为共识了因为好像距离LX9还有两年对当时其实是有一些前期的工作了你会发现ICMOAndroid他们主其实已经有在写有论文说怎么样用GPU加速深度学习所以说应该是一个大家都已经意识到的东西而且你会我当时有在开发我们自己的深度学习网络我其实我在找相关的工作当时就可以看到Kuda Confident就是Alex Gajewski他们的这个工具在网上其实已经可以找到了其实当时已经有了只不过距离他们一名近人还有两点包括我们当时也觉得说还有当时另外一个很重要的事件就是飞飞老师他们发布了ImageNet我们一开始的时候在做深度学习我们一开始的时候我们能不能做Protection Detection就是行人识别但是后来发现飞飞老师发布了ImageNet我觉得很好我们要不要来试试看于是当时就是其实现在回想看来就说还是因为当时就没有人带也是出射牛都不怕虎我们当时就说OK这个论物很有趣而且它似乎很难我们来去挑战一下都会有这种感觉就是就去挑战了就是就是说也没有当时没有很仔细的考虑到说这里面的complexity是什么所以当时出射牛都不怕虎turns out to be goodturns out to be bad首先它是一段在科研上面不算成功的经历我怎么这么说就是说因为从我本科闭设开始做这个东西当然本科闭设因为相对来说很好你不需要你不需要达到一个论文发表的地步对吧就是因为我们可以直接 [24:59] 做出来的结果我们当时的结果是我们可以做了加数做了卷机的先制波满机的加数并且可以看到一些pattern比如说digits我可以看到有这个pattern但是呢我们始终不能beat的baseline就是baseline是svm classification那东西就是当时我们就非常就是我也不知道是因为我们做错了还是怎么样就一turns out其实我觉得后来是因为那条路径本身就不太对就是虽然深度学习是个正确的方向但是其实最后做work是一些supervised learning的当时这个谢知波尔兹曼基的那一条路径其实到现在来看它是并不是那么正确的一条路径其实是我在研究生我也是在教大APEX读的研究生在研究生一直还是有这个passion所以我们是从研一一直做到了我研二就研究生几乎快要毕业的时候差不多一年半包含本科大概有两年的时间我一直在做深度学习on image line就是一个课题对然后就包括Cuda代码的优化而且那个时候其实你为了搭一个模型你几乎要花六个月的时间在CI加和CudaC里面把东西都写出来然后再去跑那时候应该什么深度学习框架都没有其实那时候Ciano和CodaConflat本身也已经有了但是我的想法就是我需要因为我觉得很多东西built from scratch还是可以知道控制你的模型建模是怎么样子的所以像什么gradient backpropagation是你自己写的对基本上都是自己写的这个东西就是说基本上差不多而且那个时候在实验室里面还有其他的同学啊就是在一起尝试这个方向但是其实最后两年的时间我们就什么论文都没有就是就基本上在那里做有一股劲在图书馆里面调啊看啊然后但是就始终他就结果而言他是一个不是一个成功的经历在这个地方对然后就是后来我们当时去差不多我研究生就是最后一年的时候当时有这个KDD Cup就他们办了那个比赛然后并且我们当时这个比赛或许可以参加一下然后因为这个限制波尔兹曼机这个东西当时有一篇论文叫做这个Restribable machine for collaborative Filtering就是他们是用限制波尔兹曼机做推荐系统作者也是这个我们MOD的那个Raslan老师对然后我们当时觉得哎我在做这个限制波尔兹曼机似乎这个可以用在这个推荐系统这个方向上面我们要本来试一试于是我们就我们就尝试参加了那第一届的这个KDD Cup就是我们是第一次在实验室主团参加就后来其实科研相对来说是KTD Cup那一段经历是相对来说出现了一些转机可以让我们就是也是因为什么我有机会可以来到北美就是也是因为后来的KTD Cup那段经历其实回过头来看当时做第一段科研因为完全没有人告诉我说一你要怎么做二就是你可能会碰到什么问题现在看来其实一个很明显的错误就是说当时我们觉得哎一imition net这个问题刚出来非常好很重要其实这个是对的因为因为做好的科研你必须要去挑重要的问题然后并且我们觉得说哎深度学习很重要而且似乎通学里面很靠谱的一个方法是限制卷机限制波尔茨板机这个方法对吧然后我们就说OK那我们一起试试看一定把这两个东西搞work用这个方法在这个imagine的这个问题上面然后但是后来发现其实是说当你去做科研的时候如果你你很难说你的眼光看的那么准对吧你挑了正确的问题然后第一第一把就挑了正确的方法当时我们就基本上是就是在正确的问题和错误的方法上面坚持了两年的时间差不多是这样的然后当然最后结果就是turns out is not good后来其实我们做KTD的时候相对来说就是吸取了一方面这样的经验就是我们从先制波尔茨曼基的方法开始其实后来去看了这个问题之后发现其实你做矩阵分解会更好我们就开始做矩阵分解相关的方法所以in the end就是因为制乱经历之后这样也是为什么我们KTD可以拿到好的结果因为如果说我们只是用一个方法的话基本上我觉得还是不必没有能够拿到这样的结果的所以你从那两年你说有点失败的经历你总结出来的一个以后要避免的失败的pattern是不能同时锁死要解决的问题和你享用的方法对这样的错误你在未来的经历里面再也没有犯过了吗基本上没有了基本上没有了 [29:59] 对但是其实回过头来看啊我觉得那般那一段经历是非常非常宝贵的就是因为首先你去想要去做科业很多时候你要做很难的问题我觉得才会有意思很难的问题必然会意味着不确定性和失败然后再加上的问题就是你怎么样去接受失败这个东西或者说你怎么样去接受be willing to take the risk你愿意去冒险去做一个东西我觉得因为我一开始的时候都是出射牛头不落虎的自己去试然后试了之后而且有很多失败的经历比如说我们第一年自己去高中打比赛的时候我当时信心满满的我在我就是自己学习然后然后这个OJ也打过了我可以直接觉得直接高完的时候就觉得哎我一定可以能够能够拿下拿下好的名词但是当时结果就是哎只拿了二等奖非常的我记得当时当时看到结果的时候还蛮伤心的ok然后在大学的时候其实很多时候也是这样子就是有的时候因为去尝试挑战之后比如说是我们做编辑器的时候当时我们在做那个体育结构作业我们做CPU当时我就尝试说哎你是不是可以挑战一下我们在自己做的编辑器跑在自己写的CPU上面但是应该就一开始就碰到不少问题但是就尝试去做了之后发现还是可以完成这件事情而科研一开始的时候失败的经历是让我开始后来觉得说我做了两年一件事情很delicate的做一件事情他最后turns out不那么成功但是或者说甚至就是失败的就是失败的经历但是呢we are fine我还是活得好好的然后也没什么大不了的这样子使得让我后面更敢放手去做事情因为我觉得说我可以接受我失败我觉得这一点还蛮重要的我觉得我听起来如果你当时做的特别成功的话反而有可能会形成某种路径依赖我看到你说你在KDD之后你在去UW读博之前你去香港待了一段时间然后在文章里面你说去了香港之后我开始明白之前失败的原因是研究事业能不能跟我们讲讲香港发生了什么为什么你突然到了香港意识到了这一点我感觉一开始自学就是刚开始自学很容易获得的训练是你怎么样去解决一个问题对吧就比如说在你做课程设计的时候问题很简单你要做大作业对吧就是你把这个目标很明确定下来了我们去解决它但是科研还有一个很重要的阶段就是你怎么样去挑一个问题的要做什么问题以及说你在解决问题的方法是什么现在看来其实我们当时挑的问题还不赖的解决imagenet也是一个不赖的问题但是似乎在我一开始科研射压之后我很少知道还有哪些问题我是可以解决的然后我记得一个契机是当时李航老师来APEX他给了报告因为在那之前其实基本上我们还是处于是没有能带的状态就是我自己在自己在摸索然后李航老师来了之后他给了报告他就讲说我在这个心意检索里面有这个问题这个问题这个问题我们是这样解决这样解决这样解决然后我就发现说好像这些问题我都能解决而且我可以想出一些其他的方法原来世界上面还有这些其他问题除了我在看这个问题所以就是于是当时就就是很兴奋然后就跟了李航老师也很幸运能够得到李航老师和杨强老师的支持去香港实习了这样一段时间然后在那个时候我就开始知道说我们可以去看哪些问题可以去解决所以我觉得这个是一个非常大的转变在这个地方所以以前那两年就盯着ImageNet盯着Classification然后突然意识到还有外面很广阔的天地但是你当时能够意识到原来很多他们的问题我都脑子里有方法有其他的方法其实还是你那两年可能有很多内功的修炼对我觉得说其实很多时候我觉得可能我的路径会不太一样因为很多时候现在看很多的同学其实大家都是可能先知道有很多的问题然后再开始去去想尝试去学习方法和和基础 [34:59] 打磨反倒我觉得说其实还是得益于原来的训练使得说我们有方法和基础的打磨使得说有问题来了之后我们可以上你觉得现在十多年过去了你对研究师也有没有什么新的感悟我觉得从刚开始科研的时候其实目的还是蛮单纯的我们想先发一篇论文然后来能够就是到后来其实我觉得比较更多的形成的是自己想要做什么样的研究就是因为世界上没有很多东西你可以选择就是你可以你可以选择做这个问题或者做那个问题然后我觉得可能不太一样现在就是几年之后接下来每个人都会有自己的research test就是我们想要做什么样的研究这个是我觉得是可能跟IP比起来稍微有点不那么一样的你现在慢慢形成的research test是什么我觉得首先我意识到一个非常明确的就是世界上面有不同的research style有两种研究方式呢有的是从方法出发我成为一个方向的态度去这个并且我可以把我的方法用在各种各样的地方另外一个方方法就是我对某一类问题感兴趣我可以尝试用不同的方法去解决它至少我让我几年的经历中让我意识到我是属于后者就是我对于实际上面能够让就就好像我一开始的时候我想要能够就比如说能够自己做游戏的也是说希望能够创造一些东西创造这个就做机器学习也是这样创造智能创造东西是一个原始的motivation然后基于这一点我就意识到我们可能不太能够一直挑做什么方法并且而且让我开始做机器学之后我发现了很多时候我的瓶颈其实来自于这个你能不能把东西scale up就是跑的大跑的快对吧就是我记得非常清楚的是当时在ImageNet就是刚breakthrough的时候我和我的导师和大家大家也都会觉得说他到底是为什么是因为神经网络吗就是当时我们觉得可能他不一定是因为神经网络或许他的因为原因是因为你有一个比较大的hypothesis space以及你有大量的数据可以scale upTensile we are partly right神经网络还是很重要因为它有很大的参数空间在这个地方但是当时我们就觉得说我们能不能challenge一下这个hypothesis就是如果说你可以把大量的数据用到其他的模型类型里面比如说当时我觉得我的评定是因为我之前做KDD我觉得数模型很强我们能不能做数模型然后我的导师他觉得能不能做CurlMessage最后我还是觉得数模型比较好我就选了数模型这条路然后当时发现很大的瓶颈就是在系统就是我们在做数模型的时候我想要做的模型现有的东西都算的不够快所以就让我意识到这一点之后其实现在这这不是一个很很controversial的观点现在大家都知道说其实人工智能本身它是依赖于这个数据和算力以及算法可能在我们刚开始做技学习的时候大部分的关注点都在算法上面所以当时就是从问题出发角度就觉得说OK系统是一个瓶颈我又不太喜欢一个问题被一个瓶颈就直接卡住我就不能继续做下面的东西了所以我就想说OK我们要不要来解决它就逐渐逐渐就开始让我做自己学习系统这应该就是XG Boost最开始诞生的背后的故事所以你在香港那段时期的时候你就来到了UDAB to PHP然后你应该当时同时也有CMU的PHT offer是的怎么去了UDAB原因很简单就是我想跟卡洛斯我的导师当时我同时apply了其实apply比较broadly当时能来CMU其实原因也是因为就是卡洛斯他有一个postdoc叫Danny就是他现在也还在Ethero做startup当时我做了推荐系统然后我们当时做了一个开源的项目叫SVD Feature就是做矩阵分解然后Danny他找到了我说你这个东西挺有趣的我们是不是可以来当时去他的博客做了一个简单的访谈关于这个东西然后他就把我推荐给了卡罗斯和Alex就是当时Smalla他也是刚来这个 [39:59] 李牧的导师所以后来因为我想要去跟卡洛斯选择了去Washington所以现在你回看本科或者硕士那个阶段你会希望给当时的自己有什么建议你会有希望有哪些信息如果当时知道的话就好了我觉得很重要的一点应该是本身科研的视野和这个就是就和这个就是你要同时很明白你要能够不能同时挑问题和方法这个是我觉得I wish I knew earlier但是反过来说就现在的我来言I wish I don't know原因是因为我觉得可能人生总是要经历一些磨练因为只有通过了这些磨练之后可能可以让你有契机可以未来可以更大胆的去做一些事情我觉得只是或找或晚的时候我觉得可能是这样子这叫什么吃亏要趁早maybe好那我们就聊你博士期间博士期间我就有四个项目第一个XG Boost刚刚其实你已经引入了为什么当时要做XG Boost是因为你和你的导师想要challenge为什么Deep Learning work对XG Boost可以说是一个从一个挑战挑战假说的系统成长为现在非常受欢迎的开源项目至今我昨天晚上看营用数量已经接近7万了你觉得XG Boost成功的关键原因是什么为什么会这么受欢迎其实现在看来我觉得很重要的一点是我当时就是其实我觉得这一点是也是A3P的经历教会我们的就是做一件事情要做到极致对我觉得这一点非常非常重要做一件事情要做到极致然后所以当时因为这个契机我们开始做了这件事情之后我就当时就想了各种各样的方法去看我们能不能让它尽量的快一点再快一点就是所以说其实Tensile当我们发布的时候它是世界上最快的能够做这个gradient boosting这个方法的然后另外一个是说因为我自己是做算法研究的所以说差距boost的本身里面也会有一些很细节上面的算法但是它可以让他这个对于很多问题work out of box比如说他有一个非常重要的特性就是在很多机器学习的的时候它会经常会有一些missing value就是比如说我依赖于我的一个人的数据它可能它不会告诉你说我的年龄或者是性别或者其他信息在传统的机器学习方法里面大家做的事情是你要先做数据清理把这些missing value先比如说用medium就是用中值或者其他东西代替但是当时我就觉得说其实你完全可以让模型自己去猜他要怎么样去解决missing value这件事情所以在差距boost里面他是有这个building的就是说如果说你一个value是missing他会根据他历史的missing value的pattern来自己决定你到底是要怎么样去categorize这个东西Tensile其实这个东西非常非常受欢迎因为大家都不想要自己去解决missing value对就是就说说因为我们把一个东西做到极致并且能够使得我觉得这一点是第一次让我觉得说你需要能够去看一个垂直的问题就是你要知道说如果说你要做一个计决系统你只做算法或者只做系统都是不能够完全获得成功能就一定是要能够知道说我们要有能力知道说这个算法本身可以怎么样往前进并且系统可以怎么样做就是这个是一个原因然后第二个原因我觉得很大的程度来自于社区的力量就是因为其实AXIboost到后面包括现在的主要的维护已经不是我了包括是其他的当时的其实有一个我的学弟在UDAB他一直在维护这个相关的项目他现在有V点其实社区的量非常非常重要因为它可以让我们看到说比如说我们当时记得很清楚的是我们在R里面有一个包是做有visualization它会去可视化你学习的数到底是怎么它是一个当时来自于法国的律师购献的叫Michael然后他就是说我要用这个东西去学习大家做tax他叫detect tax fraud就是你在交税的时候会不会有treating的情况所以说这个之后他就说他就贡献了这个东西他现在他已经开始转行做数据和数据深度学习和法律了他turns out这个也可以不做律师而已他应该还是在做类似于法务和机器学习相关的东西但是就是那个使得说就是其实 [44:59] 很多时候都是因为社区的贡献大家可以使得这个项目可以成长起来然后第三个我觉得其实是我们非常的专注我其实我们做的第一个项目就是那个SVD feature是一个就现在已经没有人知道了就是就是我们在交大做了一个项目就那个项目其实也还行因为我们实验室像是实验室主传那吧用了用了用了几代就是我们的做这个矩针分解和推荐系统都用它当时这个项目就是一个非常大而全的工具有一个config fileconfig file里面有大概二三十个这样configuration你可以写一写了后来但是后来就是我发现其实对于包括其实当时同期啊对actibus它会有一个包现在很popular叫cycler它也是非常全的一个项目但是我觉得其实说对于很多时候对于一个小团队甚至个人的话会需要非常专注把一件事情做好就比如XGBoost就是我们就做了一个算法然后就是把这一个算法做好做到机制这样子的话我觉得它相对来说可以比较容易的获得成功一是机制二是社区30专注对我还有一个点你好像没有在任何地方讲过就是当时你的导师想让你是kernel methods让你觉得你想是tree based methods对所以你是有自己的坚持的当时他也没法说服反正你就自己去试了是吧对是这样子这是你意思的style对就是我觉得是我非常感谢我的导师他给了我非常大的自由度在这个地方对就是说而且其实就也是有原因的因为我们当时做全面做KDDCAP我们做第二年的时候我们的那个Winning method就是一个举认分解和Treebase method的一个混合模型当时我就意识到说Treebase method它有它的非常长大的特性所以这是为什么我当时就一直保持对Treebase method会比较非常有兴趣的原因但是其实XGbos的论文是第三年才开始写的你提到卡罗斯当时说我们写一篇让读者可以学到东西的文章其实我觉得这个很有意思因为其实大部分的论文的写法是优化自己的中稿率所以当时你已经觉得我应该focus on more important things是有这样的感觉卡罗斯对我们要求是非常高的就是基本上我记得刚刚第一次见面的时候他就说you should write the best paperwhat paper就是基本上就是这样的所以说相对来说可能是得益于他的那样的style并且还有一个就是我们刚进实验室的时候一个很明确的feedback就包括来自于实验室的其他学长就是说我们实验室有no bimmeronly point point policy就你在做slide的时候就是我原来就是原来你可以做latex bimmer对吧就是就是基本上他会有很强的要求说你做presentation的时候需要能够用visual用你的视图对吧来让大家能够很快的学会你做的东西所以这一点其实是我觉得对我们是非常受益匪浅的而且Tesla其实卡洛斯你会发现他的研究style就是他很容易做出他会做非常不同多不同方向其实在同期Activus同期同一年KD上面有另外一篇论文叫Lime就是Explainable Machine Learning他其实是开创了可解释机器学习这个方向这一整个领域而且那个论文引用率也非常非常高就是我另外一个这个Lab妹叫Marco他做的就是你会发现他会特别喜欢尝试去做一些工作能够开创那个领域并且并且很多时候这个时候你会发现你其实是需要能够去让更多的人能够获得学习到你的思想in some time you want to write a paper you are proud of所以当时做XGbooth的时候有预料到未来会这么成功这么受欢迎并没有所以当时就觉得是一个OK之前做过可能和之前的project差不多没有想到会这样引起轰动然后长长这么长的时间大家还这么欢迎对对对当时就是纯粹就是一一我们觉得我们做了韩行第二个我觉得当时已经有gethub了就是尝试开源我觉得这个挺好玩的就就才是做这个数据差距不足我最后想问你就是你刚刚说你们当时的判断partly right其实也是in some sense partly wrong因为直至今日neural network已经dominant了我相信在一些tabular data上还是有其他的方法的作用但是大部分的场景还是neural network我其实比较好奇十多年后来反思in some sense你和你的导师 [49:59] 当时都错了你觉得当时是怎么认知的当时的认知存在哪些局限性当时的判断哪些部分正确哪些部分错误又有什么部分时至今日都是甚至是正确的首先我觉得当时有一个判断我们是正确的是什么呢模型的capacity不应该受限制我们之所以选择数模型的原因很简单因为数模型你可以arbitrary grow如果说你就是一般的模型就是限定参数个数不是说我一个linear regression100个猜数它就是100个猜数你不能 arbitrary grow数模型它一个很强的特性是你可以随着你的数据量它可以 arbitrary grow这个depth对吧这个特性非常强当时我们觉得首先我们当时并没有觉得神经网络不能做到这一点因为神经网络 turns out但是让我一开始有点最后有点surprise的一点是神经网络本身它是通过一种另外更暴力的方法来实现就是我不尝试去grow我的parameter space而是我直接就把我的parameter space一开始就设得非常大这个是一个有一点surprise的地方但是我觉得当时就是数模型本身有这个这是为什么没有选kernal method的原因因为kernal method我觉得它并不完全具备这个特性当然虽然说nonparametric它的确也可以grow with the数据的量但是它没有数模型这个特性在这个地方然后而且我觉得当时我们的数模型有一个判断是正确的就是说其实它在Tabular data上面它还是非常的强悍至少至少在现在你在Tabular和Time Series上面Out of Box的模型其实数模型基本上几乎还是大家的go-to tools原因也是因为它可以通过切割和组合去做到其实一般的模型包括神经网友比较难很直接做到的事情所以这一点我觉得是Something that I think we kind of did right我觉得可能没有意料到的相当于说没有意料到这一点就是后来Daric also become obvious其实神经文罗它的另外一个非常强的特性它的和组合特性你可以会有这个不同的模块像transformer block, linear block它们之间可以相互组合然后使得说这个这个就是就是它的表达能力可以通过组合远远起可能更compact的去表示一些东西然后这个东西是相当来说其实我们当时也知道这一点比如说我们知道说卷机网络的确它可以表示因为我之前就做了这个生动学习我就知道说它的确有这个能力但是我们当时只是尝试有这个hypothesis是说到底是这个模型的表示比较重要的还是数据量比较重要对吧就尝试这个hypolicy看一看所以就是当时是that's motivated that project这是超级boost第二个项目我想聊的是MXNet能不能简单跟我们讲什么是MXNet当时做MXNet的背景和动机是什么其实MXNet之前还有一个前身叫CXSNet就是就是叫CXX的就是原因也是因为这个我在进入到UW之后第二年因为当时AlexNet已经出来了AlexNet已经出来了这样就是其实这个我们就开始觉得说包括其实我们投资还有现在比较大家都知道YOLO有Joe Redmond也是在我们的Labmate就他也是在那段就是大学应该是研究生之前博士之前做了YOLO这个frame我们当时就觉得说OK因为因为我原来有那段不那么成功的经历做深度学习但是其实我心里一直对深度学习有很强的passion然后发现AlexNet成功了之后我发现我也可以似乎似乎深度学习还真是比较正确的东西呢我们是不是还可以尝试一下所以说就是当时就通过把原来的研究生那段时间的不那么成功的经验来去开始去重新做这样一套生动学习框架叫CXXNET当时是和那个许斌就是他现在在那边的就我们开始做了第一个版本当时其实我们做的时候然后咖啡就杨青已经把咖啡已经release出来了然后我们做CXNet我们当时是我们做了一个技术叫expression template就是通过模板编程可以使得说你把这个就是做update rule就是比如你做成法和减法这些东西它都可以压缩到一个模板里面去然后生成一个内联的GPU壳 [54:59] 这样的技术然后当时我们觉得这个东西可以更简单的做这个做这个深度学习框架于是我们就做了这样一个东西然后而且我们其实当时拿CXNATS打了开构对开构一开始出来的时候有那个深度学习相关的东西然后后来呢我们做完CXNATS之后同一年其实呃张珍老师就MSI他当时MSI和敏捷他们做了一个项目叫minerva是另外一个就是当时其实蛮百花齐放就大家都在尝试去看说我们怎么样做深度学习框架就是当时他们做明天网然后还有那个林敏他现在在应该在新加坡他后来就是他之前做了一个框架叫Puring还有就是当时这个穆格他们原来做这个他是当时做parameter server就是做那个参数服务器然后也开始尝试要开始做深度学习就是后来我也我也不是很记得就怎么样能够大家就合在一起 somehow还有就是那个池语张池源他当时在mit他当时拿julia写了一个框架也是做这个也是做这个叫做mocha就是就是也是在Julia下面的一个什么原因框架对然后当时就桑胖我们就可能是通过各种各样的契机就聚在了一起当时觉得我们要不要一起来做一个项目能够去吸收原来Meneva的LessonMeneva他有一些非常我觉得在现在还蛮先进的Lesson就是就是几乎就是类似于Python First去做因为当时那个那个就是cafe的那个年代大家当时是世界家核心的代码Python first的这个这个实现然后并且就是我们当时说OK我们一起来做做看这个东西就说一说核心的message他做的事情一是我们觉得说我们要用Python first在Python里面可以可以编写生动学习框架第二个我们要自动调度就是说你可以使得说你直接写这个forward backward函数的时候然后你在python里面直接写但是它可以根据你的这个计算的依赖可以来使得说你可以比如你在多卡的时候可以并行就是可以做all reduce它的通信可以和计算可以一起走对吧就可以自动调度然后就是第三个就可以自动求导就是因为它求导本身从这个深度学习的第一代荒价卡费他是叫back propagation到这个第二代就是通过计算图的自动求导这个东西其实非常不一样他跨度什么对系统优化有非常大的改善所以当时我们就决定一起来做这样一个项目包括因为当时木格他一直在做这个PSparameter server也就需要有一个分布式的一个first class citizen我们就开始OK我们可以一起来做这个东西所以MX那是这个名字应该是来自于minava和cxnet它叫mixnet就是其实是这样一个大家混合在一起包括这mixprogrammingstyle就是编程模式本身当时很明确的有编程模式也会存在我们叫做这个就是现在现在看就是declorative声明计算图和一个programming就是直接写了之后就直接算对吧当时mxnet走的路线就是混合就两个东西都可以去就是静态和动态计算对同时同时做然后后来就是包括UW我们也找到了歇居元就是他也是另外一个他也在做一些东西我们就一起合力做这样一个MX这样一个框架对也比较有意思就是因为因为那个时候是刚刚我们在努力往前进的时候我的暑假在Google break时期然后就是我就知道TensorFlow要出来了就是因为我在Dogfood一直在Dogfood的TensorFlow当时但是好像因为当时小伙伴们也都挺passion的人就大家没有觉得这是一件坏事情就是虽然我们知道TensorFlow要出来了我们就说哎我们这个出生牛途我们也可以compete一下吧对吧就是就是这个就是所以说就是当时甚至是很有乐情的在继续在往前推动这件事情我刚想问你当时有没有TensorFlow所以你们是明知有TensorFlow你们还要向这个方向努力MXS在开始立项的时候我们不知道有TensorFlow说实话就因为那个时候是这个大概Tombline是我们差不多是在应该是在前一年的Nuribus上面大家聚了一句决定要往前走做这件事情然后我是暑假就是夏天夏天去了Brain实习然后我是到了Brain之后我知道Utent FlowIt's coming我在DarkFood这个东西然后就是包括我也我也给其实给Brain能介绍来MaxNet的一些经验但是我就当时觉得说其实还是不一样的可以试试看就是就是说一说就是和小王们一起还是继续往前推最后我们应该是 [59:59] 好像是Testerflow先release了然后我们大概official release是差不多第二点的Neurips左右几几年就是我忘记是具体是哪一点了应该是差不多在就是16可能是可能是1615左右当时有Torch吗Torch已经有了但是还没有PyTorch对当时LuaTorch所以当时你们决定做Python first的这个东西应该还是你们比较独有的一个feature因为大部分还是CGTensolo其实也是场所开始走Python就是我觉得大家开始意识到要走Python的路线但是的确当时没有共识因为当时的主流框架是CG所以那么多人当时那个团队MX那团大部分应该是在读的PhD对大部分是PhD包括当时穆哥在CMU我在UW然后后来谢俊源也是U-Lab张词源在这个MIT然后林敏是NUS就是都是PhD student还有还有敏捷是在NYU那这么多PhD student聚在一起会不会有那种还有自己想法一做的那个想法和压力那这种合作怎么怎么能够work out to be great我感觉好像根本没有根本没有人说这个事对吧因为我当时觉得大家城市是想要一起做项目MX在最后我们就投了一篇workshop paper最后还是alphabetical的对这样当时就觉得一起做一个项目往前走挺好的完全很好这个就是纯粹的觉得这个事有价值我也感兴趣一群知同道合的人我们一起做当然其实Tensile其实我觉得最后穆哥是在这里面推动最大的而且他是做了非常大的努力和和这个牺牲就是包括为了让MX成功其实他们当时就决定他毕业之后就去了Amazon对吧就是就几乎是最后Amazon在很长的一段时间里面但是Amazon一直在帮忙推动adoption和development所以就是穆格他做了非常非常大的这个就是他是中流砥柱能够把大家能够团阅在一起所以他是因为我知道MX那后来被Amazon选成了这个官方的框架对是因为他选了所以领目才去了还是因为领目去了才选了我觉得可能都有吧而且其实不太为人资的一点其实是NVIDIA在非常长的一段时间里面都在contribute to MXNetuse MXNet原因是因为在所有的开源框架里面MXNet一直以来是在多卡并行上面最优秀的一款就是在非常长远远远包括到Pytoch出来之后一段时间所以NVIDIA在MLPURF就是他要做MLPURF submission他一定要能够拿到最好的分数去跑分的时候他是一直在用MXNet直到ResNet no longer become relevant了之后当然就后来就像东北说就没有那么的重要了你觉得当时合作的那个团队合作的经历有什么有趣的故事你觉得现在挺值得回忆和分享我觉得是一个是大家都会有相互尊重的而且就是就纯粹是技术就是而且作为phd同学们大家合作就是就是而且很多时候其实就技术讲技术的话其实很很简单就是很多时候就是直接讨论我们觉得怎么样往前进应该选这个方案就选这个方案选这个方案就选这个方案就可以往前走所以就在技术上面我觉得有非常开放的心态和大家可以一起来合作我觉得是非常好你说AMX的最巅峰的纪念应该是哪个时间段我觉得差不多应该就是木格去了亚马之后然后并且因为AMX一直它的多卡性能非常非常的好包括后面包括像那个图森就是王乃妍和侯晓迪他们有很长一段时间他们一直在帮忙去贡献和支持MX现在还在继续吗还在维护吗现在已经不维护了现在基本上我觉得它是属于是可以退出历史潮流因为这个in the end我觉得还是Pytoshis getting the right你觉得这个从当时那么巅峰到现在慢慢淡出历史舞台这个过程中你学到什么比较宝贵的经验一个我觉得是一定要把用户体验做到极致这一点是非常非常重要的所以MXM的用户体验没有投资好对的确没有投资好因为的确是你要一个first我们当时在选择用户体验和性能上面我们觉得一开始说我们都要但是的确其实应该 [64:59] 先选择用户体验对吧在这个地方但是反过来说后来我意识到一点就是说还有一大瓶领就是工程开发哪怕是有这么多人在对待里面为了支持每一代GPU的性能和迭代还是就是能手还是非常不够的这个地方这是为什么我后来就开始开始做生动学义编译的原因就是说这也是另外一个经验当然还有一些其他的经验就是这个每每一代他的这个基础架构啊基础设施就是其实呃就是包括你怎么样去做GPU的这个这个数据结构的设计啊包括这个神经网络的设计啊这些东西我觉得这些经验都被延续到了现在包括其实iMacs本身他的很多的设计理念在现在我觉得特别是在分幕式的调度上面都还是非常优秀的用户体验这个我很有感触因为我大一刚学机器学习的时候当时TensorFlow和Torch还是一半一半然后TensorFlow 1.0当时写那个静态图Debug当时我就刚开始学变成弄得我很难受但是用Torch的体验就非常非常好这个后来我就只用Torch了所以其实MXNAP没有办法继续它不是因为没有大公司做支撑因为Facebook支撑Torch那么Google支撑TensorFlow当时Amazon有MXNAP更多的还是用户体验上就是各种的roadmap当时不够清晰以至于没有占据更大的份额其实后面其实我们是MSN本身有在城市做转变就是比如说他的2.0之后几乎就是全面用了一个MOD对吧包括和Touch做兼容但是就是我觉得本身社区上面的话因为Touch的社区别的已经比较壮大了包括其实木哥他很长段时间那个GroomCV和GroomNLP也是一个非常早期的就非常好用的一个项目对吧就是你会发现GroomNLPin some sense你会发现它有点像hugging face会有各种各样的因素在这个地方就技术是其中一方面嗯对我觉得可能这段也让你埋下了一个种子可能tvm的种子在当时就已经埋下了是是这样子的基本上我是在其实其实maxnet后面木格他们推动了非常久就是我我后面几乎在maxnet差不多我们就是我们当时做了之后应该是我第一次去参加GTC然后我们当时去讲Max我就觉得说就回过头来看我就当时觉得说还是要花这么多的Engineering effort去支撑这个东西怎么样能够让这个东西变得更简单一点这是为什么就是怎么样能够让更少的人可以做更多的事情这个是我觉得开始让我开始做进行编译这个方向我们马上会重点聊TVM但TVM之前其实当时你刚刚已经提到你在一个Google Brand度过了一个暑假的实习当时你说Ian把你拉到一个meeting room里面给你画了一个坐标戏能讲讲那个故事吗基本上当时我还非常信因为当时Ian是刚到Google Brand就是而且他的那个应该是干有没有发布好像还没有发布还是就是可能还干还没有发布他或者已经发布但是还没有就是火到那个程度就是说说就是比较兴趣的成为了他第一个英特尔在那个地方而且他也是非常open money就是我当时跟他说哎你要做什么他说我可以你我可以给你列一些项目然后我就跟他说我比较有兴趣的是我想做lifelong learning因为我们当时一直一个vision就是说你需要能够让智能越来越强大它要需要能演化它的模型的capacity需要变大就是你需要能够从一个小的模型一个神经网络如果一开始很小它到一程度肯定会不行的如果你要把它放到一个lifelong的角度来看的话那么怎么样去解决这个问题当时就是开始就问这样一个问题其实现在你会发现现在很多时候这个问题还是同样存在的所以说这个为什么大家开始会有通过小的模型在scaling up当时就是开始做了这个net to net这个项目就是说怎么样能够当时research question说你已经有一个训练好的小模型怎么样能够让它快速的boostrap一个大模型使得说它的这个容量可以变大所以他当时给你画的那个图是一个坐标是risk对另外一个坐标是impact对你选了risk最大对impact也最大的那个套品对你会建议年轻的researcher在科研中偶尔选择这样高风险高收益的课题还是应该尽可能多的选择这样的课题我觉得不同人可能会不一样嗯 [69:59] 而且我觉得每一种选择都有它的道理至少在我现在看来可能我因为我已经经历过很多的失败了然后让我觉得说再失败一次也没有那么差并且呢始终我觉得时间是有限的所以一定要做想要做的事情它不一定是有impact的事情但是一定要想做想要做的事情所以说我觉得almost always我们会end up就是选一个比较高风险高回报的方向所以你在结束Google Brand的实习之后就开启了你在UW的第三年你在积极学习十年那篇文章里面你说当时你想到了一个可以用低于线性复杂度训练更生模型的方法结果你的导师说OK这个可能发了就是个New Earth's poster你现在不应该做这种level的research叫做best paper level嗯你现在对这个问题有什么思考你觉得当时卡罗斯啊对你的影响包括相当于你已经进入Bosch的中后城了嗯你现在回看会是有什么样的感想对当时其实呃他的意思是说其实这个方向是promising的嗯但是如果说你要做的话你要做得更好一点就是你需要能够不要光用这样一个算法你需要能够设计一个更好的方法可以更自动的解决怎么样去选择这个recomputation但是因为当时经历有限我没有做这个东西后来有flop workby the way去做相关的工作对但是就是基本上他的意思是说你需要挑你做的东西并且一定觉得硬要做的话你需要做得深了我觉得这一点这一点我觉得是非常正确的好然后你就挑了TVM跟我们介绍一下当时什么样的背景为什么会觉得在那个时刻你觉得呼之欲出想要做TVM其实还是就是从问题出发从问题出发就是说我们始终的一个我始终有一个愿望是其实就是 机器学系统并不应该那么复杂可以让更少的团队通过正确的技术很快的可以去 啊 搭建一个机器系统我们 做了不少的尝试的啊从 CXNET到 MXNET 之后发现瓶颈还在那我们就问说能不能去解决这个瓶颈然后当时就觉得是不是可以用机器学习编译这条技术来去解决它机器学习这个编译是你提出来了吗之前有这个概念吗当时会有一些其他领域的通过编译技术解决这个解决这个相关问题的比较著名的一个工作叫黑light它是在图像处理这个方向上面通过编译技术来解决它图像处理工具的类似开发所以说其实TVM一开始也是inspired from daylight我们一开始的时候也其实是附用了一些 daylight的设计所以当时的background是深度其实框架都有了当时应该在TVM的时候Torch TensorFlow都在那了是的那TVM当时在解决什么样重要的问题我们当时解决的问题就是你本来你去做一个聚成或者说做一些东西的你这些kernel都是要手写的包括你这个kernel本身它对于不同的数据的layout比如说你在你在这个卷积网络里面它可能会有nhwc就是你到底是channel first还是这个这个就是就会有非常多的变种并且在后面你会需要做算子的融合就是说你的这个这个不同的算子之间要么把它们融合在一起所以说就是这些问题本身其实是一个非常大的空间都是要靠手写的就是根本干不过来所以我们很自然的一个问题就是能不能去自动去生成这些东西所以哪怕只是矩程也有太多的变种了以至于哪怕只是矩阵程法它会根据不同的你的输入的尺寸和硬件的形态它最优的时间都还是会不太一样所以TVM当时我记得你有个形容是在荒岛里面要建成为什么会这么有挑战当时的landscape是什么样的因为当时没有圣洞学义编译相当于是我们只是觉得说这个方向可行要不要试试看并且呢其实我们当时在做的时候也还有一个research的层面的考虑就是我们在我有一个体系结构的合作的叫叫Terry他在做生动学习加速器就是就是我们当时在拿FPA打生动学习加速器打NPU然后我们当时觉得哎 [74:59] 要不要试试看直接直接把这个编辑器和这个NPU合在一起玩一玩看是吧这个就那我也不知道NPU是什么回事就是直接就是摸着石头过河觉得这个东西应该设计成这样子最后我们还是真的给这个NPU设计了一个指令机然后开始去写编辑器for that所以就是基本上非常像A3班大作业那段经历也是你从头搭一个CPU和编译器我觉得就是就是就是就是就因为有了原来那段经历之后让我觉得不是很慌就是做这件事情但是其实也做了很久我们从开始准备要做这件事情是差不多在我GTC回来就是四月份的时候开始要开始准备往这个方向开始做到他第一个能跑起来的东西应该是第二年的3月份11个月对然后基本上就是都在携带就是在这个对就差不多差不多是这样所以当时你会有没有担心或者怀疑过自己在提议结构编译期这个领域的经验或者有能力不足做TPM的风险过高其实当时没有想这个风险这个问题当时只是觉得说这个东西我想做而且似乎是我们要解决继续学习问题的评定就去试试看对就是这样子我感觉好像我做事情很少考虑很少考虑风险可能不是一件好事情但是就是就是相对来说只要我觉得它有挑战然后当然就是我我是比较清楚我有技术路线就是我当时有想过就在在飞机上面有想过大概的基本技术路线是怎么样的然后而且因为前面有经历之后每一年都是有磨练的就是XGBoost到MXNAT包括到前面的经历其实我觉得这种架构能力可以磨练出来就你大概已经会所以说就这个而言其实反倒因为有前面的经验会更有信心知道说我虽然说可能他会花时间但是应该是可以做出来的我注意到一个细节就是你的那个机器学习实验那个文章是19年发布的对在24年李牧有了一个评论他说当时你PhD第三第四年你跟他说要做提炼他说你现在PhD快结束做这个一个新的大坑会不会风险太高然后你说当时不管未来去工作也好创业也好找教职也好最重要的是要做当时自己觉得最重要的事然后李牧说现在看起来这是唯一正确的做事的方式所以你当时完全没有就是说自己反正PhD当时你做的东西已经够了够毕业了然后你又没有去你又没有去考虑下一个阶段人生安排是什么你就觉得这事重要我就做了而且就是其实我的导师他本身都会比较鼓励你去做一些你觉得就一般的时候大家都会说Do the impactful things但是impact很难 measure你也很难 predict而且很多时候you will miss the goal但是我觉得做想做的事情很重要这个地方TVM项目开发过程中你刚刚说第一年的4月到第二年的3月这个项目才一开始跑起来对11个月的时间其实你在这个podcast里面一句话就概述了但是其中又没有什么经历你可以分享给我们你现在觉得记忆有型的不断的写代码的过程我觉得是一个不断迭代的过程在这个过程中而且其实比较有趣的就是again就是因为我觉得当时就不怕就是我们虽然不懂也不怕就是比如我们当时做NPU一开始我们可能想的想法更wild就是说我直接能不能直接通过神经网络直接bake到这个FPGA的wire里面去那这个方向也有人做后来就HLHL然后后来我们结论就是OK我们先做一个NPU因为当然TPU的paper刚出来但没有人知道TPU是怎么回事我们就OK我们先自己设计一个NPU然后我们在设计NPU的时候当时也会很很很直接你去下地看问题的时候你会看到问题的比如说NPU我们发现很明显的一个问题是你的内存读写和计算这两个操作是必须要同时进行的那个地方然后我们当时就一开始就想说哎我要我们怎么样解决这个问题因为一般来说你设计一条指令读内存是一条指令计算是一条指令你怎么样能够在硬件级别让计算指令和读内存的指令可以通过流水线或者其他方式 [79:59] 也留起来并且我们当时虽然说没有意识到后来我们发现我们当时设计NPU的想法是非常有趣的就是大部分的NPU在一开始的时候是完全hardwarewhich means就是说使得说它完全不可编程就NPU不存在子令你直接就是直接就是说它就一个功能卷积对吧进去出来但是我们当时设计的这个NPU叫VTAVersatile Tensor Accelerator它是存在子令级的就是因为我们是从编译的角度出发其实你可以把矩程或者其他东西都给分解成更小的步骤更小的矩程内存读写可以用同一套指令集编程去实现更多的算子于是为了为了使得你可以有一套可编程的微指令加上这个overlap可以实现我自己不是做体系结构出身但我们就是from first principle我们在想可以怎么样做这件事情然后就当时就设计了一套这个官用我们叫做应该是用一个叫做QHardwell Q和Signal来去做判断其实后来发现我们发现就有CNP我的确也就用这个东西而且这个概念其实我们当时用了个概念叫hyperthreading就是超线程的这个概念来去尝试解决这个问题使得说就是使得就是意思是呃虽然说物理上面NPO它一般来说只有一个线程但是你可以在逻辑上面把它弄成两个线程使得在一个线程在做这个内存操作的时候另外的线程可以做这个可以做这个计算操作并且为了防止他们可以空就是会访问相同的硬件资源你会需要利用一些硬件的这个signal的特性来使得说他们可以互相告诉对方我这个东西做完了你可以继续做下一件事情就在这点看来我觉得这个NPU设计还是放在今天都还是挺有趣的就是你可以在比如说你可以在NVIDIA最近的异部的编程里面看到类似的影子能不能跟我们介绍一下就GPU TPU NPUhigh level来说他们的区别是什么其实现在它越来越模糊了就是GPU它原来源自于这个图形变成所以说但是它其实就Cuda在往后走来和图形变成基本上达不了关系就是就是它是一个纯粹的叫做single instruction multiple thread就是有你可以用线程就很多线程来变成一般来说TPOMPO基本上上你可以把它看成是类似于一个category就是它会有一些比较复杂的指令使得说你一条指令可以同时读一块内存或者说你一条指令可能做一个比较大的矩程一般来说在NPU里面不一定会有线程的概念因为你一些指令就本身就非常大但是你会发现其实现在的话这个GPU NPU它都会相互走向对方比如说NVIDIA它会引路类似于TensorCore这个就原来NPU里面才会有的东西而且很多时候很多NPU它可能也会引路一些线程的概念为了更接近这个古达的生态所以说就现在就先弱的时候这个界限就更模糊了你刚刚也提到你当时又是再一次的做TVM的时候出生流读乎帕户我发现你一直都是这样高中的时候也是做竞赛也是出生流读乎帕户然后到了ACM班写Compiler后面做机器学习包括第一开始做XGP一直都这样所以你觉得你从这样的性格以及做事的风格上就会不会是你觉得你很大的一个优势就是你就一直保持那种出身的独步八虎OK I'm new to this field那我就做我from first principle我去把它做好做到极致然后最后你发现回头一看自己已经成为域的转转家了对我觉得是首先就说挑问题和怎么做我觉得挺重要的因为其实我这这记得原来教大的时候敖平老师就他他他也是北美回来他就跟我们说你在挑问题的时候嗯你去做一件比较平庸的问题和一个重要的问题花的时间几乎是一样的在很多时候that's true因为你在做一个相对来说哪怕比较平庸的问题它也有更多的细节需要去做所以你一定要挑正确的问题然后并且基于这一点的话我觉得并且我觉得其实很多时候为了去做有趣的事情肯定是uncomfortable的我在刚开始进入实验室的时候一直觉得会不会未来有这样一个时间我突然之间就成为了这个领域的专家然后在那个之后我以后就不会nervous了所有东西都会信手站来都可以go through turns out it's not the case现在哪怕是现在我觉得挑战同样存在而且困难可能会更大 [84:59] 而且一旦你去尝试做一些你不那么comfortable的就一旦你要尝试尝试做新的东西总会有挑战肯定是不comfortable的而且我现在觉得反倒就说随着时间的增长经验是积累的对吧但是很多时候你做事情的勇气我觉得还是来自于最初的勇气没有变过怎么说呢应该反过来说就是说反过来说是其实随着时间的增长有的时候反倒如果说你不主动的去尝试去提醒自己需要保持初心的话会更容易畏首畏脚我觉得这个是一个就是就说以至于说其实很多时候你的就是我觉得很多时候你的勇气可能是你过去的自己给你自己的约定在这个地方然后你要达成过去自己的对自己过去自己的约定才要继续去坚持做这个style的工作TVM第一次release是几几年应该是差不多我其实有点不太清楚了应该是差不多得有18年19年左右应该更早18年17年左右TVM在社区最黄金的年代是几几年你觉得差不多也就是我们在Octo那一段时间20年19年你觉得现在TVM在machine running compilation的生态位比起19年现在是进步了还是退步了包括现在可能TVM是这个Machine Learning Compiler的先行者但是现在Torch它也在向下做Torch.compiler然后TPU上有XLA现在也有Triton你会如何定位下一阶段TVM以及你怎么看TVM在这个生态位中的变化首先我觉得在做TVM这个项目而言它一个非常我带了一个不同的心态来做因为我觉得说我希望它是可以演化的也就是说其实你去看现在的TVM和他刚开始的时候的形态我们几乎已经经过了几个百分的迭代来去使得说我们可以更好的去适应这个最新的我们看到的东西但是在我看来这个问题本身还是存在的就是现在我们还是有一个非常大的问题就是还是需要非常大的工程能力量去解决把一个机器学模型部署到现在是大模型的部署到各个设备上面去这个问题反倒变得首先一方面模型变得更同质化了这是一方面反过来模型也没有那么统治化并且它的硬件本身硬件形态更难了每一代的GPU它的编程模式都不一样所以在我看来这个问题本身远远没有被解决并且而且大家现在开始意识到一个共识是编译技术是需要需要是在这边的一环所以说对于TVM本身而言我们现在希望做到的事情是我觉得怎么样能够继续简化这一个过程就是甚至不是能够提供个解决方案本身而是怎么样能够快速的对一个垂直领域的编译可以能够构建出这样一个编译器比如说现在我们前几年用这个TVM去构建了这个WebM和Moc就是我们可以直接把生动学习的大语言方式编译到像互联网网页以及像这些比如说车载的设备上面我觉得这些东西是是一个我觉得未来在我们在努力的发展方向就是就是说我们在keep reinventing这个这个本身技术本身当然这里面是存在未知数的因为我觉得很多时候比较难得可以看到一个项目可以reinventing并且可以能够就是自己做革新然后继续往前走在这个地方所以说这边肯定是存在未知数的在这个地方但是我觉得它本身是一个还是一个比较有趣的问题并且特别在现在它是一个更有趣的问题原因是包括有这个AI agent和各种各样的这个DSO出现之后我们也在继续做这方面的努力并且我觉得还有一个需要注意的就是说其实我们会需要要更好的和整个生态做整合这就意味着说比如说啊我们最近在尝试把我们的一些共同的部分像他们的基本的函数调用规范直接单独抽象出来实在说我们可以更容易的在Pytosh GX和这些其他的框架之间可以能够做相互的调用就是我觉得本身能够继续 [89:59] 和整个生态做更多的整合并且在一些垂直的领域我们可以做一些突破这个是我希望可以看到的最重要的目标我希望其实现在哪怕多数目学编译它还是一个很没有那么简单的事情不像做这个不像做这个就是你写一个神经网络已经非常简单了你在python里面写几行就可以做到了所以我始终还是希望能够看到说能不能就像你在写神经网络一样做这个机器学义工程开发也可以变得非常简单刚刚聊到TVM其实现在我想花一段时间一个chapter聊一下machine learning system这个东西因为其实现在之前的所有几个project其实或多或少全都在cover这个idea其实大家对于机器学习的历史特别是最开始general audience以及学习机器学习的学生来说大多数对于历史的认知是一个一个算法里程庇比如说AlexNet ResNetAlphaGo,Bird Transformer但是我们其实对于背后的机器学系系统的演化历程不太清晰你能不能给我们一个简单的机器学系系统的历史它是怎么和算法互相交织过去15年怎么演化的其实机器学系系统一直是在我们叫做整个AI和机器学义突破都是扮演了非常大的作用你从回顾过去大概20年你去看其实机器学义本身它经历了几大突破在我看来第一大突破你可以认为是叫做大数据时代的来临那个时候就是基本上从这一学习还是在教科书上面走到了我们的推荐系统一个非常有标志性的事件就是Netflix他们做了这个Netflix challenge就是做推荐系统比赛并且开始有这个后来像比如说字节对吧这个今日头条那个时候其实他一开始就是靠推荐系统开始起家做这个事情然后那个时候的话其实就得益于你会发现它的一大突破是得益于数据的量从原来你做几百个数据点到了上亿级别的数据标志大数据的产生然后那个时候其实你会发现在这个时候原来的包括原来的一些非开源的系统像原来木哥还有文渊他们在百度一开始做的他们奋巢做那个大规模的先行回归到像开源的系统包括像Apache Spark还有XGBoost这都属于大数据时代你会发现就是因为大数据时代有了这些工具可以让大家可以把这些数据给用起来对吧才产生了这样一个整个的就是就是本身的技术上面就是实际上应用上面的突破在这个地方然后到深度学习的Breakthrough这是第二个阶段你可以认为它是这个深度学习的这个Pattern Recognition的Breakthrough它其实是一开始之所以能够有这个Breakthrough很大的原因是因为Alex Kajewski他是一个非常强的hackerKuda ConfNet他们在一开始的时候用了应该是两块GPU就是然后这个训练了一个星期的时间在当时是不可想象我们当时的机器学习实验的时间基本上都是在几分钟这个级别的一个愿意花一个星期的时间去做这个事情并且他是做了这个多卡的优化的包括并行然后到后面的像咖啡其实非常大程度的推动了这个computer vision领域adopt深度学习就是几乎杨青他们的工作做了非常非常大的贡献然后再到后面的像MXNetPytorchTensorFlow我就就可以有一个很明显的对比就是说我们在一开始我开始做深度学习项目的时候我们做一个模型你要花六个月的时间写可能两万行枯打才可以做一个模型到了深度学习框架出现之后你可以几乎在几分钟之内写几行python就可以完成同样的事情这个是非常大的这个技术的革新在这个地方也正是因为有了这个技术的革新才导致我们有很多更多的算法的探索可以再基于这些框架继续来使用对吧然后再到最近的这个大模型的爆发其实其实我觉得生技术系统反倒是走到台前了大家都知道说你在设计模型的本身需要一模型本身需要考虑你能不能在GPS上跑得快对吧就是就是然后二这个你一定需要有系统可以帮助支撑你做scale up 和deploy所以说就是 [94:59] 在今天而言的话反倒这个模型和系统的设计和优化和协同设计是一个大家开始有共识是需要做这件事情你应该是MLSys这个conference这几年一直在背后的推动者你觉得未来几年整个MLSys这个领域会有哪些重要的方向或者挑战值得关注有没有什么你个人特别期待去攻克的问题MLSys本身它是一个就像数据库系统一样它是一个问题驱动的方向所以说肯定它的topic肯定会来自于说实际上面现在的这个机学系领域的主要问题是什么所以说你会发现肯定一个很大的课题是怎么样能够做更好的大模型的优化并且其实还是会有些fundamental的问题比如说为什么我们现在还在继续做机学系编译原因是因为我觉得这个本身的硬件适配和这个软件的bring up 本身还是一个非常大的平顶对 还有就是很明显的可以看到agent 本身 system也是一个非常重要的话题出来怎么样能够把 ai 本身用来去优化我们的这个 machine learning System Engineering我觉得也是一个很有趣的问题接下来我想聊聊最近应该是在Octo也好在实验室也好你一直在做的这个MLC LM这个项目OK能够我们简单介绍一下这个项目在干什么对MLC LM本身其实是TVM的一个延伸就是因为我们意识到说你为了做一个生动学习编辑器我们必须要能够很清楚的知道问题在哪里就是问题在哪里意思就是说如果说现在是大家都在做大语言模型的我们必须要知道说你去实际上面做这个大语言模型本身的优化应该要怎么做所以这就促成了我们去推动这个MLCM这样一个项目就是它是一个相对来说比较可以跨云平台和端测的一个统一的编译统一的推理引擎在这个地方对 然后并且他用了BQ编译的技术因为我们很明确的知道我们并没有足够多的能力去手工铺开去实现各个平台的支持所以说我们希望能够通过这个东西来去能够让我们垂直上就通过垂直领域能够让我们来去推动我们的相关方向的开发所以其实MLC现在我看到的demo有跑在iPhone上的安卓手机可能也在做AMD的显卡包括MacBook都可以deploy比如说Lama2之前你们做的那些模型我比较好奇的是你对于后期的GPT时代未来的inference的格局会是什么样的我们会有多少的需求会发生在端测有多少的需求在 cloud这是个很有趣的问题因为你看到现在的情况的话大部分情况都在 cloudeverything is most long cloud端测还是一个问号在现在但是我们同时又发现了比如说其实pre-training kind of start a bit然后一旦相对来说如果说pre-training start并且模型能力开始其实大家开始开始关注cost我觉得这个形态肯定是会变化的就是取决于说一呃本身模型在往前进的速率速度所以在在这之前大家都关注的是怎么样去get to the next level of intelligence但是我觉得大家会开始关注get to the application然后大家开始关注cost可能并且开始关注cost之外的一些东西比如说privacy比如说这个比如说可能会需要specialization可能这个格局就会开始有所改变其实我最开始看到MLCM这个项目之后我当时脑子里我会想到有两个要部署在端测的需求一个是privacy对对吧但其实我觉得我现在已经我我我虽然说我有点care吧但我已经不care了就是我相信现在如果登上我的CHPT问他我的所有的social security number身份证号我估计全都知道然后第二个需求我觉得可能是实时性因为我们做机器人我觉得比较有意思的一点是他如果要走路要抓一个杯子没有时间在那reason十秒的我觉得可能robotics的实时性会是端策部署很重要的一个场景NVIDIA最近也在做像什么thor这样的芯片能够部署到机器人上你觉得privacy和实时性除了这两个之外还有没有什么端测的需求然后哪怕对于这两个需求你觉得在未来是会越来越扩大还是说你觉得Cloud会有更好的 solution对于privacy和实施性这个取决于什么呢这个取决于模型的能力我觉得还是之所以大家现在用Cloud-based model原因还是因为Cloud-based model的能力更强 [99:59] 这个是一个事实但是就好像是一开始的时候大家在用电脑的时候大家都还是这种mainframe大家觉得说你所有东西都可以centralize on mainframe然后有personal computereverybody have their own personal computereven today大家还是习惯用自己computer上面的software虽然说像chromebook这种vision会还不错的但是还是大家更多的还是会有personal computer这个东西所以说就完全取决于你的local AI model本身的能力到底能够有多强它肯定不会在通用领域上面可以完全匹配现在最大的模型但是在一些专用领域如果它能够到够用的地步之后I think the picture can change就因为它会有这个cost和其他的需求但是你说的这个preface和实时性的确是两个非常大的一个需求就我而言如果说有一个AI我可以直接locally可以用面它可以它的能力几乎和现在的GPT相似的话我觉得我会有兴趣去去op to try that way对吧至少 that'sI think that's kind of one possibility其实在我们今天这个podcast之前我对于MLSYS整个这个领域的理解我会觉得是这是一个为了模型结构和deployment百花其放而推生出来的一个新兴的学科因为我会觉得不同公司不同的场景不同的modality包括你刚刚说不同input的维度不同的task都有很多优化的空间但是其实现在看起来AI的模型大语言模型其实是越来越趋同可能我不知道具体的数据但我猜GPT5可能占了所有Inference的百分之一大半是有的剩下的可能是GEMINI剩下的可能是Deepseek可能Top5就占了99%你觉得这种趋同的趋势会让MLSys这个community衰败吗就是因为那大家就针对这五种模型这五种 deployment 优化就好了那么好像那就是做专有的模型优化专有的芯片优化就好你不能完全否论这个可能性这个这个我觉得是有可能的on the hand 现在比较有趣的是什么呢现在比较有趣的是一方面硬件本身它it have to be specialized因为我们已经不太能够通过通用性来去解决问题了每一代的芯片它往前进的方式非常不同就是为了为了达到下就是你会发现并且每一代的芯片的软件哪怕是同一个vendor的软件它几乎都需要去有一些新的特性需要重新适配这就意味着说因为它的复杂度来自于两方面一方面是来自于硬件本身的支持的复杂度另外一方面是来自于模型本身迭代的复杂度因为现在特别的需要专用化导致了这个这两个复杂度在往前一就是你刚才说的复杂度其实是模型逐渐收敛对吧就是因为他们逐渐向往这个硬件友好的方向收敛但是为了能够让硬件和模型这两个东西就有一个很明显的特意他们相互之间的产绕会越来越明显但是呢又因为你没有很简单的方法可以用同一个recipe下去get the next 2x所以就是大家都需要be creative这个时候的话它就会有问题出来就是你的下一代硬件的解决方案和这一代硬件解决方案就会不一样并且可能最适合匹配下一代硬件的模型和这一代硬件的模型本身也会不一样所以说我们可以看到像DeepSeek他们针对他们的应用场景和硬件环境做的设计才可以达到最后的效率所以我觉得这个从这点看来这是非常有趣的就是他可能会是反倒是使的MOSystem这样一个就是比较体系化来去看这个问题在往前前进比较重要会更重要的一个原因哪怕模型在收敛其实也还是有很多可以做的空间对还有一个问题就是实际上面模型虽然看上去已经收敛了但是你会发现为了对不同的新的模型变种做bring up他还是要花一些精力在这个地方所以说还有当然最后一个话题就是我们又回到这个他们有一个topic叫hardware lottery [104:59] 实际上面因为hardware硬件本身它去限制了模型可发展的可能性导致了模型本身也就收敛了但是可能它不一定是最优的形态对不对所以说从一个这个整个领域来说的话它需要有这个百花期望来深度学习之所以能够繁荣能够有突破到今天一个很大程度的原因就是它在百花齐放的往前走所以说我觉得就领域而言还是有必要去enable其他的模型其他的模型的百花齐放继续往前走第二个我想问你关于AOM时代的MLSystem的问题是在这个时代是不是在学术界做MLSys接触到的Data ScaleCompute ScaleModel Scale和Frontier AI Lab比如说Athrope openAI会差很多个数量这会不会导致学校里面的MLCs只能去做scale down的事没法去做scale up的事这个是不可避免的对吧in some sense因为呃在学校里面你肯定不可能再做比如说pre training 这个是不可避免的对吧in some sense因为在学校里面你肯定不可能再做比如说pre-training这个数量级的东西但反过来说我觉得lake of resource就是resource constraintis also an opportunityto make people more creative就是我们可以能够就比如说为什么我们现在还比较坚持做生动学习编译这个方向原因是因为在学校里面我不可能对100个人去去解决我的问题对于大公司来说这是非常正常的对100个人去解决这个方向那么我觉得We need to be creative但是反过来说因为学校你可以有这个空间可以让你去就是去比较沉淀的去做一些事情我觉得说这边还是有很多机会第二个就是我觉得是开源社区的合作学校不可能是一个个体我们一定要能够去做出一些工作可以让开源社区一起来做共建像现在比较优秀像VR、MassGLAN他们在客源社区里面的推动他们也是来自于高效但是其实你们发现成功的项目很多时候都会有高效的影子在这里最后的话就其实很多时候在这个整个生态中啊它其实是会有一些 again 就像XGBoost的 lesson我们会发现说你可以不需要做所有东西但是你可以做一些你觉得关键的东西并且把它做到最好我觉得其实这中间里面整个LM inference ecosystem里面有非常多的模块它本身是就是比如说你要做最强的kernel optimization不会需要那么大的只要能够get access to the latestNVIDIA GPU像CMU就是我们最近也有个flame center基本上它可以达到差不多白卡级别的cluster就我觉得有了这样的resource你再去跟工业界比起来你会发现很多时候工业界也没有那么富特别是如果说你不是真正的在那个就是如果你在R&D这个方向上面他并没有想象的那么富裕那个时候所以说我觉得There are still opportunities在这个地方CMV这个白卡的集群听起来好像已经很好了但好像现在Frontier Lab都是万卡十万卡级别还是差两三个数量对于今天的MLSYS的研究人员特别是对于PSD选生来说你觉得如今什么样的MLSYS Research最具杠杆效应投入产出比最高很多时候我觉得就对于纪约系统在我看来其实我倒在做一个事情的时候不会特别考虑投入产出比这个事情反导我们会去问说至少我自己会问说这个领域我觉得它的平静在什么地方然后是不是可以去解决它的平静那么就是当然我们会在这个过程中可以通过identify一些问题就是特别是我觉得现在MS还是会有很多垂直领域比如说我们之前做agent我们就会发现在agent里面我们做结构化数据生成就是就是你为了能够你这个agent的本身出来的这个东西能够to json就是满足一个格式这个东西非常重要但是实际上面现在的解决方案都做得不好所以这是我们去年做了一个exgramma的项目他其实就就一个模块而言他其实已经成为了现在开源社区做结构化生成的事实标准之一 [109:59] 其实有很多的问题在于说可能可以identify出实际的整个问题里面的一些瓶颈是一方面然后第二个我觉得就是说还是要看自己对什么问题感应因为不同的人他们选的问题还是会不一样就是我们去选择自己觉得有passion的可以解决的问题那如果你今天是一个三年级PhD学生你只能选择修复或者改变一件事情会做什么我应该会选择我做我现在在做的事情就是基本上就是说继续去解决这个我们说让更少的人可以在用更少的engineer resource可以去解决这个机学系统在最新的一年上面的bring up的问题刚刚我们聊从XG Boost聊到MXNetTVM到MLCM其实你的主要成果都是开源项目甚至从最开始的那个C++的矩程分解代码我看到你也说你是open source和open science的believer你能不能跟我们讲讲就是首先为什么你对开源有这么大的兴趣二你觉得一个成功的开源项目需要有什么关键的过程首先我觉得开源是很好的一件事情对吧就是因为大家可以在社区里面相互交流相互分享有人可以有的时候可以给你的代码点赞对吧然后并且可以认识不同的人所以我觉得就社区而言开源是一个很好的activity另外一方面我觉得是其实对于高校而言开源非常重要原因是因为就纯高校本身其实是不太容易直接能够让你的东西做到落地的你必须要有能力把你的东西分享给大家并且能够大家一起来共建而且对于学生而言其实我觉得开源是一个很好的机会原因是因为一般来说你进入到公司里面大部分情况你是从做一个大项目的一个小部件开始的对吧很少有能很少有人可以给你这样的机会直接去做一个东西的架构从头开始这样的机会if you are jumpingmaybe you will be able to get the opportunity但是如果说我们不做开源项目的话在博士期间出来其实很少能够接触到这样去架构大系统的机会所以说我觉得是并且呢高校本身它是有做开源的土壤的原因是因为一它相对来说比较中立二很多时候其实开源还是需要有一些社区奉献精神在里面就是就是就是所以说我觉得就是就这一点而已我觉得开源他有他的好处当然他会带来overhead他不是一个free的东西因为这就意味着你需要花很多的时间去看用户的反馈show bug然后这个跟社区互动可能很多这些东西在传统音音上面他和传统音音上的科研和邪论文当然这个东西并没有直接有关系所以说就是并不是所有的族几乎应该是很少的主会采取这种路线但是但是的确它是一种方式我觉得在你的开源的项目所有issue你都会一个一个去看一个一个soul吗我会经常去看对有几个原因一个是其实这些反馈是非常宝贵的很多时候就是说因为你一个项目不可能是一个软件它不可能是以它某一个时候的代码形态来决定它的成功的开源它之后也好是因为一个软件它是要被不断维护的所以说就这个时候的话其实这个issue和反馈其实是非常宝贵的你说过就是开源社区代码不是最关键的最关键是人怎么构建一个有很多很好的talent并且大家很活跃的一个开心社区首先我觉得技术本身还是重要的因为你需要能够做正确的技术让大家去believe in it然后第二个就是说社区本身我觉得还会需要有一些passion去推动它因为并且它其实是会取决于它会决定了我们未来别人有多相信你做的事情原因是因为比如说如果说我们做了一个东西出来之后突然之间不维护了那么大家在发布下一个项目的时候自然会问说会不会这个他到底是不是需要相信这件事情所以说我觉得他需要一个build trust的过程就是你和这整个社区下一个chapter我先和你聊OctoML [114:59] 所以OctoML是一个基于TVM这样开源项目的一个startup对当时是怎么决定要创业的背后的故事是什么这个还是比较自然就因为我们当时毕业我毕业之后就是因为我们当时做TVM项目有几个同学然后还有几个老师当时觉得说这边似乎有一些机会于是就很自然我们就说OK要不要去做一个startup就开始了其实因为我的involvement我主要是在第一年我是fulltime然后后来我就基本上是partum所以其实我非常幸运有co-founder可以他们做day to day的operation所以其实Octamia一开始就是基于一个开源项目的一个startup那和databricks是不是有点像也是一个先有一个好的是的其实你会发现现在基于开源在做商业模式的这个东西这个并不并不罕见而且其实它对于高效来说我觉得是一个蛮不错的一种方式原因是因为就我有跟其他做startup的同事聊过他就觉得说一开始觉得哎能有开源其实非常好因为你可以一开始的时候在你去先去迭代你的项目来找到fit但说实话其实最后你开始startup之后开始要想要做的东西和你后面要做的东西肯定是不一样的这个是必然的但是呢就是说至少至少你可以有这样的机会可以能够去把一开始项目通过开源的方式先能够有影响力我觉得是一个我觉得高效产品转化不错的一个路径就特别想和你聊聊开源和基于开源做的商业公司的其实我觉得这个关系很微妙因为我觉得如果你开源做的太好你的公司又是基于开源的那没有人会买你的product我和基于Ray做的EndScale他们公司的工程师聊过他说其实EndScaleRevenue没有办法去下一个数量其实很重要的原因就是开源的Ray太好用了你觉得OctomML有这样的问题吗会不会就是因为一个东西一旦开源其实你开源的时候大家的access是很简单的你怎么convince他们给你花钱呢嗯其实在我来看是反过来的后看我加入Octomall的原因是因为我希望开源社区能够成功就是就可能这个motivation不太正确啊但是就说我们放着这个company的原因是因为我们希望看人社区能够更加成功当然就是在company开始转动之后肯定是为需要公司利益开始往前走的这个时候我的一个observation是几乎所有的startup他开始想要做的东西和你最后做的东西一定是不一样的这个在我们之前我的advisor他们放的那个dato就是或者turi他们公司改了好几个名字就是我就可以看就是之前的经历就几乎可以包括你看DataBricks他从一开始的以Spark作为他的这个核心项目到最后他的business现在Spark几乎不是他的最主要的部分就是我觉得very naturally就是说他是一个你的起点但几乎一定不一定是你的终点所以就这点而言然后我觉得不需要那么纠结于这个但是反过来说就是从正面的角度来说既然选择了开源项目你必然选择了它的好的地方和不好的地方对吧好的地方就是它可以有拔印可以可以拿到社区的反馈你可以有比较强的flavor可以制作一个事情不好的地方或者说括弹括的不好的地方必然是你需要考虑怎么样让你的商业模式可以和开源社区一起来去运作这个就是他会有一些案例就比如说像Rathead就是相对来说还算成功的或者说就是对就是就比如说像Databricks他他也是相对来说是比较成功的案例对所以说这个我觉得是要看每个case而言他基于开源社区做start我觉得不会有天生的劣势也就他只是不同路径不同路径他必然会有他的这个优劣然后只是不同人选择的问题这个很有意思你说你刚刚是为了开源社区能够繁荣所以才包了这顿饺子做了这个startup而不是反过来因为很多人是为了做startup先做开源你是为了开源去做startup至少我当时加入Arcto的motivation是这样子对嗯嗯很有意思因为上一期和胡言明聊的时候他的那个startup也是基于他的开源项目PHD期间做的太极他就说做了两年之后发现商业化很困难很多人都说太极很好但我不愿意花钱Octo ML没有遇到这样的问题吗或者说我应该先问个前置的问题OctoOcto的产品和生意 [119:59] 到底是什么就是这个商业模式是赚谁的钱其实Octo它的商业模式有所转变的一开始的时候在我们刚出来的时候大模型还没有那么的火我们当时觉得我们是可以通过机器编译让大家可以把我们的机器学习本身的优化和加速部署到更多的硬件上面去更快的部署到更多的硬件上面去所以一开始的时候它的潜在的客户主要是包括了硬件的厂商以及部署记忆学习的客户对吧然后到了基本上两年之前基本上我们就很明确的一个转变就是我们开始做了记忆学习部署的服务就就就有点像是像现在这个Fireworks Together包括现在这个整个的就是API服务商做的事情然后这个时候的话其实记忆学变译只是一个背后的支撑技术它可以是一个技术让我们更好更快的做这件事情所以说他其实他的商业模式在整个公司发展的过程中肯定是会转变的在这个地方所以其实现在就之前Octomel主要的生意已经是帮别人部署模型比如说有一个客户他想要大规模的let's say用Lama然后他有一个cloud然后你们把它高效的部署上去其实到最后其实是endpoint business就是应该是说我们直接提供Lama或者其他的endpoint然后他call API对call API那其实这个市场很竞争很激烈是的那大家就拼大家谁Lama inference的cost低这个API更便宜当然就是其实它产品上面还是可以有些形态比如说你可以加入像这个Marty LoRa的Inference对吧包括就我觉得产品上面还是有可以做的形态但是至少我们发现就是它是一个很重要的Business所以其实一开始做Octo的时候你加入Octo的时候当时以为会做的和最后Octo真正赚钱的生意这个转型是很大的其实我一开始就知道这件事情就是我就就因为我在加入之前我已经看过另外一个startup就是我导师的他们那个tury就他们是一开始做那个他们叫graph lab就是cmu是做这个这个大规模图处理软件ok然后到他们差不多被收购的时候他们几乎已经完全转型到了Data Science平台所以说就是说当时就基本上就是在开始做这件事情的时候就会有这个心理准备就知道说其实你去开始做的这件事情和what you end up doing一定会是不一样的但是反过来说我觉得这也没有关系因为只要在这个过程中可以 somehow找到这个 synergy point对吧然后可以能够做好的技术然后可以能够有机会可以让继续推动我们的开转社区的技术发展我觉得就是一件好事情那这个是expected有没有什么是un expected的整个从最开始做Octo到最后你对商业和技术有没有什么没有意料到的新的学习到的教训其实做startup我觉得最大的lesson是很多时候它不光有技术的因素human factor is very important就是怎么样跟人交流怎么样和在大的团队中可以能够去不说management而是说就是就本身你怎么样扮演一个leadership的role对吧我觉得这一点会非常的重要然后还有就是说怎么样能够快速的做技术转型就是因为所有东西你都去必须要能够reinvent yourself顺应就是看到了这个新的时代的发展怎么样能够去这个去敢于去做突破这一点是非常重要的刚刚我应该问就是做Octo你们决定做Octo的时候有想过去当CEO吗还是说你当时就是想做一个技术的角色我很明确我不要当CEO就是因为当CEO很难很难很难很难很难就是因为You have to be full top基本上你要放弃技术很多然后我当时很明确我觉得我的passion在于我想要做好的技术然后所以我觉得很明确我不会要当CEO所以在奥特尼负责的部分是什么说要是技术的方向一开始的一开始我会负责基本的技术的构建在第一年我是Futum后来基本上就是大的技术的方向和比如说下一代技术的研究这方面对在这个过程中有没有什么你力排中意要坚持的东西然后这个过程中有没有什么后来最开始你比较确信的方向后来自己给他推翻了 [124:59] 我觉得的确啊在这个过程中是需要我吹到不是说你看到了因为我当时我觉得我可以办成决士看到未来技术的发展方向并且保证我们可以快速的能够future proof我们的技术在这个过程中比如说其实我们在整个过程中包括对于TBM编译技术我们其实是做了几轮的迭代的就比如说我们对于Large Language Model的支持几乎是重构了就推翻了我们一开始的那个图编译的部分重新做了重新做了一个一个叫relax的这个就包括其实这个在开车社区在CMU这边有同学也会有参与做相关的工作这个东西其实是不会被所有的能源认可的原因是因为毕竟已经有一套现成的技术它短期内可以解决现在的问题并且它还会有坑对吧你到底是花时间去就是reinvent yourselfwhich will take timeversus你直接去这个现在去patch现在的东西这个始终是一个始终是一个这个所有人都会面临的问题在那个地方所以你的决定是reinvent yourself对至少在我看来的话就是会比较有必要reinvent yourself因为if you don't do that就是there will be a timewhere you bite the technical depth所以从19年Octo创立到24年底宣布被NVIDIA收购整个这个过程中五年时间嘛五年多的时间你觉得被NVIDIA收购这个对你来说是一个符合你预期的推出的方式吗其实我完全没有想过这个问题就是在做的时候当时就觉得能够把一件事情做好看看就好我觉得现在回过来看在Vidia工作是一个不错的机会原因是因为基本上我们现在整个的organization都是在负责Vidia的机析变译这边有很多很重要的问题然后而且Vidia当时收购Arcto一个很大的原因也是因为NVIDIA想要能够grow on AI compiler 这个方向你在NVIDIA还会有做Universal Deployment 的自由度吗我觉得NVIDIA它本身它比较有趣是它自己会有非常不同的产品线包含了像Data Center GPU像Blackroll到这个SOR就是Edge就就他其实Cloud and Edge这个这个Possible deployment问题在NV同样存在再考虑到他的跨度不同的Generation本身我觉得他这个问题本身还会很准很准然后就开源社区而言的话我觉得开源社区本身他还是可以继续去推动这个就是尽量的potable deployment这个东西你现在回看如果你重做一次Octo你会做出什么不一样的选择吗我觉得这个it's very hard to seeit's very hard to see因为因为这个叫什么来着就是我觉得很多时候你做的每一个选择个commitment就好像有的时候我会用说我重新去这个回到我一开始做深度学习的时候我会做一些其他选择但我觉得in the endall these lessons可能会有positive side可能会有very negative side他们都是a part of a journey嗯那整个这个我觉得做startup strategy非常非常重要vision visionary strategy你对于这个上面你学到什么东西就是可能你之前做XG Boost MXNet TVM你学到的是一种做开源社区做tech project的strategy在Octo你学到了什么Strategy我觉得一个是还是需要思考一下你的Product Market Fit在什么地方对吧但第二个我觉得还是很重要的是说其实in the end可能这个不是这个观点不会被所有人认同在我看来很多时候做优秀的技术始终是没有错的就是就是说因为 in the end you have to have something to differentiate yourself对吧然后并且就比如说如果说我们一直一直在两年之前还是继续抱着我们原来的技术路线就是继续去优化resnet这个我觉得最后我们会输得很惨我觉得说应该的技术本身它就是需要往前突破和革新的maybe这个是因为我就是我比较擅长和想要做的事情所以说我会比较prefer能够去思考说怎么样能够在技术上面做到excellence但是反过来说在stylip这样的经历也让我意识到为了让技术做到excellence它会需要有其他的因素对吧会需要有这个比如说和大家比较好的coordination会需要能够站在 [129:59] 现在要去说服你的partners然后会需要思考为了product market fit我们在后面往前这么走这些东西都是一个一个是我觉得说可能不同人有不同style在这个上面我有一点点理想主义但是反过来说我觉得这段经历会让我觉得我会更现实我会知道说怎么样能够通过现实的方式去更好的实现理想你的另外一个身份是CMU的教授你是多久决定自己想要申请教职的基本上应该是快要毕业的时候就已经决定说觉得一我喜欢做科研对吧可以喜欢不确定的东西二跟同学们一起去解决新的东西非常有趣然后三我觉得其实教大家做一些东西也是非常好的所以说就是为什么选择了做教职所以你过去五年可能80%当教职20%是一个创业公司的co-founder其实这两个身份过后多少都是教大家或者management偏多定方向你会怀念可能有另外一个平行宇宙的沉淀期是在做还是很硬核的一天12个小时的individual contributor的那条路吗我还在一起期待我现在还在一起期待一天能花多少时间期待吗现在我只能说我可以尝试抽出时间来期待首先我觉得我们先要support the team memberthat's the highest priority需要能够让同学们然后第二个我觉得我自己还是比较喜欢if necessaryI want to be able to be on the groundso就是而且现在其实with the help of AI is not that bad然后可能还会需要有一些耐心吧我觉得所以就是我至少可以把它当作一个兴趣爱好来做所以你现在一周大约还能写多少小时的代码分配多少时间不太能够涮时间但是基本上都还是会抽出时间来些所以你的git commit还是绿色的你的那个方块可能没有那么平凡但是但基本上就是其实我们最近的一年我们一直在对tvm做重构几乎是从ground up重新写它的最核心的部分导致你不可能一个commit进来它是完全可以让所有的test grain所以几乎是有差不多半年以上的时间基本上都是在local这个refactoring是你在一线做还是你智慧学生做基本上foundation的部分是我在做但其实很多教授他们从当教授的第一天入职那一天起那之后的人生就再也没有写过代码了可能大部分教授会这样你为什么选择还在一线我觉得比较好玩然后第二个是我觉得很多时候而且我觉得现在开始我们的生产形态也会随着AI tools和其他东西来发生更大的变化反倒现在你想要在一线比如说如果说没有AI-based tools我觉得我做这个重构会困难很多很多很多很多但就with the helpful toolsit's possible对吧有的是cursor还是cloud code我现在用cursor对就是我觉得 it's become possible然后第二个时候我觉得是很多时候你需要在一线可以get a good sense of what's going on这可能这只是我自己的方式that's what I'm passionate about所以可能正是因为你还在一线做gate commit可能你才能发现真正的问题我觉得这个肯定都是英文而已不同人他们会有不同的everybody have their own super power对吧就是你可以发现有的人they are very CEO style就是你可以很明显的感觉到他可以能够带领大家可以往前走然后有一些人他可能就是they like to be on the ground我觉得这一类人也不同人他都会有不同的成功方式比如说像Jav Dean他的成功方式我很多时候就是因为他有first hand experience可以drive forward而且你会发现现在的很多的突破都是有很多on the ground experience的可以往前走但是很多时候他如果说你也会需要一个leader style of people to lead a lot of people and move the entire ship forward所以说我就只是不同人选择他们自己的合适的方式而已然后我也只是选择我觉得让我觉得比较幸福的方式在这里所以其实你携带马其行你是觉得幸福的对我觉得是更像是 [134:59] 有一个玩笑是说maybe in the futureAI agent will always replace all the needsso it becomes recreational这是一个recreational的事情所以你现在过去几年即使教授又是co-founder还在写代码然后还在做各种system design还要advise学生你是怎么管理你的时间和精力的你有没有面对压力或者说有没有什么时候overwork有burnout你怎么平衡这个高效产出的首先我并不觉得我的产数一定非常高效OK就是if you count the number of publications我们deliberately的希望能够少做一些东西然后来集中做我们觉得我们可以深挖的项目OK然后第二个是很明显的就是比如说像有些东西肯定是次要的比如说在我开始CMU之后我对于Architon的involvement基本上都是在high level technique就是我非常幸运有covander可以做day to day operation就是说就相对来说我的involvement可以让我有时间可以做相关的东西当然就是还会得益于我们有非常independent的student他们可以帮忙drive things forward这样我可以I can act as a support rule when possible对就是但总的来说我觉得还是需要能够有所选择和能够有所focus知道最想要的是什么然后去做回到你CMU教职的这个部分我注意到你PhD的project都是以年为单位的经常一年一年半两年做一个projectAI research一直都很快什么三四个月就是下一个会我相信现在MLSys的节奏应该也在加快你是不是觉得你之前的那种一两年以年为单位的style在今天还可以做得通因为你想每一年NVIDIA都换下代GPU了你觉得新时代这个节奏需要加快还是你觉得仍然应该慢下来我是这么看到很多时候在这个时候首先对于一个领域而言我觉得还是需要有一定程度的沉淀的这就意味着说我们会需要能够针对一个方向坐比较久对吧去升弯这就好像是我经常会跟我学生有个比喻是说你去做一件事情就像捕鱼你可以拿一个叉子看着鱼在什么地方游过去然后去叉它但这个时候很多时候你会叉不准对吧另外一个方式是你先直接慢慢的去编一张网在你在你的这个领域里面然后这个时候可能当鱼来的时候你杀了几次之后你或许可以抓到那个鱼在我看来我觉得是说优秀的工作本身都是需要积淀的但是反过来说很多时候有的时候可能当机会来临的时候我们有机会去在某些时候或许我们突然之间很快的推出了一些东西它的原因也不一定是因为我们就很快的做到这件事情而是因为前面的基电使得我们有能力去做这样一件事情对在我看来我觉得还是只要能够做好的研究哪一种style没有什么关系现在的问题它是不是还是重要然后去解决它就好了你会觉得2025年对比你自己的学生时代如今的学生在做AI researchmachine learning system research有什么新的挑战你会觉得怎么帮助他们最好其实我们通过几十年的演化我们有很多现成的经验使得真的我们可以有能力去from ground up build的一个东西没有那么难就是from first prime input去build这个东西当然现在这个时代它面临的挑战的确我们需要能够找到算力的资源但是我觉得in general就from first principle去做始终是每个时代都有每个时代的挑战就好像我刚开始做机器学习的时候我们当时在签一个报告然后当时在文员坐在我边上然后他就跟边上的好像是跟边上的同学感叹说我们在签一个报告他们在讲就是某一种优化方式去优化support vector machine他说如果说他就说当时觉得说如果说我早两年录航就好了因为好像这些东西very elegant我也能做但是但是somehow现在的问题好像已经被做光了那是在20年之前it turns out that's always new problem对吧就是所以说这个每一个时代都会有他新的问题然后都会有挑战你可以去解决 [139:59] 之前我们聊了很多你PhD期间卡洛斯对你的帮助你现在也是教授你的advising style是什么样的和他一样有相似的地方是一我们希望能够做生了做有影响力的工作这一点我觉得还是非常的重要在这里第二个我觉得就是还有就是比如说之前的我们怎么样做presentation我一直会跟同学们说特别是我们在写论文的时候怎么样能够让我们的论文可以让人家可以do the accessible我觉得会有一些相关的影子另外一方面我也会尝试能够在整个的技术系统这个方向上面一定会需要有团队的合作和能够把项目从一个research的阶段推动到真正能够达到adoption的阶段这个时候会需要能够让整个团队大家一起来去合作这其实也是得益比如像我们原来做MXNet那段时间的经历我觉得非常的positive所以说就是说怎么样能够鼓励大家可以继续能够能够可以有机会去做这样的事情或者给大家创造环境可以让大家有机会做这样的事情这个是我想要能够做的东西MLC这个领域很杰出的PhDPhD的申请者可能我相信他们100%也是业界非常青睐的人选你会如何说服这样的人跟你去读博而不是去XAI OpenAI搞Infra你觉得你的吸引这样的最优秀的人才跟你读博的主张是什么我只会说对于博士和其他东西不一样的地方是it's like a longer investment你会有足够多的时间和足够多的自由度去做一些事情当然可能你在不同的其他的地方也不未必没有自由度和时间做相关的事情但总的来说你去对比工业界和学术界你始终会发现学术界它的就open sense的alignment相对来说你做事情的自由度和对于你犯错的tolerance的时间尺度上面是始终是更大的我也会相信还是会有有想法的同学会愿意选择这条路最后一个chapter我想跟你聊聊你几个人生智慧吧我觉得第一个关键词是长期主义你刚刚也提到了有两种research的方式第一种是我用什么方法比如说reinforce learning我就做好reinforce learning有不同的application你觉得你是第二种第二种是我要solve一个问题那怎么work怎么来你举到一个例子说曾经有人问过你如果明天某个化学反应可以解决积极学习系统你会做什么你说你就会去学习那个chemistry对你会如何评价这样的研究风格那段文字是你19年写下的现在距离19年又6年了有什么反思吗你还是坚持这样的风格吗对首先我觉得就是这每一种风格都会有它成功的可能性all successful examples就是说没有必要说哪一种风格一定是好和坏的只是就我而言我觉得就是想要解决实际的问题肯定是从事求是出发最好对吧所以说就是就我比较喜欢这样子所以会还是会坚持这样的风格在这里第二个就是刚我也提到了李牧在你文章下面时隔五年后的那个评论然后我想念一段你在十年总结上面写的原文你说很多困难和无助只是随机掌握的一部分只要付出足够多的时间和耐心随机过程总会收敛到和付出相称的稳谈我觉得这段话很打动我你能不能进一步帮助我们更好理解这背后的理念就是在一个不确定充满不确定性的科研和创业的过程中你是怎么践行长期主义的当短期看不到成果甚至很挫败的时候你怎么支撑自己熬过去了对首先就是其实其实这个那段话关于随机过程那段话呢这是一个它就是一个定理吧就是因为你在随机过程中它就是随机的但是你长期做time average之后它就是会会是稳态对吧但但其实这是很难的对于每个人来说都是很难虽然说你可以说你要坚持长期主义在每一个时间段始终都会有挫折而且甚至挫折是大部分时间甚至是一旦你想要去突破做你自己的comfortable zone的时候你获得挫折的概率会越来越大但是我觉得这就是每个人的选择就是就是我觉得我自己还是可能是得益于一开始的时候我觉得 [144:59] 失败也没那么可怕然后要接受可以失败这个事实这样的话就还好了还是需要每个人需要给自己鼓励的就在往前走的时候然后我觉得很多时候其实很多时候他的鼓励都还会来自于最初的那个选择就初心本身我觉得还是很重要的你在不断往前走的时候你可能会想说这个在某个时间段肯定是会有挫败的但是反过来说that's also part of journey你的初心是什么初心是什么这个可能还有点模糊在这个地方但是总来说至少一开始的时候我们就能够希望能够去解决让这个人工智能可以被更多人可以使用可以能够我们可以去让每个人都可以创造这个他们自己想要的这个人工智能系统这个是我们一开始就要想要做的事情然后我觉得现在至少还有很有趣的问题存在所以可以去继续去解决它第二个我想和你聊的指挥的关键词是选择因为刚刚一路聊下来给我的感受是其实是一个相当deterministic的一个过程你做完这个很自然而然的MXNet做完MX很自然而然的TVM但我其实相信你其实有很多很多的选择的做完X Charge Boost你肯定除了MXNATO还有其他的选择MXNATO除了TVM也有其他的选择但你最后走了这条路你回看这一个一个选择的分岔路口你觉得你做选择是最看重的是什么你的底层逻辑是什么可能你要去问如果说你选了这条路之后并且失败了你还会不会后悔我基本上会问这个问题因为这样的话很多时候你选的是你自己最想要这个就是这个是一个有点理想主义有点这个就是不那么理性的一个决定那很多时候你的选择都是这样子就是因为因为你要问其实反过来就是问说如果你不那么选你会不会后悔吗很多时候你后悔的又不一定是你有没有获得成功或者怎么样的而是就是你是不是觉得这个东西是你理想中想要走了那个东西然后并且通过一个比较现实主义的方式来选择一条你觉得合适的路径至少这个是我我我比较常用的这个方法我觉得这一点上我有共鸣因为我本科也做了很多科研但其实我现在想起来我本科我最不后悔的一件事是当时做了一个叫无可奉告的匿名论坛我觉得那段时间科研上什么产出都没有然后科业上不好GPA也不好但我就是开心做那个事我现在觉得那是当时我就觉得如果我不做这个我会后悔然后当然做了之后很快也不到半年时间也被关停了但我觉得现在回忆起来啊是我觉得我最有最有最值得回味的一段经历原因是因为很多时候你必然会在这个过程中就从实用主义的角度来说你必然会在这个过程中会碰到挫折和和各种各样的不得预料的东西对吧然后基本上面你发现在这个时候最后最重要的还是你是不是可以享受这个过程在2025年我们今天录制2025年9月5号在这个时间节点上我觉得因为去年年底Octo刚被收购我觉得你已经经历了科研你作为一个一线的科研人员十年某一件的过程创业的0到1你也做过了Exit了教职我相信你也快Tenure了展望未来五到十年成年期还想干什么其实我觉得现在的我最难的事情还是要保持初心就是首先就是肯定还是会碰到困难这个是非常就是我们做的事情是困难的而且这个领域变化的非常快从大运模型刚出来的一段时间相信大家都会经历一段时间的迷茫对吧我们何去何从大家来要做什么这个问题每个人都会问但我觉得最难的是保持初心和passion这个东西是随着我觉得是随着年龄的增长它烦恼可能是会递减的那个地方然后 [149:59] 所以说就是只要保持那样的东西我觉得然后认准想要做的问题不要害怕失败就好了然后这个东西其实很多时候我觉得做事情的勇气可能会来自于过去的自己然后在你做的过程中不断的鼓励自己再把这份勇气再交给未来的自己所以你会觉得现在自己选择更多for sure然后你能够调动的资源更多你肯定比十年前的成年期能够调动的资源不是一个数量级的但反正你觉得现在保持出现这事是更难的对为什么这个是因为有什么其他的诱惑吗还是选择太多了你不知道走哪条路了一方面是很多时候当你看到东西多了之后你会会开始担心刚开始做我们刚开始做MXNET的时候完全不会担心TensorFlow能够对我们产生什么样的竞争我们就是出声牛筒嘛干就是了对吧当然就是有的时候现在有的时候你当然会回过头来你会发现我现在在做一个项目可能有的时候你会反复的问自己他到底能不能成功你现在会问这样的问题有的时候不可避免的你会问嘛 对吧但是反过来说你怎么样能够保持那个心态还是出车牛途的心态我们就做吧然后不要害怕失败但是不可避免的我觉得的确会有各种各样因素会让你去想这个问题对吧包括你在公司或者其他的地方去尝试去拿到资源的同时必然代表的责任对你必须要能够保证你的团队可以成功对吧你必须要能够保证一旦你拿到资源你要能够能够会产出一些相对的impact来justify你可以继续做相关的事情那就会产生一定的重量在这个地方对吧但是反过来说如果说你直接被这样的东西裹挤而走我觉得又不是一件很好的状态会比起你当年做MX那更难去做更 risky 的事对吗我觉得在现在来说我还是幸运的因为我有CMCMU的团队我们可以继续做risk的事情甚至就这个完全取离个人的决定对吧你愿意放弃就比如说因为我们要做risk的事情我们可能愿意放弃和愿意接头失败这个心态其实是一样的对吧如果说就这个而言的话就是反倒我们能做的事情的确比原来更多了因为我们有更大的团队我们可以做更多的事情只是因为心态上面的转变可能有的时候你会忘记原来的那个自己的那个心态你对AI这个领域20年了吧将近从最开始的大数据到深度学习的热潮到今天的Foundation Model很多人说我们现在已经实现AGI了很多人说我们还没有到AGI你对AGI的定义是什么以及要实现你定义的那种AGI我们需要什么样的ML System其实我对AGI本身怎么定义并不是特别感兴趣其实我觉得只要它能够pragmatically有用就比如说能够解决我们现在的提高我们的生产效率我们现在的确可能比之前无比接近就说比如说我们之前一直想说能不能甚至是一个人的团队去撬动起这个现在100个人团队能做的事情现在的技术可能的确能够让我们更快的向那个目标前进对吧我觉得只要只要能够能够往那个目标前进就是一件好事情在这里然后基于这一点的话可能会有不同的MLSystems但我觉得我们始终坚持的路线是能够让我们用更少的资源更自动的做更多的事情就这一点我觉得始终是一个很有趣的问题或许它在几年之内会被解决或许它可能不一定会被解决但是我觉得至少它是一个值得维持努力的方向最后我想一个是让你展望未来的AI世界另外一个是给今天的年轻人一些建议你觉得未来的AI世界还是会像今天这样由巨头主导几家公司出几个model还是你会看到开源和多元的个体会有越来越多的话一圈就我个来说我肯定是希望百花齐放在世界能够让开源和每个个体 [154:59] 都可以能够做创新对你觉得那样的世界出现的概率是在增加而减少我只能说他需要每一个人的努力肯定会有不同人会有不同的信念如果让你给20年前的沉淀期10年前的沉淀期那个时候刚刚开始这个旅程的自己说几句话你会说什么可能要反过来应该说我会希望过去的我对现在的我说和现在的我对未来的我说记住自己对自己的承诺然后坚持自己的理想往下走下去所以反而不是你希望回到过去改变些什么叫自己什么而是你需要过去的自己来提醒现在的自己提醒未来的自己在你现在这个人生节点上你对成功这两个字有了什么新的理解吗比起年轻的时候我觉得每个人都会有你可以去在你想要的东西里面做排行对吧在我看来我觉得最重要的东西还是做问心无愧的事情在这里什么样的事情是问心无愧的什么样的事情是问心有愧的可能不是有愧或者无愧吧或者说就是说其实你追求成功它其实有非常多的定义对吧比如说嗯影响力是一方面对吧财富或许是另外一方面其他的比如说是技术上面的突破你能够去从不同的方面能够去这个impact the world在这个地方然后但我觉得不同的人可能他们会选择的方式不同在我看来我觉得能够在技术上面可以影响大家并且可以为大家这个世界一起做一些贡献就是一件好事情这是成功那你对幸福有没有什么新的感悟包括我特别好奇你在过过了各种人生阶段之后你现在最理想的人生节奏是什么样的是在CMU当教授还是在Octo创业或者新开一家新的公司全职创业还是回到PhDACM班时期那样专注写代码的状态哪一种是你最理想的人生状态我觉得应该是和大家一起解决想解决的问题就好不管你是以什么样的形态不管抬头是什么对你说这事最核心的对你来说那个吸引力和魅力是什么一方面解决问题的过程本身很有趣对吧第二个就是说可能你尝试了那么几次之后你还真能够解决一些东西天气我们今天聊了三个小时我想最后留给你一个时间你可以说任何你想说的因为我们所说的这个东西就会变成一个时间教囊放在2025年这个时间节点上你可以说一些对你影响很深的话你的自己的一些信条或者说讲讲你自己的价值观什么样的东西都行自由发挥你想留在这个podcast最后的一段话在整个过程中我其实非常幸运在这个过程中就是能够获得不同的帮助能够取得一些成果我觉得但我觉得在这整个过程中最让我感觉到收获深刻的是我们还是可以去接受失败对然后并且在接受失败的过程中继续鼓励自己继续做有期的事情这一点是它是一个怎么说就是可以让我们因为我觉得在每个过程中其实你在做这个科研的过程中也都是一个再出发的过程你可以去并且在现在这个时代其实很多时候we need to reinvent ourselves然后keep doing the next thing这个是我觉得这个是这个是一个一个很有趣的一个一个我希望能够一直保持的事情对接受试外接受失败并且能够提醒未来的自己继续按照我们当时的初心继续努力不要怕任何事情所以一个理想状态下十年后二十年后的成天期应该是有更多次失败的一个成天期会有更多的失败并且可以能够继续保持那一个 [159:59] 最初的心态去挑战我们想要挑战的东西这样子最好好感谢天琪你的时间我们今天就到这里谢谢谢谢