当前位置: 首页 > news >正文

建站公司一般用什么框架直接打开

建站公司一般用什么框架,直接打开,合肥做检查军大网站,企业微信管理软件0. 前言 Embedding模型的主流框架基本上分为三类——基于bert结构的#xff0c;基于GPT结构的和基于T5结构的#xff0c;当然这些结构都是Transformer的变形。对于Embedding模型#xff0c;使用bert结构目前看是最好的。有篇论文论文对基于bert的Embedding模型和基于GPT的E…0. 前言 Embedding模型的主流框架基本上分为三类——基于bert结构的基于GPT结构的和基于T5结构的当然这些结构都是Transformer的变形。对于Embedding模型使用bert结构目前看是最好的。有篇论文论文对基于bert的Embedding模型和基于GPT的Embedding模型做过比较暂时找不到了后续找到会附上。另外本人也对基于bert的embedding模型和基于GPT的embedding模型做了比较试验结果表明基于bert的embedding模型完胜。 要让 embedding 模型性能提升除了在模型结构和训练数据上做文章之外还可以使用Whitening方法特殊的pooling方法和Simcse方法来提升效果。本文先介绍Whitening方法和特殊的pooling方法下一篇介绍Simcse方法。 1. Whitening 1.1 为什么可以用白化方法提升模型效果 白化操作不仅可以提升模型效果还可以对句子向量进行降维。 白化whitening方法之所以能够在embedding模型上产生正向效果是因为我们通常会用两个句子向量的余弦相似度来衡量这两个句子的相似性。但是由于类似由BERT和GPT这样的预训练语言模型得到的句子向量往往是具备各向异性的表现状态就是向量会不均匀分布且充斥在一个狭窄的锥形空间下。但是具备各向异性的向量之间直接计算余弦相似度会出现一些偏差这就导致 embedding 模型的表现变差。所以我们只要将各向异性的句子向量转化为一个各向同性的句子向量就可以提升 embedding 模型的效果。此时就用到了白化操作。 1.2 余弦相似度和各向异性 consin 假设 x x x 和 y y y 两个向量维度都是 R d R^d Rd。那么利用cosine的计算方法他们的相似度为 上述方程 (1) 仅在坐标基二维向量为标准正交基时才成立。余弦角度具有明显的几何意义但方程(1) 是基于运算的它取决于所选的坐标基。因此内积的坐标公式随着坐标基的变化而变化余弦值的坐标公式也会随之变化。 (Li et al., 2020) 验证了来自 BERT (Devlin et al., 2019) 的句子嵌入虽然没有得到适当的利用但已经包含了足够的语义。在这种情况下如果在操作方程(1) 计算语义相似度的余弦值时句子向量表现不佳原因可能是句子向量所属的坐标基不是标准正交基。从统计学的角度我们可以推断当我们为一组向量选择基时应该保证每个基向量是独立且一致的。如果这组基是标准正交基则相应的向量组应该具备各向同性。 综上所述上述启发式假设详尽地表明如果一组向量满足各向同性我们可以假设从标准正交基推导出来这也表明我们可以通过方程 (1) 计算余弦相似度。否则如果它是各向异性的我们需要对原始向量进行变换以某种方式嵌入句子以强制它是各向同性的然后使用等式 (1) 计算余弦相似度。 各向异性 定义各向异性是指在不同的方向上物理性质表达含义不同各向同性是指不同的方向上物理性质相同。 BERT和GPT的各项异性是怎么产生的假设一个句子的向量为 { x i } i 1 N \{x_i\}_{i1}^N {xi​}i1N​某2个字的向量分别为 x j [ x j 1 , x j 2 , x j 3 , … , x j n ] x_j[x_j^1,x_j^2,x_j^3,\dots,x_j^n] xj​[xj1​,xj2​,xj3​,…,xjn​]和 x h [ x h 1 , x h 2 , x h 3 , … , x h n ] x_h[x_h^1,x_h^2,x_h^3,\dots,x_h^n] xh​[xh1​,xh2​,xh3​,…,xhn​]其中 可以理解为参数句子长度sequence_length。由于 BERT 的Token Embedding与Position Embedding的设计结构导致了生成的句子向量不仅仅包含某单一token的MASK信息同时还具备了这个token在不同位置所代表的Position信息这直接为各向异性创作了条件。简单理解假设 x j 1 x_j^1 xj1​ 和 x j 2 x_j^2 xj2​ 分别代表这个 token 的 mask 信息和 position 信息实际不是这样简单的这两个维度就是不同方向有不同的性质。再举一个反例one-hot词向量就不具备各向异性而是具备了各向同性的特点。 1.3 白化计算 经过上述的分析想要让基于 bert 的 embedding 模型生成的句子向量用余弦相似度正确表示两个句子的相似性就得将句子向量转换到标准正交基下面。 标准正交基 我们知道对于两个向量 A A A 和 B B B来说如果 A ⋅ B 0 A \cdot B0 A⋅B0那么我们称这两个向量正交(零向量与任何向量正交)。 我们知道在n维的欧式空间中由n个向量组成的正交向量组称为正交基由单位向量组成的正交基称为标准正交基。 已知 当 A A A 和 B B B 都不是0向量的时候要让 A ⋅ B 0 A \cdot B0 A⋅B0则 c o s ( A , B ) 0 cos(A,B)0 cos(A,B)0也就是 ∑ i 1 d a i b i 0 \sum_{i1}^da_ib_i0 ∑i1d​ai​bi​0而 ∑ i 1 d a i b i \sum_{i1}^da_ib_i ∑i1d​ai​bi​ 表示向量 A A A 和 B B B 的协方差。 此时问题转换为 已知原句子向量矩阵为 X X X协方差矩阵为 C C C目标是将 X X X 转换为协方差为0的向量矩阵 Y Y Y Y Y Y 的协方差矩阵为 D D D求转换矩阵为 P P P。 其中 X X X 可表示为 其中 n n n 为sequence length a a a 和 b b b 代表不同的维度。 然后根据协方差的计算公式可得 我们可以看到这个矩阵对角线上的分别是两个变量的方差而其它元素是 a 和 b 的协方差。两者被统一到了一个矩阵里。 我们很容易被推广到一般情况 设我们有 m 个 n 维数据记录将其排列成矩阵 X m , n X_{m,n} Xm,n​ 设 C 1 m X X T C \frac{1}{m}XX^T Cm1​XXT则 C C C 是一个对称矩阵其对角线分别对应各个变量的方差而第 i 行 j 列和 j 行 i 列元素相同表示 i 和 j 两个变量的协方差。 由此可知我们需要将除对角线外的其它元素化为 0并且在对角线上将元素按大小从上到下排列变量方差尽可能大这里就是将协方差转为一个单位矩阵也就是矩阵的对角化。 推导一下 D D D 与 C C C 的关系 现在的目标变成了让 D D D 变成一个对角矩阵这样的话 Y Y Y 的协方差就都为0了。并且对角元素按从大到小依次排列那么 P P P 的前 K K K 行就是要寻找的基用 P P P 的前 K K K 行组成的矩阵乘以 X X X 就使得 X X X 从 N N N 维降到了 K K K 维并满足上述优化条件。 回到 embedding 模型本身的输出根据上述的协方差矩阵假设有一组句子向量也可以写为行向量 { x } i 1 N \{x\}_{i1}^N {x}i1N​在对它做线性变换之后生成一个均值为0、协方差矩阵为单位阵的目标向量 { x ~ } i 1 N \{\tilde x\}_{i1}^N {x~}i1N​。 其中 下面求解 W W W将原始数据的协方差记为: 由上面推导出的 D P C P T DPCP^T DPCPT可以得到 ∑ ~ W ∑ W T \tilde \sumW\sum W^T ∑~​W∑WT而我们的目标是 W ∑ W T I W\sum W^TI W∑WTI于是可得 我们知道 ∑ \sum ∑ 是一个正定对称矩阵正定对称矩阵都具有如下形式的SVD分解 其中 U U U 是一个正交矩阵 ∧ \land ∧ 是一个正对角矩阵则可以让 W − 1 ∧ U T W^{-1}\sqrt{\land}U^T W−1∧ ​UT则可以得到: 由于 ∧ \land ∧ 和 U U U 均可以由 ∑ \sum ∑ 求得所以 W W W 就被求出来了。 1.4 代码实现 def compute_kernel_bias(vecs, n_componentsNone):计算kernel和biasvecs.shape [num_samples, embedding_size]最后的变换y (x bias).dot(kernel):return kernel, biasif isinstance(vecs, list):vecs np.concatenate(vecs, axis0)mu vecs.mean(axis0, keepdimsTrue)cov np.cov(vecs.T)u, s, vh np.linalg.svd(cov)W np.dot(u, np.diag(1 / np.sqrt(s)))print(W)print(-mu)if n_components is not None:return W[:, :n_components], -muelse:return W, -mu【论文解读】BERT Whitening whitening计算详解 2. pooling 模型生成文本的 embedding 时会用 pooling 的方法进行降维但是在降维操作的时候常见的mean pooling 和 last token pooling都有一定的局限性比如都会忽略位置信息如果使用position weighted mean pooling将位置信息加进来会有更好的效果。 hidden_state的形状为(batch_size, sequence_length, hidden_size)mean pooling 就是在sequence_length上进行平均生成形状为(batch_size, hidden_size) 的embedding 矩阵。 而last token pooling是直接取 “[CLS]” 字短的embedding 作为整个文本的embedding。 position weighted mean pooling是在mean pooling 里面加上了位置信息。 mean pooling def mean_pooling(hidden_state: torch.Tensor, attention_mask: torch.Tensor | None None) - torch.Tensor:if attention_mask is None:return torch.mean(hidden_state, dim1)attention_mask attention_mask.float()return torch.sum(hidden_state * attention_mask.unsqueeze(-1), dim1) / torch.sum(attention_mask, dim-1, keepdimTrue)position weighted mean pooling def position_weighted_mean_pooling(last_hidden_state: torch.Tensor, attention_mask: torch.Tensor | None None) - torch.Tensor:weights (torch.arange(start1, endlast_hidden_state.shape[1] 1).unsqueeze(0).unsqueeze(-1).expand(last_hidden_state.size()).float().to(last_hidden_state.device))input_mask_expanded (attention_mask.unsqueeze(-1).expand(last_hidden_state.size()).float())# Perform weighted mean pooling across seq_len: bs, seq_len, hidden_dim - bs, hidden_dimsum_embeddings torch.sum(last_hidden_state * input_mask_expanded * weights, dim1)sum_mask torch.sum(input_mask_expanded * weights, dim1)embeddings sum_embeddings / sum_maskreturn embeddings
http://www.zqtcl.cn/news/667945/

