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

