- Published on
【开源江湖闲聊录】开源路上的企鹅火烈鸟:一段始于 Paddle 的旅程
- Authors

- Name
- 孙钟恺
- GitHub
- @sunzhongkai588

- Name
- 尹帆
- GitHub
- @FlamingoPg
这是一篇在今年五月完成的采访,记录了 🦩 哥的个人经历,以及他在开源社区中的成长故事。由于 🦩 哥实在太能聊, 内容异常丰富,再加上主编一直忙得分身乏术,稿子就这样一拖再拖,迟迟没有发出。为了不让这次采访彻底“烂尾”,我们终于在今天把它完整整理出来,与大家分享。
播客速听
⏱️ 时长约 15 分钟 · 支持倍速播放
一、前言
在进行这次采访的五月,🦩哥还是北京邮电大学的学生,研究方向主要集中在 AI 编译器与 CUDA 编程,并对大语言模型有着浓厚的兴趣。
在 Paddle 开源社区中,他多次为 Paddle、PaddleSpeech、PaddleNLP、PaddleMIX 等项目贡献代码,提交过多项与编译器和框架算子相关的 PR,为 Paddle 社区的发展做出了积极贡献。
如今,他已经毕业,现就职于某互联网大厂担任框架工程师,但依然保持着对开源的热情——在业余时间,他持续为 SGLang 社区贡献力量,成为其中活跃的核心开发者之一。
二、采访内容
- 介绍一下自己吧!
🐧🦩大家好,我是企鹅火烈鸟🐧🦩。相比于真名,更喜欢大家叫我这个昵称,这样能很好的隐藏自己。我本科和研究生都在北京邮电大学读书。本科阶段写代码不多,主要使用 Python。大概在 2017 到 2018 年那会儿,机器学习特别火,我也顺势开始接触这方面的内容。最初做的是视觉方向的深度学习,当时 YOLOv4、v5 刚推出,热度很高,我也跟着火热的人群加入了做 YOLO 的行列。
不过随着时间推移,传统视觉方向逐渐不是太好找工作,我便慢慢转向 NLP 和大模型领域。现在主要做一些大模型框架相关的工作。
- 为什么社区里的人都叫你🐧、🦩?这个昵称背后有什么故事或含义吗?
🐧🦩这个昵称背后其实有个挺有趣的故事。最早我并不叫这个名字,起因是那时候我在 Steam 上玩一款游戏,可以把不同动物的身体部位组合在一起,然后用合成后的“混合动物”去和别人打架。有一次我突发奇想,尝试把火烈鸟的头和企鹅的身子拼在一起,结果出现了一个“胖身子瘦脖子”的奇怪造型,特别搞笑,我当时就说“卧槽,这个也太有意思了”,之后这个形象给我留下了很深的印象,于是后来干脆把自己的昵称改成了“企鹅火烈鸟”。

