变压器模型对比研究及两阶段锁协议中时间戳分配性能瓶颈消除
一、机器阅读理解模型相关研究
-
研究背景
- 互联网上存在海量数据,难以即时检索。机器阅读理解(MRC)可通过向模型输入大量数据来解决这一问题。
- 抽取式问答(EQA)技术和模型取得了显著进展,已被应用于搜索引擎以提高搜索结果质量。这得益于基于Transformer的架构和自注意力机制,它们能够捕捉上下文信息。
- 新型数据集如SQuAD、DuoRC和NewsQA通过基于推理的问答对和不可回答的问题,对MRC模型提出了挑战。随着基于常识、推理和逻辑的数据集的引入,将之前表现良好的MRC模型推广到新数据集变得具有挑战性。
-
模型介绍
- BERT :双向编码器表示来自Transformer(BERT)是一种语言表示方法,使用无标签文本训练深度双向表示。通过额外的一层,BERT可以针对下游任务进行微调。它使用掩码语言模型(MLM)来克服单向性的限制,在预训练时,BERT模型针对两个预测任务进行训练,即掩码标记预测和下一句预测(NSP)。
- XLNet :旨在解决BERT忽略掩码标记位置的相互依赖性以及预训练 - 微调差异的问题。它是一种广义自回归预训练方法,通过自回归公式解决了这些限制,能够学习双向上下文。在类似实验条件下,它在二十个任务上大幅超越了BERT。
- RoBERTa :对BERT的复制研究表明该模型训练不足。RoBERTa提出了一种更好的BERT训练策略,通过“更长时间训练、更大批量、去除NSP目标、在更长序列上训练以及动态改变掩码模式”等改进,在九个GLUE任务中的四个上建立了新的最优性能。
- ALBERT :是BERT的轻量级版本,性能与BERT相当甚至更优,旨在解决计算限制问题。它引入了两种减少参数的技术,即因式分解嵌入参数化和跨层参数共享,降低了内存消耗并加快了训练速度。
- DistilBERT :通过知识蒸馏方法在预训练阶段微调一个小型通用语言表示模型,在下游任务中实现高性能。它将BERT的大小缩小了40%,速度提高了60%,同时保留了其97%的性能。
- BART :双向自回归Transformer(BART)是一种用于预训练序列到序列模型的去噪自编码器。它通过用任意噪声函数破坏文本并学习重建原始文本来进行训练。在GLUE和SQuAD上,BART的性能与RoBERTa相当,并且在抽象对话、问答和摘要任务中表现良好。
- ConvBERT :对BERT的详细研究发现其所有注意力头都对整个输入序列进行查询,导致计算成本较高。为了明确建模局部依赖关系,ConvBERT用基于跨度的动态卷积(SDC)替换了一些注意力头,形成了混合注意力块,更有效地捕捉全局和局部上下文。
- ELECTRA :用替换标记检测(RTD)取代了掩码标记检测目标。它通过从生成器网络中选择合适的替换项来替换输入序列中的标记,然后学习区分真实标记和替换标记。通过在生成器和判别器网络之间引入权重共享,可以提高ELECTRA的效率。
- Retrospective Reader :近年来,MRC模型主要关注编码器端,而忽视了任务特定模块,如答案验证和问题 - 段落交互。Retro - Reader引入了Sketchy Reader和Intensive Reader,包含内部前端验证和外部前端验证模块,有助于区分不可回答的问题并准确预测可回答问题的答案。
-
方法
- Retro - Reader基于的问答系统 :确定了一种基于Retrospective - Reader和ELECTRA的架构,在SQuAD 2.0上取得了最优性能。该端到端架构在SQuAD和NewsQA上进行训练,依赖推理和理解能力。数据输入模型后,经过Sketchy Reader和Intensive Reader计算外部前端验证和内部前端验证值,这两个验证步骤的组合(Rear Verification)用于最终答案的预测。
-
评估指标
- F1 - Score :是信息检索的黄金标准指标,是精确率和召回率的调和平均值,用于比较MRC模型的性能。
- EM :计算与任何真实响应完全相同的预测的百分比。
二、各模型性能对比
| 模型 | EM | F1 |
|---|---|---|
| Human | 86.8 | 89.5 |
| BERT | 78.98 | 81.77 |
| XLNET | 87.9 | 90.6 |
| RoBERTa | 86.5 | 89.4 |
| ALBERT | 83.1 | 86.1 |
| BART | 86.1 | 89.2 |
| ConvBERT | 80.6 | 83.1 |
| ELECTRA | 80.5 | 83.3 |
| Retrospective Reader on ALBERT | 87.8 | 90.9 |
| Retrospective Reader on ELECTRA | 88.8 | 91.3 |
从表格中可以看出,Retro - Reader on ELECTRA在F1和EM指标上表现出色,这得益于其Rear Verification模块,有助于做出更合适的决策。
三、数据库并发控制中时间戳分配问题研究
-
研究背景
- 并发控制在事务并行处理时确保数据库的正确性。Bamboo是一种先进的并发控制协议,但它要求事务从单个集中式原子计数器获取时间戳,集中访问该计数器成为性能瓶颈。
-
解决方案
- 线程ID方法(TID) :事务使用线程ID作为时间戳。在高竞争环境下,TID的性能会急剧下降,但提出的优化方法FairTID可以维持性能。
- 随机ID方法(RandID) :使用随机数生成器分配时间戳。
-
实验结果
- 实验表明,与Bamboo相比,FairTID和RandID分别使吞吐量提高了60%和34%。
- 在高竞争环境下,TID的性能下降了24%,而FairTID和RandID分别比Bamboo提高了19% - 31%和12% - 22%。
四、未来研究方向
- 对于机器阅读理解模型,未来研究可以关注如何使计算密集型模型更轻量级,例如借鉴DistilBERT或ConvBERT的方法。
- 还可以研究如何通过在集成网络中跨可比模型共享参数,在降低计算负担的同时实现与集成模型相当的性能。
通过以上研究,我们对多种Transformer模型在机器阅读理解任务中的性能有了更深入的了解,同时也为数据库并发控制中时间戳分配的性能瓶颈问题提供了有效的解决方案。未来的研究有望进一步推动这些领域的发展,提高模型的性能和效率。
变压器模型对比研究及两阶段锁协议中时间戳分配性能瓶颈消除(续)
五、模型技术细节分析
-
BERT技术细节
- 架构 :BERT是多层双向Transformer编码器,主要有BERTbase和BERTlarge两种模型大小,在Transformer块数量、隐藏单元和自注意力头数量上有所不同。
-
预训练任务
:
- 掩码标记预测 :通过Masked Language Model(MLM),随机掩盖输入中的一些标记,目标是仅根据上下文准确预测该单词的词汇表ID。
- 下一句预测(NSP) :辅助模型学习句子之间的关系。
-
XLNet技术细节
- 解决问题 :针对BERT忽略掩码标记位置相互依赖性和预训练 - 微调差异的问题。
-
核心机制
:
- 排列语言建模 :允许模型在保留自回归模型优势的同时捕获双向上下文。
- 相对位置编码方案和段递归机制 :基于Transformer - XL,克服了Transformer的序列长度限制。
-
RoBERTa技术细节
- 改进策略 :通过“更长时间训练、更大批量、去除NSP目标、在更长序列上训练以及动态改变掩码模式”来优化BERT训练。
- 数据集 :使用CC - News新数据集控制训练集大小的影响。
-
ALBERT技术细节
-
参数减少技术
:
- 因式分解嵌入参数化 :将嵌入参数分解为两个较小的矩阵,当隐藏单元数量H远大于WordPiece嵌入大小时,参数减少效果显著。
- 跨层参数共享 :随着网络深度增加,减少参数数量。
- 损失函数 :用句子顺序预测(SOP)代替NSP,使用句间连贯性损失。
-
参数减少技术
:
-
DistilBERT技术细节
- 知识蒸馏 :在预训练阶段使用知识蒸馏方法,将BERT大小缩小40%,速度提高60%,同时保留97%的性能。
- 设计选择 :去除标记类型嵌入和池化器,优化Transformer架构中的主要操作。
-
BART技术细节
- 预训练方式 :是去噪自编码器,通过用任意噪声函数破坏文本并学习重建原始文本来训练。
- 架构 :BARTbase编码器和解码器使用6层,BARTlarge使用12层,解码器每层对编码器的最终隐藏层进行额外的交叉注意力操作,去掉了BERT在单词预测前使用的前馈神经网络。
-
ConvBERT技术细节
- 局部依赖建模 :用基于跨度的动态卷积(SDC)替换一些注意力头,形成混合注意力块,捕捉全局和局部上下文。
- 结构优化 :采用瓶颈结构减少注意力头数量,使用分组线性算子最小化参数。
-
ELECTRA技术细节
- 预训练目标 :用替换标记检测(RTD)取代掩码标记检测目标。
- 架构 :主要由生成器和判别器两个模块组成,通过权重共享提高效率。
-
Retrospective Reader技术细节
-
模块组成
:
- Sketchy Reader :与问题和上下文进行简要交互。
- Intensive Reader :证实答案,包含验证步骤。
- 验证模块 :内部前端验证和外部前端验证,组合形成Rear Verification,提升模型性能。
-
模块组成
:
六、模型性能对比可视化
以下是各模型在F1和EM指标上的对比柱状图:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A[Human]:::process --> B[F1: 89.5]:::process
A --> C[EM: 86.8]:::process
D[BERT]:::process --> E[F1: 81.77]:::process
D --> F[EM: 78.98]:::process
G[XLNET]:::process --> H[F1: 90.6]:::process
G --> I[EM: 87.9]:::process
J[RoBERTa]:::process --> K[F1: 89.4]:::process
J --> L[EM: 86.5]:::process
M[ALBERT]:::process --> N[F1: 86.1]:::process
M --> O[EM: 83.1]:::process
P[BART]:::process --> Q[F1: 89.2]:::process
P --> R[EM: 86.1]:::process
S[ConvBERT]:::process --> T[F1: 83.1]:::process
S --> U[EM: 80.6]:::process
V[ELECTRA]:::process --> W[F1: 83.3]:::process
V --> X[EM: 80.5]:::process
Y[Retrospective Reader on ALBERT]:::process --> Z[F1: 90.9]:::process
Y --> AA[EM: 87.8]:::process
AB[Retrospective Reader on ELECTRA]:::process --> AC[F1: 91.3]:::process
AB --> AD[EM: 88.8]:::process
从图中可以更直观地看出各模型在不同指标上的性能差异,Retro - Reader on ELECTRA在F1和EM指标上都处于领先地位。
七、数据库时间戳分配方法流程分析
-
Bamboo协议流程
- 事务需要从单个集中式原子计数器获取时间戳。
- 集中访问该计数器可能导致性能瓶颈。
-
线程ID方法(TID)流程
- 事务使用线程ID作为时间戳。
- 在高竞争环境下,性能可能下降。
- 优化方法FairTID可维持性能。
-
随机ID方法(RandID)流程
- 使用随机数生成器分配时间戳。
- 实验表明可提高吞吐量。
以下是三种方法的流程对比表格:
| 方法 | 时间戳获取方式 | 高竞争环境性能 | 吞吐量提升情况 |
| ---- | ---- | ---- | ---- |
| Bamboo | 从单个集中式原子计数器获取 | 可能因集中访问出现瓶颈 | - |
| TID | 使用线程ID | 性能可能下降 | - |
| FairTID(TID优化) | 使用线程ID | 可维持性能 | 比Bamboo提高60% |
| RandID | 使用随机数生成器 | 有提升 | 比Bamboo提高34% |
八、总结与展望
通过对多种Transformer模型在机器阅读理解任务中的研究,我们深入了解了各模型的特点和性能。Retro - Reader on ELECTRA凭借其独特的验证模块在性能上表现突出。在数据库并发控制中,针对Bamboo协议时间戳分配的性能瓶颈问题,提出的线程ID方法(TID)及其优化FairTID和随机ID方法(RandID)都取得了良好的效果。
未来,在机器阅读理解领域,可进一步探索如何使计算密集型模型更轻量级,以及通过参数共享实现与集成模型相当的性能。在数据库并发控制方面,可继续研究更高效的时间戳分配方法,以适应不断增长的并发事务处理需求。
总之,这些研究为相关领域的发展提供了有价值的参考,有望推动模型性能和效率的进一步提升。
超级会员免费看
732

被折叠的 条评论
为什么被折叠?



