Page 76 - 《软件学报》2026年第2期
P. 76
沈庆超 等: 智能问答系统逻辑推理测试 555
同蜕变关系、基于依存分析的选择策略对 QALT 整体方法的贡献. 研究问题 3 的目的是验证使用 QALT 生成测
试用例对问答系统模型进行修复的效果, 需要使用 QALT 生成的测试用例通过模型微调手段对错误进行修复, 并
评估效果.
5.1 实验设计
5.1.1 待测系统
本文测试的智能问答系统是 ChatGPT 与 ChatGLM. 具体来说, 本文选用基于 GPT (generative pre-trained
Transformer) 框架的语言模型 ChatGPT 与 ChatGLM-6B 进行测试. 选择这两个模型的原因如下: 1) 在模型性能方
面, ChatGPT 是由 OpenAI 研发的强大的大型语言模型, 它在自然语言理解方面取得了显著进展. ChatGLM-6B 是
一个开源的、支持中英双语的对话语言模型, 具有 62 亿参数. ChatGLM-6B 使用了和 ChatGPT 类似的技术进行优
化, 包括使用了 1T 标识符 (tokens) 的中英文双语语料库进行训练, 辅以指令微调和人类反馈强化学习等方法, 使
其能生成符合人类偏好的回答. 2) 在问答任务方面, ChatGPT 和 ChatGLM-6B 已成为传统基于知识的问答模型的
替代品. 这两种模型在多种不同格式的数据集上均有较高准确度, 包括布尔型 QA 任务、提取型 QA 任务和抽象
型 QA 任务. 3) 在用户数量方面, ChatGPT 目前拥有超过 1 亿用户, 其官网每月产生 18 亿次访问量 [47] . ChatGLM-
6B 是开源平台 HuggingFace [48] 上被广泛使用的项目, 其通过结合模型量化技术, 使得用户可以在消费级的显卡上
直接部署.
5.1.2 实验数据
本文采用在相关研究中被广泛使用的 3 个 QA 数据集 (BoolQ、SQuAD2 和 NarQA) 的测试集数据作为
[4]
QALT 及对比方法的种子输入. 这些数据集具有不同的格式、数据来源和规模. BoolQ 是一个布尔型 QA 数据集,
其中问题的答案均为“yes”或“no”. SQuAD2 [27] 是一个提取型 QA 数据集, 其中问题的答案均可用上下文中的文本
子串表示. NarQA [20] 是一个抽象型 QA 数据集, 其中问题的答案超出了简单的上下文子串, 采用自由形式文本. 3
种数据集的详细信息如表 1.
表 1 实验数据集
数据集 类型 训练集大小 测试集大小
BoolQ 布尔型 9 427 3 270
SQuAD2 提取型 130 319 11 873
NarQA 抽象型 32 747 3 461
5.1.3 评价指标
首先, 本文使用最前沿的智能问答系统测试技术 QAQA 与 QAAskeR 作为对比方法衡量 QALT 揭错能力. 然
后, 本文评估了 QALT 不同组件对整体方法的贡献, 包括对提升测试输入的自然性效果和减少测试结果误报率的
效果. 最后, 使用微调手段对智能问答系统中的缺陷进行修复. 实验涉及 3 个评价指标, 分别是揭错率、自然性和
误报率.
● 揭错率: 本文复用 QAQA 论文中揭错率的定义. 如公式 (2) 所示, 揭错率为能够触发智能问答系统中缺陷的
测试输入数量和尝试生成测试输入的总数之比. 需要注意的是, 该指标使用了测试技术尝试生成测试输入的总数
而非实际生成的测试输入总数. 这之间的区别在于, 对于一个种子数据, 如果测试技术无法基于该种子生成任何新
的测试输入, 即测试技术已经进行了一次尝试, 但生成失败. 这样做的好处在于, 在评估测试方法揭错能力的同时,
还可以分辨方法是否存在无法对种子进行变异的局限性.
能够触发缺陷的测试输入数量
揭错率 = (2)
尝试生成测试输入的总数
● 自然性: 在评价测试输入自然性增强方法的有效性时, 本文使用余弦相似度衡量生成模型所生成的描述性
语句与原始测试输入的相关程度 [17] . 具体而言, 假设上下文 C 包含的各个句子记为 c i , 本文分别计算 c i 与描述性
语句 d 之间的余弦相似度, 加和后再取平均值. 其中, 余弦相似度的计算方式如公式 (3) 所示. 使用余弦相似度
Similarity(d, c i ) 计算文本相似性的好处在于该方法可以忽略绝对词频和向量长度的影响.

