本研究设计了一种自适应学习系统,用于从文本中提取知识以回答问题,通过余弦相似度在延迟和语义泛化方面比较了Google-BERT、DistilBERT、RoBERTa和TF-IDF模型。Google-BERT表现最佳,但该系统对拼写错误仍较敏感,强调在实际应用中需要进行有效的预处理。
研究文章
本研究设计了一种自适应学习系统,用于从文本中提取知识以回答问题,通过余弦相似度在延迟和语义泛化方面比较了Google-BERT、DistilBERT、RoBERTa和TF-IDF模型。Google-BERT表现最佳,但该系统对拼写错误仍较敏感,强调在实际应用中需要进行有效的预处理。
为了从文本文件中提取知识,并通过在上下文中查找正确信息来回答用户的问题,人们设计了诸如问答系统(Question Answering System, QAS)之类的自适应学习系统来实现这一目标。这一重点推动了对直接回答系统以及大规模测试在问答(QA)任务中应用的进一步研究。为促进该领域发展,本研究采用了一个涵盖事实型和非事实型问题的语义封闭域问答(Semantic Closed-domain QA, SCD-QA)数据集,并结合预训练的 Transformer 模型进行实验。本研究在 SQuAD 数据集上评估并比较了三种预训练 Transformer 模型——Google-BERT、DistilBERT 和 RoBERTa——以及一种基于关键词的 TF-IDF 模型与余弦相似度方法的推理能力。结果表明,Google-BERT 表现最优,其平均精确匹配(Exact Match, EM)得分为 90.0,平均延迟为 1.27 秒。该系统在包含同义词的问题上也表现出色,显示出对语义的较强理解能力。但在存在拼写错误的问题上表现不足,表明其对拼写错误较为敏感,在实际应用中需要更优的前期处理机制。
自然语言处理(Natural Language Processing, NLP)是人工智能(Artificial Intelligence, AI)的一个子领域,可用于构建问答系统(QAS),使计算机系统能够自动回答提出的问题1。NLP 主要关注以模拟人类大脑认知过程的方式,对书面语言进行理解与解释2。通过执行这些任务,NLP 成为构建能够生成类人响应系统的关键技术。
问答系统(QAS)是自然语言处理(NLP)应用的一个实例,能够响应用户提出的问题3。QAS 是一个跨领域研究方向,融合了信息检索(IR)、信息抽取(IE)和自然语言处理(NLP)等多个领域中具有共性的问题。目前,现代搜索引擎主要执行文档检索任务4。换句话说,当用户提供特定关键词时,这些搜索引擎仅返回按相关性排序的、包含指定关键词的相关文档列表,而无法提供精确的答案。QAS 的目标是帮助用户在特定主题范围内快速获取针对具体问题的准确答案5。QAS 可依据 图1 中所示的分类方式进行归类6。事实型(factoid)与非事实型(non-factoid)问答系统均以自然语言(NL)为基础,旨在回应以自然语言提出的问题。该系统利用自然语言处理技术,基于现有语料库提供答案7。

