要解决的问题:RAG模型有时在检索到正确且相关的知识时,依然会产生错误回答

→ 分析:内部知识与外部知识的冲突,FFN强调内部知识,而copying head强调外部知识

→ 贡献:提出了redeep,可以解耦内外部知识来进行幻觉检测;以及AARF,通过调节内外部知识的贡献来进行幻觉缓解。

阅读全文 »

QRHead是对retrieval head的改进。

动机

先前的retrieval head解释了LLM的检索机制,但仍存在两个问题:

  1. copy-paste目标过于简单,鲁棒性不足

  2. 采用的大海捞针任务是合成数据,与真实语言场景下数据分布不一致

阅读全文 »

检索头较早的一篇文章。发现了检索头的一些性质:

  • 普遍性:所有模型都有检索头

  • 稀疏性

  • 固有性:不随continual pretrain而改变

  • 动态激活:一部分检索头始终激活,另一部分随机激活

  • 因果性:敲除会导致无法检索上下文信息,但对于只需要内部知识的场景影响较小。

背景:FA3虽然取得了很大的性能突破,但其主要针对 H100 架构的硬件,目前业内主要采用的是 Blackwell 架构,tensor core吞吐量翻倍,而SRAM等其他单元增长不大。因此需要针对这一特性进行新的算法优化。

FA4主要进行了以下几点改进:

  1. 重新设计流水线以实现全异步的矩阵乘法以及更大的矩阵尺寸
  2. 通过软件模拟指数运算与softmax以减少 non-matmul op
  3. 使用 tensor memory 与 2-CTA MMA 模式减少反向传播中的 IO 开销
  4. 实现上的改进:使用 CuTe-DSL 实现,编译速度提升 20-30x

在 FA2 中,注意力的计算速度得以大幅提升。但其在新一代GPU上的利用率依然偏低,比如在 Hopper 架构的 H100 上利用率仅有35%,而GEMM内核则可达80-90%。这种现象主要源自以下几个原因:

  1. 实现差异:没有采用Hopper架构的专有指令集进行加速

  2. 先前实现遵循简化的同步模型,没有利用异步性和低精度计算的特性

因此 FA3 中提出了以下三点改进:

阅读全文 »

FlashAttention-2 是基于 FlashAttention 的改进版,运算效率得到了约 2x 提升。下面是本文的阅读笔记。

动机

虽然 FlashAttention 通过减少 IO 搬运,大幅提升了运算速度以及减少显存占用,但并没有完全发挥GEMM运算的理论速度,只达到了理论FLOPs的25-40%。其原因在于GPU上不同 thread blocks 和 warps 分配不够优秀,核心占用率偏低且存在不必要的内存读写。因此 FlashAttn-2 进行了三点优化:

  1. 调整算法,减少非矩阵乘法的运算量。在 GPU 上有专门的 GEMM 计算单元,吞吐量可高达其他算子的 16 倍。
  2. 在序列长度维度上,将注意力计算并行分配到不同 thread block 上;
  3. 在线程块内实现 warps 并行,减少共享内存通信。
阅读全文 »

摘要

Transformer -> 时空复杂度为n^2,长序列的时间和内存占用过大

Appr. Attn -> 牺牲精度,但无法提升 wall-clock time -> 侧重于降低FLOPs,忽视了降低IO开销

FlashAttn -> IO aware,通过分块减少 HBM(显存)和 SRAM(寄存器)之间的读写次数 -> 节省IO成本

扩展:block-sparse attn,速度优于所有近似的注意力方法

阅读全文 »

本文是基于 karpathy/build-nanogpt 项目复现 GPT-2 过程中记录下的笔记。

知识点

  • GPT-2 中的位置编码没有沿用 transformer 论文中的正余弦编码,而是将其视作一种可学习参数进行训练
阅读全文 »

  • 任务:计算机操作Agent

  • 动机:

    • OS集成浅:用不到API、进程状态等

    • 基于截图的交互脆弱:界面改版或遇到非标准界面时容易出错

    • 用户体验差:执行过程容易中断,和用户抢鼠标

阅读全文 »
0%