海山数据库(He3DB)+AI(四):一种基于迁移学习的启发式数据库旋钮调优方法 ...

火影  金牌会员 | 2024-10-10 00:58:27 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 850|帖子 850|积分 2550

0 前言

在海山数据库(He3DB)+AI(三)中,先容了四种旋钮调优方法:基于启发式,基于贝叶斯,基于深度学习和基于强化学习,还先容了迁移学习技巧。本文带来2024 VLDB的论文:An Efficient Transfer Learning Based Configuration Adviser for Database Tuning,先容一种基于迁移学习的启发式数据库调优方法。
1 OpAdviser

1.1 主要工作

在现有的旋钮调优方法中,没有一个方法可以在全部任务中都表现较好。本文探究了以下两个原因:


  • 无效的巨大搜索空间:一个数据库中需要配置的参数很多,有些参数的搜索空间很大。寻找最优配置的时间和搜索空间的大小成正比,巨大的搜索空间将导致巨大的调参本钱,而研究表明,很多搜索空间是偶然义的。
  • 合适的优化器:针对差别的任务,差别的优化器表现出差别的性能,有时甚至导致几个数量级的性能损失。选择合适的优化器是不停以来面对的一个挑战。
本研究的目的是通过缩小搜索空间和选择合适的优化器来同时解决上述两个挑战,从而加快数据库调优。为了实现这一点,本文提出了OpAdviser,一种数据驱动的方法。具体来说,OpAdviser从差别的客户端和应用程序的调优任务中积累丰富的汗青数据,从汗青数据中进一步提取有代价的信息,实现搜索空间的紧凑和优化器的选择,从而淘汰大量的调试本钱。
1.2 总体流程

OpAdviser的计算流程如下图所示。

主要包含以下几个部分:

  • controller:通过与终端用户和数据库实例的交互来控制调优过程
  • data repository:存储汗青数据,差别任务差别参数下的模型性能,以                                        {                                       θ                               j                               i                                      ,                            f                            (                                       θ                               j                               i                                      ,                                       w                               i                                      )                            }                                  \{\theta_j^i,f(\theta_j^i,w_i)\}                     {θji​,f(θji​,wi​)}的情势存储,其中                                        i                                  i                     i表现任务
  • space constructor:构造紧凑的搜索空间
  • optimizer adviser:选择合适的优化器
  • configuration generator:由所选的优化器在所构造的搜索空间上生成配置参数
工作流程如下:
用户输入调优目标、调优本钱预算、数据库实例和目标工作负载,在每一次迭代中,controller使用新的配置获取数据库性能,然后将这组数据放在data repository。基于data repository中的数据,space constructor得到一组范围更小的搜索空间(第2节内容)。optimizer adviser抽取元数据,然后将元数据输入到一个元排序器中(该元排序器在构建的基准数据集上举行预训练),由该元排序器来推荐优化器(第3节内容)。最后,将推荐的优化器和构建的搜索空间通报给配置生成器,生成配置参数,然后将这组参数返回给controller。当调优预算耗尽,就返回目前最好的配置参数。
OpAdviser的操持目的是自我美满,其性能随着数据存储库中积累的调优观测值的增加而进步。
2 确定搜索空间

本文提出了一种新的方法来自动构建精确的搜索空间,而不需要收集大量关于目标工作负载的观测值。本文的方法从以前的任务中提取有效区域来构建精确的搜索空间,主要包括三个部分:

  • 相似任务识别:识别出与当前任务具有相似特征的候选任务集合
  • 有效区域提取:根据任务相似度从每个候选任务中提取有效区域
  • 多数加权投票:使用提取区域的几何结构来生成紧凑的搜索空间
2.1 相似任务识别

