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

2146                                                       软件学报  2026  年第  37  卷第  5  期


                 素对  CodeLLMTuner 的性能影响.
                    ● 不同的成本分配方式对        CodeLLMTuner 性能的影响
                    如前文所述, CodeLLMTuner 将采样过程分为两个阶段: 在第             1  阶段  CodeLLMTuner 迭代地在每个模型上采
                 样  K  次以选择最优模型; 在第     2  阶段  CodeLLMTuner 在获选模型上采样     N  次以确定最优解码参数. 在总成本一定
                 时, 无法保证两阶段均能获得足够多的成本, 即             K  与  N  呈负相关, 此时成本分配策略, 即     K  和  N  的比率, 会对  Code-
                 LLMTuner 的性能造成重大影响, 因此本节探索           CodeLLMTuner 性能与成本分配策略之间的关系. 为全面探索成
                 本分配策略对     CodeLLMTuner 性能的影响, 本文使用了不同的总成本进行上述实验, 其公式如下所示:

                                                    TotalCost = K×|M|+ N,
                 其中, |M|表示候选模型的数量, 该公式使用总样本数据量表征总成本. 本文选择代码生成作为目标任务, HumanEval
                 作为  Benchmark, pass@10  作为性能评价标准, 在不同的总成本下, 采用具有不同             K  和  N  比率的  CodeLLMTuner
                 在训练   Benchmark  中进行代码大模型选择与解码参数调优.
                    其结果如图     12  所示, 其中横轴表示    log(K/N), 纵轴表示  pass@10. 首先, 当总成本一定时, K    和  N  比率过大或
                 过小均会降低     CodeLLMTuner 性能, 其原因在于: 比率过大时, 用于性能空间探索的成本过少, 导致性能空间探索
                 不充分; 而比率过小时, 用于模型选择的成本过少会导致选择次优解. 其次, 随着总成本的增加, 最优性能有所提
                 升, 而性能最优的     K/N  比值有所降低, 其原因在于: 模型选择仅需要对性能期望进行排序, 对性能预测精度的要求
                 不高, 因此模型选择成本增加带来的性能收益不如解码参数调优. 而在进一步实验后, 本文发现不同总成本下性能
                 最优点的   K  值相接近, 即在不同总成本下实现性能最优的分配策略用于模型选择的成本接近, 这为                          CodeLLMTuner
                 的成本分配策略提供了指导: 在保证模型选择准确的同时, 尽可能地分配更多成本用于解码参数调优.

                    75                           80                            80
                                                 75
                    70                           70                            75
                   pass@10 (%)  65              pass@10 (%)  65               pass@10 (%)  70
                                                                               65
                    60
                    55                           60                            60
                                                 55
                    50                           50                            55
                    −2.0   −1.0   0     1.0       −2.5  −1.5  −0.5  0.5  1.5    −2.5  −2.0  −1.5  −1.0  −0.5  0
                              log(K/N)                      log(K/N)                     log(K/N)
                            (a) TotalCost=120            (b) TotalCost=150             (c) TotalCost=180
                                    85                           85
                                    80                           80
                                   pass@10 (%)  70              pass@10 (%)  70
                                    75
                                                                 75
                                    65
                                                                 65
                                    60                           60
                                    55                           55
                                     −2.4  −2.0  −1.6  −1.2  −0.8  −2.2 −2.0 −1.8  −1.6 −1.4 −1.2 −1.0
                                              log(K/N)                     log(K/N)
                                            (d) TotalCost=210           (e) TotalCost=240
                            图 12 代码生成任务中不同总成本下的成本分配方式对                  CodeLLMTuner 性能的影响

                    ● 参数调优方法对      CodeLLMTuner 性能的影响
                    考虑到   CodeLLMTuner 可以整合不同的参数调优方法, 本节探索             CodeLLMTuner 性能与不同参数调优方法
                 之间的关系. 以代码生成作为目标任务, HumanEval-70%          作为  Benchmark, pass@10  作为性能评价标准, 随机选择、
                 线性回归和贝叶斯优化作为对比方法, 本实验使用结合了不同参数调优方法的                          CodeLLMTuner 在训练性能空间中
                 选择最佳的模型和解码参数, 并记录该模型与解码参数在                  HumanEval-30%  中的性能结果, 如图    13  所示, 其中横轴
                 表示总成本, 纵轴表示      pass@10.
   262   263   264   265   266   267   268   269   270   271   272