第三階段實驗 - s9891326/Fine-Tuning-BERT GitHub Wiki

目標

  • 使用少量的資料改善模型弱點
  • 設計持續更新模型機制

Outline

資料準備方向

  • 延續第二階段實驗的資料,進行第三階段實驗,主要使用少量的資料來改善模型弱點。
  1. 只使用新資料進行模型訓練
  2. 載入跟新資料對應比例的舊資料混合起來訓練
    • eg:假設新資料集各標籤筆數[0, 1, 489],混合筆數[1000, 1000, 500] => [1000, 1001, 989]
  3. 加入固定數量的舊資料到各個標籤
    • eg:mix_number = 100,假設新資料集各標籤筆數[0, 1, 489],混合筆數[100, 100, 100] => [100, 101, 589]

訓練方式

  • 載入少量的資料進行新模型的訓練,並不會導致原本的正確率下降

實驗紀錄

  • 準備三種測試集(2019、2019 + 修正弱點、修正弱點),訓練集(2019、2019 + 修正弱點的資料集、各種混合情況比較),驗證舊測試集的Loss/Accuracy

  • (新訓練集)修正弱點(490筆, 0:0、1:1、2:489),以此為基底下去混合舊資料

  • 這裡引用的舊模型為: 2019的訓練集,訓練出來0.2806/0.9022的舊模型

  • 訓練

    • (舊模型)2019資料集(14023筆,0:4248、1:5403、2:4372)
    • (新)2019資料集 + 修正弱點
    • (新-不混)直接load_model進行新資料集training
    • (新-比例混)按照新資料集的各標籤比例來混合舊資料集,再load_model進行新資料集training
    • (新-固定數量混)依照指定混合的數目進行training
  • 測試

    • 2019資料集(3506筆,0:1079、1:1307、2:1120)
    • 2019 + 修正弱點(3626筆,0:1079、1:1307、2:1240)
      • 修正弱點(120筆, 0:0、1:0、2:120)
    • 修正弱點(120筆, 0:0、1:0、2:120)
    (舊)2019 (新)2019 + 修正弱點 新-不混 新-比例混 (新)mix_100 (新)mix_300 (新)mix_500 (新)mix_700
    2019資料集 0.2806/0.9022 0.2661/0.9113 3.9492/0.3366 0.3373/0.8982  0.3981/0.8851 0.4119/0.8913 0.3587/0.8856 0.4237/0.8851
    2019 + 修正弱點 0.2789/0.9035 0.2583/0.9137 3.9497/0.3439 0.2620/0.9131 0.3109/0.8991 0.3429/0.9032 0.3001/0.8985 0.3172/0.9057
    修正弱點 0.2261/0.9426 0.0334/0.9836 0.1230/0.9836 0.0033/1.0000 0.0074/1.0000 0.0016/1.0000 0.0140/0.9918 0.0402/0.9836
    訓練時間 369.485s 383.941s 101.511s 196.689s 113.19s 135.604s 158.523s 181.504s
    (舊)2019
    2019資料集
                  precision    recall  f1-score   support
    
               0     0.9637    0.8911    0.9260      1102
               1     0.8697    0.9575    0.9115      1318
               2     0.8871    0.8462    0.8662      1086
    
        accuracy                         0.9022      3506
       macro avg     0.9068    0.8983    0.9012      3506
    weighted avg     0.9046    0.9022    0.9020      3506
    
    2019 + 修正弱點
                  precision    recall  f1-score   support
    
               0     0.9590    0.8911    0.9238      1102
               1     0.8685    0.9575    0.9109      1318
               2     0.8982    0.8557    0.8764      1206
    
        accuracy                         0.9035      3626
       macro avg     0.9086    0.9014    0.9037      3626
    weighted avg     0.9059    0.9035    0.9033      3626
    
    修正弱點
                  precision    recall  f1-score   support
    
               0     0.1667    1.0000    0.2857         1
               1     0.3333    1.0000    0.5000         1
               2     1.0000    0.9417    0.9700       120
    
        accuracy                         0.9426       122
       macro avg     0.5000    0.9806    0.5852       122
    weighted avg     0.9877    0.9426    0.9605       122
    
    (新)2019 + 修正弱點
    2019資料集
                  precision    recall  f1-score   support
    
               0     0.9377    0.9292    0.9335      1102
               1     0.8981    0.9431    0.9201      1318
               2     0.9010    0.8545    0.8771      1086
    
        accuracy                         0.9113      3506
       macro avg     0.9123    0.9089    0.9102      3506
    weighted avg     0.9115    0.9113    0.9110      3506
    
    2019 + 修正弱點
                  precision    recall  f1-score   support
    
               0     0.9360    0.9292    0.9326      1102
               1     0.8981    0.9431    0.9201      1318
               2     0.9111    0.8673    0.8887      1206
    
        accuracy                         0.9137      3626
       macro avg     0.9151    0.9132    0.9138      3626
    weighted avg     0.9140    0.9137    0.9134      3626
    
    修正弱點
                  precision    recall  f1-score   support
    
               0     0.3333    1.0000    0.5000         1
               1     1.0000    1.0000    1.0000         1
               2     1.0000    0.9833    0.9916       120
    
        accuracy                         0.9836       122
       macro avg     0.7778    0.9944    0.8305       122
    weighted avg     0.9945    0.9836    0.9876       122
    
    新-不混
    2019資料集
                  precision    recall  f1-score   support
    
               0     0.0000    0.0000    0.0000      1102
               1     1.0000    0.0311    0.0603      1318
               2     0.3134    1.0000    0.4773      1086
    
        accuracy                         0.3214      3506
       macro avg     0.4378    0.3437    0.1792      3506
    weighted avg     0.4730    0.3214    0.1705      3506
    
    2019 + 修正弱點
                  precision    recall  f1-score   support
    
               0     0.0000    0.0000    0.0000      1102
               1     1.0000    0.0311    0.0603      1318
               2     0.3364    1.0000    0.5034      1206
    
        accuracy                         0.3439      3626
       macro avg     0.4455    0.3437    0.1879      3626
    weighted avg     0.4754    0.3439    0.1894      3626
    
    修正弱點
                  precision    recall  f1-score   support
    
               0     0.0000    0.0000    0.0000         1
               1     0.0000    0.0000    0.0000         1
               2     0.9836    1.0000    0.9917       120
    
        accuracy                         0.9836       122
       macro avg     0.3279    0.3333    0.3306       122
    weighted avg     0.9675    0.9836    0.9755       122
    
    新-比例混
    2019資料集
                  precision    recall  f1-score   support
    
               0     0.9605    0.9038    0.9313      1102
               1     0.9176    0.9211    0.9193      1318
               2     0.8560    0.9033    0.8790      1086
    
        accuracy                         0.9102      3506
       macro avg     0.9114    0.9094    0.9099      3506
    weighted avg     0.9120    0.9102    0.9106      3506
    
    2019 + 修正弱點
                  precision    recall  f1-score   support
    
               0     0.9605    0.9038    0.9313      1102
               1     0.9176    0.9211    0.9193      1318
               2     0.8697    0.9129    0.8908      1206
    
        accuracy                         0.9131      3626
       macro avg     0.9159    0.9126    0.9138      3626
    weighted avg     0.9147    0.9131    0.9135      3626
    
    修正弱點
                  precision    recall  f1-score   support
    
               0     1.0000    1.0000    1.0000         1
               1     1.0000    1.0000    1.0000         1
               2     1.0000    1.0000    1.0000       120
    
        accuracy                         1.0000       122
       macro avg     1.0000    1.0000    1.0000       122
    weighted avg     1.0000    1.0000    1.0000       122
    
    
    (新)mix_100
    2019資料集
                  precision    recall  f1-score   support
    
               0     0.8772    0.9450    0.9099      1036
               1     0.8996    0.9111    0.9053      1328
               2     0.8746    0.8004    0.8358      1142
    
        accuracy                         0.8851      3506
       macro avg     0.8838    0.8855    0.8837      3506
    weighted avg     0.8849    0.8851    0.8840      3506
    
    2019 + 修正弱點
                  precision    recall  f1-score   support
    
               0     0.9104    0.9220    0.9161      1102
               1     0.9019    0.9203    0.9110      1318
               2     0.8850    0.8549    0.8697      1206
    
        accuracy                         0.8991      3626
       macro avg     0.8991    0.8991    0.8989      3626
    weighted avg     0.8988    0.8991    0.8988      3626
    
    修正弱點
                  precision    recall  f1-score   support
    
               0     1.0000    1.0000    1.0000         1
               1     1.0000    1.0000    1.0000         1
               2     1.0000    1.0000    1.0000       120
    
        accuracy                         1.0000       122
       macro avg     1.0000    1.0000    1.0000       122
    weighted avg     1.0000    1.0000    1.0000       122
    
    
    (新)mix_300
    2019資料集
                  precision    recall  f1-score   support
    
               0     0.8826    0.9363    0.9087      1036
               1     0.9071    0.8968    0.9019      1328
               2     0.8528    0.8170    0.8345      1142
    
        accuracy                         0.8825      3506
       macro avg     0.8808    0.8834    0.8817      3506
    weighted avg     0.8822    0.8825    0.8820      3506
    
    2019 + 修正弱點
                  precision    recall  f1-score   support
    
               0     0.9173    0.9156    0.9164      1102
               1     0.9101    0.9067    0.9084      1318
               2     0.8664    0.8715    0.8690      1206
    
        accuracy                         0.8977      3626
       macro avg     0.8979    0.8979    0.8979      3626
    weighted avg     0.8978    0.8977    0.8977      3626
    
    修正弱點
                  precision    recall  f1-score   support
    
               0     0.5000    1.0000    0.6667         1
               1     1.0000    1.0000    1.0000         1
               2     1.0000    0.9917    0.9958       120
    
        accuracy                         0.9918       122
       macro avg     0.8333    0.9972    0.8875       122
    weighted avg     0.9959    0.9918    0.9932       122
    
    
    (新)mix_500
    2019資料集
                  precision    recall  f1-score   support
    
               0     0.8906    0.9431    0.9161      1036
               1     0.8887    0.9142    0.9013      1328
               2     0.8763    0.8004    0.8366      1142
    
        accuracy                         0.8856      3506
       macro avg     0.8852    0.8859    0.8847      3506
    weighted avg     0.8852    0.8856    0.8846      3506
    
    2019 + 修正弱點
                  precision    recall  f1-score   support
    
               0     0.9253    0.9211    0.9231      1102
               1     0.8895    0.9226    0.9058      1318
               2     0.8838    0.8516    0.8674      1206
    
        accuracy                         0.8985      3626
       macro avg     0.8995    0.8984    0.8988      3626
    weighted avg     0.8985    0.8985    0.8983      3626
    
    修正弱點
                  precision    recall  f1-score   support
    
               0     1.0000    1.0000    1.0000         1
               1     0.5000    1.0000    0.6667         1
               2     1.0000    0.9917    0.9958       120
    
        accuracy                         0.9918       122
       macro avg     0.8333    0.9972    0.8875       122
    weighted avg     0.9959    0.9918    0.9932       122
    
    
    (新)mix_700
    2019資料集
                  precision    recall  f1-score   support
    
               0     0.8665    0.9527    0.9076      1036
               1     0.8923    0.9104    0.9012      1328
               2     0.8962    0.7942    0.8422      1142
    
        accuracy                         0.8851      3506
       macro avg     0.8850    0.8858    0.8837      3506
    weighted avg     0.8860    0.8851    0.8839      3506
    
    2019 + 修正弱點
                  precision    recall  f1-score   support
    
               0     0.9070    0.9383    0.9224      1102
               1     0.9027    0.9287    0.9155      1318
               2     0.9080    0.8507    0.8784      1206
    
        accuracy                         0.9057      3626
       macro avg     0.9059    0.9059    0.9054      3626
    weighted avg     0.9057    0.9057    0.9053      3626
    
    修正弱點
                  precision    recall  f1-score   support
    
               0     0.5000    1.0000    0.6667         1
               1     0.5000    1.0000    0.6667         1
               2     1.0000    0.9833    0.9916       120
    
        accuracy                         0.9836       122
       macro avg     0.6667    0.9944    0.7750       122
    weighted avg     0.9918    0.9836    0.9863       122
    

Summary實驗結果

  • 實驗報告
  • 使用load_model的方式進行模型的訓練,也有不錯的結果,建議使用按照比例的方式來抓取舊資料集內的資料。從實驗結果上來說是比較好的
⚠️ **GitHub.com Fallback** ⚠️