ShwNote

ShwStone 的学习笔记

一言发生错误

我最开始接触 AI Infra 相关内容,是在 ACM 校队中收到了华为算子挑战赛的邀请。当时昇腾算子挑战赛才刚办第三季,要举办西安交通大学的校园站,我们的教练让我们都去参加一下(凑凑人数),然后就花了大概一两周学习昇腾算子开发。这也是我前期正反馈的一个来源。我基本上没有怎么科班学习过算子开发什么的,是在实践的过程中形成一点理解。比较幸运的获得了当时的校内第六名(当时正常运行好像就有奖),拿了一个平板。

然后一段时间,其实没怎么碰这方面的内容。又过了一年左右,又是去写这个算子挑战赛,当时就办到第七季了。这回我身上有 KPI 指标了,校队和华为有协议,我们要积极参加这个比赛,不然就拿不到赞助。前前后后花了一个月的时间,基本上课下课都在写,用古法编程写了五个题,拿了好几个名次,校内赛也拿了第一。这个应该说是赶上窗口期了,因为当时的 AI 还没有那么强,我使用古法编程,加上我自己的一些思考,用我之前打 ACM 时候的经验,能够取得一些成绩。

之后在 26 寒假,我去参加了沐曦的一个冬令营,又了解了一下他们的 MACA C 框架(和 cuda 很类似的平台)。昇腾的算子基本上是 SIMD 的思维,但是 cuda 类似的算子主要是 SIMT 的思维,这两种思考方式还是很不一样,也算是增长见闻了。另外在那边除了算子开发,还有一个 megatron 微调的体验和微调模型+量化加速的一个挑战,我都尽力尝试了一下,不过只能说是浅尝辄止,增长了一下见闻。这个冬令营听起来很高级,实际上还是比较水的,因为参加的人都是零基础(笑)。好像他们还在继续办,读者要是有兴趣也可以去搜索一下。

然后 26 年 5 月,我因为之前第七赛季打的比较好,就能去北京参加一个年度线下赛(其实在 S5-S8 有一个有效提交就能参加)。特别狗运获得了冠军。这个只能说运气成分很高。给我的收益一方面是奖金比较高,另一方面是简历收益,这个奖拿出去比较好听。之后最关键的还是去华为参加实习。这个实习机会还是很不容易的,我感觉直接官网投简历其实希望并不大,在打 ICPC 和算子比赛的过程中认识了很多 HR,也暴露了我的个人信息吧可能是,总之如愿以偿拿到了实习的机会。实习期间参与了 vLLM 的一个开源插件在昇腾上的适配(vllm-project/afd-plugin),不好说有没有学到很多?经验确实增长了不少,而且对于系统的复杂性有了一点认识。

之后就是很迷茫的一个阶段。就在实习的这两个月,AI 在数学方面的发展如同《三体》中的阶梯计划,而我就是坐在光帆上看着核弹一个又一个爆炸的云天明。实际上,在 infra 方面,至少在算子层面,AI 的进步也非常的迅猛。前段时间有一篇比较火的文章,是 DeepSeek 机器学习系统工程师 刘胜与 写的,名字叫做《我不得不把才华埋葬在昨天》。我大概也怀着类似的想法。今天的我仍然在参加算子挑战赛,但是已经被排行榜上的 AI 橄榄了,也只好让自己的 agent 和他们魔法对轰。再去钻研古法编程,不知道有没有用。所以我也在关注一些 AI 来做 infra 的进展,或是更复杂系统上的 infra。道理是这样的:越是范围明确的好验证的问题,越是容易被 AI 解决。但是,推理系统、训练系统他们作为一个整体,有非常多样的场景、工况、需求,也许还能发挥自己的价值。

AI Infra 应该算是很健康的新行业,我观察到的,都是旧锤子解决新问题。问题几乎是无穷无尽的,新的模型带来新的问题,infra 的一些特点和困难还会反过来指导模型设计,deepseek 系列模型及其开源框架就是这方面的典范。解决这些系统问题也往往不需要什么方法论创新,就像解决一道 ICPC 题目一样,通过一些观察和技巧,一些早就出现过的思想来解决新问题。

在我看来,Infra 这个行业,无论如何是有前途的。一方面,它的需求是显然的,只要 AI 有前途,AI Infra 就会有前途。另一方面,在 AI 相关的行业中,它的护城河相对较深,被 AGI 直接橄榄的时间应该也是更晚的。因为 infra 是一个要结合实践的行业,即便将来的 AI,在给定的条件下能够立刻找到最好的并行参数设置,但把这种设置真实的落地,转化到每个具体的机房里,甚至是迁移到其他的行业里,这样的工作还是要人来做。从这个角度来说,失业并没有那么快。我国有 14 亿人口,全年 140.19 万亿人民币的 GDP,想让这个数字的 10% 都被 AI “赋能”,也需要以十年为单位的时间,1.4 亿人的参与,这个过程中不会缺少人类的工作的。

这个方向的最大困难,就是太吃平台了。我在实习期间做的工作,我目前连复现都不可能,因为我没有所需的资源,更谈不上进行一些自由探索。而且学术上所研究的,和社区里大家在意的,大厂们在部署的差别也并不小。我本人其实没有做过真的 Infra 科研,只是做一些伪装成系统工作的小工作,这很难评价;我也看过不少系统顶会,其中有一些对于很实际的生产问题进行讨论的,但是被我的实习导师评价为“没什么用,字节早就做过差不多的东西”,还有一些看起来就很有脑洞的,奇妙条件组合下的系统实现。我无法评价这两种的科研是否有优劣。也许应该这样想,有什么级别的资源,就尽量用好它,做能做到的事,同时尽力的去获取更好的平台,做更好的工作。

我现在的一个理想,就是在实现“普惠的智能”这个道路上,能贡献一点是一点。这看起来是可以实现的。希望我能赶得上。

前两天看到了 OpenBMB 开源的 ForgeKernel,一个让 agent 自动优化算子的工作,在 FlashInfer-Bench(B200)、CANN-Bench (Ascend A3 & 950DT) 上都取得了第一名。这个进步还是很夸张的。笔者之前也参与过算子的竞赛活动,尝试过用 AI 自己迭代写算子,但是没能取得很好的成绩,看到这样的工作自然忍不住想学习一下。正好最近在看 PyPTO,就想能不能复现这个工作,使用 PyPTO 的后端。

需要说明的是,官方仓库目前还没有放出开源的 Ascend Agent 框架,本文中提到的实现都是笔者根据论文的描述以及已开源的 NVIDIA 实现模仿实现的,代码质量也是 vibe 质量,欢迎批评指正。

代码可以在这里查看:https://github.com/OpenBMB/ForgeKernel/pull/5

阅读全文 »

(本篇为观看《芬奇》后的一些感想。推荐大家去看的一部经典电影。即便没看过也不影响阅读)

你信任你正在使用的 AI 吗?

阅读全文 »

LLM解码长度预测的瓶颈是“随机性天花板”

现有基准把预测器能力和任务难度混为一谈。我们把自回归解码建模为停时随机过程,证明每提示解码长度近似正态,并给出 σ=αμ+b 方差律和误差下界;多种 prefill 预测器都逼近同一边界,在我们看来,问题的系统误差压倒模型误差。

我们呼吁新的数据集包括固定模型/数据/采样参数,并同时报告相对与绝对误差。

arXiv

Github

阅读全文 »

显然学习体系结构能随时生成汇编非常方便。教学使用的体系结构是 armv4,不过现代编译器默认生成的已经是 armv8 了,连指令宽度都不一样。有必要学习怎么编译和查看 armv4 编译。

阅读全文 »