图1:问答系统的分类。该图展示了一个问答系统主要组成部分的思维导图。中心为问答系统,可处理多种类型的问题,包括事实型问题、非事实型问题、混合型问题、视觉型问题、对话型问题以及选择题。请点击此处查看此图的放大版本。
本研究提出了一种语义封闭领域问答(SCD-QA)系统,用于以自然语言(NL)回答用户关于博士入学政策与流程的问题。该系统以博士生管理规定PDF8作为核心上下文,采用基于Transformer的双向编码器表示模型(BERT)9作为生成回答的主要框架。目标是设计一个基于常见问题解答(FAQ)的语义化对话式问答系统(QAS),能够准确回答常见问题,帮助新录取的学生快速获取所需的关键信息。
为实现这一目标,采用了三种广泛知名的基于 Transformer 的 BERT 模型:Google-BERT9、DistilBERT10,11 和 RoBERTa12,13,这些模型均在斯坦福问答数据集(Stanford Question Answering Dataset, SQuAD)14 上进行训练。通过两个关键参数评估其性能:语义匹配度,以精确匹配(Exact Match, EM)14 衡量;以及模型延迟(Latency)15,通过平均响应时间进行分析。此外,使用了向量数据库(Vector Database, VD)16,17 来存储语义嵌入,以便根据语义相似性得分检索与用户问题语义最相关的内容上下文。
文献综述
基于Transformer的模型彻底改变了自然语言处理(NLP)领域,使问答系统(QAS)性能得到显著提升。BERT9的提出,进一步确立了Transformer架构在构建鲁棒且精确的问答系统中的核心地位。本节将全面回顾基于Transformer的模型及语义嵌入技术的最新进展,重点探讨其在语义对话问答(SeCD QA)中的相关性。同时,通过比较分析论证本研究中集成这些模型的合理性,强调其在该领域推动深入洞察的可行性。
基于 Transformer 的架构(如 BERT、DistilBERT 和 RoBERTa)采用自注意力机制来捕捉文本中复杂的上下文关系,这使得它们非常适合需要深入语义理解的任务,例如问答系统(QAS)。这些模型连同专用的句子 Transformer 一起生成语义嵌入,从而在 SeCD 问答系统中通过基于向量的相似性搜索实现快速而精确的上下文检索。近期的研究重点在于改进这些模型和嵌入技术,以提升吞吐量、可扩展性和效率,尤其是在 SCD-QA 等特定任务中的应用。
Sengupta 等人18提出了一种创新方法,通过微调 BERT 模型来提升基于科学问题的多项选择题问答系统(MCQAS)的性能。在他们的框架中,首先评估问题与答案对之间的分布式语义相似性,然后将这些相似性得分与原始特征一起输入分类层。该联合方法在 SciQ 数据集上达到了 90.2% 的 F1 分数,凸显了 BERT 在需要细致理解与精确分类的特定任务问答系统中的有效性。
Cichecki 等人19比较了 ChatGPT 与经过微调的 BERT 模型在智能设计支持系统中的应用,发现针对特定领域任务,经过微调的 BERT 模型优于通用大型语言模型(LLM)如 ChatGPT,在自定义数据集上达到了 88.5% 的 F1 分数。该研究凸显了领域特定微调在提升专业应用场景中模型性能的重要性。
Guo 等人20研究了在标注预算有限的情况下,针对问答系统(QAS)的任务特定微调策略的效率。他们的研究发现,采用两阶段微调方法——首先在 SQuAD 等通用问答数据集上进行微调,然后在任务特定数据集上进一步微调——在 COVID-QA 等数据集上的 F1 分数显著提升了 15%。该结果凸显了顺序微调在提升 SeCD 问答系统性能中的关键作用。
Pudasaini 和 Shakya21 研究了微调后的 BERT 模型在生物医学研究论文问答任务中的应用,在一个源自 PubMed 的自定义生物医学问答数据集上,分别报告了 83.89% 和 89.67% 的 EM 与 F1 分数。通过利用 PubMedBERT 进行迁移学习,该方法展现出处理复杂生物医学问题的显著能力,凸显了任务特定微调在该领域的潜力。
Baek 等人22提出了一种用于零样本知识图谱(KG)问答的知识增强型语言模型提示框架。该方法利用语义相似性从知识图谱中检索相关事实,并将其融入输入问题中。结果在 KG-QA 数据集上达到了约 85% 的 F1 分数。该项工作展示了结合知识图谱与 Transformer 模型的潜力,凸显了知识增强在提升问答性能方面的优势。
Hu 等人23描述了一种面向户籍领域的问答系统(QAS),该系统结合知识图谱(KG)与基于 BERT 的模型(RoBERTa-BiLSTM-MultiHeadAttention),用于意图分类和语义分析。通过将问题简化为单事件实体及意图关系,该方法在查询结构化数据时实现了高准确率。此外,该方法在其他领域的可扩展性进一步凸显了其在基于知识图谱的问答系统中的广泛应用潜力。
Luo 等人24提出了一种基于 BERT 的知识库(KB)问答框架,该框架结合了多粒度剪枝模型(MGPM)和关系感知注意力机制。该方法在 SimpleQuestions 数据集上达到了 94.4% 的显著准确率,在 WebQuestionsSP 上达到 68.6%,在 WebQuestions 上达到 63.7%。这些结果表明,BERT 在利用语义相似性进行结构化数据查询方面具有显著效果。总体而言,该研究凸显了基于 Transformer 的模型在知识库问答(KB-QA)中的潜力,特别是在需要精确识别实体和关系的场景中。
Wu 等人25为建筑管理中的问答任务设计了一种基于检索增强生成的框架,特别关注安全与合规性查询。该方法结合基于 BERT 的语义嵌入、生成式 Transformer 模型以及特定任务的知识图谱(KG),在建筑相关的问答数据集上达到了 88.7% 的 F1 分数。该研究展示了将语义理解与基于知识图谱的检索相结合,在特定任务的建筑管理问答数据集中提升准确率的潜力。
Peng 等人26 对包括 BERT 和基于 GPT 的大语言模型(LLM)在医学问答任务中的表现进行了系统性评估。通过结合 BERT 的上下文理解能力与 GPT 的生成能力,他们采用检索增强生成和领域特定的微调方法,在来自 PubMed 和临床记录的数据集上实现了 86.2% 的 F1 分数。该研究凸显了集成模型在医疗健康领域提升推理准确性的潜力,因为在该领域中,上下文理解与精确生成均至关重要。
Gardazi 等人27综述了 BERT 在自然语言处理任务中的应用,如问答(QA)、情感分析和命名实体识别(NER)。他们的分析表明,经过微调的 BERT 模型在特定任务的问答数据集(如 SQuAD)上可达到 85%–92% 的 F1 分数。这表明 BERT 能够可靠地生成有效的上下文嵌入,并可结合知识图谱(KGs),因此非常适用于语义化临床诊断问答系统(SeCD QAS)。
基于Transformer的模型因其能够捕捉上下文敏感处理、高效扩展以及适应特定领域任务的独特能力,已成为语义化学检测问答系统(SeCD QASs)的决定性选择。表1通过将基于Transformer的模型与本研究中考察的其他方法进行比较,展示了这一决定性优势18,20,22,23,24,25。
| 方法 | 关键特征 | 优势 | 局限性 | 性能指标(SQuAD) | 适用场景 |
| 基于Transformer的模型(BERT, RoBERTa, DistilBERT) | 双向上下文建模、自注意力机制、在领域特定数据上进行微调 16, 17, 19, 24, 25 | 高准确率、强大的语义理解能力、可与向量数据库结合实现扩展 18, 20, 22, 24, 25 | 计算成本较高、需要预训练 17, 18 | EM: 80–90%, F1: 85–93% 16, 17, 19, 24, 25 | 适用于封闭域问答(CD-QA)、常见问题解答系统及语义搜索 16, 17, 19, 20, 22, 24, 25 |
| 传统基于规则的系统 | 人工设计规则、关键词匹配 16 | 计算成本低、实现简单 16 | 可扩展性有限、难以处理复杂查询 16, 18 | EM: 50–60%, F1: 55–65% 16 | 适用于基于结构化数据的简单问答系统 16 |
| 循环神经网络(RNNs) | 序列化处理、LSTM/GRU架构 19 | 在序列任务中表现中等 19 | 难以处理长距离依赖、推理速度较慢 19, 9 | EM: 65–75%, F1: 70–80% 19 | 适用于通用自然语言处理任务,在封闭域问答中效果较差 19, 9 |
| 基于关键词的检索系统 | TF-IDF、BM25算法 18, 22 | 检索速度快、资源消耗低 18, 22 | 仅限于表层匹配、语义理解能力差 18, 22 | EM: 40–50%, F1: 45–55% 18, 22 | 适用于文档检索,不适用于精确的问答系统 18, 22 |
| 卷积神经网络(CNNs) | 局部特征提取、卷积层 25 | 在短文本分类中高效、推理速度快 25 | 上下文理解能力有限、在复杂问答任务中效果不佳 25 | EM: 60–70%, F1: 65–75% 25 | 适用于文本分类任务,不理想于封闭域问答 25 |
| 图神经网络(GNNs) | 基于图的建模、关系推理 20 | 在多跳推理中表现优异,能够捕捉文档间关系 20 | 计算复杂度高、需要结构化数据 20 | EM: 70–80%, F1: 75–85% 20 | 适用于多跳问答系统,在单上下文封闭域问答中适用性较低 20 |
| 基于知识图谱的系统 | 结构化知识表示、实体链接 21 | 在结构化数据查询中表现强,可利用外部知识 21 | 需要预先构建的知识图谱、仅限于已知实体 21 | EM: 65–75%, F1: 70–80% 21 | 适用于具有结构化数据的领域特定问答系统 21 |
| 增强注意力模型 | 改进的注意力机制、聚焦上下文处理 24 | 更精准地关注相关文本片段、高准确率 24 | 计算成本较高、实现复杂 24 | EM: 85–90%, F1: 88–92% 24 | 适用于复杂封闭域问答、非事实性问题 24 |
| 词袋模型 | 基于词频的表示方法 22 | 简单、计算开销小 22 | 语义理解能力差、对复杂查询无效 22,25 | EM: 35–45%, F1: 40–50% 22 | 适用于基础文本检索,不适用于问答系统 22, 25 |
| 混合神经模型(CNN+RNN) | 结合局部与序列化处理 25 | 在局部与上下文理解之间取得平衡 25 | 中等复杂度、在长上下文处理中表现不佳 25 | EM: 68–78%, F1: 72–82% 25 | 适用于通用自然语言处理任务,对封闭域问答具有中等适配性 25 |
| 统计语言模型 | 基于概率的词语关联 18 | 对简单查询响应快、资源消耗低 18 | 上下文理解能力有限、可扩展性差 18 | EM: 45–55%, F1: 50–60% 18 | 适用于基础问答系统,不适用于复杂封闭域问答 18 |
表1:基于Transformer的模型与其他问答系统方法的比较。 该表格对多种问答系统方法进行了并列比较,包括基于Transformer的模型、基于规则的系统、循环神经网络(RNN)及其他方法。表格总结了它们的主要特征、优势、劣势、在SQuAD数据集上的性能,以及各自最适用的任务类型,如文档级问答(CD-QA)、语义搜索和文本分类。
本研究的主要目标是通过开发高效、可扩展且精确的自然语言处理(NLP)领域中的SCD-QA系统,提升学生对机构信息的获取能力。具体而言,本验证性研究在博士招生政策领域内应用并验证基于预训练Transformer的模型,旨在通过引入语义匹配、模型延迟评估以及基于向量数据库(VD)的语义检索,证明这些模型的有效性与实际可行性。该方法为在特定机构背景下提供准确、面向领域的答案提供了深入的分析。图2展示了系统的整体架构框架。