一个数据库在执行差别的调优任务时,可以积累丰富的汗青经验。对当前任务,找到雷同的汗青任务,从汗青任务中发掘有效的信息,来指导当前的任务。
那么怎样来量化当前任务和汗青任务的相似性呢?
通过考虑两个任务在差别配置下是否具有相似的性能分布来解决这个问题。
假设用                                   (                         θ                         ,                         f                         (                         θ                         )                         )                              (\theta,f(\theta))                  (θ,f(θ))来形貌参数配置和性能。汗青任务                                   m                              m                  m在数据仓库中有一组性能数据                                   (                                   θ                            1                            m                                  ,                         f                         (                                   θ                            1                            m                                  )                         )                         ,                         (                                   θ                            2                            m                                  ,                         f                         (                                   θ                            2                            m                                  )                         )                         ,                         .                         .                         .                         (                                   θ                            n                            m                                  ,                         f                         (                                   θ                            n                            m                                  )                         )                              {(\theta^m_1,f(\theta^m_1)),(\theta^m_2,f(\theta^m_2)),...(\theta^m_n,f(\theta^m_n))}                  (θ1m​,f(θ1m​)),(θ2m​,f(θ2m​)),...(θnm​,f(θnm​)),并基于这组性能数据在离线阶段使用随机丛林训练了性能函数                                             f                            ′                                       f'                  f′ 。当前任务在迭代执行得到一组性能参数                                   (                                   θ                            1                                  ,                         f                         (                                   θ                            1                                  )                         )                         ,                         (                                   θ                            2                                  ,                         f                         (                                   θ                            2                                  )                         )                         ,                         .                         .                         .                         (                                   θ                            ,                                  f                         (                                   θ                            n                                  )                         )                              {(\theta_1,f(\theta_1)),(\theta_2,f(\theta_2)),...(\theta_,f(\theta_n))}                  (θ1​,f(θ1​)),(θ2​,f(θ2​)),...(θ,​f(θn​))。OpAdviser通过计算两个任务之间                                   θ                              \theta                  θ变化导致的                                   f                         (                         )                              f()                  f()变化是否划一来判断任务的相似性,即导数方向是否划一,其相似性计算公式如公式1所示:
                                                                                                                                                                                                                                   S                                                             (                                                             i                                                             ,                                                             t                                                             )                                                             =                                                                                   2                                                                                                               ∣                                                                                               H                                                                         t                                                                                              ∣                                                                                                                  (                                                                                               ∣                                                                                                   H                                                                            t                                                                                                  ∣                                                                                              −                                                                      1                                                                      )                                                                                                                               F                                                             (                                                             i                                                             ,                                                             t                                                             )                                                                                                                                                                                                         F                                                             (                                                             i                                                             ,                                                             t                                                             )                                                             =                                                                                   ∑                                                                                       j                                                                   =                                                                   1                                                                                                             ∣                                                                                           H                                                                      t                                                                                          ∣                                                                                                                              ∑                                                                                       k                                                                   =                                                                   j                                                                   +                                                                   1                                                                                                             ∣                                                                                           H                                                                      t                                                                                          ∣                                                                                                        1                                                                                   (                                                                f                                                                                       (                                                                                           θ                                                                      j                                                                                          )                                                                                      ≤                                                                f                                                                                       (                                                                                           θ                                                                      k                                                                                          )                                                                                      )                                                                                  ⊗                                                             1                                                                                   (                                                                                       f                                                                   ′                                                                                                             (                                                                                           θ                                                                      j                                                                                          ,                                                                                           w                                                                      i                                                                                          )                                                                                      ≤                                                                                       f                                                                   ′                                                                                                             (                                                                                           θ                                                                      k                                                                                          ,                                                                                           w                                                                      i                                                                                          )                                                                                      )                                                                                                                                                                                                                                     (1)                                                       \begin{array}{l} \begin{array}{l} S(i, t)=\frac{2}{\left|H^{t}\right|\left(\left|H^{t}\right|-1\right)} F(i, t) \\ F(i, t)=\sum_{j=1}^{\left|H^{t}\right|} \sum_{k=j+1}^{\left|H^{t}\right|} \mathbb{1}\left(f\left(\theta_{j}\right) \leq f\left(\theta_{k}\right)\right) \otimes \mathbb{1}\left(f^{\prime}\left(\theta_{j}, w_{i}\right) \leq f^{\prime}\left(\theta_{k}, w_{i}\right)\right) \end{array}\\ \tag{1} \end{array}                     S(i,t)=∣Ht∣(∣Ht∣−1)2​F(i,t)F(i,t)=∑j=1∣Ht∣​∑k=j+1∣Ht∣​1(f(θj​)≤f(θk​))⊗1(f′(θj​,wi​)≤f′(θk​,wi​))​​(1)
