大数跨境
0
0

复制即是一切所需

复制即是一切所需 涛哥论道
2023-08-01
0
导读:论文《复制即是一切所需》的阅读笔记,论文中提到的实现框架和技术,可以借鉴。

主流的文本生成模型通过从固定词汇表中顺序选择词来组成输出。本文将文本生成形式化为从现有文本集合中逐步复制文本段(如词或短语)。我们计算有意义文本段的上下文化表示,并使用高效的向量搜索工具包对其进行索引。然后,文本生成任务被分解为一系列复制粘贴操作:在每个时间步,我们从独立词汇表中选择而不是从一个独立词汇表中选择,寻求合适的文本跨度。在标准语言建模基准测试(WikiText-103)上的实验表明,与基于自动和人工评估的标杆相比,我们的方法实现了更好的生成质量。此外,由于解码步骤的减少,其推理效率与标志性的token-level自动回归模型相当。我们还展示了我们的方法通过简单切换到特定域的文本集合来进行有效的域自适应,而无需额外训练。最后,我们观察到,我们的方法通过简单扩展到更大的文本集合来获得额外的性能提升,同样也无需进一步训练。

论文原文地址:2307.06962.pdf (arxiv.org)

一、CoG的实现架构

1. COG由三个主要组件组成:(1)前缀编码器,将前缀映射到固定大小的表示;(2)上下文相关的短语编码器,计算源文本集合中的短语的向量表示;(3)一组上下文无关的词嵌入,类似标准神经语言模型中使用的。

2. 前缀编码器使用标准的Transformer架构进行编码。短语编码器基于BERT模型,通过双向Transformer获取每个词的上下文表示,然后通过两个MLP将其转换为起始词和结束词表示,短语表示由它们的拼接得到。 

3. COG的训练目标是最大化前缀和相关短语在共享向量空间中的相似性,使其表示尽可能接近,不相关的远离。使用负采样的InfoNCE损失函数。

4. 为提高推理效率,COG使用两级搜索策略。先用文档检索模型检索出与前缀相关的Top K文档,然后从这些文档提取的短语中查询。

5. COG既可以用贪心搜索也可以用采样的nucleus解码。在每个时间步选择最大概率的短语进行生成。

总体来说,COG通过引入短语级的检索机制,改进了标准Seq2Seq语言模型的生成过程,既考虑了上下文信息,又能够直接生成词组,而不仅是单个词汇,是一种颇具创新与影响力的生成范式。

二、前缀编码器(Prefix Encoder)的实现

前缀编码器的具体实现如下:

1. 前缀编码器使用标准的Transformer架构,其中采用了GPT2模型的结构,包含12层,每层有12个heads,隐层向量维度为768。

2. 输入的是前缀序列,将其视为词级别的token序列(之前生成的短语被拆分为词)。

3. 使用 causal self-attention 机制对输入序列进行编码,即每个位置只 attend 到其前面的位置。这可以增量地生成前缀的表示,从而实现更快的推理。

4. 前缀x_长度为i,Transformer会将其编码为一个矩阵H_i∈R^{i×d_L},其中d是隐状态维度,L是Transformer层数。

5. 递归计算公式如下:

H_{i+1} = PrefixEncoder(x_i, H_i)

6. 取最后一个词的隐状态作为整个前缀x_<i>的向量表示q_i。

7. 前缀编码器的参数来自预训练好的GPT2模型,在具体任务上需要fine-tune。

8. 通过前缀编码器的编码,前缀的上下文语义信息被编码到向量q_i中,用于后续与短语表示的相似性计算,指导短语的检索和生成。

三、短语编码器(Phrase Encoder)的实现

短语编码器的具体实现如下:

1. 短语编码器负责为源文本集合中的所有短语计算向量表示。

2. 对源文档D进行预训练BERT的编码,得到每个词的上下文化表示D∈R^{m×d_t}。