- 你本科和研究生都是学什么专业的?
🐧🦩我本科学的是通信(高考没考上计算机,当时觉得通信离计算机挺近的,感觉应该差不多)。至于为什么后来转向机器学习,想法很简单,就是觉得通信这行太难找工作。记得印象最深的一次,是我有天认真想了想自己未来能干什么,就打开 Boss 直聘搜了所有关于通信的工作,结果发现满屏的岗位都像是做产品(当然没有别的意思)或者写专利、写方案。我当时就很崩溃,因为我喜欢写代码,不喜欢做文字类工作,那一刻我就下决定“不行,我还是要想办法转一转”然后当时想法挺简单:通信专业也需要写代码,很多通信的工作都用 C 或 C++,但我对 C 语言一窍不通,就从 Python 入手。结果学着学着发现机器学习挺有意思,于是一路从机器学习学到深度学习,就这样偏离了最初的轨道。
到了研究生阶段,我在实验室主要做三维重建。简单来说,就是用多个视角的二维图片来生成三维场景,训练出一个三维模型。后来没继续做这个方向,是因为那会儿的算法还不够成熟,工程落地也难。思考了很久后,我觉得这条路前景有限,于是彻底转向了现在的大模型方向。
- 那其实你现在所从事的方向和专业没特别大的关系,相当于自学成才?
🐧🦩是的,现在让我讲通信相关的知识,可能也就能说出几个名词。算是彻底“自学成才”吧。而且在学校时,学习氛围确实很好。印象最深的是准备找第一段实习的那段时间,那会儿特别拼,非常想找到一段实习,所以几乎所有空闲时间都用来学新东西。学校环境的好处就是,它能逼你静下心去学习,不管学什么都会被那种学习的氛围所熏陶。
但工作后就完全不同了,学习变得碎片化,更多是遇到问题再去学,很难再有整段时间去补基础知识。所以现在回头看,会挺后悔当时上大学的时候没多下点功夫,尤其是数学——要是那时候把基础打得更牢,现在会轻松很多。
- 你刚提到了第一段实习,那段经历如何?
🐧🦩这个故事还挺长的,我可以从头开始讲。大四那年我选择考研,结果第一年没考上,只好二战。复读那年我非常有自信,考完后觉得“我今年我必上”。但当时考完离开学还有半年,手里又没钱花,生活拮据,非常难受,就想着得必须找点事做、赚点生活费。于是我开始到处投简历、面试。可因为我那时情况比较特殊,不算在校生,公司普遍不愿意要我。那段时间特别绝望,甚至一度打算去瑞幸摇咖啡。
就在那时出现了转机,有一件很巧的事——我有个上小学五年级的亲妹妹,她同班同学的家长开了一家小公司,主要做 AI 相关的业务。然后在过年一起吃饭时,我妈随口提到我在找实习,对方一听就说:“那正好,我就是开这个公司的,要不你来我们公司实习吧。”就这样机缘巧合地进了这家公司,避免了去瑞幸摇咖啡,这就是我的第一段实习。
我在那主要做 YOLO 相关的 CV 工作,任务很零散,现在回头看看其实技术含量也不算高,但让我第一次体验到了公司工作的节奏和氛围,也认识了几位后来一直保持联系的好朋友。可以说那段实习主打一个“去社交”。
编者注✍️:划重点——亲妹妹,家长,开公司
- 你(曾)在 PaddlePaddle 社区做出许多贡献,最初是如何接触并加入飞桨开源社区的?参与过程中有哪些难忘的经历?
🐧🦩那是 2023 年上半年,我还在北邮读研二。大家都知道,北邮是个以就业闻名的学校——每天都能听到谁拿到了实习、谁在力扣刷了几百题。在这种内卷的氛围下,我也开始焦虑,担心研究生毕业后能不能找不到好工作。研究生期间,我水的研究大多都是和深度学习相关的,也想去算法相关岗位,但那时候上牛客、脉脉一看,全是“算法岗没 A 会,你就是垃圾,找不到工作”之类的评论,看得我心态炸裂,算是被这类评论深深伤害了,也彻底让我对算法岗的希望破灭。再加上实习不太顺利,我就陷入了迷茫期。那段时间经常刷论坛,总结下来要想找好工作,四个条件:学校好、论文多、实习多、有开源经历——起码得占两个。
我仔细想了下:首先学校已经定了,考都考北邮了,这我已经改变不了;论文呢,学校的服务器只有两张 4060 游戏卡,做不了什么实验,只能放弃。剩下的就是实习和开源。实习经验我有一点,但做的是 YOLO 这类 CV 项目,和主流大公司算法岗的方向对不上,所以几乎没公司会愿意要我,最后就决定冲开源。当时的心态非常功利,想在开源上拿到一些名头,能给简历上增加一些亮点,所以就来加入了 Paddle 社区。其实当时已经是我第二次接触 Paddle 了,第一次是本科大二大三时,在 AIStudio 上看到比赛,报名了但没做。因为本科大家都懂,典型的“报个名图个热闹”。但这次是抱着想提升自己的目标,正式开始参与。
当时抱着功利的心态,我第一次想参加的是“护航计划”第五期,看到几个课题挺感兴趣,但报名已经截止了,只能作罢。后来又去看“个人挑战赛”。我还记得特别清楚:我第一天报名了一个题,第二天准备开干,发现张师傅已经交完了。我当时心想:“这哥们也太猛了吧,竟然搞这么快!卧槽,我没法跟他争!”于是就没再做下去。
那段时间刚好又很幸运的找到了第二份实习,所以开源暂时就搁置了。但实习干了四个月收获也不大,实习结束后我还是抱着同样的念头——既然实习没给我带来成长,那就继续参加开源。于是我又报了“护航计划”第六期,也算是正式开始在 Paddle 社区深度参与的起点。
编者注✍️:张师傅毁了多少人的开源梦(不是)
- 飞桨的开源活动中,你完成的任务中有没有什么特别有趣或者有挑战性的项目?有没有什么技术难题让你觉得很兴奋或者很有成就感?
🐧🦩印象比较深的有三件事。第一件,是参与护航计划和刘远乐老师一起做 PIR(Paddle 编译层的中间表示)相关的工作。
其实那会儿我对编译并不熟,只懂一些 CUDA 和量化相关的内容,心想“这不都差不多嘛,大模型推理还能玩出什么花?”于是没多想就报名了,远乐也给我通过了。结果真干起来才发现,编译层面的工作和直接写算子完全不是一个概念。写算子只是实现单个功能,而编译涉及大规模的工程体系协同设计,这方面我当时还挺欠缺。
当时我记得最清楚的,是我花了整整三个月写一个 int4 量化的 CUDA 算子。每天晚上下班回家边学边写一直到凌晨四点,睡几个小时再去上班,这样的状态持续了一两个月。这个任务难在两点:一是没人做过,开源社区里找不到任何参考,我写的可能是社区第一份实现;二是我确实这方面掌握的不是特别深,很多先进的工具都不会用。最后是靠热情一点点啃下来的。写完那天我太激动了,还特地发了个朋友圈。
第二件,是和散步师傅一起做 PaddleMIX。
那时候 PaddleMIX 还不温不火,散步师傅跟我说想支持一个 Intel 的 VL2 模型,说它当时是 Qwen VL 之前最强的多模态模型,非常厉害。虽然我当时一边在做护航计划,一边在实习,但还是一口答应了。
那其实是一次模型迁移的工作,要把 torch 的逻辑改成 Paddle 的实现。整个过程虽然枯燥,但当模型第一次能完整跑通、输出正确结果时,那种成就感非常强。后来我还在飞桨公众号上发了篇文章介绍这件事,高兴得不行。
第三件,是做 Python 端的 Pass 的设计。
这件事对我影响很大——是我第一次从零开始独立设计一套接口,也第一次经历完整的“设计—失败—重来”的过程。虽然过程曲折,但收获特别多。在那之前,我做事的思路还挺理想化,总想把事情做到尽善尽美。但这次让我意识到,软件开发不是追求完美,而是追求演进。
我后来看到一篇文章叫 Worse is more,意思是有些事情没必要追到 100% 完美。先把功能做到 50%,让大家觉得“好用”,吸引一批人来参与,这群人再和你一起把它打磨到 90%。这反而是更健康、更高效的开发方式。就像当年的 PyTorch,最开始并不完美,但凭借“足够好用”就击败了设计更复杂、更完善的 TensorFlow。
这次经历让我真正学会了项目设计的节奏感——不是闭门造车地追求完美,而是学会在合适的时机,把作品展示出来,让更多人参与评估与改进。
这三件事对我影响都很大——它们让我从“会写代码”变成“会做项目”,也让我第一次真正感受到开源的成就感。