公式中,                                   F                         (                         i                         ,                         t                         )                              F(i,t)                  F(i,t)是性能变化划一性的样本数量,                                             H                            t                                       H^t                  Ht是现有任务的观察样本数量,                                             2                                       ∣                                           H                                  t                                          ∣                               (                               ∣                                           H                                  t                                          ∣                               −                               1                               )                                                 \frac{2}{|H^t|(|H^t|-1)}                  ∣Ht∣(∣Ht∣−1)2​则表现全部样本的组合,OpAdviser使用性能变化划一性样本数量占全部样本组合的比例来表现两个任务之间的相似性。
在判断任务相似性时,设定阈值为0.5,当相似度小于0.5时,将其过滤掉。
2.2 有效区域提取

当找到了与当前任务相似度高的汗青任务,怎样从中获取有效信息,来资助缩小搜索的范围?
可以将其建模为一个优化问题,在包管最优参数在其范围内时最小化搜索空间,最优化公式如下所示:
                                                                                                                                                                                                                                                                                   arg                                                          ⁡                                                          min                                                          ⁡                                                                                              Φ                                                          i                                                                                                       Λ                                                                   (                                                                       Φ                                                       i                                                                      )                                                                  ,                                                                                                                                             s.t.                                                                                                                      ∀                                                 θ                                                 ∈                                                 G                                                 ,                                                 θ                                                 ∈                                                                   Θ                                                    ^                                                                                    (                                                                       Φ                                                       i                                                                      )                                                                  .                                                                                                                                      (2)                                                       \begin{array}{cc} & \underset{\Phi^{i}}{\arg \min } \Lambda\left(\Phi^{i}\right), \\ \text { s.t. } & \forall \theta \in G, \theta \in \hat{\Theta}\left(\Phi^{i}\right) . \tag{2} \end{array}                      s.t. ​Φiargmin​Λ(Φi),∀θ∈G,θ∈Θ^(Φi).​(2)
在公式中,优化目标是最小化搜索空间                                             Θ                            ^                                            (                                       Φ                               i                                      )                                       \hat{\Theta}\left(\Phi^{i}\right)                  Θ^(Φi),约束条件是这个空间中要包含全部的有希望的配置                                   G                              G                  G。                                   G                              G                  G通过已有的观察点和随机采样的一组配置来确定,若在该组配置下,模型性能超过肯定阈值                                             f                            b                            i                                       f_b^i                  fbi​,就将其加入集合。而阈值                                             f                            b                            i                                       f_b^i                  fbi​简直定由以下公式确定:
                                                                                                     f                                        b                                        i                                                  =                                                   f                                                       d                                           e                                           f                                           a                                           u                                           l                                           t                                                      i                                                  +                                     2                                     (                                                   f                                                       b                                           e                                           s                                           t                                                      i                                                  −                                                   f                                                       d                                           e                                           f                                           a                                           u                                           l                                           t                                                      i                                                  )                                     (                                     S                                     (                                     i                                     ,                                     t                                     )                                     −                                     0.5                                     )                                                                            (3)                                                       f_b^i = f_{default}^i+2(f^i_{best}-f^i_{default})(S(i,t)-0.5) \tag{3}                     fbi​=fdefaulti​+2(fbesti​−fdefaulti​)(S(i,t)−0.5)(3)