3. 将D分别过两层MLP,得到起始词表示D_start和结束词表示D_end,均为R^{m×d/2}。

4. 对于文档中第s到第e个词组成的短语,其短语表示为D_start[s]和D_end[e]的拼接:

PhraseEncoder(s, e, D) = [D_start[s]; D_end[e]] ∈ R^d

5. 这样一来,只需要编码一次文档,就可以得到所有短语的表示,而且只需要存储词级别的表示,节省空间。

6. 短语编码器基于预训练BERT模型,在具体任务上需要fine-tune。

7. 短语的上下文语义信息被编码到其短语表示中,用于后续与前缀的相似性计算,指导短语的检索和生成。

8. 所有短语的表示被离线编码并索引,用于加速在线部署时的查询。

综上,短语编码器通过双向编码获取短语的上下文化表示,并采用一种高效的存储方式,为大规模短语集合的处理提供了支持。这是COG模型的关键组成部分。

四、词嵌入的实现

论文中提到COG还使用了上下文独立的词嵌入,其目的是保留用单个词汇组合输出的能力,具体如下:

1. 即使COG可以从其他文档中复制短语,但有时候源文本中没有合适的短语,仍需要用单词进行生成。

2. 因此,COG还将标准神经语言模型中使用的固定词汇表V中的每个词w对应的上下文独立的词向量vw也加入到短语表中。

3. 这些词向量vw ∈ R^d 与短语编码器产生的短语表示是分开训练的。

4. 它们可以看作长度为1、没有上下文信息的特殊“短语”。

5. 当没有合适的短语可用时,COG可以 fallback 到词向量,继续用单个词预测的方式进行生成。

6. 词向量表的大小等于预定义的词汇表大小,论文中是50257个子词组成。

7. 训练时,词向量表通过标准的语言模型损失进行学习。

8. 推理时,词向量表与短语表合并,作为检索时的候选目标。

9. 引入词向量使COG兼具短语检索和单词生成的能力,增强其泛化性和可应用场景。

综上所述,上下文独立的词向量为COG提供了fallback选项,保证了一定的生成能力,使模型更加鲁棒与完整。这是除短语编码器外COG的另一关键组成部分。

五、CoG的训练过程

关于COG的训练,论文中提出了如下方法:

1. 将语料库中的每篇文档拆分成短语序列,作为COG的训练数据。

2. 使用一种基于前向最大匹配的贪心算法进行短语分割。从左向右扫描文档,找到可以在其他文档中也出现的最长前缀,如果长度超过2就作为一个短语。

3. 对于每个短语,如果它是从其他文档中复制的,就用短语编码器计算其上下文化表示。如果是从词汇表中产生,就直接取其词向量。

4. 假定文档D被分割为n个短语p1,...pn,第k个短语pk的前缀表示为qk。

5. COG的训练目标是最大化前缀和相关短语的相似度,使其在共享向量空间中尽可能接近。

6. 使用负采样的InfoNCE损失函数计算短语预测的损失:

L_p = - (1/n) * Σ log ( exp(qk·pk) / Σ_p∈Pk exp(qk·pp) + Σ_w∈V exp(qk·vw) )

其中Pk表示文档Dk中的所有短语,V为词汇表。

7. 同时也使用标准的词级别语言模型损失进行词向量的训练。

8. 最终损失为短语损失和词损失之和。

通过上述方法,COG在短语级别上进行文本生成任务的训练,既考虑了上下文信息,也兼顾了单词生成,使模型融合检索和生成的优势。

六、CoG的两级搜索策略

论文中提到,为了提高COG的推理效率,使用了两级搜索策略快速查询大规模短语索引,具体如下:

1. 第一级是文档检索。给定前缀,使用文档检索模型(如DPR)检索出与前缀相关的Top K文档。

2. 第二级是短语检索。从第一级检索到的Top K文档中,提取所有短语的表示,进行相似度计算和短语选择。