图 2:SCD-QA 系统的整体架构。 该图展示了一个利用大语言模型(LLMs)的问答系统流程图。系统从一个上下文文件和用户提出的问题开始,由三个模型——Google-BERT、DistilBERT 和 RoBERTa,以及一个基于关键词的模型 TF-IDF 分别进行处理。系统通过一个检查清单评估每个模型的表现,然后根据评估结果选择最优模型。请点击此处查看该图的放大版本。
访问受限。请登录或开始试用以查看此内容。
全面的理论基础
QAS 组成部分: QAS 框架包含三个部分,如图3所示:i)问题处理模块(QPM),ii)文档处理模块(DPM),以及 iii)答案提取与生成模块(AEFM)。该系统接收的问题可分为两大类:事实型(Factoid)和非事实型(Non-Factoid)。事实型问题通常使用“什么”、“哪里”、“何时”或“谁”等疑问词,而非事实型问题则使用“如何”和“为什么”等词语。
DPM:用户可从提供的列表中选择一个特定段落。接着,使用词性标注器(Part-of-Speech, POS Tagger)对段落中的每个词元进行标注。为提取动词,需识别所有被标注为动词的词元。将这些动词与非常规动词列表结合,并应用针对规则动词的处理逻辑。创建一个数据结构(数组),其中包含所提取的动词、它们的时态及其-ing形式。
QPM:系统以用户提出的问题形式接收输入。使用 StringTokenizer 类对文本进行分词处理,生成的词元被存储在独立的数据结构中。该数据结构随后被返回,供程序内后续使用。
AEFM:第一步是识别给定问题中的动词。将最近识别出的动词与文档处理阶段生成的词元进行匹配。针对特定类型的事实性问题(例如“什么”或“何时”),选择相应的句式结构,以更精确地提取并构建答案。
在选择提问类型之前,系统会首先提示用户选择其偏好的段落。问题处理模块(QPM)负责处理用户的提问,并将其转发至答案提取与融合模块(AEFM)。AEFM利用从文档预处理模块(DPM)获得的提取结果,以及包含原始输入文档标注格式的已处理文档。该模块将把所需的算法传递给答案生成模块,以获得目标答案。

