Evaluate 文件

模型評估的注意事項

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

模型評估的注意事項

開發一個機器學習模型很少是一次性的工作:它通常涉及多個階段,包括定義模型架構和調整超引數,最終才能確定一個最終版本。負責任的模型評估是這個過程中的關鍵部分,而 🤗 Evaluate 在此為您提供幫助!

在使用 🤗 Evaluate 庫評估模型時,需要注意以下幾點:

正確地劃分資料

好的評估通常需要將資料集劃分為三個部分:

  • 訓練集 (train):用於訓練您的模型。
  • 驗證集 (validation):用於驗證模型的超引數。
  • 測試集 (test):用於評估您的模型。

🤗 Hub 上的許多資料集被劃分為兩個部分:trainvalidation;另一些則被劃分為三個部分 (trainvalidationtest)——請確保為正確的目的使用正確的資料劃分!

🤗 Hub 上的某些資料集已經被劃分為這三個部分。但是,也有許多資料集只有訓練集/驗證集或僅有訓練集。

如果您使用的資料集沒有預定義的訓練-測試劃分,您需要自己定義哪部分資料用於訓練模型,哪部分用於超引數調整或最終評估。

在同一個資料劃分上進行訓練和評估可能會歪曲您的結果!如果您在訓練資料上過擬合,那麼在該資料劃分上的評估結果會看起來很好,但模型在新資料上的表現會很差。

根據資料集的大小,您可以保留 10-30% 的資料用於評估,其餘用於訓練,同時力求使測試集儘可能地反映生產環境的資料。請檢視這個帖子,瞭解有關資料集劃分的更深入討論!

類別不平衡的影響

雖然許多學術資料集,如IMDb 電影評論資料集,是完全平衡的,但大多數現實世界的資料集並非如此。在機器學習中,平衡資料集指的是所有標籤都得到平等表示的資料集。就 IMDb 資料集而言,這意味著資料集中正面評論和負面評論的數量一樣多。在不平衡資料集中,情況並非如此:例如,在欺詐檢測中,資料集中的非欺詐案例通常遠多於欺詐案例。

資料集不平衡可能會扭曲您的指標結果。想象一個有 99 個“非欺詐”案例和 1 個“欺詐”案例的資料集。一個總是預測“非欺詐”案例的簡單模型將產生 99% 的準確率,這乍一聽可能不錯,但您很快就會意識到,您將永遠無法捕捉到任何欺詐案例。

通常,使用多個指標可以幫助從不同角度更好地瞭解模型的效能。例如,像召回率精確率這樣的指標可以一起使用,而f1 分數實際上是這兩者的調和平均值。

在資料集平衡的情況下,使用準確率可以反映整體模型效能。

Balanced Labels

在存在不平衡的情況下,使用F1 分數可以更好地表示效能,因為它同時包含了精確率和召回率。

Imbalanced Labels

在不平衡的場景中使用準確率不太理想,因為它對少數類不敏感,無法忠實地反映模型在這些類別上的效能。

離線與線上模型評估

評估模型有多種方法,其中一個重要的區別是離線評估與線上評估。

離線評估是在部署模型或使用模型生成的見解之前,使用靜態資料集和指標進行的。

線上評估是指在模型部署後及其在生產環境中使用期間,評估其效能表現。

這兩種評估型別可以使用不同的指標,並衡量模型效能的不同方面。例如,離線評估可以根據模型在通用基準上的表現將其與其他模型進行比較,而線上評估將評估諸如延遲和模型基於生產資料的準確性等方面(例如,它能夠解決的使用者查詢數量)。

模型評估中的權衡

在實踐中評估模型時,通常需要在模型效能的不同方面之間做出權衡:例如,選擇一個準確率稍低但推理時間更快的模型,而不是一個準確率高但記憶體佔用更大且需要更多 GPU 資源的模型。

在評估過程中,還應考慮模型效能的其他方面:

可解釋性

在評估模型時,可解釋性(即解釋結果的能力)可能非常重要,尤其是在生產環境中部署模型時。

例如,像完全匹配這樣的指標有一個固定的範圍(0 到 1,或 0% 到 100%),並且易於使用者理解:對於一對字串,如果兩個字串完全相同,完全匹配分數為 1,否則為 0。

其他指標,如BLEU,則更難解釋:雖然它們的範圍也在 0 到 1 之間,但根據用於生成分數的引數不同,它們可能會有很大差異,尤其是在使用不同的分詞和歸一化技術時(有關 BLEU 侷限性的更多資訊,請參閱指標卡片)。這意味著,如果沒有更多關於獲取 BLEU 分數過程的資訊,就很難解釋一個 BLEU 分數。

可解釋性的重要性可能因評估用例而異,但它是模型評估中一個需要牢記的有用方面,因為溝通和比較模型評估是負責任的機器學習的重要組成部分。

推理速度和記憶體佔用

儘管近年來,越來越大的機器學習模型在各種任務和基準上取得了高效能,但在實踐中部署這些數十億引數的模型本身就是一個挑戰,許多組織缺乏相應的資源。因此,考慮模型的推理速度記憶體佔用非常重要,尤其是在進行線上模型評估時。

推理速度指的是模型進行一次預測所需的時間——這會因所用硬體和模型查詢方式的不同而變化,例如透過 API 進行即時查詢或每天執行一次的批處理作業。

記憶體佔用指的是模型權重的大小以及它們佔用的硬體記憶體量。如果一個模型太大,無法容納在單個 GPU 或 CPU 上,那麼它必須被分割到多個裝置上,這根據模型架構和部署方法的不同,難易程度也不同。

在進行線上模型評估時,通常需要在推理速度與準確率或精確率之間做出權衡,而對於離線評估,這種情況則較少。

侷限性與偏見

所有模型和所有指標都有其侷限性和偏見,這取決於它們的訓練方式、所用資料以及預期用途。清楚地衡量和溝通這些侷限性非常重要,以防止濫用和意外影響,例如透過模型卡片記錄訓練和評估過程。

衡量偏見可以透過在諸如Wino BiasMD Gender Bias 這樣的資料集上評估模型,以及透過進行互動式錯誤分析來嘗試識別模型在評估資料集的哪些子集上表現不佳。

我們目前正在研究可用於量化模型和資料集中不同維度偏見的其他測量方法——敬請關注關於此主題的更多文件!

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.