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

张添翼 等: LLM-Extractor: 基于大语言模型的软件配置间约束提取方法                                       2121


                 验并开展验证.
                    ● RQ1: LLM-Extractor 相较已有基于自然语言分析的方法效果如何?
                    ● RQ2: 本文使用   LLM  构建  CFRG  的效果如何?
                    ● RQ3: LLM-Extractor 相较已有的基于程序分析的方法各有何优劣?
                  4.1   实验设置
                    实验设置分为数据收集和模型选择两个部分, 本节将分别介绍.
                  4.1.1    实验数据收集
                                                               [3]
                                                                                       [1]
                    根据已有工作的研究经验, 我们选择了             openGauss 5.0.0 、PostgreSQL 12 [49] 、Squid 6 这 3  个被广泛使用的
                 开源软件系统作为实验研究对象, 选择这             3  个系统的原因是这      3  种软件可调整的运行时配置众多, 且已经被广泛
                 研究, 除此之外, 这    3  种软件提供了明确的配置-配置描述对应关系. 本文使用这些系统的官方文档作为数据源, 构
                 建数据集. 文本数据采集和预处理的方法在第               3.1.1  节中已经详细阐述, 此处不再赘述. 完成数据采集和预处理后,
                 我们根据收集到的配置文本数据, 通过            3  名研究人员人工阅读文本综合分析的方式, 尽可能找出文本中存在的配
                 置间约束, 作为后续验证方法效果的依据. 人工分析的流程分为                   3  个步骤: (1) 由两名研究人员分别阅读每个软件
                 的配置文档, 首先分析包含多个配置项的描述语段, 提取其中可能存在的配置间约束. (2) 两名研究人员再次阅读
                 每个配置的描述, 重点分析同一目录下的配置项, 分析是否存在跨文段产生关联的配置间约束. (3) 第                             3  名研究人
                 员将前两阶段分析获得的配置间约束, 进行去重并整合, 如果出现不一致的情况, 由                        3  名研究人员共同商议有争议
                 的约束规则. 3   名研究人员使用了两周时间来完成这项工作, 最终共从                   3  个软件系统的配置文档中提取出          306  条
                 配置间约束, 构成了本文进行实验评估的数据集. 数据集具体情况如表                     4  所示.

                                                    表 4 数据集收集情况

                             软件名称         版本       软件配置个数        配置文本语句总数         配置间约束数量
                             openGauss    5.0.0        768            7 952            193
                            PostgreSQL     12          319            2 568            86
                              Squid        6           330            4 110            27

                  4.1.2    模型选择
                    根据已有    LLM  相关工具的研究经验, 我们综合考虑了模型请求开销、响应时间、模型能力等因素, 选取了
                 openAI 的  GPT-4o-mini [51] 和  GPT-4o [52] 进行进一步的实验研究. GPT-4o  和  GPT-4o-mini 是基于  OpenAI GPT-4  技
                 术的衍生模型, 其中      GPT-4o  是一个基于   GPT-4  的优化版本, 旨在保持     GPT-4  的核心能力, 同时在效率上进行了
                 提升, 该模型较原始的      GPT-4  模型更轻量化, 能够在特定场景下提供类似的语言理解和生成效果; 而                     GPT-4o-mini
                 是  GPT-4o  的更小型版本, 同时接口调用价格也大幅度低于             GPT-4o  和  GPT-4, 由于模型规模更小, GPT-4o-mini 在
                 逻辑推断和语言生成能力上不及           GPT-4o  和完整的  GPT-4, 但仍保留了一定的语言生成和理解能力.
                  4.1.3    指标选择
                    考察精确率     (Precision)、召回率  (Recall)、准确率  (Accuracy) 和 F1 score 这  4  个指标, 其定义如公式  (1)–公
                 式  (4) 所示, 其中  S  和  G  分别表示实验结果中正确约束关系或者关联关系集合和事先确定的标准答案集合, N                       表
                 示不存在关联关系的提示结果集合.

                                                               |S∩G|
                                                     Precision =                                      (1)
                                                                |S|

                                                             |S∩G|
                                                       Recall =                                       (2)
                                                               |G|

                                                             |S∩G∪ N|
                                                    Accuracy =                                        (3)
                                                             |S∪G∪ N|

                                                           Precision×Recall
                                                 F1 score = 2×                                        (4)
                                                           Precision+Recall
   237   238   239   240   241   242   243   244   245   246   247