图 3:问答系统(QAS)的组成部分。该图展示了问答系统的四个步骤:提出问题、问题处理、答案处理和生成答案。在问题处理阶段,系统对问题进行分类;在答案处理阶段,系统查找并审阅相关文档和段落以生成答案。请点击此处查看此图的放大版本。
BERT 模型:为了发现文本中词语之间的关联,BERT 方法使用了 Transformer 结构。Transformer 包含两种机制——编码器和解码器28,但 BERT 仅需使用编码器。BERT 采用双向方法,系统性地扫描输入文本,以学习词语在其上下文中的含义。编码器接收一系列已向量化的词元(tokens)作为输入。这些向量随后被送入神经网络,生成一系列反映输入信息的向量。一个词语的输出向量会因其出现的句子不同而变化。例如,“like”在“He likes to play cricket”中的向量,与在“His face turned red like a tomato”中的向量不同。该方法首先经历文本处理阶段,然后进入模型构建阶段。BERT 处理文本的具体步骤将在下一节中讨论28。
文本处理:BERT 模型根据一组既定原则对输入文本进行表示。此外,这一因素有助于提升模型的性能。BERT 中的输入嵌入由三种不同类型的嵌入组合而成28。
位置嵌入(PEs):为了学习嵌入中的顺序相关信息,使用了位置嵌入。位置嵌入用于恢复在变换器中丢失的顺序信息。BERT 为输入序列中的每个位置专门设计了独特的位置嵌入。通过利用位置嵌入,BERT 能够传达句子中词语的位置信息,从而有效捕捉和表示词语的序列或顺序关系。
句子嵌入(SEs):此外,为了帮助模型区分第一句和第二句,BERT 会学习为每句话生成独特的嵌入表示。它还能够接受成对的句子作为输入,用于问答等任务。
词元嵌入(TEs):WordPiece 词元词汇表中的每个词元都会学习对应的词元嵌入。WordPiece 词元词汇表包含从语料库中出现的词语派生出的子词单元。例如,该词汇表集合将包含“Question”一词的所有可能子词,如 Questio、Questi 等。
一个词元的输入表示是通过将其在片段层级和位置层级的嵌入向量相加而构建的。因此,这是一种扩展性的嵌入方法,可为模型提供丰富的信息。图49展示了BERT模型的嵌入表示。

图 4:BERT 嵌入。该图展示了 Transformer 模型中输入嵌入的生成方式。输入序列为:[CLS] the [MASK] sky is cloudy [SEP] it will rain [SEP]。序列中的每个词元都会获得其对应的嵌入,例如 Ethe 或 E[MASK]。随后,为每个句子添加句子嵌入,例如第一个句子使用 EA,第二个句子使用 EB。同时加入位置嵌入,标记为 E0 到 E9,用于表示每个词元的位置。这些嵌入共同组合形成最终的输入嵌入。本图改编自9。请点击此处查看该图的放大版本。
基于 BERT 的问答系统设计: 为了说明起见,将此问题与从关于足球联赛的维基百科条目中提取的一段文字结合进行分析28。
问题:足球联盟是在哪里成立的?
段落:1888年,英格兰创立了足球联赛,成为世界上首个职业足球赛事。在20世纪,多种类型的足球运动逐渐发展成为全球最受欢迎的团队运动之一。
答案:英格兰
BERT 模型从问题和上下文中提取 token,并将其组合成一个统一的输入。如前所述,该过程以使用 [CLS] token 开始,该 token 用于表示句子的起始。此外,使用 [SEP] 分隔符来明确区分问题和包含答案的文本段落。除了 [SEP] token 外,BERT 还引入了句子嵌入(SE)来区分问题和包含答案的段落28。BERT 使用两个 SE,分别对应问题和段落,以在两者之间建立清晰的区分。随后,这些嵌入与 token 的独热(one-hot)表示28相结合,以进一步区分问题和段落。此过程如图 5所示。

图 5:BERT 输入表示。 该图展示了基于 BERT 的问答系统(QAS)如何生成输入嵌入。过程以 [CLS] 词元开始,接着是问题“多少?”[SEP],以及文本片段“BERT 很大”,每个部分均带有其句子嵌入(A 表示问题,B 表示文本片段)。词元嵌入、句子嵌入和位置嵌入被组合起来形成最终的输入。请点击此处查看该图的放大版本。
随后,将问题与上下文的联合嵌入表示28作为输入用于 BERT 模型。BERT 的最终隐藏层经过修改,采用 SoftMax 以生成概率分布。这些分布用于确定输入文本句子中某个子字符串的起始和结束索引,该子字符串即代表答案,如图6所示,提供可视化说明。

