Page 245 - 《软件学报》2026年第5期
P. 245

2124                                                       软件学报  2026  年第  37  卷第  5  期


                  4.3.2    配置-功能实体关联抽取实验评估
                    该阶段   LLM-Extractor 读取每个配置项的配置文档, 在文档中使用滑动窗口算法识别文段中的软件功能实体
                 E F , 我们使用  Python 3.9  实现了滑动窗口算法, 并使用    bge-large-en-v1.5  模型计算文本窗口的向量表示. 完成实体
                 识别后, LLM-Extractor 根据匹配结果筛选出可能关联其他配置项的匹配语句                  (即排除仅与当前配置项关联的功能
                 实体), 随后将这些语句和对应的配置文本语段装填入提示模板中, 接着调用                       GPT-4o-mini 和  GPT-4o  接口分别进
                 行了配置-功能实体关联抽取实验. 我们首先人工分析了每条提示, 由两名研究人员, 分别独立地分析提示词并得
                 出关联关系, 若两人结论不同则交由第            3  名研究人员判断, 通过共同讨论确定标准答案. 在实验运行完毕后, 我们
                 根据事先确定的标准答案对抽取的关联关系进行了人工评估和标注.
                    实验结果评估如表       10  所示. 从表中可以发现, GPT-4o     效果较好而    GPT-4o-mini 的效果欠佳, 这是由于配置-
                 功能关系抽取涉及更复杂的文本理解和逻辑推断, 能力更强的                    GPT-4o  相对于轻量化的     GPT-4o-mini 模型取得了
                 更好的效果, 在精确率上有        14.2%–52.8%  的提升, 在召回率上则提升不大, 说明        LLM  倾向于将潜在的配置-功能关
                 联均识别为关联关系. 在       openGauss 实验进行的   219  次提示中, GPT-4o  取得了超过   0.8  的精确率和超过    0.85  的召
                 回率, F1  分数超过了   0.83; 而在  PostgreSQL  实验的  167  次提示中, 使用  GPT-4o  的精确率略低, 为  0.725 5, 通过分
                 析实验结果, 我们初步推断这可能是由于             openGauss 配置文档拥有比     PostgreSQL  配置文档更详细的配置功能描
                 述, 从而降低了    LLM  理解文本的难度; 在      Squid  实验的  56  次提示中, GPT-4o  取得的召回率反而比     GPT-4o-mini
                 低  3.85%, 我们认为这是由于能力更强的         GPT-4o  拥有更为谨慎保守的策略, 而       Squid  实验相对较少的样本数可能
                 会放大这种影响.

                                                表 10   E F -E C  关联抽取实验结果

                    软件名称          提示次数           模型          Precision   Recall    Accuracy    F1 score
                                              GPT-4o-mini    0.597 4     0.859 8    0.670 9     0.705 0
                    openGauss       219
                                                GPT-4o       0.817 4     0.862 4    0.846 1     0.839 3
                                              GPT-4o-mini    0.634 9     0.909 1    0.796 9     0.747 7
                    PostgreSQL      167
                                                GPT-4o       0.725 5     0.880 9    0.857 1     0.795 7
                                              GPT-4o-mini    0.545 5      0.8       0.767 9     0.648 6
                      Squid         56
                                                GPT-4o       0.857 1     0.923 1    0.946 4     0.888 9

                  4.3.3    多配置关联抽取实验评估
                    该阶段   LLM-Extractor 再次读取每个配置项的配置文档, 从中筛选出包含多个配置项的语句, 分别调用                       GPT-
                 4o-mini 和  GPT-4o  模型接口, 提取潜在的多配置逻辑关联关系. 和第          4.2.2  节配置-功能实体关联抽取部分类似, 我
                 们事先人工分析了每条提示并通过交叉确认讨论出标准答案, 完成实验后再由研究人员对实验结果进行评估和标
                 注. 实验结果如表     11  所示. 在使用  GPT-4o  的实验中, 方法都取得了更好的效果, 相比          GPT-4o-mini, 在精确度上有
                 26.25%–52.94%  的提升, 在召回率上则效果区别不大. 分软件来看, LLM-Extractor 在         openGauss 和  PostgreSQL  上
                 取得了比在    Squid  上更好的效果, 前两者精确度均在        0.86  以上, 而后者精确度不足     0.77, 经过实验结果分析我们认
                 为, 这可能是由于     Squid  的配置文档中缺少明确的配置条件表达, 需要            LLM  从复杂的自然语言描述中提取出明确
                 的配置条件, 这对模型的能力提出了更高的要求. 同时我们还注意到, 相比                       openGauss 和  PostgreSQL  实验, 在
                 Squid  实验中使用  GPT-4o-mini 时具有更严重的效果下降, 分析实验结果我们发现, 这可能是由于                  GPT-4o-mini 相
                 对于  GPT-4o  具有“更不谨慎”的特点, 更容易把形式各异的自然语言表述均识别为配置条件, 从而影响了关联抽取
                 的精确率.
                  4.3.4    功能实体间关联抽取实验评估
                    由于  Squid  配置文档并没有按照功能模块进行划分, 我们在              openGauss 和  Squid  的部分主要功能章节    (涉及
                 standby server、background writer、auditing、genetic query) 中进行了实验, 尝试抽取功能实体间的依赖关系. 对
                 于  openGauss 系统, 这些章节涉及    15  个功能实体节点, 我们以分组为单位, 在分组内取             2  的组合, 共生成  37  组功
                 能节点对, 从而生成      37  条提示词. 在  PostgreSQL  中以同样的方式, 生成了    45  条提示词. 为了评估    LLM  输出效果,
   240   241   242   243   244   245   246   247   248   249   250