3. 文档检索预选可以大幅减少短语搜索空间,否则需要在数十亿规模的短语集合中搜索,不现实。

4. 相关文档通常与前缀在主题上相似,很可能包含相关连贯的短语,所以可以有效缩小搜索范围。

5. 文档检索使用流行的语义匹配模型DPR进行索引。查询使用向量搜索工具FAISS。

6. K值经验设置为1024,可以平衡速度和召回率。

7. 短语检索阶段则通过计算前缀表示和候选短语表示的相似度,选择最匹配的短语。

8. 短语表示是离线预计算编码的,加速在线部署时的查询。

9. 通过两级过滤,既保证了检索质量,也大大减小了搜索空间,使巨大短语表的查询成为可能。

上述两级搜索策略实现了高效的大规模短语检索,是COG模型在工程实现上一个关键设计。

七、DPR模型

DPR(Dense Passage Retrieval)是一种密集语义检索模型,具体可以概括如下:

1. DPR用于在开域问答、检索式对话等任务中快速地从大规模文本库中检索与查询(如问题或对话上下文)语义相关的文本段。

2. 传统的稀疏检索模型如BM25依赖词频等统计特征,而DPR利用预训练语言模型学习query和passage的稠密向量表示,可以捕获语义信息。

3. DPR由双塔(Two Tower)架构组成。Query Tower对query进行编码得到query的向量表示;Passage Tower对索引库中的所有passages进行编码得到passage向量。

4. 在索引阶段,将所有passage向量进行索引,以提高搜索速度。常用的索引结构有IVF和HNSW等。

5. 在搜索阶段,对输入query进行编码,然后利用向量相似度搜索与query向量最相似的Top K个passage向量。

6. DPR通常基于预训练BERT等模型进行fine-tune,可以学习到更好的语义空间。

7. 与稀疏模型比,DPR可以大幅提升开域检索任务的召回率,是近年开域QA、对话系统常用的检索模块,也用于COG的文档检索中。

综上,DPR通过双塔编码获取query和passage的稠密向量,基于向量余弦相似度进行快速检索,是当前最优秀的开域语义检索模型之一。

八、FAISS

DPR和FAISS的关系可以概括如下:

1. DPR是一种密集语义匹配模型,用于学习query和文档的语义向量表示,实现语义相似度的排序。

2. FAISS是一种高效的向量搜索工具库,可以对向量进行索引,从而实现大规模向量的快速最近邻搜索。

3. 在DPR中,Passage Tower会学习大量passage的向量表示,需要构建索引来优化搜索速度。这里就可以使用FAISS。

4. FAISS支持多种向量索引结构,如IVF、IVFPQ、HNSW等,可以对数十亿规模的向量进行索引和快速kNN搜索。

5. 在DPR的索引阶段,可以使用FAISS对Passage Tower学习到的所有passage向量进行索引。

6. 在搜索阶段,输入query的向量后,可以直接调用FAISS的接口,基于索引快速找到与query向量最近的Top K个passage。

7. FAISS为DPR提供了高效搜索与索引的后端实现,使DPR可以在大规模文本集合上取得高召回率。

8. 在COG中,也通过FAISS对编码后的短语向量进行快速最近邻搜索。

总之,DPR专注学习语义匹配空间,而FAISS是DPR的向量搜索与索引后端,两者结合实现了高质量且高效的开域语义检索。FAISS的引入很大程度上推动了DPR等检索模型的产业化应用。

九、贪心算法和Nucleus算法

贪心算法和nucleus算法都是文本生成任务中的解码方法,主要区别如下:

1. 贪心算法(Greedy Search):每一步都选择当前概率分布下概率最大的下一词,进行确定性解码。

2. Nucleus 采样(Nucleus Sampling):根据前缀生成的下一个词的概率分布,选择积累概率大于阈值p的顶端词汇作为候选,从中采样选择下一词。p通常取0.9以上。