图 6:BERT 模型用于问答任务的处理流程。 该图展示了 BERT 模型在问答任务中的工作方式。输入序列包含一个问题,序列开头由分类标记 [CLS] 标识,结尾为 [SEP] 分隔符,随后是上下文内容,上下文前后也由 [SEP] 分隔符分隔。该序列中的标记被转换为嵌入向量。模型随后预测答案在文本段落中的起始和结束位置。请点击此处查看此图的放大版本。
向量数据库(VD):向量数据库(VD)17,18 是一种专门用于高效存储、管理、索引和查询数据高维向量表示的系统。这些向量通常由深度学习模型生成,能够封装数据的语义或上下文信息。向量的每一维代表一个特定特征。嵌入(Embeddings)是文本、图像、视频和音频等对象的数值化表示形式。这些嵌入被广泛应用于机器学习(ML)、自然语言处理(NLP)、推荐系统、计算机视觉和信息检索(IR)等多种场景。向量数据库通过在向量空间中将相似对象聚集在一起,实现高效的相似性搜索和语义查询。Facebook AI 相似性搜索(FAISS)29 是本研究中使用的一种重要向量数据库,用于识别与用户查询最相关的上下文。表2 概述了向量数据库的主要特性及其应用场景。
| 特征 | 描述 |
| 高维数据 | 可处理数百或数千个维度的数据。 |
| 近似最近邻 (ANN) | 通过距离近似实现快速相似性搜索。 |
| 可扩展性 | 支持包含数十亿向量的大规模数据集。 |
| 集成能力 | 通常与人工智能/机器学习框架和工具集成,实现无缝工作流。 |
| 实时查询 | 为交互式应用提供低延迟的向量搜索。 |
表2:向量数据库的主要特征。 该表强调了向量数据库的重要特性,包括处理高维数据的能力、使用ANN算法进行快速相似性搜索、可扩展以适应大规模数据集、与人工智能和机器学习工具协同工作,以及支持快速的实时查询以实现交互式使用。
性能评估指标:SCD-QA 系统通过两个主要指标进行评估:EM 分数14 和模型延迟15。EM 分数是问答研究中的标准指标,通过测量预测答案与真实答案完全匹配的比例来评估预测准确性。对于一组 N 个问题,EM 分数在公式 1 中正式定义如下:
其中
(1)
该指标对与参考答案完全匹配的情况赋值为1,对任何差异赋值为0。
延迟指标用于量化系统生成单个查询响应所需的总处理时间。该指标计算为所有查询所用时间的平均值,如公式 2 所示:
(2)
其中 Tstarti 和 Tendi 分别表示处理第 ith 个查询的开始和结束时间戳。延迟以 s 为单位报告,反映了系统的响应速度,涵盖从输入处理到答案生成的所有阶段。
方法
为了实现语义封闭域问答(SCD-QA),本文纳入了以下测试研究。
SCD-QA 数据集:本文引入了一个建议的数据集30,用于实现 SCD-QA 系统。该数据集源自印度阿鲁纳恰尔邦 NIT 的 2022 年博士生管理规定8文本语料库。为建立 SCD-QA 系统,需生成一个 JSON 文件,以精确格式包含所有相关信息。该数据集使用 Haystack 标注工具(版本 2.18.1)31(一个开源框架)从文本语料库生成,该工具支持以 SQuAD14 的形式创建 SCD-QA 数据集。从 PDF 文件创建 SQuAD 类型标注数据集的步骤如图 7所示,我们数据集的 SQuAD 风格结构如图 8所示。

图 7:从 PDF 文件创建标注数据集的步骤。 该图展示了使用 Haystack 工具创建 SQuAD 风格标注数据集的逐步工作流程。该流程概述了从 PDF 中提取文本、清洗并拆分为段落、手动标注问答对、将标注结果以 SQuAD JSON 格式存储,最终导出数据集用于模型训练的全过程。请点击此处查看该图的放大版本。

