1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        AutoTiKV基于機器學習的數(shù)據(jù)庫調優(yōu)

        聯(lián)合創(chuàng)作 · 2023-09-30 21:00

        AutoTiKV 是一個用于對 TiKV 數(shù)據(jù)庫進行自動調優(yōu)的工具

        整個調優(yōu)過程大致如下圖:

        AutoTiKV 支持在修改參數(shù)之后重啟 TiKV(如果不需要也可以選擇不重啟)。需要調節(jié)的參數(shù)和需要查看的 metric 可以在 controller.py 里聲明。

        一開始的 10 輪(具體大小可以調節(jié))是用隨機生成的 knob 去 benchmark,以便收集初始數(shù)據(jù)集。之后的都是用 ML 模型推薦的參數(shù)去 benchmark。

        AutoTiKV 使用了和 OtterTune 一樣的高斯過程回歸(Gaussian Process Regression,以下簡稱 GP)來推薦新的 knob[1],它是基于高斯分布的一種非參數(shù)模型。高斯過程回歸的好處是:

        1. 和神經網絡之類的方法相比,GP 屬于無參數(shù)模型,算法計算量相對較低,而且在訓練樣本很少的情況下表現(xiàn)比 NN 更好。

        2. 它能估計樣本的分布情況,即 X 的均值 m(X) 和標準差 s(X)。若 X 周圍的數(shù)據(jù)不多,則它被估計出的標準差 s(X) 會偏大(表示這個樣本 X 和其他數(shù)據(jù)點的差異大)。直觀的理解是若數(shù)據(jù)不多,則不確定性會大,體現(xiàn)在標準差偏大。反之,數(shù)據(jù)足夠時,不確定性減少,標準差會偏小。這個特性后面會用到。

        但 GP 本身其實只能估計樣本的分布,為了得到最終的預測值,我們需要把它應用到貝葉斯優(yōu)化(Bayesian Optimization)中。貝葉斯優(yōu)化算法大致可分為兩步:

        1. 通過 GP 估計出函數(shù)的分布情況。

        2. 通過采集函數(shù)(Acquisition Function)指導下一步的采樣(也就是給出推薦值)。

        采集函數(shù)(Acquisition Function)的作用是:在尋找新的推薦值的時候,平衡探索(exploration)和利用(exploitation)兩個性質:

        • exploration:在目前數(shù)據(jù)量較少的未知區(qū)域探索新的點。

        • exploitation:對于數(shù)據(jù)量足夠多的已知區(qū)域,利用這些數(shù)據(jù)訓練模型進行估計,找出最優(yōu)值。

        在推薦的過程中,需要平衡上述兩種指標。exploitation 過多會導致結果陷入局部最優(yōu)值(重復推薦目前已知的最好的點,但可能還有更好的點沒被發(fā)現(xiàn)),而 exploration 過多又會導致搜索效率太低(一直在探索新區(qū)域,而沒有對當前比較好的區(qū)域進行深入嘗試)。而平衡二者的核心思想是:當數(shù)據(jù)足夠多時,利用現(xiàn)有的數(shù)據(jù)推薦;當缺少數(shù)據(jù)時,我們在點最少的區(qū)域進行探索,探索最未知的區(qū)域能給我們最大的信息量。

        貝葉斯優(yōu)化的第二步就可以幫我們實現(xiàn)這一思想。前面提到 GP 可以幫我們估計 X 的均值 m(X) 和標準差 s(X),其中均值 m(x) 可以作為 exploitation 的表征值,而標準差 s(x) 可以作為 exploration 的表征值。這樣就可以用貝葉斯優(yōu)化方法來求解了。

        使用置信區(qū)間上界(Upper Confidence Bound)作為采集函數(shù)。假設我們需要找 X 使 Y 值盡可能大,則 U(X) = m(X) + k*s(X),其中 k > 0 是可調的系數(shù)。我們只要找 X 使 U(X) 盡可能大即可。

        • 若 U(X) 大,則可能 m(X) 大,也可能 s(X) 大。

        • 若 s(X) 大,則說明 X 周圍數(shù)據(jù)不多,需要探索未知區(qū)域新的點。

        • 若 m(X) 大,說明估計的 Y 值均值大, 則需要利用已知數(shù)據(jù)找到效果好的點。

        • 其中系數(shù) k 影響著探索和利用的比例,k 越大,越鼓勵探索新的區(qū)域。

        在具體實現(xiàn)中,一開始隨機生成若干個 candidate knobs,然后用上述模型計算出它們的 U(X),找出 U(X) 最大的那一個作為本次推薦的結果。

        更詳細介紹請看文章。

        瀏覽 24
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        編輯 分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        編輯 分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            开心激情亚洲 | 台湾无码片 | 人妻夜夜爽天天爽三区麻豆AV网站 | 成人电影久久 | 靠逼网站免费观看 | www在线视频 | 欧美精品九九99久久 | 免费AAA视频在线观看 | 美女张开腿给男人桶 | 国产综合久久久久鬼色 |