公式中,                                             f                                       d                               e                               f                               a                               u                               l                               t                                      i                                       f^i_{default}                  fdefaulti​是汗青任务在默认配置下的性能,                                             f                                       b                               e                               s                               t                                      i                                       f^i_{best}                  fbesti​是观察到的最好性能,                                   S                         (                         i                         ,                         t                         )                              S(i,t)                  S(i,t)是汗青任务和当前任务的相似度。
操持这个计算公式的来由如下:


  • 如果汗青任务和当前任务高度相似,那么                                                   f                               b                               i                                            f_b^i                     fbi​的值会和                                                    f                                           b                                  e                                  s                                  t                                          i                                            f^i_{best}                     fbesti​很接近,那么搜索的空间很小。
  • 如果汗青任务和当前任务高度相似性不高,那么搜索空间就会变大。
搜索空间的面积由以下公式确定:
                                                                                       Λ                                                   (                                                       Φ                                           i                                                      )                                                  =                                                   ∏                                                                       k                                              j                                              i                                                          ∈                                           K                                           1                                                                              (                                                                       u                                              ^                                                          j                                           i                                                      −                                                                       l                                              ^                                                          j                                                      )                                                                ∏                                                                       k                                              t                                              i                                                          ∈                                           K                                           2                                                                              ∣                                                                       s                                              ^                                                          t                                           i                                                      ∣                                                                                         (4)                                                       \Lambda\left(\Phi^{i}\right)=\prod_{k_{j}^{i} \in K 1}\left(\hat{u}_{j}^{i}-\hat{l}_{j}\right) \prod_{k_{t}^{i} \in K 2}\left|\hat{s}_{t}^{i}\right| \tag{4}                     Λ(Φi)=kji​∈K1∏​(u^ji​−l^j​)kti​∈K2∏​               ​s^ti​               ​(4)
公式中,                                             K                            1                                       K_1                  K1​表现连续的旋钮,                                             K                            2                                       K_2                  K2​表现离散的旋钮。对于连续旋钮,其上界和下界分别为                                                        u                               ^                                      j                            i                                       \hat{u}_{j}^{i}                  u^ji​和                                                        l                               ^                                      j                            i                                       \hat{l}_{j}^{i}                  l^ji​,其公式如下所示:
                                                                                                                    l                                           ^                                                      j                                        i                                                  =                                     min                                     ⁡                                                   {                                                       θ                                           j                                                      ∣                                        θ                                        ∈                                        G                                        }                                                  ,                                                                              u                                           ^                                                      j                                        i                                                  =                                     max                                     ⁡                                                   {                                                       θ                                           j                                                      ∣                                        θ                                        ∈                                        G                                        }                                                                                         (5)                                                       \hat{l}_{j}^{i}=\min \left\{\theta_{j} \mid \theta \in G\right\}, \quad \hat{u}_{j}^{i}=\max \left\{\theta_{j} \mid \theta \in G\right\} \tag{5}                     l^ji​=min{θj​∣θ∈G},u^ji​=max{θj​∣θ∈G}(5)
对于离散旋钮,其值由以下公式计算:
                                                                                                                    s                                           ^                                                      t                                        i                                                  =                                                   {                                                       θ                                           t                                                      ∣                                        θ                                        ∈                                        G                                        }                                                                                         (6)                                                       \hat{s}_{t}^{i}=\left\{\theta_{t} \mid \theta \in G\right\} \tag{6}                     s^ti​={θt​∣θ∈G}(6)
接下来,为了更进一步缩小搜索空间,使用特征算法[5]基于汗青的观测信息来选择重要的旋钮。本文使用SHAP[1],SHAP是一个通过配置之间的性能变化来衡量特征重要性的工具,移除一些不值得调优的旋钮,从而进一步缩小搜索空间。
2.3 多数加权投票