图 8:事实型问答数据集的结构。该图展示了一个 JSON 数据结构,表示来自数据集的一个段落和一个问答对。该结构包含一个段落部分,其中包含一组问题和答案。其中一个问题是:攻读博士学位(理学)所需的最低分数是多少?每个问题都有一个 ID 和一个答案数组。答案包括文档 ID、问题 ID、文本“60% 分数”、答案的起始位置以及一个未指定的答案类别。is_impossible 标志设置为 false。请点击此处查看此图的放大版本。
该数据集的结构为字典列表,其中每个字典包含数据、段落、问题、答案ID、文档ID、问题ID、文本、答案起始位置、答案结束位置、是否无法回答以及上下文等关键字段。
data:包含完整的问答信息。
paragraphs:特定的上下文及其对应的问题和答案。
question:特定的问题。
answer_id:每条答案文本的唯一标识编号。
document_id:每个上下文的唯一标识编号。
question_id:每个问题的唯一标识编号。
text:答案文本。
answer_start:正确答案在上下文中的起始位置。
answer_end:正确答案在上下文中的结束位置。
is_impossible:指示所提问题的答案在上下文中是否存在。
context:可从中找到答案的文本语料库。
所提出数据集中的全部80个问题均遵循事实型(factoid)和非事实型(non-factoid)问题格式。部分类型问题的示例见表3。
| 问题 |
| PS 是谁? |
| 最先进的文档的字体大小是多少? |
| 产假有多少天? |
表3:数据集中的示例问题。 该表格展示了两类问题的示例:第一和第二个为事实型问题,第三个为非事实型问题。
FAISS:FAISS(faiss_cpu-1.9.0 版本)29,32 由 Facebook AI 研究院(FAIR)开发,是一个开源库,用于实现密集向量的高效相似性搜索与聚类。该库专为有效管理大规模、高维数据而设计,能够在包含数百万至数十亿向量的数据集中实现快速且可扩展的近似最近邻(ANN)搜索。FAISS 广泛应用于与嵌入(embeddings)相关的任务,包括自然语言处理(NLP)、推荐系统以及图像或视频检索。FAISS 提供多种索引方法,包括 Flat(暴力搜索)、倒排文件(IVF)、分层可导航小世界图(HNSW)以及乘积量化(PQ)。这些方法使用户能够根据数据规模、维度和硬件配置优化搜索性能。本研究采用 Flat 索引,通过 L2(欧氏)距离进行暴力搜索以确定最近邻。该系统支持 CPU 和 GPU 的实现,可在大规模数据集上实现高性能计算。此外,FAISS 还可根据具体应用需求灵活调整速度与准确率之间的平衡。在自然语言处理中,FAISS 常用于评估嵌入(如 BERT 或 Word2Vec)的语义相似性。在问答系统(QAS)中,FAISS 用于存储和管理文档或句子的向量表示,并通过执行近似最近邻搜索33 来检索与用户问题最相关的上下文,从而借助 BERT 等 Transformer 模型生成的嵌入向量增强语义搜索能力。由于其高度的通用性,FAISS 已成为人工智能(AI)与机器学习(ML)工作流程中的基础工具。
BERT-large-uncased-whole-word-masking-finetuned-SQuAD 模型:本研究采用一种名为 BERT-large-uncased-whole-word-masking finetuned-squad9 的预训练语言模型,结合该研究提出的数据集,构建一个事实型问答系统(QAS)。该 BERT 模型在 BookCorpus(一个包含 11,038 本未出版书籍的数据集)9 以及英文 Wikipedia 上进行了预训练,但排除了列表、表格和标题部分。该模型为不区分大小写(uncased)类型,即不对 english 和 English 这类词形进行区分。该模型是一种预训练的 Transformer 模型,通过自监督学习方法在大量英文文本数据上进行训练。该模型仅在原始文本上进行预训练,无需任何人工标注数据,从而能够利用大量公开可获取的文本资源。其预训练过程通过从原始文本中自动生成功输入和标签来实现。该模型的预训练包含两个特定目标9:
MLM:该过程包括随机遮蔽输入句子中15%9的词语。模型随后处理整个被遮蔽的句子,并预测被遮蔽的词语。这种方法不同于传统的循环神经网络(RNN),后者通常按顺序逐词处理;也不同于诸如GPT之类的自回归模型,后者采用对未来标记的内部遮蔽。该功能使模型能够获得句子的双向表示。
NSP:在预训练阶段,模型将两个被遮蔽的句子组合为输入。在某些情况下,这两个句子在原始文本中是相邻的,表明它们存在直接关联;而在其他情况下,它们并不相邻,意味着两者之间原本不存在邻近性或上下文联系。接下来的步骤是让模型预测这两个句子是否在逻辑上连贯。
该模型具有以下配置:模型架构包含24层,隐藏层维度为1024,采用16个注意力头,总参数量为3.36亿个9。
在预处理步骤中,使用 WordPiece 对文本进行分词,词汇表大小为 30,000。模型的输入格式如下:[CLS] 句子 A [SEP] 句子 B [SEP]。唯一的要求是,合并后的句子总长度少于 512 个 token9。该特定的预训练模型得到的后续输出为:F1 得分为 93.15%,而精确匹配得分为 86.91%9。
Distilbert/distilbert-base-cased-distilled-squad 模型:DistilBERT10 模型是 BERT9 模型的一种更紧凑、快速且高效的变体,旨在在降低资源消耗的同时保留 BERT 大部分的语义理解能力,因而更适合计算资源受限的实际应用场景。其中,distilbert-base-cased-distilled-squad 版本已在 SQuAD14 数据集上针对问答任务进行了微调。该模型采用 Transformer 架构,参数量减少至 6600 万,相较于 BERT 的 1.1 亿参数,在语言理解能力上仍保持了 BERT 97% 的有效性。DistilBERT 通过一种称为知识蒸馏(Knowledge Distillation)的方法,将大型 BERT 模型中的信息传递给更小型的 DistilBERT 模型,从而实现这一目标。由于其体积更小,该模型能够更快地进行推理并占用更少内存,因此非常适合移动设备或边缘设备等资源受限的应用场景。该模型在 SQuAD 1.1 数据集上经过精心微调后,在抽取式问答任务中表现出卓越的能力,其目标是从给定上下文中定位出能够回答问题的文本片段。DistilBERT 在 SQuAD 排行榜上的 F1 分数达到 BERT 的约 85%,并在模型规模缩小的同时保留了 BERT 大部分的语言能力。该模型为生产级问答任务提供了一种极为高效的解决方案,在性能与计算效率之间实现了优化平衡。
Deepset/roberta-base-squad2: deepset/roberta-base-squad2 模型12,13 是 RoBERTa 架构的一个微调变体。该模型专为 SQuAD14 2.0 数据集设计,该数据集包含可回答和不可回答的问题。这一改进的 RoBERTa 框架取消了 BERT9 的下一句预测(NSP)任务,同时在训练过程中采用动态掩码机制,以提升自然语言理解任务中的效率与性能。该模型具有 1.25 亿个参数,并采用双向 Transformer 结构,使其能够从两个方向获取上下文信息,从而在抽取式问答任务中表现出色。
在 SQuAD 2.0 上进行微调,使模型能够识别给定上下文中的正确回答片段,并判断问题是否无答案。该模型采用字节对编码(Byte Pair Encoding, BPE)分词器,可处理子词分词并保持大小写敏感性,从而提升其对不常见和复杂词汇的处理能力。该模型表现良好,F1 分数达到约 85%–90%,EM 分数达到约 80%–85%。其识别无答案问题的能力以及高效的部署特性,使其在客户服务、知识检索和虚拟助手等领域具有重要应用价值。
部署针对 SQuAD 数据集微调后的 BERT 模型用于问答任务的最有效方法是使用 Hugging Face Transformers 管道34。该框架简化了分词、输入格式化、模型加载以及输出后处理等流程。这些模型因其在抽取式问答任务中的高效表现而被广泛认可,其中答案是从给定上下文中直接提取的文本片段。为指导具体实现,以下步骤概述了执行 BERT 模型的操作流程。
输入与设置:该过程需要四个主要输入和设置参数:模型名称,指定为来自 Hugging Face Hub 的字符串标识符(例如 google-bert/bert-large-uncased-whole-word-masking-finetuned-squad、distilbert/distilbert-base-cased-distilled-squad 或 deepset/roberta-base-squad2);问题(Q),以包含查询内容的字符串形式提供;以及上下文(C),表示相关文本或段落的字符串。所使用的主要工具是 Hugging Face transformers 库(版本 4.57.0)中提供的高级 pipeline 函数,运行于 Python(版本 3.12.12)环境。
流程:执行(Hugging Face 管道):该流程包含六个主要步骤,并采用 Hugging Face 管道来应对问答任务的复杂性:
安装库:首先使用命令 pip install transformers 安装所需的库。此安装将启用对模型及简化管道功能的访问。
导入管道:使用以下命令导入管道函数:from transformers import pipeline。
初始化问答管道: 使用 qa_pipeline = pipeline("question-answering", model="") 初始化问答管道。此命令将下载模型和分词器,使其准备好进行推理。
定义输入:设置问题 = ... 和上下文 = ... 以准备模型的数据。
运行推理:将问题和上下文传入管道,调用 result = qa_pipeline(question=question, context=context)。模型将处理输入并提供答案。
提取答案:通过 answer = result['answer'] 从输出字典中获取答案字符串。
输出:该过程按以下顺序生成多个输出参数:答案(从上下文中提取的文本片段,以字符串形式呈现)、分数(表示模型对其预测结果置信度的浮点数值)、以及起始和结束索引(用于指定答案片段在上下文中的字符位置的整数)。
Sentence-transformers/all-MiniLM-L6-v2:all-MiniLM-L6-v235 是来自 Sentence-Transformers 库(版本 5.1.1)36 的一个预训练句子变换模型。该模型针对高效且精确的文本嵌入进行了优化。它基于微软的 MiniLM 框架开发,包含六个变换器层和 384 维的嵌入向量。这种设计在性能与计算效率之间实现了平衡,适用于实时应用场景。该模型在来自 SNLI、MultiNLI、STS 基准数据集以及网络爬取数据的超过十亿个短语对上进行了训练。因此,其在语义相似性计算、文本聚类以及搜索相关任务中表现出色。由于模型体积小(约 22MB)且推理性能优越,all-MiniLM-L6-v2 简化了语义搜索、重复内容检测和文本分类等应用的实现。尽管其结构轻量,但在 STS-B 和 SICK-R 等基准测试中仍表现出较高的准确性,使其成为可扩展场景和资源受限场景下的有效选择。使用 Sentence-Transformer 生成嵌入向量的工作流程如下方图 9所示。