编者注✍️:🦩哥在飞桨公众号发的文章《飞桨开源贡献:基于 PaddleMIX 实现 InternVL2 多模态模型推理》
- 除了飞桨,你还活跃于哪些开源社区?在这些社区中,你主要参与哪些项目或活动?
🐧🦩除了 Paddle,我现在基本只在 SGLang 活跃,其他社区就不太参与了。SGLang 主要做大模型推理这块。我也可以顺便聊聊,为什么后来去做 SGLang,而不是继续在 Paddle 里做(当然会说的比较尖锐,如果你们觉得不合适,可以斟酌下要不要放出来)。
其实那次决定挺突然的。有一次我晚上在酒吧,一个人喝酒,喝到一点多吧,突然就开始想——我一开始参与 Paddle 开源,说实话抱着挺功利的心态,就是想着做个任务能拿个一两千块。但做到后来,我慢慢觉得,如果有机会能参与到一些更核心、更底层、能真正被大家用起来的项目,那应该会更有意义。那天晚上就有点冲动,想着去试试 SGLang。至于选 SGLang 而不是 vllm,一个原因是 SGLang 那边有个朋友在做,我之前就认识他,就过去一起玩玩看。现在我在 SGLang 主要是做一些 kernel 相关的工作,比如框架怎么更高效地调这些底层 kernel,另外也会参与一些社区治理上的事情,比如优化适配 deepseek v3、qwen3 这些模型。
如果对比 Paddle 和 SGLang,其实两边差别挺大的。
Paddle 作为一个公司级框架,它背后是有 KPI 的,所以对一些特性支持的需求往往特别急迫——不太可能完全交给社区慢慢做。因为等社区的人把事搞定,可能黄花菜都凉了,而且还可能有做黄的风险。所以很多时候,只要主导的研发成员觉得这事很关键,往往最后都会在内部搞定这些关键事情,再同步给社区。但 SGLang 这种纯开源项目就不一样。它没有那么多硬性指标的压力,更多是靠大家自发地去推动。每个人可能都在做一些核心的事情,但节奏、方向、质量都取决于大家的热情和稳定性。
这两种模式其实有好有坏吧。像 Paddle 这种有内部 KPI 推动的模式,好处是进度和质量有保障——怎么做都风险可控。但社区驱动联合开发的那种模式,就需要大家非常有热情了。它的自由度更高,但可控性却更低——可能今天你特别有热情,但是明天就没热情了,结果这个任务本来分配给你,最后又不做。所以在这种纯开源社区里,虽然会希望很多人都来一起做,但开发者的能力、态度、稳定性,反而成了最关键的因素,需要时间去观察和磨合。
至于我为什么最后更愿意在 SGLang 多做一些事,主要两个原因。
一个是客观层面的原因:Paddle 作为一个大型的深度学习框架,目前在底层交互逻辑上已经相当复杂、冗余。类似编译器这种设计在易用性上确实不错,但在大模型推理场景下却显得笨重,不利于快速开发。尤其当需要注册一个新的算子时,往往需要经过五层结构、经历严格的 CI 流程,整个过程非常痛苦,也很难合入主干。因此可以看到,像 PaddleNLP 自己都额外“搓”了一套注册逻辑,用来绕开主框架的约束,自行编写 kernel。但像 PyTorch 那边提供了一整套原生的 C++ / CUDA 交互体系,只用加两行代码就能在 Python 层把 kernel 调用起来,这在开发效率上有明显优势。正是这种差异,让我在 Paddle 框架层开发上遇到不少掣肘。
另一个是主观的层面的原因:我之前在黑客松那几期也参与过一些 PaddleNLP 和推理方向的任务,但能感觉到给社区开发者的活儿,往往是那种内部研发觉得不太急、比较边缘的模块,比如 tokenizer。这些事我能做,也做了,但往后没法真正接触到核心的工作。后来去 SGLang,就能碰到更多底层、更核心的东西,对我来说更有挑战,也更有意思。
至于为什么那会儿还在做 PaddleSpeech,那是因为语音方向相对“干净”,没人特别管,也没那么多 KPI 压力,反而有空间做点自己喜欢的事。其实只要是内部没那么重投入、又需要外部社区来帮忙的方向,外部开发者还是能找到很多发挥空间的。
- SGLang 现在大部分开发人员都在国内吗?
🐧🦩不是的,团队里其实有相当一部分人都在北美,所以有时候甚至是“三班倒”,国内一拨人刚下班,北美那边又开始接力,基本上项目是全天在运转的。
- 你在投入了这么多精力在开源项目,那如何在工作与开源之间找到平衡?
🐧🦩其实我经常都会觉得时间非常不够用,因为在 SGLang 上有很多让我感兴趣的事情。说句不该说的,有时候确实会觉得在 SGLang 上干活比在公司里更开心(笑)。但话又说回来,毕竟只有公司会给我发工资,所以公司的事肯定是要优先完成的。现在我的平衡方式大概是这样:我最近起得比较早,大概七点、七点半就醒。早上的七点到十点半、十一点这段时间,我通常会专注做 SGLang 的工作。等到地铁人少的时候再去上班。白天就正常工作,一般会忙到晚上九、十点。下班回家大概十点半左右,再接着做一会儿 SGLang,一直做到十二点、一点的样子。
- 你这样的开源节奏,你老板知道吗?
🐧🦩包不知道的呀,不敢说,偷偷摸摸的开源。但要声明一下——我是在确保公司这边的工作时间和任务都完全到位的前提下,再去做 SGLang 的。
编者注✍️:鸟哥嘱咐千万要修饰一下原话术,别哪天公司谁爬到了这篇文章,认出了他。(狗头)
- 你之前校招投了飞桨,又是什么原因最后去了某公司?是飞桨不好吗?
🐧🦩哎~这个嘛,不能说是飞桨不好。其实我一共面过 Paddle 两回。第一次是去年年初,那时候我在找暑期实习。过年前我就投了 Paddle,也面了两轮,当时对方反馈都挺好的,还说让我年后等消息。结果年后一直没等到,就比较难过。
第二次是秋招。我又投了一次,这次我感觉我投的岗位肯定会搞 CUDA 相关的,所以准备得非常充分。在一面的时候,前面聊得都挺好的,我还挺有信心的。结果面试最后,大手一挥——让我做一道动态规划题,类似那种“找零钱”或“凑钱”的动归题型。我当时心里一紧:“emmm,好像不太会。”最后这题没做出来,之后也就被挂了。确实挺可惜的,那次算是错过了一个非常宝贵的机会。
- 聊聊生活方面的事吧!听说你打算毕业就结婚了?可以分享一下你的感情经历吗
🐧🦩是的,其实我和我女朋友是本科时候,当时通过社交软件在学校认识的,然后当时是大我一级,但是实际上,她比我小半年,就比较神奇。然后从认识到现在也比较久了。
- 现在很多年轻的朋友都不会选择很早去结婚,你是出于什么考虑?
🐧🦩主要还是因为我们两个的感情一直都挺稳定、挺融洽的吧。而且我们认识的时间确实很久了,到今年已经八年了,已经到了一个坎了。如果再不结,感觉就有点“拖太久”了,可能会衍生一些其他的问题。所以到了该定下来的阶段。另外,我也听过一句话,说“结婚这件事需要一点冲动”,我觉得确实是这样的——如果一直拖着,可能都没有冲动的勇气和动力了,反而更难迈出这一步。所以我们最后也就决定趁现在时机合适的时候,把这件事定下来。