通过以上两步,从每个候选任务中提取了有效区域,根据这些信息,来生成最后的目标搜索空间,包括哪些是重要的旋钮和其调参范围。
本文操持了一个多数加权投票策略来聚合来自候选任务的建议,根据每个汗青任务和当前任务的相似度来计算其权重,计算公式如下所示:
                                                                                                     w                                        i                                                  =                                                                  S                                           (                                           i                                           ,                                           t                                           )                                                                                     ∑                                                               j                                                 =                                                 1                                                              m                                                          S                                           (                                           j                                           ,                                           t                                           )                                                                                                       (7)                                                       w_{i}=\frac{S(i, t)}{\sum_{j=1}^{m} S(j, t)} \tag{7}                     wi​=∑j=1m​S(j,t)S(i,t)​(7)
将总权重阈值设为50%,具有多数同意删除的旋钮被删除,多数同意保留的旋钮被保留,对于每个保留的旋钮,罗列其提取的有效范围和具有多数投票的区域,生成一个紧凑的区域将其包括在内。
为了避免负迁移,使用两条策略。
策略一:
根据在上一轮迭代中的观察样本和训练好的性能函数                                             f                            ′                                       f'                  f′,在获得新的配置参数                                   θ                              \theta                  θ后,使用3.2节的方法提取有效区域,公式如下:
                                                                                                                                                                                                                                   S                                                             (                                                             t                                                             ,                                                             t                                                             )                                                             =                                                                                   2                                                                                                               ∣                                                                                               H                                                                         t                                                                                              ∣                                                                                                                  (                                                                                               ∣                                                                                                   H                                                                            t                                                                                                  ∣                                                                                              −                                                                      1                                                                      )                                                                                                                               F                                                             (                                                             t                                                             ,                                                             t                                                             )                                                                                                                                                                                                         F                                                             (                                                             t                                                             ,                                                             t                                                             )                                                             =                                                                                   ∑                                                                                       j                                                                   =                                                                   1                                                                                                             ∣                                                                                           D                                                                      t                                                                                          ∣                                                                                                                              ∑                                                                                       k                                                                   =                                                                   j                                                                   +                                                                   1                                                                                                             ∣                                                                                           D                                                                      t                                                                                          ∣                                                                                                        1                                                                                   (                                                                f                                                                                       (                                                                                           θ                                                                      j                                                                                          )                                                                                      ≤                                                                f                                                                                       (                                                                                           θ                                                                      k                                                                                          )                                                                                      )                                                                                  ⊗                                                             1                                                                                   (                                                                                       f                                                                                           −                                                                      j                                                                                          ′                                                                                                             (                                                                                           θ                                                                      j                                                                                          )                                                                                      ≤                                                                                       f                                                                                           −                                                                      k                                                                                          ′                                                                                                             (                                                                                           θ                                                                      k                                                                                          )                                                                                      )                                                                                  ,                                                                                                                                                                                                                (8)                                                       \begin{array}{l} \begin{array}{l} S(t, t)=\frac{2}{\left|H^{t}\right|\left(\left|H^{t}\right|-1\right)} F(t, t) \\ F(t, t)=\sum_{j=1}^{\left|D^{t}\right|} \sum_{k=j+1}^{\left|D^{t}\right|} \mathbb{1}\left(f\left(\theta_{j}\right) \leq f\left(\theta_{k}\right)\right) \otimes \mathbb{1}\left(f_{-j}^{\prime}\left(\theta_{j}\right) \leq f_{-k}^{\prime}\left(\theta_{k}\right)\right), \end{array}\\ \tag {8} \end{array}                     S(t,t)=∣Ht∣(∣Ht∣−1)2​F(t,t)F(t,t)=∑j=1∣Dt∣​∑k=j+1∣Dt∣​1(f(θj​)≤f(θk​))⊗1(f−j′​(θj​)≤f−k′​(θk​)),​​(8)