3. 贪心算法容易导致浅层重复和循环,nucleus采样可以增加生成多样性,降低重复性。

4. 但是贪心算法可以产生更流畅和语法正确的生成结果。这也是为何很多评测指标优化会采用贪心生成。

5. Nucleus采样增加随机性,可以产生更丰富多样的结果,但部分结果可能不连贯或无意义。

6. 综合来说,贪心算法更看重流畅性,而nucleus采样更看重多样性。需根据具体场景需求选择。

7. 在COG中,同时支持贪心和nucleus两种解码算法,实验表明其生成质量优于其他模型。

综上所述,贪心算法和nucleus采样在生成质量上的取舍不一样,都是常用的文本解码算法,可根据实际需要选择使用。

十、Law-MT实验情况

论文中在Law-MT数据集上的实验主要有以下情况:

1. Law-MT是一个英德法律领域的机器翻译数据集,其英文部分被用来评估模型的域自适应能力。

2. 在这个设置下,在WikiText-103上训练的模型被直接测试在Law-MT上,没有进行域专用的训练。

3. kNN-LM,RETRO和COG的索引都是从Law-MT的训练集中构建。

4. 还给出了在Law-MT数据集上fine-tune的Transformer作为比较基线。

5. 结果显示,COG明显优于其他所有模型,包括fine-tune后的Transformer。

6. 在自动评估指标MAUVE上,COG达到28.14,超过Transformer 26.85,提升1.29。

7. 在人类评估中,COG也优于Transformer,分别得到52%和36%的优异率。 

8. 这说明COG可以通过简单切换文本源,不需要额外训练就实现域自适应,生成质量超过fine-tune基线。

9. 而kNN-LM虽然在词汇多样性上有提升,但MAUVE较COG低很多。

10. 综上所述,在法律领域数据上的实验表明,COG具有跨域泛化的能力,可以zero-shot进行域自适应。

以上总结了论文在Law-MT数据集上评估COG域自适应能力的主要实验情况。结果进一步验证了COG的效果。

十一、潜在问题总结

论文中提出的COG模型虽然取得了 state-of-the-art 的结果,但文中也指出了该模型存在的一些潜在问题需要考虑:

1. 生成文本中大量复制原文段落会引发版权和原创性的担忧,实际应用中需要妥善引用来源。

2. 模型训练需要通过启发式方法拆分语料为短语,这种短语提取方式可能不是最优的。更好的短语提取技术可以提高效果。

3. 模型仍需依赖固定词汇表作为后备选择。如何消除这种依赖还不清楚。

4. 模型性能依赖于大规模短语索引,要索引和搜索数十亿规模的短语在工程上具有挑战。

5. 模型对源文本集合的选择和处理需要人工定制和筛选,无法完全自动化。

6. 模型对文体和语域的适应性还需进一步验证。

7. 当无法检索到相关短语时,模型的生成质量仍可能下降。

8. 检索空间的划分也会影响模型效果,需要深入研究。

9. 模型的社会影响和偏见也需要进一步评估。

总之,这些都是未来需要继续研究以进一步增强模型并推动技术发展的方向。这些建议对完善工作非常有价值。

【声明】内容源于网络
0
0
涛哥论道
李鹏涛,行业知名AI技术专家,清华大学创新领军工程博士,2012年加入京东,任高级总监,领导京东核心系统的研发,2017年任居家事业部产品研发部总经理。先后荣获全球架构师峰会优秀出品人,全球软件开发大会优秀讲师,物流信息化风云人物等奖项。
内容 114
粉丝 0
涛哥论道 李鹏涛,行业知名AI技术专家,清华大学创新领军工程博士,2012年加入京东,任高级总监,领导京东核心系统的研发,2017年任居家事业部产品研发部总经理。先后荣获全球架构师峰会优秀出品人,全球软件开发大会优秀讲师,物流信息化风云人物等奖项。
总阅读0
粉丝0
内容114