在 FCOS 算法中,完全移除了与锚框相关的复杂计算和大量超参数,使模型设计更简单,训练更稳定,同时,FCOS 通过逐像素预测和中心度这两个核心设计,在保持单阶段检测器速度优势的同时,实现了与两阶段检测器相媲美的精度,为后续的无锚框检测算法奠定了重要基础。
SSD 借鉴了 YOLO v1 的单阶段的目标检测的速度优势,同时又借鉴了 Faster R-CNN 中 Anchor 的设计逻辑,增加了先验框,相比较与 two-stage,保留了速度的优势,同时又能提升整体的效果;在此基础上,还采用了层级的特征图,优化了在 YOLO v1 中只有单个特征图的问题,能够同时适应大目标和小目标。要注意一点的是,在 SSD 中先验框是相对于原图设计的,其先验框...
YOLO v2 在 YOLO v1 的基础上,重点解决 YOLO v1 的两个痛点:定位不够准和召回率偏低。通过引入 Anchor Box,并在 Anchor Box 的基础上,学习基于此的微调,能够极大降低学习的难度;同时,每个 cell 引入了 5 个 Anchor Box,再加上两个语义特征层,可召回的数量极大提升,这也奠定了 YOLO 的基本框架,为后续的优化升级奠定了基础。
YOLO v1 的提出开创了 one-stage 的目标检测,检测速度得到了极大提升,但是从上述 YOLO v1 的整个过程来看,YOLO v1 中也存在着很多的问题,如每个 cell 预测 B 个候选框,如果两个物体靠得很近,检测效果并不好,同时也导致对密集物体的检测效果欠佳;算法中对负样本的定义,导致了大量背景负样本的存在,缺乏对困难负样本的学习,这也会导致模型效果受到影响。得益于其优秀...
REINFORCE 算法是最经典、最基础的 Policy Gradient(策略梯度)算法,由 Ronald J. Williams (1992) 提出,直接对策略建模,寻找到最优的策略使得总体回报的期望最高。在此基础上,在 REINFORCE 的梯度公式中,减去一个与动作无关的基线 b,可以在不引入偏差的情况下降低梯度方差,从而提升训练稳定性,并通常提高收敛效率。
Fast R-CNN 在 R-CNN 的基础上,通过 CNN 对全图提取特征,同时保留了 Selective Search 在原图生成 RoI 的过程,通过特征映射将原图的 RoI 映射到特征图上,最后通过 RoI Pooling 得到固定的尺寸,方便后续的分类和回归计算。纵观整个过程,Proposal Region 的特征计算只需要一次 CNN 计算加上特征映射就能完整,同时,摒弃掉了 R...
SwiGLU 激活函数的全称是 Swish‑Gated Linear Unit,现在已经成为 LLM 中的标配激活函数,实际上,SwiGLU 激活函数是由两部分组成的,分别是 Swish 激活函数和 GLU(Gated Linear Unit)激活函数,集合了两个激活函数的特点。
在 MHA 框架下,结合 KV Cache 的空间换时间,能够极大加速 LLM 的推理,但是对于推理来说,GPU 的显存资源尤其珍贵,这就出现了针对 KV Cache 进一步缩减空间的方案,MQA 和 GQA 就是针对 MHA 的精简方案,通过缩减 K 矩阵和 V 矩阵,达到缩减 KV Cache 的效果。
Batch Norm 的归一化方法不适合在文本模型上做归一化,最重要的原因是文本长度并不固定,同时,基于 Batch Norm 的方法会破坏文本 token 之间的相对顺序,因此才有了 Layer Norm,同时,为了简化,又可以省略掉均值,因此就有了 RMS Norm,针对 Norm 在网络中的位置,Pre Norm 相比较与 Post Norm 来说,使得网络更加容易训练。
computed 是 Vue3 中处理派生状态的核心工具,其缓存机制和懒更新策略使其在处理复杂计算时兼具性能优势和代码可维护性。
响应式系统是 Vue 的基础,正式响应式的设计使得数据的依赖收集、派发更新变得简单,同时,在 Vue3 中,提供了 ref 和 reactive 两种响应式的支持,不同点在于 ref 是为了让基本类型(如 number,string)可以变为响应式,而 reactive 是为了让对象变为响应式,其本质是背后的实现方式的差异,这也就导致在使用上会存在差异。
LoRA 技术结合了残差连接的思想,针对新的训练数据,在固定住原始的矩阵的前提下,通过残差的方式进行微调,同时为了进一步减少参数的量,对微调矩阵进行低秩分解,进一步减少了需要学习的参数的量。
KV Cache 的提出,将 LLM 的推理过程分成了两个阶段,分别是 Prefill 阶段和 Decode 阶段,其中,Prefill 阶段处理的是 LLM 的 Prompt,用于产出首个 Token 以及存储 Prompt 中所有 Token 的 K 向量和 V 向量,此阶段算力要优先于内存的带宽;Decode 阶段则是根据新生成的 Token 以及历史所有 Token 的 K 向量和 ...
LLM 在推理阶段,其实用到的是最终 Embedding 矩阵的最后一行,而影响最后一行的最关键的计算是 Attention 的计算,进而在 Attention 中与其相关的是新增 Token 的 Q 向量,完整 Input 的 K 矩阵以及完整 Input 的 V 矩阵,因此,我们可以将该新增 Token 之前所有 Token 对应的 K,V 向量缓存起来,这便形成了 KV Cache。