图 9:使用句子转换器模型进行嵌入的过程步骤。该图展示了使用句子转换器框架生成文本嵌入的工作流程。该流程概述了从导入库和加载预训练模型,到准备文本数据、生成嵌入向量、将其转换为 NumPy 数组,并将结果存储以用于后续任务(如索引或相似性搜索)的全过程。请点击此处查看此图的放大版本。
提出的算法:本研究在算法1中概述了一种建议的方法,用于开发基于SeCD的SCD-QA系统,该系统能够回答用户提出的事实型和非事实型问题。
算法 1:基于 SeCD 的 SCD-QA 系统算法
输入:原始上下文文件集合(C)和用户的查询(Q)。
输出:选定的最优基于 transformer 的大语言模型(M'),以及由 M' 生成的回答。
上下文预处理:对原始上下文集合 C 进行标注,以创建符合 DSQuAD 格式的结构化数据集。
DSQuAD = fannonate (C)
生成上下文嵌入:使用 Sentence-Transformer 函数 fembed 将 DSQuAD 中的每个上下文 c
转换为嵌入向量 ec。

存储嵌入:将 Ec 存储至向量数据库 V 中,以支持高效的相似性搜索。

生成查询嵌入:使用相同的 Sentence Transformer 将用户查询 Q 转换为嵌入向量 eq。

上下文检索:根据与 eq 的相似性,从数据库 V 中检索最相关的上下文嵌入
。

其中 sim(eq,ec) 为相似性函数。
将上下文传递给大语言模型:将检索到的上下文
输入三个基于 transformer 的大语言模型:Google-BERT(M1)、DistilBERT(M2)、RoBERTa(M3)和一个传统模型:TF-IDF+余弦相似性(M4)。

模型评估:使用评估函数 feval 对响应 {R1,R2,R3,R4} 进行比较,该函数为每个响应打分。

选择最优模型:确定评估得分 S' 最高的模型 M'。

生成最终输出:使用 M' 基于
生成最终回答 R。

结束
所提出的算法流程概述了一种系统化的方法(图10),用于选择理想的基于Transformer的大语言模型(LLM)以回答用户问题。该方法结合了预处理、基于嵌入的上下文检索以及多模型评估,以确保生成高质量且与上下文相关的答案。以下将逐步说明该流程,以增强理解:
数据准备与预处理:第一阶段涉及对原始文本数据的处理-
输入:原始文本文件8被导入系统中。
注释工具31:输入内容被转换为SQuAD14格式的结构化数据集。该步骤包括创建问答对,并将相关文本数据组织成定义明确的上下文块。
输出:该数据集现已准备好用于生成嵌入。
上下文嵌入生成:为实现高效且可扩展的上下文检索,将一个训练好的 Sentence-Transformer35,36 模型应用于标注数据集。该变换器模型将文本转换为高维嵌入向量,以捕捉其语义含义。这些嵌入向量被存储在 VD、FAISS29,32 中,以支持基于相似度的快速检索。
用户查询处理:当用户提交问题时,该问题会由相同的 Sentence Transformer35,36 进行处理,从而在与上下文嵌入相同的向量空间29,32 中生成相应的嵌入表示。此设计确保了查询能够与相关的上下文条目相匹配。
使用向量相似性进行上下文检索:系统通过相似性度量(例如,余弦相似性)将查询嵌入与存储的上下文嵌入进行比较。系统根据最高的相似性得分选择最相关的上下文。这确保仅有相关的上下文被传递给下游模型。该过程减少了计算开销并提高了相关性。
多种大语言模型的评估:选定的上下文由三种基于 Transformer 的大语言模型进行评估:Google-BERT28、DistilBERT10 和 RoBERTa12。同时,还采用一种传统的基于关键词的 TF-IDF37 方法结合余弦相似度模型进行评估。每种模型均对上下文进行处理,并生成对用户问题的回答。
比较评估:使用两个关键指标对四个大语言模型的响应进行评估。首先,通过EM14评估语义匹配程度;其次,通过平均响应时间15分析模型延迟。
模型选择与最终输出:选择表现最优的模型作为回答用户问题的合适大语言模型。所选模型的最终响应将被采纳。这确保了计算效率与响应质量之间的平衡。

图10:基于Transformer模型的SCD-QA系统工作流程。 该图展示了SCD-QA系统的工作方式。首先,原始上下文文件通过标注工具处理,生成SQuAD格式的数据集。随后,句子Transformer生成嵌入向量,并将其存储在FAISS向量数据库中。当用户提出问题时,系统为该问题生成嵌入向量,并选择最相关的上下文。系统比较了三种基于Transformer的模型——Google-BERT、DistilBERT和RoBERTa,以及一种传统的TF-IDF结合余弦相似度的方法,并采用表现最佳的模型来提供答案。 请点击此处查看该图的放大版本。
访问受限。请登录或开始试用以查看此内容。
SCD-QA 系统的实现使用了四个大语言模型(LLM)以及一个包含 80 个事实型和非事实型问题的数据集。处理在 Google Colab 中进行,利用 NVIDIA Tesla T4 GPU(驱动版本:550.54.15,CUDA 版本:12.4),配备 12.7GB 系统内存、15GB GPU 内存和 112.6GB 磁盘空间。模型性能通过两个指标进行评估:EM14 用于语义匹配,模型延迟15 用于反应时间。
SCD-QA 数据集
SCD-QA 数据集基于 Ph.D. 规则语料库,使用 Haystack 标注工具(版本 2.18.1)构建,最终形成 SQuAD 风格的 JSON 格式。该数据集包含 8...
访问受限。请登录或开始试用以查看此内容。
本研究介绍了SCD-QA系统,该系统利用基于Transformer的语言模型,从结构化机构文档中提供精确且具有上下文感知能力的回答。系统的流程包括:(1)数据预处理;(2)使用最先进的句子Transformer模型all-MiniLM-L6-v2生成嵌入向量;(3)通过FAISS进行基于相似度的检索;(4)全面的模型评估。该流程在SCD-QA数据集上进行了测试,该数据集包含80个从机构政策文件中精心标注的、可回答的事实型与非事实型问题。
在所考察的三种变换器模型中,Google-BERT 表现出最优性能,其平均 EM 得分为 90.00,但其响应延迟明显高于其他模型。传统的基于关键词的 TF-IDF 检索方法虽然计算效率较高,但准确率显著较低,凸显了变换器模型在深度语义理解方面的优势。嵌入式工作流程实现了可扩展的基于向量的相似性搜索,从而提升了响应质量和检索准确性。
Google-BERT 在处理基于同义词的查询重构方面表现出强大的鲁棒性,尽管表面形式存在变化,其准确性仍得以维持。然而,该系统对正字法错误(如拼写错误和子词不匹...
访问受限。请登录或开始试用以查看此内容。
作者无任何利益冲突需要披露。
作者们衷心感谢阿鲁纳恰尔邦理工学院(NIT Arunachal Pradesh)敬业的教职员工和管理部门在本研究过程中始终如一的支持与指导。此外,我们深切感谢开源自然语言处理工具及预训练模型的开发者和贡献者,他们的工作使本研究得以实现。在撰写本文期间,作者使用了Grammarly Proofreader以提高表达的清晰度。作者对内容的准确性和完整性负全部责任。
访问受限。请登录或开始试用以查看此内容。
| 姓名 | 公司 | 目录编号 | 评论 |
|---|---|---|---|
| all-MiniLM-L6-v2 | Microsoft | 版本 5.1.1 | 用于生成高维嵌入的预训练句子转换器模型。将文本转换为嵌入表示,以实现上下文检索。 |
| 标注工具 | Haystack | 版本 2.18.1 | 用于将原始文本结构化为 SQuAD 格式的平台。通过创建问答对和上下文块来准备数据集。 |
| DistilBERT 模型 | Hugging Face | NA | 基于转换器的轻量级大语言模型,计算需求较低。用于对比评估,具有较低的延迟但准确率有所下降。 |
| FAISS VD | faiss_cpu-1.9.0 | 可扩展的向量数据库,用于基于相似性的搜索。存储和检索高维嵌入,以实现高效的查询匹配。 | |
| Google-BERT 模型 | NA | 基于转换器的预训练大语言模型,采用双向上下文建模。主要用于生成对事实型和非事实型查询的准确回答。 | |
| NVIDIA Tesla T4 GPU | NVIDIA | 驱动版本:550.54.15 CUDA 版本:12.4 | 配备 15 GB 显存的 GPU,用于模型推理。为处理和评估大语言模型提供计算能力。 |
| Python | Python 软件基金会 | 版本 3.12.12 | Python 因其简洁的语法、丰富的库和强大的社区支持,成为自然语言处理(NLP)领域的主流编程语言。它支持广泛的 NLP 任务,包括基础文本预处理和复杂的机器学习实现。 |
| RoBERTa 模型 | Deepset | NA | 基于转换器的优化大语言模型,采用增强的训练策略。用于对比评估,在准确率和延迟之间取得平衡。 |
| SCD-QA 数据集(SQuAD 格式) | NA | 版本 2.0 | 问答对的标准格式。对数据集进行结构化,以确保与转换器模型的兼容性。 |
访问受限。请登录或开始试用以查看此内容。
申请许可以重复使用本 JoVE 文章的文本或图表
申请许可