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

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


                    2) 配置间约束. 配置间约束指的是多个软件配置之间具有的关联约束关系, 即一个或多个配置项的设置会影
                 响其他配置项的取值或者生效. 例如图            2  右侧蓝色语句指出      max_wal_senders 应当大于等于   max_connections, 这
                 属于涉及   max_wal_senders 和  max_connections 的配置间约束.
                    已有工作对于单配置约束的研究已经比较完善, 但是对配置间约束提取的研究尚存在不足, 因此本文主要研
                 究提取多个软件配置间存在的约束关系.
                  2.2   研究动机

                    软件文本分析的主要难点在于两个方面: 如何高效分析海量的自然语言信息; 如何从非结构化文本中提取结
                 构化配置约束信息.
                    对于软件运维人员来说, 软件配置项数量众多, 文档冗长, 因此开发自动化的文档分析工具, 能够大大提高关
                 键配置约束信息的获取效率. 除此之外, 不同文档的行文风格可能存在差异, 表达方式难以统一, LLM                            的出现和普
                 及提供了便捷的文本分析工具, 让我们能开发高效的文本分析方法.
                    为进一步阐述本文研究动机, 我们针对已有文本分析方法泛化性较差、无法挖掘配置间深层次逻辑联系的问
                 题, 对软件配置文档展开了深入的经验研究. 我们人工分析了配置约束相关软件文档的特点, 同时人工分析了文档
                 中存在的配置间约束, 并总结了已有方法无法提取的配置约束类型, 最后根据经验研究结果提出可能的解决方案.
                  2.2.1    经验研究
                                                                                       [3]
                    为了研究多个软件系统的软件文档中配置间约束的特点, 本文选取了                        openGauss 5.0.0 、PostgreSQL 12 [49] 、
                                  [1]
                          [2]
                 MySQL 5.7 、Squid 6 这  4  个被广泛使用的开源软件作为经验研究对象, 人工查看每个软件官网的文档目录结
                 构, 并选择软件配置相关的文档章节作为数据源, 每个软件都拥有数百个配置项, 如表                         1  所示.


                                              表 1 配置文档来源和配置数量统计

                                  软件名称                    版本                  软件配置个数
                                  openGauss               5.0.0                   768
                                  PostgreSQL               12                     319
                                   MySQL                   5.7                   1 434
                                    Squid                  6                      330

                    我们首先对这些软件的配置文档进行抽样的阅读分析, 随机从配置全集中选取配置项对应的文段阅读分析,
                 同时阅读章节中可能相关的其他配置项描述, 直至从中分析提取出                      100  条配置间约束关系. 对提取这些配置间约
                 束的过程, 我们进行了进一步的分析和总结, 获得了以下发现.
                    发现  1. 67%  的配置间约束关系无法通过已有研究总结的模板匹配方法提取.
                    已有方法    [26,28] 都首先筛选配置设置建议类型的语句, 而后使用正则表达式等模板匹配方法从语句中提取约束
                 规则, 经验研究表明, 100    条配置间约束关系中只有          33  条可以使用这种方法提取, 有       67  条配置约束无法使用这种
                 方法提取. 经过对这      67  个负样本的分析, 我们发现无法提取的原因有以下              3  点.
                    (a) 44.8%  的负样本对应的配置文本语句中不包含推荐性质的关键词, 例如                  recommended、suggested.
                    (b) 20.9%  的负样本对应的配置文本语句中包含有多个配置条件, 而已有方法无法处理多个配置条件之间的
                 逻辑关系.
                    (c) 32.8%  的负样本具有已有方法模板未覆盖的表达形式. 由于已有方法通过正则表达式提取对应配置的取
                 值, 如果目标文本的表达方式不能被模板匹配, 就无法被识别为配置取值条件. 例如“You are advised to set this
                 parameter to a value greater than or equal to twice of max_changes_in_memory”中“greater than or equal to twice of
                 max_changes_in_memory”并未被模板成功识别, 导致该条约束未能被成功提取.
                    发现  2. 47%  的配置间约束无法从单个配置的描述文本中完成提取.
                    47  条配置约束需要结合多个配置项的描述文本来进行推断, 这些归属不同配置项的文本描述通过特定软件
                 功能实体链接. 图     3  展示了一条配置约束推断的思维链, 研究人员阅读               bgwriter_lru_multiplier 的描述文档时意识
   225   226   227   228   229   230   231   232   233   234   235