量化交易
从市场微结构入手,建立量化工程全栈视角
覆盖从因子研究、回测方法论到执行算法与高频架构的整条链路,适合策略研究员与工程师系统切入。
发布来自土法炼钢兴趣小组的知识、笔记、进展和应用。主题包括数据结构和算法、编程语言、网络安全、密码学等。
第一次访问时先按主题切入,比直接沿着时间线翻文章更快。
量化交易
覆盖从因子研究、回测方法论到执行算法与高频架构的整条链路,适合策略研究员与工程师系统切入。
大模型基础设施
把训练、推理、量化与服务化串成一条工程主线;先建立 GPU 心智模型,再进入引擎与量化落地。
密码学
先看密码学系列总目录,再顺着 PQC、FHE 与迁移工程深入。
排序算法
把 TimSort、pdqsort、radix sort、external sort、parallel sort 串成一条工程化阅读路径。
把已经形成系列阅读闭环的主题集中在首页,减少在 400 多篇文章里盲找的成本。
按最近更新时间排序;如果你想系统性阅读一个主题,优先回到上面的专题入口。
FlashAttention 的关键不是近似注意力,也不是把公式改掉,而是重新安排标准 attention 在 GPU 内存层级里的计算路径。本文解释为什么标准 attention 的瓶颈常常是 HBM 读写,FlashAttention 如何用 tiling 和 online softmax 避免物化完整注意力矩阵,以及它为什么省显存、提吞吐,却没有消除 O(n²) 的根本复杂度。
自回归推理和训练不是同一种程序。本文解释 KV Cache 为什么成立:历史 token 的 Key/Value 一旦算出,在后续 decode 中不会改变;缓存它们可以避免反复重算前缀。文章同时讲清 prefill 与 decode 的差异、cache 显存公式、长上下文为什么受限,以及 PagedAttention、MQA/GQA、cache 量化等方向各自在解决什么。
KV Cache 后 decode 仍是显存带宽受限的串行循环。本文给出投机解码的接受-拒绝公式与正确性证明,推导接受率如何决定加速比,用实测数据说明批大小何时让投机解码倒贴,并只钉住 Medusa/EAGLE/MTP 的原理差异。
量化、蒸馏、剪枝常被当成同一件事的三种手段——"让模型变小",但它们改变的对象、误差来源和失败模式完全不同。本文从 weight-only 与 activation quantization 的假设差异、GPTQ/AWQ/SmoothQuant 的数学分野,讲到 attention、FFN、KV Cache 承受压缩代价的不同,以及 PPL 为什么骗过了很多人的质量评测。
attention 权重容易被读成“模型关注了哪里”,但 Jain 和 Wallace(NAACL 2019)等工作证明相关不等于因果。本文区分用户、行为、机制三层解释,梳理 attention is not explanation 之争,梯度、遮挡、探针、因果中介分析各自的证据边界,以及 RLHF 之后 LLM 自我解释为何更容易“听起来合理却不真实”。
机制可解释性要的不是热力图,而是因果证据。本文用 induction head、IOI 26-head 电路、activation patching、superposition 和 Sparse Autoencoder 讲清楚:找到一个 head 远不等于解释整个模型,patching 本身也会制造“解释幻觉”,SAE 从玩具模型扩到 Claude 3 Sonnet 后仍有系统性失败模式。
Wei et al. 用 BIG-Bench 定义了"涌现能力",Schaeffer et al. 用一个数学模型证明很多涌现曲线是非线性指标的产物。本文梳理这场争论的证据链、in-context learning 与 Chain-of-Thought 各自的机制证据,以及涌现能力是否可预测、可诱导两个仍未解决的问题。
GPT 路线的关键不是某个模型名字,而是 Decoder-only Transformer、next-token prediction、规模扩展、上下文学习、指令微调和人类反馈逐步合流。本文从 GPT-1 讲到 GPT-4,只使用公开可确认信息,解释为什么自回归语言模型最终成为大语言模型时代的主线。
T5 把翻译、分类、摘要、问答都改写成统一的文本到文本任务,但这个接口不是免费的。本文拆开 span corruption 的 corruption rate 和平均 span 长度旋钮、T5 论文的原始消融数字、任务前缀如何变成模型的格式捷径、C4 清洗规则本身携带的归纳偏置,以及 Encoder-Decoder 在推理服务上的结构性代价,并给出 Text-to-Text 是否该覆盖分类与检索这条至今没有定论的争论线。
Encoder-only、Encoder-Decoder、Decoder-only 的差异不是谁更聪明,而是谁能看见谁的信息流不变量。本文从可见性图出发,解释这个不变量如何锁死任务接口与训练管线,KV Cache、continuous batching、投机解码为什么默认假设单流 causal Decoder,以及 embedding、rerank、强制双向抽取场景为什么不该硬上生成式大模型。
RoPE 把位置从"加在输入上的向量"焊进了 Q·Kᵀ 本身——本文推导旋转后点积为何只依赖相对位置,核对高频通道在长距离上的绕圈失真、RoPE scaling/YaRN 到底改了哪个假设;再看 ALiBi 的线性 bias 何时帮、何时伤长程依赖;最后用 RULER、Lost in the Middle 说明"跑得动"和"用得好"是两件事,并摆出一条有文献支撑的争论:相对位置编码是否在用归纳偏置换长度。
FlashAttention 优化的是 full attention 这张完全图的 IO 路径,稀疏 attention 直接改写连接图本身。本文用邻接矩阵钉死 Sparse Transformer 的结构化两跳可达、Longformer 的 local+global 与自定义 kernel、BigBird 的随机图连通性证明与理论下界,并划清它与 Ring Attention、学习型 sparsity 的边界。
MoE 把参数量和每 token 计算量解耦,但代价从模型结构转移到了路由:过载丢 token、专家塌缩、路由抖动是训练现场的三种症状,All-to-All 通信是成本中心,小 batch 推理会让专家利用率变差。本文交代这些机制为什么会发生,以及负载均衡与质量的权衡为什么还没有定量答案。
ViT 把图像切成 patch 再当 token,但 patch size 和分辨率一旦定下来,序列长度、attention 的显存和算力也同时被锁死——这不是"像素当 token"这句简化说法能盖过去的代价。本文用 Swin 的复杂度公式和可复算的数字拆开这条代价链,解释 CNN 归纳偏置为何让它在小数据上更稳、DeiT 靠数据增强和蒸馏补的是哪一块、CLS token 与位置编码在图像分辨率变化时会怎样失效,以及"还需不需要强视觉偏置"这条至今没有定论的争论。
CLIP 靠 batch 负样本和温度做对比学习,不是拼 caption;projector、Flamingo cross-attention、LLaVA 指令微调三种接法各有幻觉、OCR、分辨率失败模式;SAM 的 promptable segmentation 与聊天 VLM 是两条产品线。