Rust in Everything
基于 candle 0.11.0

导读

动手对照之前,先讲清楚两件事:这一卷的数字怎么来,以及什么时候该选 candle。

  1. 怎么读这一卷:锁定的版本;一对对照程序怎么跑、compare.py 怎么逐个数比较;SmolLM2 最后一个位置的 49152 个 logits(最大 |ref| 20.6)两边最大差 2.98e-5 到 4.58e-5,为什么不是 0,容差为什么取 1e-4;三条主线每一步落在哪一页。
  2. 什么时候选 candle:同一个 SmolLM2 贪心生成,Python 加 torch 和 transformers 装好约 788 MiB、到第一个 token 2.10 秒、峰值 RSS 1121 MiB;candle 是一个 5.8 MiB 的二进制、0.13 秒、861 MiB,内存大头是权重本身。也写不该选的情况:训练只有 SGD 和 AdamW,topk、masked_fill、nonzero、einsum 在 candle-core 里没有,融合的 sdpa 没有 CPU 实现,也没有 torch.compile 那样的编译层。
flowchart TB
  read[怎么读这一卷] --> ver[锁定版本]
  read --> run["对照怎么跑"]
  read --> tol["对得上的标准"]
  read --> lines[三条主线]
  why[什么时候选 candle] --> size["体积 启动 内存"]
  why --> cov[算子覆盖]
  why --> notfit[不该选的情况]

💬 关联讨论

发起讨论
加载中...