- 如果一位社区小白想要成为像你一样的顶尖开发者,你有哪些建议或经验可以分享?
🐧🦩首先,我不会说大家都能像我这样。每个人加入开源社区的初衷不一样,很多人更多是希望丰富自己的经历。如果大家想来参与 Paddle,社区里其实有很多类似“快乐开源”这样的任务,比如改 typo、补单测等,这些都是比较成熟、非常适合新手的工作。虽然这些事情大同小异,有时候会让人觉得枯燥、重复,但它其实是开始了解框架的一个非常好的起点。
我个人觉得,只要会用 Torch,其实就能很快上手 Paddle。两者在整体上没有本质区别,只是接口和部分并行策略上有些细节不同。因为编译相关的事情一般开发者不需要操心,所以如果你参与过几次“快乐开源”任务之后,一个不错的下一步方向,就是挑选一个自己感兴趣的套件,比如 MIX、NLP、Speech 等。
这些套件里都有可以独立完成的任务,比如为某个模型做支持。这个过程能让你体验到“把一个 Torch 模型迁移到 Paddle”的完整流程,这种体验既新鲜又有成就感,而且难度不算高。
当你完成这些入门任务后,如果对底层开发感兴趣,我建议可以进一步学习了解 PIR 和 Paddle 的编译流程。这是一套相当标准的编译体系,虽然看上去复杂,但其实很系统,也有很多值得称道和学习的地方(这不是场面话,我是认真的)。
等你做到这一步,基本就会开始形成自己的思考,比如想给 Paddle 支持哪些新功能、想在哪个框架里添加新模型。到那时候再去实现这些想法,其实就会变得很自然、也更容易上手。另外,如果想更深入地参与社区开发,“护航计划” 也是一个非常合适的选择,里面的任务结合了实际的开发项目,非常适合大家来做。
最后嘛,当你做到这个阶段,你可能也会像我一样,开始思考是不是要去别的开源社区看看(笑)。当然,我不太推荐大家选“跑路”这个选项。
总的来说,这就是我想分享给大家的一些经验。因为我也是从什么都不懂开始的,一步步摸索上来的,很多东西也就是这一两年学到的。如果你现在是一个小白,我也不觉得你什么都干不了,因为只你要愿意学、愿意动手去尝试,学习的速度是非常快的。
写在最后 💡
【开源江湖闲聊录】 是一项专门为 Paddle 社区的开发者打造的特色访谈栏目 📚。在这里,我们邀请到每一位别具一格且富有热情的开发者,通过文字或语音的方式进行深入采访 🎙️,探索并展现他们背后独一无二的故事,将他们的经历、见解和创意整理成精彩内容,呈现给整个社区。