Welcome to pan’s blog.
- Hi, this is Zhang Pan. I’m documenting my learning notes in this blog.
- Email: payne4handsome@163.com.
Welcome to pan’s blog.
篇幅较大,在飞书文档上编辑文档快一点,见: MLLM调研报告
见飞书文档: 对比学习总览
引言 最近在看相对位置编码的知识,本文算是对位置编码的总结吧。本文简单回顾绝对位置,然后介绍相对位置编码和PoRE(Rotary Position Embedding) preliminary 绝对位置编码 由于Transformer(Attention Is All You Need)的attention机制本身是没有引入位置信息的,例如,Sequence 1: ABC, Sequence 2: CBA, 两个Sequence中单词A经过Transformer的encode后,编码是一样的。但是在真实世界中,句子中单词的顺序对应语义理解是非常重要的。所以Transformer在计算MHA之前会将输入序列的词嵌入(embedding)加上一个位置信息,由于这个位置信息是直接加在embedding上的,所以也被称为绝对位置编码。在Transformer中的绝对位置编码实现是Sinusoidal位置编码,在BERT和GPT位置编码则当成是可学习参数。 Sinusoidal位置编码 $$\begin{cases} p_{k,2i} = sin(k/10000^{2i/d})\\ p_{k,2i+1} = cos(k/10000^{2i/d}) \end{cases}$$ $p_{k,2i}, p_{k,2i+1}$是位置k的位置编码向量的第$2i,2i+1$个分量,d是位置编码向量的维度(与输入embedding的维度相同)。 绝对位置编码的Attention 对于输入序列的$X = (x_1, x_2, …,x_i,…,x_j, …, x_n)$, 经过attention计算后的输出为$Z=(z_1, z_2, …,z_i,…,z_j,…,z_n)$, 其中$x_i \in R^d, z_i \in R^d$。 attention计算如下: $$\begin{cases} q_i = (x_i+pi)W_Q \\ k_j = (x_j+pj)W_K \\ v_j = (x_j+pj)W_V \\ a_{i,j} = softmax(\frac{q_ik_j^T}{\sqrt d }) \\ z_i = \sum_j a_{i,j}v_j \end{cases} $$...
ELBO(Evidence Lower Bound)是变分贝叶斯推断(Variational Bayesian Inference)中的重要概念。其将推断问题转化为优化问题。那什么是变分推断呢?先补充一些概念(不了解不影响本文的阅读,大致知道就行)。 泛函(functional):通常是指定义域为函数集,而值域为实数或者复数的映射。换而言之,泛函是从由函数组成的一个向量空间到标量域的映射。 变分:变分与函数的微分类似,变分为定义在泛函上的微分。g(x)和新函数g(x)+m$\eta(x)$的差导致泛函的变化就叫变分。即 $$\delta J = J[g(x)+m\eta(x)]-J(g(x))$$ ,其中$\delta J$就是变分。 推断(inference):利用已知变量推测未知变量的分布,即求后验分布$p(y|x)$,但这个后验分布往往很难求得,所以实际中往往使用近似推断去求解。典型代表就是变分推断 变分推断:用一个简单分布区近似一个复杂分布,求解推断(inference)问题的方法的统称。 变分贝叶斯方法:通过将复杂的后验分布用一个更简单的分布来近似,并通过优化让它们尽可能接近。 preliminary 当给定一些观测数据x时,我们希望获得x的真实分布p(x)。但是p(x)是一个非常复杂的分布,我们很难直接获得或者优化。所以对于复杂问题,我们通常采用化烦为简的思路求解。p(x)难求解,我们就用简单的分别去拟合。即可以引入一些简单分布, 将p(x)转化为如下形式去求解。 $$ \begin{align} p(x) = \int_z p(x|z)p(z)dz \end{align} $$ 其中p(z)是先验分布(先验分布的意思就是我们假设是已知的分布,比如我们就假设p(x)是标准正太分布),p(x|z)为条件概率。 我们这么理解上面的式子呢?我们借用ELBO中的例子(补充一句,强烈大家阅读这篇blog, 对ELBO的研究动机、原理都有比较清楚的解释,不想网上的很多文章上来给证明,完全不知道为什么要这么做,特别是对像我这种不理解前因后果就难受的人,是一种折磨)。 比如p(x)的分布是下面这个样子。 我们希望p(x)可以由一些简单分布变换而来。比如假设p(z)是一个简单高斯分布。 现在我们试着用p(z)加一些变换f(.)去拟合p(x)。 我们的出发点是好的,但是$p(x) = \int_z p(x|z)p(z)dz$依然是不可求解的。尽管我们把复杂分布解耦为简单高斯分布和高斯条件分布的乘积 原因有二。 这里有积分,在整个隐变量空间(且是连续的)进行积分是困难的。 p(x|z)我们同样不知道。 对于问题2,容易解决,因为我们有神经网络啊,我们用参数为$\theta$的神经网络去估计p(x|z), 记为$p_\theta(x|z)$, 但是积分如何解决呢? 公式1中是对整个隐空间进行积分,搜索空间太大,而且我们还需要对个隐空间进行积分。因为我们对z不是一无所知。因为给定样本x,我们是可以获取一些z的信息的,即可以用$q_i(z)$去估计$p(z|x_i)$,但是对每一个观测数据都对应一个$q_i(z)$需要大量的参数(there is an obvious drawback behind this intuition. The number of parameters of qi(z) will scale up with the size of the set of observations because we build individual distribution after observing each data, 参考:ELBO)。所以再次引入神经网络$q_\phi(z|x)\simeq q_i(z) \forall x_i \in X$。$q_i(z)$的真实分布为$p(z|x)$。...
Title: PINK: UNVEILING THE POWER OF REFERENTIAL COMPREHENSION FOR MULTI-MODAL LLMS 作者: Shiyu Xuan 发表日期: 2023-10-01 一、Introduction 背景知识 Referring:识别图片中具体的目标类别(包括给定point、bounding box、mask等) Grounding:给定文本描述,输出bounding box 简单来讲,Referring是给定坐标,输出文本(类别或者描述);Grounding是给定文本,输出坐标 1.1 该论文试图解决什么问题? 大部分的MLLM缺乏指代能力(Referential Comprehension (RC)),这篇提出一个新方法增强MLLM的RC能力。这篇文章中RC即包括Referring能力也包括Grounding能力 1.2 Key Contributions 提出pink增加MLLM的RC能力 用设计的各种RC任务,以一个低成本的方式构建质量微调数据集。为了进一步提升模型RC能力,提出自一致提升方法(self-consistent bootstrapping )扩展一个数据集的dense object annotations到高质量的referring-expression-bounding-box pair。 端到端训练框架,两个模态从指令微调中都收益(视觉、LLM加入了可学习参数,Adapter) SOTA(在某些方面比Kosmos-2还强) 介绍中的要点 传统VQA和RC的区别 传统的VQA是image-level的, RC VQA是更细粒度的 Method 整体架构 右边的self-consistent bootstrapping包括两步(1)grounding caption: 给定框生成caption,(2)visual grounding: 给定caption预测框 左边的模型结构包括visual encoder,projection layer,decoder-only LLM。 Training Pipeline:(1)第一阶段:只训练projection layer;(2)第二阶段:冻结e visual encoder和LLM。 训练新添加的Adapters参数(viusal encoder和LLM都会新加一些参数)和projection layer 指令微调数据集构建 设计的RC task包括如下(前3个是已经存在工作的方法,后面的是作者后设计的) visual relation reasoning visual spatial reasoning PointQA Visual Relation Reasoning Coarse Visual Spatial Reasoning:define four coarse spatial positions as top-left, top-right, bottom-left, and bottom-right....