keep主题4.x新增了很多功能配置,在升级的过程中遇到了一些问题,在此记录一下:
-
CUDA编程模型
参照数学坐标系,grid的规格是 $(4,3)$ ,block的规格是 $(3,2)$
-
MIND解读
这篇paper的核心是胶囊网络,该网络采用了动态路由算法自动对用户历史行为序列进行聚类,提取出多个兴趣向量,代表用户的不同兴趣。当用户再有新的交互时,通过胶囊网络,还能实时的改变用户的兴趣表示向量,做到在召回阶段的实时个性化。
-
TDM检索技术讲解
召回的任务是从海量商品库中挑选出与用户最相关的topK个商品。传统的召回检索时间复杂度是 $O(N)$ ,而阿里的TDM通过对全库商品构建一个树索引,将时间复杂度降低到 $O(logN)$ 。
-
新一代粗排系统COLD
为了让粗排支持交叉特征来提升模型性能,同时又为了降低引入交叉特征、复杂模型所带来的预估延迟和资源消耗,阿里团队提出了COLD,在模型效果和算力间取得了平衡。
-
Flash-Attention
这是一篇硬核的优化Transformer的工作。众所周知,Transformer模型的计算量和储存复杂度是 $O(N^2)$ 。尽管先前有了大量的优化工作,比如LongFormer、Sparse Transformer、Reformer等等,一定程度上减轻了Transformer的资源消耗,但对Transformer的性能有所折损,且扩展性不强,不能泛化到其它领域、以及复杂结构的叠加。
-
FLIP解读
FLIP由CLIP改进而来,其思想非常简单,通过在图片侧mask掉相当比例的patch(无须重构patch),实现速度和准确性的双重提升。
-
SENet在双塔中的应用
SENet思想非常简单,模型结构如下:
-
metapath2vec解读
metapath2vec在用在工业界的召回通路中比较多,非常适用于异构的K部图。
元路径 $P$ 定义形式如: $V_1 \rightarrow^{R_1} V_2 \rightarrow^{R_2} A_3 \ldots \rightarrow^{R_l} A_{l+1}$ 表示了从 $A_1$ 到 $A_{l+1}$ 的复杂关系。
其中 $V_i$ 表示节点类型,$R_i$ 表示节点间的关系。 $R=R_1 \circ R_2 \circ R_3 \circ R_l$,元路径 $P$ 的长度即为关系 $R$ 的个数。 -
常见的LLM推理加速解决方案
- KV Cache:用空间换时间
- 当decoder输入序列是 $t_1, t_2, \dots, t_n$ 时,预测$t_{n+1}$,只需利用到 $q^n$ 以及历史所有的 $k^i, v^i, i \in \{1,\dots,n \}$ :无须冗余attention计算 $h_1, \dots, h_{n-1}$ 以及 qkv映射 $q_1=W_q(t_1), k_1=W_k(t_1), k_1=W_v(t_1), \dots, q_{n-1}=W_q(t_{n-1}), k_1=W_k(t_{n-1}), k_1=W_v(t_{n-1})$
- KV Cache:用空间换时间