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 行