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

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



                                    表 6 Direct Prompt 与  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
                                          Direct Prompt (GPT-4o)  66        0.653 5   0.342 0    0.449 0
                                          LLM-Extractor (GPT-4o)  65        0.764 7   0.755 8    0.760 2
                   PostgreSQL     86
                                          Direct Prompt (GPT-4o)  24        0.545 5   0.279 1    0.369 2
                                          LLM-Extractor (GPT-4o)  20        0.769 2   0.740 7    0.754 7
                     Squid        27
                                          Direct Prompt (GPT-4o)  12         0.22     0.407 4    0.285 7

                  4.3.1    CFRG  初始化评估
                    LLM-Extractor 在  CFRG  初始化阶段读取每个配置项对应的软件配置文档, 并提取配置项的类型以及合法取
                                          E C  的类型属性  Type, 以及合法取值属性      Value. 除此之外, 根据该配置项的类型,
                 值, 即从文本中识别当前配置项
                 LLM-Extractor 进一步提取该配置项取值条件对特定系统功能的边际影响, 将这些系统功能以及对应的状态抽取
                                                        E Cond  节点, 并添加  RelatedTo   E C  关联. 由于该任务请求
                 为   E F  和   E FS  节点, 将导致该影响的配置条件抽取为                         关系与
                 量巨大且推理的复杂程度较低, 我们调用轻量化的                GPT-4o-mini 接口完成了   CFRG  的初始化实验, 并人工分析了
                 实体抽取的正确性, 该过程由两名研究人员分别完成, 再由第                  3  名研究人员整合判断结果, 如有分歧则共同讨论得
                 出结论. CFRG  初始化的实验结果如表         7  和表  8  所示. 表  7  展示了使用  LLM  提示工程抽取实体的次数情况, 表        8
                 展示了每种实体抽取的精确度. LLM-Extractor 针对每个配置项的描述文本生成提示词并调用                        LLM  接口, 由于每
                 个配置项都具有类型和取值属性, 因此             Type 和  Value 的提取次数和配置个数相同. 从表         8  中可以发现, Type 和
                 Value 抽取的精确率较高, 在     openGauss 和  PostgreSQL  的实验中均超过了   0.97, 这是由于软件配置设计时就遵循
                 先进行类型设计和合法值约定的规则, 因而文档中一般包含配置类型和取值范围的描述. Squid                             实验中, Type 和
                 Value 抽取的精确率略低在      0.93  左右, 这是由于  Squid  的文档撰写相对更加简略. 在       E F  和  E FS  实体抽取任务上, 由
                 于涉及配置功能理解和边界条件抽取, 具有更高的难度, 在这个任务上                    GPT-4o-mini 的表现稍差, 准确率在    0.85–0.93
                 之间. 由于  LLM-Extractor 可能从不同语料中抽取出相同         E F  和  E FS  实体,   E F  和  E FS  实体需要进一步去重和消歧. 除
                 此之外, 还要添加与      E FS  实体相反的状态实体, 便于后续的逻辑推断, 具体方法如第              3.1.2  节中相反状态添加所示.
                                                    E FS  实体数量如表   9  所示. 实体数量相较于抽取次数均有所减少, 而
                 完成去重和消歧和相反状态添加之后的              E F  和
                 由于相反状态实体的添加,         E FS  实体数量相较于抽取次数下降幅度较小或者有略微增加. 实验表明, GPT-4o-mini
                 在文本理解和分类、关键范围抽取问题上具有良好的效果, 在逻辑关系抽取上的表现则稍弱.

                                             表 7 针对   GPT-4o-mini 模型的抽取次数

                     软件名称           配置个数          Type count     Value count    E F  count    E FS  count
                     openGauss        768           768             768           529           915
                     PostgreSQL       319           319             319           261           395
                       Squid          330           330             330           206           319


                                             表 8 针对   GPT-4o-mini 模型抽取准确率

                    软件名称         配置个数         Type Precision  Value Precision  E F  Precision  E FS  Precision
                    openGauss      768          0.988 3         0.984 3         0.880 9       0.918 0
                    PostgreSQL     319          0.990 6         0.978 1         0.869 7       0.906 3
                      Squid        330          0.939 4         0.936 3         0.898 1       0.931 0


                                                         E FS  实体去重消歧结果
                                               表 9    E F  和

                               软件名称              配置个数              E F  count       E FS  count
                               openGauss           768              396               803
                               PostgreSQL          319              217               394
                                 Squid             330              163               331
   239   240   241   242   243   244   245   246   247   248   249