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

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


                  4.2   LLM-Extractor 与已有基于自然语言分析的方法对比评估          (RQ1)
                    本节我们将评估对比        LLM-Extractor 和已有配置约束提取方法       PracExtractor 的效果, PracExtractor 是一种基
                 于自然语言分析的配置约束提取方法, 它通过潜在约束语句识别和约束模板匹配两个步骤提取配置约束, 直接输
                 出对应的配置条件和影响, 在多种不同的系统上有广泛的实验应用                      [26] . 除此之外还通过消融实验验证多配置关联
                 子图作为上下文对配置间约束提取任务的作用.
                  4.2.1    和已有方法的对比
                    在  CFRG  初始化完成之后, LLM-Extractor 在  CFRG  上搜索多配置关联子图并使用这些关联子图信息推断配
                 置间约束. 我们使用      Python 3.9  实现了多配置关联路径搜索方法, 基于第         4.2  节完成关联关系补全后的        CFRG (使
                 用  GPT-4o 模型), 搜索多配置相关的关联子图, 并基于关联路径推断配置间约束. 我们选择了已有工作                        PracExtractor
                 作为对比方法, 以判断       LLM-Extractor 在配置间约束提取任务上的效果. 为了评估不同方法在配置间约束提取上
                 的效果, 我们把事先分析提取出的配置间约束记为全集                  G. 使用不同方法获得的配置间约束集合记为              S, 我们使用
                 精确率   Precision、召回率  Recall、F1 score 来评估方法的效果. 实验结果如表         5  所示. 从表  5  中我们可以看出,
                 LLM-Extractor 在精确率和召回率上的表现较为均衡, 在          3  种系统实验上的配置间约束提取精确率在              0.76–0.81  之
                 间, 召回率在   0.74–0.81  之间, F1  分数均超过了  0.75. PracExtractor 的精确率较高, 在  0.83–0.91  之间, 经过分析我们
                 认为这是由于     PracExtractor 基于正则表达式的模式匹配, 这种方法的优势是严格符合预定义模式的约束关系才会
                 被匹配, 从而提高了精确率; 而        PracExtractor 的召回率远低于   LLM-Extractor, 只有  0.21–0.37, 这是由于严格的模
                 式匹配没有充分考虑文档的语义信息, 导致包含配置约束但是与模板不符的语句被忽略, 除此之外, LLM-Extractor
                 可以综合多个不同配置的描述文本, 并分析配置之间通过软件功能状态传递的关联关系, 从而得出配置间约束关
                 系, 而  PracExtractor 只能从单个语句中匹配约束关系, 这导致         PracExtractor 无法提取这些通过软件功能状态传递
                 的约束关系.

                                    表 5 PracExtractor 与  LLM-Extractor 提取配置间约束效果比较

                    软件名称        G count         方法             S∩G count   Precision   Recall   F1 score
                                          LLM-Extractor (GPT-4o)  156       0.808 3   0.804 1    0.806 2
                    openGauss    193
                                              PracExtractor       42        0.875 0   0.217 6    0.348 5
                                          LLM-Extractor (GPT-4o)  65        0.764 7   0.755 8    0.760 2
                   PostgreSQL     86
                                              PracExtractor       20        0.833 3   0.232 6    0.363 6
                                          LLM-Extractor (GPT-4o)  20        0.769 2   0.740 7    0.754 7
                     Squid        27
                                              PracExtractor       10        0.909 1   0.370 4    0.526 3

                  4.2.2    消融实验
                    为了验证多配置关联子图作为提示上下文的作用, 我们进行了消融实验, 在消融实验中直接依次将每个配置
                 的文本描述装填入提示模板中, 而不提供多配置关联子图作为上下文, 直接请求                         GPT-4o  接口得到实验结果, 我们
                 把这种基线方法记为        Direct Prompt. 实验结果以及和  LLM-Extractor 的对比如表   6  所示. 从表  6  中我们可以发现,
                 相比于基线方法, LLM-Extractor 在精确率上有不同程度的提高, 其中在              openGauss 实验中提升幅度最小, 在      Squid
                 实验中的提升幅度最大, 经过分析, 我们发现这是由于                LLM  在分析  Squid  的过程中出现了更多主观臆断. 我们认
                 为这是因为    openGauss 配置文档撰写方式较为规范, 而         Squid  配置文档常出现缺失主语宾语、指代不明的情况,
                 语料质量相对较低, 容易导致         LLM  猜测文本意图的情况. 而在召回率上, LLM-Extractor 均明显高于基线方法, 我
                 们认为这主要是由于        LLM-Extractor 能够分析通过软件功能状态传递的配置约束关系, 这需要综合多个不同配置
                 项的描述文本, 而基线方法只具有分析单个配置文本的能力.
                  4.3   使用  LLM  构建  CFRG  的效果评估  (RQ2)
                    CFRG  是后续  LLM-Extractor 进行配置约束推断的数据基础, 因此          CFRG  的构建质量对约束提取效果具有重
                 要影响. CFRG  的构建分为初始化、配置-功能实体关联、多配置关联等步骤, 本节将依次进行评估.
   238   239   240   241   242   243   244   245   246   247   248