随着模型的迭代,                                             f                            ′                                       f'                  f′渐渐提升,相似度渐渐提升。下图为基于候选任务举行搜索空间提取的过程,其中第一举动上一轮迭代中拟合的模型,第二至第四举动汗青任务。随着迭代开始,不断获取新的采样点,根据这些采样点,计算与各个候选模型的相似度,然后基于相似度计算当前任务的权重。从图中可以看到,随着样本数量的增加,自身模型的权重不断上升。

策略二:
对于候选任务,采样其中的                                   k                              k                  k个(不是全部使用),根据其相似度来计算权重,采样是为了加入随机性,避免优化器陷入局部最优。
3确定优化器

在确定优化器上,本文提出了一种数据驱动的方法,为给定的任务选择合适的优化器,该方法联合了任务的特点,举行具体问题具体分析。
3.1 元特征提取

在选择优化器时,要考虑任务的元特征。
已有工作表明,在选择优化器时,以下几个因素需要考虑:


  • 搜索空间的维度和类型,一些优化器可能得当离散任务,一些可能得当连续
  • 数据库性能响应函数
  • 调优阶段,一些优化器可能在早期性能更好,一些在后期性能更好
因此,对于每个调优任务操持了以下元特征:


  • 空间特征:该特征包括旋钮的数量、搜索空间和类别
  • 相应函数特征:接纳了5.2节的和谐排序对来衡量当前任务和以往任务之间的相似度,构建了一个相似度向量,来看作是目标响应面的一个分布式表现
  • 过程特征:使用迭代次数作为特征来表现调参过程
在每次迭代后更新元特征,使得可以在差别的迭代周期中选择合适的优化器,观测值是可以共享的。
3.2 离线数据生成

启发式的优化器选择依靠人的经验,无法适应变化的场景,本文操持了一种数据驱动的机器学习方法举行优化器的选择。
为了训练这个模型,需要监视数据,获得在差别的环境下各个模型的性能环境。然而,获得这个数据的本钱是很高的,为了以较少的测试收集数据,本文接纳自动学习的方法来选择测试和标注的样本。
起首通过改变搜索空间和响应来生成一组候选调优任务,然后接纳classification margin[2]方法迭代地选择具有最高不确定性的任务举行测试。这一过程不停持续到到达期望的决策阈值或测试预算耗尽为止。
3.3 Meta-Ranker构建

使用收集到的数据,开始构建学习模型,本文接纳了LambdaMART[3]算法,将优化器的选择问题转化为排序问题。LambdaMar将任务元特征和两个候选优化器作为输入举行比力,产生在给定任务上的相对性能排名。
模型输入:(                                   m                         ,                                   o                            i                                  ,                                   o                            j                                  ,                         I                              m,o_i,o_j,I                  m,oi​,oj​,I)
模型输出:1或0
其中,                                   m                              m                  m表现元特征,                                             o                            i                                       o_i                  oi​和                                             o                            j                                       o_j                  oj​为优化器的独热编码,                                   I                              I                  I是一个标识符。当                                             o                            i                                       o_i                  oi​的性能优于                                             o                            j                                       o_j                  oj​时,输出为1,否则为0。
具体地,OpAdviser从目标任务中提取元特征,将该特征与候选优化器对一起输入到元排序器中,并推荐排名靠前的优化器。
元排序方法与其他方法相比,其上风如下:
1)与分类模型相比,通过考虑成对性能可以提取更多的信息;
2)与回归模型相比,只需要举行两两优化器之间的比力,可以更好地处理噪声数据和差别规模的数据。
4 参考文献

[1]Scott M. Lundberg and Su-In Lee. 2017. A Unified Approach to Interpreting Model Predictions. In NIPS. 4765–4774.
[2]David D. Lewis and Jason Catlett. 1994. Heterogeneous Uncertainty Sampling for Supervised Learning. In ICML. Morgan Kaufmann, 148–156.
[3]Christopher JC Burges. 2010. From ranknet to lambdarank to lambdamart: An overview. Learning 11, 23-581 (2010), 81.

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

火影

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表