Page 236 - 《软件学报》2026年第5期
P. 236
张添翼 等: LLM-Extractor: 基于大语言模型的软件配置间约束提取方法 2115
E FS 对应的相反状态实体, 这是由于配置文档总是倾向于描述功
歧后, LLM-Extractor 还会检查每个 E FS 实体, 添加
能在特定条件下被关闭或者禁用, 而缺乏类似开启、启用的描述. 例如在图 8 中, LLM-Extractor 在配置 bgwriter_
lru_maxpages 的文本表述中提取出 E F 实体“the background writer”和 E FS 实体“(the background writer) is disabled”,
此时 E FS 实体“(the background writer) is disabled”缺少与之对应的相反状态实体“(the background writer) is enabled”,
E C -E F 关系抽取造成负面影响. 为了解决这个问题, LLM-Extractor 使用一种基于关键词的启发式方法,
这会对后续
检查 E FS 实体是否具有 disabled、blocked、not used 等状态的关键词, 再添加相应的相反状态.
Type Numerical
is disabled
LeadTo AtStatus
bgwriter_lru_maxpages
RelatedTo
Value
int(0, 1 000) bgwriter_lru_maxpages==0 The background writer
Numerical
Type
AtStatus
is enabled
Value int(0, 10)
bgwriter_lru_multiplier
Numerical
int(0, 20) int(1, 16)
Numerical
Value
Type Value
Type
recovery_max_workers recovery_parse_workers
图 8 CFRG 初始化示例
完成上述处理后, 我们就完成了 CFRG 的初始化, 图 8 展示了一个 CFRG 初始化之后的部分节点和关联关系,
从图 8 可以看出, LLM-Extractor 在 CFRG 初始化阶段识别了配置项 bgwriter_lru_maxpages 对功能 the background
writer 的影响, 并抽取了相应的实体和关联关系, 而对于配置项 recovery_max_workers 和 recovery_parse_workers,
LLM-Extractor 仅抽取了与配置实体对应的类型和合法取值. 在后续的 CFRG 关系补全步骤中, LLM-Extractor 将
抽取更多的关联关系添加到 CFRG 中, 作为配置间约束推断的数据基础.
3.1.3 配置-功能关联图补全
在完成 CFRG 的初始化之后, LLM-Extractor 构建了目标软件的配置-功能骨架图, 还需要更加细粒度地分析
E F 节点, 为后续的多配置关联子图搜索提供数据基础. 这一步具
配置文档, 挖掘更多关联关系来链接不同的 E C 和
体可以分为 3 部分: E C -E F 关系抽取、 E C -E C 关系抽取和 E F -E F 关系抽取, 接下来将详细介绍.
(1) E C -E F 关系抽取
e C Require AtStatus(e F ,e FS ). 由于
这一步的目的是抽取软件配置项 E C 对软件功能 E F 特定状态的依赖关系, 即
在 CFRG 初始化阶段, LLM-Extractor 已经提取了每个软件配置项 E C 对于软件功能实体 E F 状态的边际影响, 即
E Cond LeadTo E FS , 因此提取 E C 对软件功能 E F 的依赖关系可以将不同的 E C 通过同一个 E F 链接起来, 形成多个配
置之间的关联链路.
LLM-Extractor 首先识别语句中的软件功能实体 E F . 识别 E F 而不是直接识别 E FS 的原因是 E F 表述的稳定度
相对较高, 但是 E FS 往往有多种表达方式, 而且有可能缺乏显式表达, 例如 bgwriter_lru_maxpages 的描述“bgwriter_
lru_maxpages specifies the number of dirty buffers the background writer can write in each round”中隐含了
AtStatus(background writer, is enabled) 作为必要条件. 本文使用词向量匹配的方法搜索语句中存在的功能实体, 即
使用滑动窗口在语句的词序列上滑动, 计算窗口内短语与功能实体 E F 的语义相似度, 进而判断是否匹配. 这样的

