Page 259 - 《软件学报》2026年第5期
P. 259
2138 软件学报 2026 年第 37 卷第 5 期
−−−→ −−−−→ 1
中 |M| 表示模型总数. 为对倾向评分向量 G(x) 建模, 本文为样本数据集中的每条数据计算所属向量 m(x i ) = (m (x i ),
2 |M| x i 表示数据集中的第 i 项数据的解码参数配置, 假
m (x i ),...,m (x i )), 用以表征该条数据是被哪个模型采样, 其中
设该项数据是由模型 T = t 采样的, 则有:
1, j = t
j .
m (x i ) =
0, j , t
(2) 训练倾向评分预测器
使用倾向评分匹配方法对齐不同分布样本数据需要对倾向评分进行建模, 因此本文使用神经网络模型构建倾
向评分预测器以估计样本数据倾向评分; 而由于倾向评分方法仅将不同分布的样本数据对齐至相同分布, 而不保
证对齐后的分布与随机采样分布相同, 因此 CodeLLMTuner 构建性能预测器以计算各模型性能期望. 考虑到性能
和倾向评分建模任务之间的相似性, CodeLLMTuner 采用多任务学习方法 (如图 5 所示), 以节省计算资源并提高
准确性. 该模型包括 4 层共享层、1 层倾向评分私有层与 2 层性能私有层, 其中共享层用于提取输入参数在不同
模型上与最优解的相似度特征, 倾向评分私有层将该特征转化为在不同模型上被参数调优方法采样的概率, 而性
能私有层将其转化为该参数在不同模型上的性能估计.
在构建所属向量后, 以解码参数配置为输入, 所属向量为输出, CodeLLMTuner 训练共享层与倾向评分私有层.
设 n 表示样本数据集大小, x i 表示数据集中的第 i 条样本数据, 损失函数如下:
1 n ∑ |M| ( )
∑
t
t
ˆ θ = argmin ˆ E (θ;X), where ˆ E (θ;X) = CrossEntropy G (x i ;θ),m (x i ) (1)
θ n
i=1 t=1
− →
(3) 预测倾向评分 G
PSM 方法的关键在于如何构建适当的倾向评分函数 g, 以保证条件独立性假设成立. 本文采用 TARNET 所提出
的方法, 该方法要求模型总数为 2, 将倾向评分定义为各解码参数配置被不同模型采样的概率, 即 g(x) = P(T = 1|X = x),
此时 T = 1 的数据集期望为:
∫
1
[ ]
E [Y|do(T = 1)] = E Y|g(X) = g,T = 1 P(g(X) = g)dg
0
∫ 1 [ Y ] [ Y ]
= E |g(X) = g,T = 1 P(T = 1,g(X) = g)dg = E |T = 1 .
0 g(X) g(X)
1/g(x) 视作权重, 该方法实质上是通过对样本数据加权以对齐不同分布的样本数据, 因此也被称为逆概
若将
率加权法. 为计算样本数据中各数据项的权重以对齐数据, CodeLLMTuner 将样本数据输入倾向评分预测器, 预测
− →
各数据项的倾向评分 G.
(4) 使用倾向评分计算样本数据权重
在模型总数大于 2 时, 考虑到归一化处理, 在对 i、j 两模型的样本数据进行对齐时, i、j 上的数据项权重分别
i j i (G +G )/G . 为对齐各个模型样本数据的分布, 本文计算该权重的平均值作为统一分布后的数据
i
j
j
为 (G +G )/G 和
项权重, 即:
∑
|M|
t ′
G (x) (|M|−2)×G (x)+1
t
t ′ ,t
W (x,t) = 1+ = (2)
t
(|M|−1)×G (x) (|M|−1)×G (x)
t
(5) 训练性能预测器
其后, 本文对样本数据集中的每项数据均使用倾向评分进行加权处理, 对齐模型之间的配置分布以避免样本
数据分布的倾斜对性能期望估计结果的影响. 以共享层输出与模型 id 为输入, 以对应模型的性能作为输出, 采用
以下损失函数进行训练, 其中 t i 表示数据集中的第 i 项的所属模型 id, y i 表示数据集中的第 i 项的性能评分.
1 n ∑
ˆ θ = argmin ˆ R(θ;X), where ˆ R(θ;X) = W (x i ,t i )×(Q(x i ,t i ;θ)−y i ) 2 (3)
θ n
i=1