相关文章:

  • 无锡专业网站制作的公司长春seo技术
  • 东莞做网站哪家最好电商网站支付接口
  • 西安火车站网站建设深圳做百度网站
  • asp网站助手金融学类就业方向及就业前景
  • 用点心做点心官方网站现在手机网站用什么做的好
  • 唐山市路桥建设有限公司网站专门写文章的网站
  • 东莞食品网站建设湖南企业竞价优化
  • 吉林网站建设找哪家湛江大型网站模板建设
  • 中国建设监理业协会网站国产cms
  • 计算机网站建设与维护wordpress 500错误
  • 元器件网站开发客户wordpress伪静态301错误
  • 网站设计排行怎么样用ppt做网站
  • 网站联盟名词解释网站建设 上海网站建设
  • 南通优普高端网站建设wordpress 煎蛋主题
  • 大企业网站制作及维护关于网站建设的论文题目
  • wordpress网站字体淄博网站搜索排名
  • visual stdio 做网站 注册用户 密码必须6位以上品牌服装网站源码
  • 做网站用到的技术湖南建设银行网站
  • 成都大型网站设计公司电脑上重新下载一个wordpress
  • 番禺网站建设知乎自己做网站卖矿山设备
  • 手表网站起名登录页面html模板
  • 泰国如何做网站推广大英网站建设工作
  • 山东省职业能力建设处网站dz论坛怎么做视频网站吗
  • 郑州专业做网站的公司今天郑州最新通告
  • wap网站引导页特效wordpress 文章 数据库
  • 做建筑效果图最好的网站做网站是如果盈利的
  • 企业网站seo托管怎么做seo公司培训
  • 自己做网站不想买空间 自己电脑可以做服务器吗?下载建设网站软件
  • 有服务器自己怎么做网站百度广告电话号码是多少
  • 一个网站 两个数据库沈阳市住房和城乡建设厅网站