主页

CodeMidas:从源代码构造 Coding Agent 的 RL 训练环境

CodeMidas 是小米 LLM Core 等团队提出的一套 Coding Agent 训练数据构造管线。它从开源仓库中找到已经实现的功能,生成需求说明,再移除对应实现,让 agent 在这个仓库里把功能补回来。原实现被保留下来,用于生成测试和验证环境。经过清理和筛选后,每个任务都能在容器中运行,并通过隐藏测试给出训练奖励。 这类任务通常可以从 issue、PR 或 commit 中提取:开发记录告诉我们要修什么,对应修改提供参考答案。CodeMidas 则直接从源代码提取功能,不要求仓库已经有相关 issue、测试或文字说明。这样一来,可用的任务来源就扩展到了仓库中已经存在、但未必有完整开发记录的功能。 论文最后构造了 5,545 个任务,来自 3,185 个开源仓库,覆盖 2...

阅读更多

从一行 print 看 torch.compile 的 Graph Break

前置阅读:torch.compile 里 Inductor 是怎么把编译结果包进 CUDA Graph。这篇往前看一步:Inductor 收到的图,是 Dynamo 怎么捕获出来的。 给一个函数加上 torch.compile 后,代码能正常跑完,很容易以为整个函数已经交给编译器了。可以先看这段代码: import torch def f(x): y = x.sin() print("intermediate shape:", y.shape) return y.cos() + 1 compiled = torch.compile(f) compiled(torch.randn(8, 16)) 中间只插了一行打印。默认配置下,Dynamo 通常...

阅读更多

顺着 FlashAttention 看 SM120 的实现

前置阅读:FlashAttention · Blackwell TMEM 与 tcgen05 MMA 深度解析 这次看 flash_fwd_sm120.py,注意到它没有自己实现 mainloop,而是继承了 FlashAttentionForwardSm80,然后在构造函数里写了一句 self.arch = Arch.sm_80。[1] 目标卡明明是 SM120,这个变量为什么要写成 80?先去父类查它的使用位置。

阅读更多

torch.compile 里 Inductor 是怎么把编译结果包进 CUDA Graph

1. Inductor 后端注册与调用链 1.1 注册点 torch/_dynamo/backends/inductor.py — 只有 32 行,是字符串 "inductor" 的绑定入口: from torch._dynamo import register_backend @register_backend # 把 "inductor" 注册到 _COMPILER_FNS 字典 def inductor(*args, **kwargs): from torch._inductor.compile_fx import compile_fx # 懒加载 return compile_fx(*args, **kwargs) 1.2 查找机制 torc...

阅读更多

SSH 提示 Connection closed by remote host

排查一个 SSH 问题,现象看起来像服务端有问题,实际上是本机代理软件的 TUN 模式把 SSH 流量接管了 现象 ssh -vvv -i ~/Downloads/ssh-key-2026-05-17.key ubuntu@<公网ip> 关键报错: kex_exchange_identification: Connection closed by remote host Connection closed by <公网ip> port 22 连接在 SSH 握手早期就被关掉了,还没走到公钥认证阶段。 排除常见原因 私钥和端口 chmod 600 ~/Downloads/ssh-key-2026-05-17.key ssh-keygen -lf...

阅读更多

《财富捷径》读书笔记

核心投资理念 1. 拥抱指数基金,放弃主动选股 唯一推荐的股市产品:大盘指数基金(如标普 500、纳斯达克 100) 个股风险极高:美国 6000 家上市公司每年有 180 家被摘牌(3%),40 年超半数公司破产 主动基金不堪一击:超过 90% 的主动基金在 30 年内关门,只有不到 3% 能超过最简单的指数基金 指数基金自动实现优胜劣汰:成分股公司衰落会被自动替换,从无大盘指数基金破产的先例 2. 基金定投:有钱就买,需钱即卖 核心策略:固定时间频率买入基金,完全忽视当下价格 优势:无脑简单、降低风险(平均成本法)、强制储蓄积累财富 把基金账户等同于存款账户 只在需要用钱时才卖出,不做择时 3. 长线投资,拒绝频繁交易 散户...

阅读更多

NVL72 架构解析:72 GPU 全互连拓扑

NVL72 是 NVIDIA GB200 系列中一个 72 GPU 的单机级 NVLink 交换网络。它不是简单的 72 张卡互联,而是一个精心设计的 全互连 (full crossbar) + 单级交换 (single switch stage) 拓扑。 硬件构成 整个系统由两个主要部分组成: 计算节点层 18 个计算托盘 (compute tray),每个托盘包含 4 个 Blackwell GPU,总计: 18 × 4 = 72 个 GPU 交换层 9 个 NVLink 交换托盘 (switch tray),每个托盘包含 2 个 NVSwitch 芯片,总计: 9 × 2 = 18 个 NVSwitch 芯片 连接拓扑 每个 GPU 的出线...

阅读更多