Generative Engine Optimization (GEO)
这个也会是以后的重点。AI 模型已经开始在相互之间展示偏好——这创造了一个超越传统 SEO 的新优化维度。
mythos:核武器级代码能力
Mythos 在 SWE-bench Verified 上拿到 93.9%,比上一个版本的 80.8% 提升了整整 13 个百分点——"能碾压任何编程任务,包括寻找软件安全漏洞"。
我的理解:mythos 已经变成了一个核武器。不选择公开发布模型是因为谁都可以用它来寻找安全漏洞,可能会对现有的生态造成毁灭性的打击。就比如大家都是用枪械的时候突然来了个核武器。
Anthropic 没有将 Mythos 公开发布,而是启动了 Project Glasswing 计划,允许包括 AWS、Apple、Google、Microsoft、NVIDIA、Cisco、CrowdStrike、JPMorgan Chase 和 Linux Foundation 在内的少数合作伙伴使用该系统,提供了 1 亿美元的使用额度和 400 万美元用于开源安全相关工作。这一举措表明,尖端人工智能正迅速从令人印象深刻的测试结果,转变为具备实际应用价值的受控网络基础设施。
picotron:动手做分布式训练(第一部分)
用随机数据跑了一步训练,360M 参数的 LLaMA 模型。第一步结果:Loss = 11.0
Loss = 11.0 合理吗?ln(49152) ≈ 10.8。随机猜 49152 个词中的一个,交叉熵就是 ~10.8。所以 11.0 说明模型还没学到任何东西,符合预期(才跑了一步)。
分布式训练核心概念
- LOCAL_RANK:我是这台机器上的第几张 GPU,从 0 开始数。
- RANK(global rank):我是全局的第几张 GPU。如果你有 2 台机器各 4 卡,那全局就有 8 张卡,RANK 从 0 到 7。
- WORLD_SIZE:总共几张 GPU 参与训练。
dist.barrier():就是一道同步墙。所有 GPU 都必须到这里才能继续。想象 4 个人一起爬山,约好在山腰的亭子碰头——所有人到齐了,才一起继续往上走。
语言模型的训练目标
input_ids = [我, 爱, 吃] → [5, 12, 8]
target_ids = [爱, 吃, 苹果] → [12, 8, 33] target 就是 input 往右移一位。模型学的是:给你前面的词,预测下一个词是什么。
数据并行 Step 5 vs Step 6:朴素 vs Bucket
Naive DP:每个参数单独做 all-reduce,同步执行。有几百个参数,就要做几百次 all-reduce 通信,效率低。
Bucket DP:把参数分组到 ~25MB 的桶里。一个桶里所有参数梯度就绪后,立刻启动异步 all-reduce(async_op=True)——计算和通信重叠。这就是 PyTorch DDP 的核心思想。
梯度精度:Naive 用 bf16(和参数一样),Bucket 用 float32 累加(更稳定,防止精度损失累积)。
Pipeline Parallel:AFAB 和 1F1B 调度
PP(流水线并行)是把模型按层切开:GPU 0 负责 Layer 0-7,GPU 1 负责 Layer 8-15,数据像流水线一样流过去。
AFAB(All Forward All Backward):先把所有 micro-batch 的前向全做完,再把所有反向全做完。简单但有大量 pipeline bubble——GPU 大量空闲等待。
1F1B:前向和反向交替执行。Warmup 阶段填满流水线;Steady State 全力 1F1B;Cooldown 阶段排空流水线。空闲槽位只在 warmup 前面和 cooldown 后面,中间的 steady state 全在计算。
1F1B 还使用双向通信:在 steady state 阶段,一个 GPU 同时发送前向结果给下一个 stage,并接收来自下一个 stage 的反向梯度——打包成一次 batch_isend_irecv 调用。
| Step 5 Naive DP | Step 6 Bucket DP | |
|---|---|---|
| 通信方式 | 同步,逐参数 all-reduce | 异步,按桶 all-reduce |
| 梯度精度 | bf16(和参数一样) | float32 累加,更稳定 |
| 计算/通信重叠 | 无 | 有(async_op=True) |
| 代码复杂度 | ~30 行 | ~220 行 |