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

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


                 关联形成的图结构, 而约束关系通过该图结构上的节点和边传递. 对于图                      4  所示的示例, 我们对推断过程涉及的配
                 置、功能、条件等要素进行抽象, 构建了如图              5  所示的图结构. 如图     5  所示, 我们将配置间约束推断中涉及的软件
                 对象抽象为几种不同的节点, 即软件配置             (图中灰色椭圆)、软件配置条件          (图中菱形)、软件功能      (图中橙色矩形)、
                 软件功能状态     (图中白色无填充矩形), 并使用         LeadTo、Require、Related  等几种逻辑关联关系将这些节点关联,
                 形成了多配置相互关联的图结构. 事实上, 研究人员正是在脑海中生成了与图                         5  类似的图结构, 并经过思考和推
                 理, 得出了配置间约束规则, 而在这个过程中研究人员需要回忆不同配置文本的描述, 并将这些描述中的关键信息
                 进行整合. 由此我们受到启发, 如果能够通过一个配置-功能关联图将不同配置文本描述中的逻辑关联信息记录下
                 来, 形成结构化的知识, 再借助        LLM  的文本理解和逻辑推断能力, 就能模拟研究人员阅读文本并推断配置间约束
                 的过程. 相比于直接引导       LLM  阅读冗长杂乱的配置文档, 我们认为这种添加针对性上下文的方式能够显著提高配
                 置间约束推断的效果.

                                 Related              LeadTo  (auditing function)
                                          audit_enabled
                                            ==off              is disabled
                                                                             AtStatus
                            audit_enabled                                           Auditing function
                                                       LeadTo
                                            audit_enabled    (auditing function)
                                   Related    ==on             is enabled
                                                                               Require
                                                               LeadTo  (audit logs)  AtStatus
                                               audit_resource_policy  are preferentially
                                     Related        ==on              stored by space

                              audit_resource_policy                                   Audit logs

                                     Related                   LeadTo  (audit logs)
                                               audit_resource_policy  are preferentially
                                                    ==off             stored by time  AtStatus
                                                    Require
                             audit_file_remain_time

                                        图 5 audit_file_remain_time 约束提取思维链图结构

                    由此我们先借助      LLM  分析每个配置文档描述的内容, 提取其中包含的配置条件、软件功能及其状态等信息,
                 再将这些实体关联, 形成配置-功能约束关联图. 基于该图结构, 我们可以找到存在多配置关联的子图, 进而基于子
                 图推断不同配置项之间存在的约束关系.
                  2.2.2    方法动机
                    通过上述的经验研究我们发现, 已有方法的缺陷主要在于文本理解能力较差, 无法准确识别软件配置项对应
                 的配置条件, 并提取不同配置条件之间的逻辑关系, 同时, 已有方法未能综合分析不同配置项的文本描述之间的关
                 联关系, 而这些关联关系通过软件功能实体的状态进行传递. 基于这些发现, 我们提出了基于                            LLM  的配置间约束
                 提取方法, 借助    LLM  在文本理解分析领域的强大能力, 能够高效识别文本语句中的配置项以及对应的配置条件,
                 并抽取配置条件之间、配置条件与软件功能实体之间以及功能实体之间的关联关系, 构建出软件配置-功能关联
                 图. 基于该图, 我们可以搜索相互关联的软件配置以及关联子图, 并把关联子图作为上下文提供给                             LLM, 从而发挥

                 LLM  的逻辑分析能力, 推断多个软件配置项之间的约束关系并输出约束规则.
                  3   方 法

                    本文提出了基于      LLM  提示工程的软件配置约束提取方法            LLM-Extractor, 图  6  展示了  LLM-Extractor 方法的
                 整体流程. 该方法可以被分为两个主要步骤: 软件配置-功能关联图                    (config-function relation graph, CFRG) 构建和
   227   228   229   230   231   232   233   234   235   236   237